Files
gateway-mnp-dbc/dbcmnpsrc/FE/mnpapp/script/procedure/dwh/DWH.FUN_DATE_FESTIVE.fnc
2024-05-13 12:54:14 +02:00

39 lines
1.1 KiB
Plaintext

CREATE OR REPLACE FUNCTION FUN_DATE_FESTIVE (data_in IN DATE)
RETURN DATE
-- Se data_in è lavorativo restituisce data_in
-- Se data_in è festivo restituisce il primo giorno lavorativo precedente
IS
appo_settimana VARCHAR2 (20) := NULL;
appo_data DATE := NULL;
appo_id_prog mnp.mnp_date_festive.id_prog%TYPE;
BEGIN
appo_data := data_in;
appo_settimana := UPPER (TO_CHAR (appo_data, 'day'));
IF RTRIM (appo_settimana) = 'SATURDAY'
OR RTRIM (appo_settimana) = 'SABATO'
OR RTRIM (appo_settimana) = 'SUNDAY'
OR RTRIM (appo_settimana) = 'DOMENICA'
THEN
appo_data := dwh.fun_date_festive (appo_data - 1);
END IF;
BEGIN
SELECT id_prog
INTO appo_id_prog
FROM mnp.mnp_date_festive
WHERE TRUNC (data_festiva) = TRUNC (appo_data)
AND rownum <2;
appo_data := dwh.fun_date_festive (appo_data - 1);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN appo_data;
END;
RETURN appo_data;
END fun_date_festive;
/