Você está na página 1de 1

CREATE OR REPLACE FUNCTION USISTEMA.

IND_CORRECAO_FERIAS_13 ( P_REF_ANOMES_FIM IN
NUMBER
, P_DTA_CONV_LICPREMIO IN DATE
, P_CDG_SITFUNC IN NUMBER) RETURN FLOAT
IS
L_INDICE FLOAT;
BEGIN
SELECT CASE WHEN TO_CHAR(P_DTA_CONV_LICPREMIO, 'MM') = SUBSTR(P_REF_ANOMES_FIM,
5, 2)
THEN 1
ELSE
CASE WHEN ((NVL((SELECT ACUMULADO
FROM USISTEMA.TBINDICE_IPCA
WHERE REF_ANOMES =
REF_ANOMES_ANTERIOR(TO_CHAR(P_DTA_CONV_LICPREMIO, 'YYYYMM'))), -1) = -1) OR
(NVL((SELECT ACUMULADO
FROM USISTEMA.TBINDICE_IPCA
WHERE REF_ANOMES =
REF_ANOMES_ANTERIOR(P_REF_ANOMES_FIM)), -1) = -1))
THEN 1
ELSE
NVL((SELECT ACUMULADO
FROM USISTEMA.TBINDICE_IPCA
WHERE REF_ANOMES = (REF_ANOMES_ANTERIOR(P_REF_ANOMES_FIM) )
), 1)
/
NVL((SELECT ACUMULADO
FROM USISTEMA.TBINDICE_IPCA
WHERE REF_ANOMES =
REF_ANOMES_ANTERIOR(TO_CHAR(P_DTA_CONV_LICPREMIO, 'YYYYMM'))), 1)
END
END
INTO L_INDICE
FROM DUAL;
IF TO_CHAR(P_DTA_CONV_LICPREMIO, 'YYYYMM') > 202207 THEN

-- L_INDICE := NVL(L_INDICE, 1);

IF P_CDG_SITFUNC = 12 THEN
L_INDICE := 1.1833;
ELSE
L_INDICE := 1.1111;
END IF;

ELSE
IF P_CDG_SITFUNC = 12 THEN
L_INDICE := 1.1389;
ELSE
L_INDICE := 1.1111;
END IF;
END IF;

RETURN(L_INDICE);
END;

Você também pode gostar