From 0b5bcc336709d54cbc34b4dcd22158794d794d8d Mon Sep 17 00:00:00 2001 From: RONALDO RODRIGUES DE OLIVEIRA Date: Tue, 10 Jun 2025 13:26:26 -0300 Subject: [PATCH] Verificação pelo período. O atual gestor entra para representar o termo. --- declaracao_omissao/regras-100625/1-function_par.get_responsaveis.sql | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 declaracao_omissao/regras-100625/1-function_par.get_responsaveis.sql diff --git a/declaracao_omissao/regras-100625/1-function_par.get_responsaveis.sql b/declaracao_omissao/regras-100625/1-function_par.get_responsaveis.sql new file mode 100644 index 0000000..c36efba --- /dev/null +++ b/declaracao_omissao/regras-100625/1-function_par.get_responsaveis.sql @@ -0,0 +1,77 @@ +-- DROP FUNCTION par.get_responsaveis(varchar, date, date, date, varchar); + +CREATE OR REPLACE FUNCTION par.get_responsaveis(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 $$ + DECLARE + responsavel record; + + BEGIN + + FOR responsavel IN( + WITH prefeitos as( + SELECT + 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 (i_datainiciovigencia between rrpdtiniciomandato and rrpdtfimmandato or i_datafimpc between rrpdtiniciomandato and rrpdtfimmandato ) + UNION + SELECT * FROM ( + SELECT + 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) + ) AS subquery WHERE TRIM(subquery.naturezainteresse) IN('Atual Gestor', 'Atual Gestor /Responsável /Corresponsável', 'Atual Gestor /Corresponsável') + + )SELECT DISTINCT rrpid, rrpdtiniciomandato, rrpdtfimmandato, usucpf, rrpnomeprefeito, naturezainteresse FROM prefeitos + ) + LOOP + _rrpid := responsavel.rrpid; + _cpf := responsavel.usucpf; + _nomeprefeito := responsavel.rrpnomeprefeito; + _dtiniciomandato := responsavel.rrpdtiniciomandato; + _dtfimmandato := responsavel.rrpdtfimmandato; + IF TRIM(responsavel.naturezainteresse) = 'Ex-dirigente' THEN + _naturezainteresse := 'Responsável'; + ELSE + _naturezainteresse := TRIM(responsavel.naturezainteresse); + END IF; + return next; + END LOOP; + +END; $$; + + + -- libgit2 0.25.0