Update PLpgSQLFunction-etiqNaturezaInteresse-REQ000000329189.sql

Duplicação
parent d0cf956e
CREATE OR REPLACE FUNCTION par.naturezainteresse( CREATE OR REPLACE FUNCTION par.naturezainteresse(
iniciomandato date, iniciomandato date,
fimmandato date, fimmandato date,
...@@ -90,93 +89,3 @@ drop FUNCTION par.naturezainteresse( ...@@ -90,93 +89,3 @@ drop FUNCTION par.naturezainteresse(
programa varchar(10) programa varchar(10)
) )
CREATE OR REPLACE FUNCTION par.naturezainteresse(
iniciomandato date,
fimmandato date,
iniciovigencia date,
fimvigencia date,
programa varchar(10) default 'par'
)
RETURNS text
AS $$
DECLARE
natureza TEXT;
data_final_pc date;
data_corte date;
BEGIN
SELECT
case programa
when 'pac' then (dpcdatainiciocontagem2 + interval '60 day')::date
when 'par3' then (dpcdatainiciocontagem3 + interval '60 day')::date
else
(dpcdatainiciocontagem1 + interval '60 day')::date
end into data_corte
FROM par.datasprestacaocontas WHERE dpcid = '1';
IF fimvigencia < data_corte THEN
data_final_pc := data_corte + 60;
ELSE
data_final_pc := fimvigencia + 60;
END IF;
IF fimmandato IS NULL THEN
natureza := 'Atual Gestor /';
IF ((iniciomandato >= iniciovigencia) AND (iniciomandato <= fimvigencia)) THEN
natureza := concat(natureza,'Responsável /');
ELSEIF iniciovigencia >= iniciomandato THEN
natureza := concat(natureza,'Responsável /');
END IF;
IF data_final_pc >= iniciomandato THEN
natureza := concat(natureza,'Corresponsável /');
END IF;
ELSE
<<bloco_resp>>
BEGIN
IF iniciomandato >= iniciovigencia AND iniciomandato <= fimvigencia THEN
natureza := concat(natureza,' Responsável /');
exit bloco_resp;
ELSEIF fimmandato >= iniciovigencia AND fimmandato <= fimvigencia THEN
natureza := concat(natureza, 'Responsável /');
exit bloco_resp;
ELSEIF iniciovigencia >= iniciomandato AND iniciovigencia <= fimmandato THEN
natureza := concat(natureza, 'Responsável /');
exit bloco_resp;
ELSEIF fimvigencia >= iniciomandato AND fimvigencia <= fimmandato THEN
natureza := concat(natureza, 'Responsável /');
exit bloco_resp;
END IF;
END;
IF data_final_pc >= iniciomandato AND data_final_pc <= fimmandato THEN
natureza := concat(natureza, 'Corresponsável /');
END IF;
END IF;
natureza := substring(natureza, 1, length(natureza)-2);
IF natureza IS NULL THEN
natureza := concat(natureza, 'Ex-dirigente');
END IF;
RETURN natureza::text;
END;
$$ language PLPGSQL;
/*
* Excluir objeto
*/
/*
drop FUNCTION par.naturezainteresse(
iniciomandato date,
fimmandato date,
iniciovigencia date,
fimvigencia date,
programa varchar(10)
)
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