diff --git a/PLpgSQLFunction-etiqNaturezaInteresse-REQ000000329189.sql b/PLpgSQLFunction-etiqNaturezaInteresse-REQ000000329189.sql index 169ed18..d1a8a80 100644 --- a/PLpgSQLFunction-etiqNaturezaInteresse-REQ000000329189.sql +++ b/PLpgSQLFunction-etiqNaturezaInteresse-REQ000000329189.sql @@ -1,10 +1,11 @@ -CREATE OR REPLACE FUNCTION par.naturezainteresse( + +CREATE OR REPLACE FUNCTION par.naturezainteresse_v2( iniciomandato date, fimmandato date, iniciovigencia date, fimvigencia date, - programa varchar(10) default 'par' + programa varchar(10) default 'AUSENTE' ) RETURNS text AS $$ @@ -15,10 +16,17 @@ DECLARE data_corte date; 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 - case programa - when 'pac' then (dpcdatainiciocontagem2 + interval '60 day')::date - when 'par3' then (dpcdatainiciocontagem3 + interval '60 day')::date + case UPPER(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 @@ -29,7 +37,7 @@ BEGIN ELSE data_final_pc := fimvigencia + 60; END IF; -raise notice 'data_final_pc %', data_final_pc; +-- raise notice 'data_final_pc %', data_final_pc; IF fimmandato IS NULL THEN natureza := 'Atual Gestor /'; IF ((iniciomandato >= iniciovigencia) AND (iniciomandato <= fimvigencia)) THEN @@ -81,10 +89,23 @@ $$ language PLPGSQL; * Excluir objeto */ /* -drop FUNCTION par.naturezainteresse( +drop FUNCTION par.naturezainteresse_v2( iniciomandato date, fimmandato date, iniciovigencia date, fimvigencia date, 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'); + +*/