Verificação pelo período. O atual gestor entra para representar o termo.

parent 0f8f15a7
-- 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; $$;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment