-- drop function if exists workflow.set_omissodeclarado_situacaopc(integer, integer, bpchar, varchar, integer, integer) CREATE OR REPLACE FUNCTION workflow.set_omissodeclarado_situacaopc( p_docid integer, p_esdiddestino integer, p_cpf bpchar(11), p_programa varchar(10), p_prog_id integer, p_arqid integer ) RETURNS void language plpgsql as $$ declare estadodocumento_esdidorigem integer; acaoestadodoc_aedid integer; historicodocumento_hstid integer; BEGIN estadodocumento_esdidorigem := (select esd.esdid from workflow.estadodocumento esd inner join workflow.documento doc on esd.esdid = doc.esdid where doc.docid = p_docid); INSERT INTO workflow.acaoestadodoc (esdidorigem, esdiddestino, aeddscrealizar, aeddscrealizada, esdcomentarioobrigatorio, aeddescregracondicao) VALUES(estadodocumento_esdidorigem, p_esdiddestino, 'Enviar para Omisso Declarado', 'Enviado para Omisso Declarado', 't', 'Ação criada via rotina automatica') returning aedid into acaoestadodoc_aedid; insert into workflow.historicodocumento ( aedid, docid, usucpf, htddata ) values ( acaoestadodoc_aedid , p_docid , p_cpf, now() ) returning hstid into historicodocumento_hstid; insert into workflow.comentariodocumento ( docid, hstid, cmddsc, cmddata, cmdstatus ) values ( p_docid, historicodocumento_hstid , 'Estabelecido omisso declarado', now(), 'A' ); update workflow.documento set esdid = p_esdiddestino where docid = p_docid; if p_programa = 'PAR' then insert into par.registrosituacaopc (usucpf,rspnumerosei,rspdata,rspdataregistro,rspnumerodocumento,rspobservacoes,rspciencia,rsptramitoufase,rsptramitoupc,rsptramitouopc,rspcpfrecebedor,rspnomerecebedor,rspdataciencia,rspvia,arqid,arqid_ciencia,prpid,proid_par,proid_pac,rspvldebitoapurado,rspdtapontada,proid_par3) VALUES (p_cpf,null,now(),now(),null,'Declaração de omissão',false,false,false,true,' ','',NULL,'',p_arqid,NULL,p_prog_id,NULL,NULL,NULL,NULL,NULL); elseif p_programa = 'OBRA' then insert into par.registrosituacaopc (usucpf,rspnumerosei,rspdata,rspdataregistro,rspnumerodocumento,rspobservacoes,rspciencia,rsptramitoufase,rsptramitoupc,rsptramitouopc,rspcpfrecebedor,rspnomerecebedor,rspdataciencia,rspvia,arqid,arqid_ciencia,prpid,proid_par,proid_pac,rspvldebitoapurado,rspdtapontada,proid_par3) VALUES (p_cpf,null,now(),now(),null,'Declaração de omissão',false,false,false,true,' ','',NULL,'',p_arqid,NULL,null,p_prog_id,NULL,NULL,NULL,NULL); elseif p_programa = 'PAC' then insert into par.registrosituacaopc (usucpf,rspnumerosei,rspdata,rspdataregistro,rspnumerodocumento,rspobservacoes,rspciencia,rsptramitoufase,rsptramitoupc,rsptramitouopc,rspcpfrecebedor,rspnomerecebedor,rspdataciencia,rspvia,arqid,arqid_ciencia,prpid,proid_par,proid_pac,rspvldebitoapurado,rspdtapontada,proid_par3) VALUES (p_cpf,null,now(),now(),null,'Declaração de omissão',false,false,false,true,' ','',NULL,'',p_arqid,NULL,null,NULL,p_prog_id,NULL,NULL,NULL); end if; END; $$