diff --git a/declaracao_omissao/3-function-workflow-set_omissodeclarado_situacaopc.sql b/declaracao_omissao/3-function-workflow-set_omissodeclarado_situacaopc.sql new file mode 100644 index 0000000..4d23bab --- /dev/null +++ b/declaracao_omissao/3-function-workflow-set_omissodeclarado_situacaopc.sql @@ -0,0 +1,60 @@ + -- 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; $$ +