diff --git a/declaracao_omissao/Estados_Distrito_Federal_add/2-function_par.get_responsaveis_termo_190825.sql b/declaracao_omissao/Estados_Distrito_Federal_add/2-function_par.get_responsaveis_termo_190825.sql new file mode 100644 index 0000000..97f5014 --- /dev/null +++ b/declaracao_omissao/Estados_Distrito_Federal_add/2-function_par.get_responsaveis_termo_190825.sql @@ -0,0 +1,82 @@ +-- DROP FUNCTION par.get_responsaveis_termo(integer, varchar, varchar, date, date, date, varchar); + +CREATE OR REPLACE FUNCTION par.get_responsaveis_termo(i_itrid integer ,i_cnpj character varying, i_muncod character varying, i_datainiciovigencia date, i_datafimvigencia date, i_datafimpc date, i_tipoprograma character varying) + RETURNS TABLE(_rrpid integer, _cpf character varying, _nomeprefeito character varying, _dtiniciomandato date, _dtfimmandato date, _naturezainteresse character varying) + LANGUAGE plpgsql +AS $function$ + DECLARE + responsavel record; + + BEGIN + IF i_itrid = 2 THEN + FOR responsavel IN( + SELECT + distinct + rrpid, + rrpdtiniciomandato, + rrpdtfimmandato, + usucpf, + rrpnomeprefeito, + trim(par.naturezainteresse_v2( + rrpdtiniciomandato, + rrpdtfimmandato, + i_datainiciovigencia, + i_datafimvigencia, + i_tipoprograma) + ) as naturezainteresse + FROM + par.rollresponsaveisprefeitos + WHERE + muncod in(i_muncod) + and ( rrpdtfimmandato between i_datainiciovigencia and i_datafimpc or rrpdtiniciomandato between i_datainiciovigencia and i_datafimpc ) + order by rrpdtiniciomandato desc + ) + LOOP + _rrpid := responsavel.rrpid; + _cpf := responsavel.usucpf; + _nomeprefeito := responsavel.rrpnomeprefeito; + _dtiniciomandato := responsavel.rrpdtiniciomandato; + _dtfimmandato := responsavel.rrpdtfimmandato; + _naturezainteresse := responsavel.naturezainteresse; + return next; + END LOOP; + ELSE + FOR responsavel IN( + SELECT + distinct + rrsid, + rrsdtiniciomandato, + rrsdtfimmandato, + usucpf, + rrsnomesecretario, + + trim(par.naturezainteresse_v2( + rrsdtiniciomandato, + rrsdtfimmandato, + i_datainiciovigencia, + i_datafimvigencia, + i_tipoprograma) + ) as naturezainteresse + FROM + par.rollresponsaveissecretarios + WHERE + rrscnpj in(i_cnpj) + and ( rrsdtfimmandato between i_datainiciovigencia and i_datafimpc or rrsdtiniciomandato between i_datainiciovigencia and i_datafimpc ) + order by rrsdtiniciomandato desc + + ) + LOOP + _rrpid := responsavel.rrsid; + _cpf := responsavel.usucpf; + _nomeprefeito := responsavel.rrsnomesecretario; + _dtiniciomandato := responsavel.rrsdtiniciomandato; + _dtfimmandato := responsavel.rrsdtfimmandato; + _naturezainteresse := responsavel.naturezainteresse; + return next; + END LOOP; + END IF; + +END; $function$; + + +