Update PLpgSQLFunction-etiqNaturezaInteresse-REQ000000329189.sql

parent f78a8040
CREATE OR REPLACE FUNCTION par.naturezainteresse(
CREATE OR REPLACE FUNCTION par.naturezainteresse_v2(
iniciomandato date, iniciomandato date,
fimmandato date, fimmandato date,
iniciovigencia date, iniciovigencia date,
fimvigencia date, fimvigencia date,
programa varchar(10) default 'par' programa varchar(10) default 'AUSENTE'
) )
RETURNS text RETURNS text
AS $$ AS $$
...@@ -15,10 +16,17 @@ DECLARE ...@@ -15,10 +16,17 @@ DECLARE
data_corte date; data_corte date;
BEGIN BEGIN
IF programa = 'AUSENTE' THEN
RETURN 'ERRO - Falta paramentro-programa';
EXIT;
END IF;
-- raise notice 'iniciomandato %, fimmandato %, iniciovigencia %, fimvigencia %, programa %', iniciomandato, fimmandato, iniciovigencia, fimvigencia, programa;
SELECT SELECT
case programa case UPPER(programa)
when 'pac' then (dpcdatainiciocontagem2 + interval '60 day')::date when 'PAC' then (dpcdatainiciocontagem2 + interval '60 day')::date
when 'par3' then (dpcdatainiciocontagem3 + interval '60 day')::date when 'PAR3' then (dpcdatainiciocontagem3 + interval '60 day')::date
else else
(dpcdatainiciocontagem1 + interval '60 day')::date (dpcdatainiciocontagem1 + interval '60 day')::date
end into data_corte end into data_corte
...@@ -29,7 +37,7 @@ BEGIN ...@@ -29,7 +37,7 @@ BEGIN
ELSE ELSE
data_final_pc := fimvigencia + 60; data_final_pc := fimvigencia + 60;
END IF; END IF;
raise notice 'data_final_pc %', data_final_pc; -- raise notice 'data_final_pc %', data_final_pc;
IF fimmandato IS NULL THEN IF fimmandato IS NULL THEN
natureza := 'Atual Gestor /'; natureza := 'Atual Gestor /';
IF ((iniciomandato >= iniciovigencia) AND (iniciomandato <= fimvigencia)) THEN IF ((iniciomandato >= iniciovigencia) AND (iniciomandato <= fimvigencia)) THEN
...@@ -81,10 +89,23 @@ $$ language PLPGSQL; ...@@ -81,10 +89,23 @@ $$ language PLPGSQL;
* Excluir objeto * Excluir objeto
*/ */
/* /*
drop FUNCTION par.naturezainteresse( drop FUNCTION par.naturezainteresse_v2(
iniciomandato date, iniciomandato date,
fimmandato date, fimmandato date,
iniciovigencia date, iniciovigencia date,
fimvigencia date, fimvigencia date,
programa varchar(10) programa varchar(10)
) )
*/
/* Testes para chamada direta.
select * from par.naturezainteresse_v2('2017-01-01', '2023-11-07', '2018-05-15', '2019-05-15','par3');
select * from par.naturezainteresse_v2('2017-01-01', '2023-11-07', '2018-05-15', '2019-05-15');
select * from par.naturezainteresse_v2('2023-11-08',null, '2018-05-15', '2019-05-15','par3');
select * from par.naturezainteresse_v2('2023-11-08',null, '2018-05-15', '2019-05-15');
*/
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