Escolar Documentos
Profissional Documentos
Cultura Documentos
VETOR_11280 tVETOR;
VETOR_11281 tVETOR;
VETOR_11284 tVETOR;
VETOR_11287 tVETOR;
P_REF_ANOMES_INICIO NUMBER;
P_REF_ANOMES_FIM NUMBER;
L_DTA_INICIO DATE;
L_DTA_FIM DATE;
L_TIP_SUBSTITUICAO NUMBER;
L_CDG_CARGOEFETIVO NUMBER;
L_CDG_CARGOEXT NUMBER;
L_CDG_FUNCAO NUMBER;
L_CLASSE VARCHAR(25);
L_NIVEL VARCHAR(25);
L_CDG_ORDEM_SUBST NUMBER;
L_CDG_FUNCIONAL_SUBST NUMBER;
L_ID_CARGO NUMBER;
L_CDG_FUNCAOEXT NUMBER;
L_VLR_AUXILIAR FLOAT;
L_ID_CH_CARGO NUMBER;
L_CH_CARGO NUMBER;
L_ID_CH_FUNCAO NUMBER;
L_CH_FUNCAO NUMBER;
L_VALOR FLOAT;
L_VLR_REPRESENTACAO FLOAT;
L_VLR_SUBSTITUICAO_FUNCAO FLOAT;
L_CDG_GRU_CARGO VARCHAR(3);
L_QTD_DIAS_SUBST NUMBER;
L_QTD_DIAS_SUBST_ORIGINAL NUMBER;
L_VLR_CARGOEXT FLOAT;
L_VLR_VENC_COMISSAO FLOAT;
L_VLR_VENCIMENTO FLOAT;
L_VLR_VENC_COM_SUBST FLOAT;
L_VLR_FUNC_COM_SUBST FLOAT;
L_VLR_DEV_ALT FLOAT;
L_QTDDIAS_DEV_ALT FLOAT;
L_CDG_GRU_CARGO_FUNC VARCHAR(3);
L_CLASSE_FUNC VARCHAR(25);
L_NIVEL_FUNC VARCHAR(5);
L_CDG_CARREIRA_FUNC NUMBER;
L_VLR_CARGO FLOAT;
L_CUMULACAO FLOAT;
L_CARGO FLOAT;
L_CLASSE_SERVIDOR VARCHAR(25);
L_NIVEL_SERVIDOR VARCHAR(25);
L_VLR_TOTAL_CUMULACAO FLOAT;
L_RECEBE_ULTIMO_DIA FLOAT;
I INTEGER;
J INTEGER;
K INTEGER;
IND_VET INTEGER;
L_EXISTE INTEGER;
L_CDG_TIP_EVENTO NUMBER;
L_CDG_UNIDADE_SUBST VARCHAR(50);
L_DTA_SUBSTITUICAO DATE;
L_VALOR_CARGO FLOAT;
L_VALOR_CARGO_2 FLOAT;
L_VLR_CHEIO_VENCIMENTO NUMBER;
L_VLR_CHEIO_REPRESENTACAO NUMBER;
L_VALOR_DIA NUMBER;
L_MAIOR_VALOR_11280 NUMBER;
L_MAIOR_VALOR_11281 NUMBER;
L_MAIOR_VALOR_11284 NUMBER;
L_MAIOR_VALOR_11287 NUMBER;
L_VLR_CARGO_SERVIDOR NUMBER;
L_VLR_CARGOEXT_SERVIDOR NUMBER;
L_VLR_REPRESENTACAO_SERVIDOR NUMBER;
L_VLR_FUNCAO_SERVIDOR NUMBER;
L_VLR_COMPLEMENTO_SERVIDOR NUMBER;
L_VLR_CARGO_SERV_DIA NUMBER;
L_VLR_CARGOEXT_SERV_DIA NUMBER;
L_VLR_REPRESENTACAO_SERV_DIA NUMBER;
L_VLR_FUNCAO_SERV_DIA NUMBER;
L_VLR_COMPLEMENTO_SERV_DIA NUMBER;
L_VLR_CORTE_CUMULACAO NUMBER;
L_VLR_LIMITE_CUMULACAO NUMBER;
L_VLR_TOTAL_FUNCAO NUMBER;
L_VLR_LIMITE_FUNCAO NUMBER;
L_30_DIAS_CUMULACAO NUMBER;
L_OBSERVACAO VARCHAR(40);
L_VALOR_TOT_CUMULACAO NUMBER;
TOT_VETOR_11284 NUMBER;
L_TOT_FIM NUMBER;
CURSOR CURSOR_SUBSTITUICAO IS
SELECT S.DTA_INI_EVENTO
, SL.DTA_TERMINO
, SL.CDG_CARGOEFETIVO
, SL.CDG_CARGOEXT
, SL.CDG_FUNCAO
, SL.CLASSE
, SL.NIVEL
, SL.CDG_ORDEM_SUBST
, SL.CDG_FUNCIONAL_SUBST
, SL.CUMULACAO_CARGO
, SL.RECEBE_ULTIMO_DIA
, (SELECT C.CDG_CARGO
FROM USISTEMA.TBDCARGO DC
, USISTEMA.TBCARGO C
WHERE DC.CDG_ORGAO = P_CDG_ORGAO
AND DC.CDG_ORDEM = P_CDG_ORDEM
AND DC.CDG_FUNCIONAL = P_CDG_FUNCIONAL
AND DC.ID_CARGO = 1
AND DC.DTA_INI_CARGO = (SELECT MAX(DC2.DTA_INI_CARGO)
FROM USISTEMA.TBDCARGO DC2
WHERE DC2.CDG_ORGAO = DC.CDG_ORGAO
AND DC2.CDG_ORDEM = DC.CDG_ORDEM
AND DC2.CDG_FUNCIONAL =
DC.CDG_FUNCIONAL
AND TO_CHAR(DC2.DTA_INI_CARGO,
'YYYYMM') <= P_REF_ANOMES)
AND C.CDG_ORGAO = DC.CDG_ORGAO
AND C.CDG_CARGO = DC.CDG_CARGO
AND C.DTA_INI_CARGO = (SELECT MAX(C2.DTA_INI_CARGO)
FROM USISTEMA.TBCARGO C2
WHERE C2.CDG_ORGAO = C.CDG_ORGAO
AND C2.CDG_CARGO = C.CDG_CARGO
AND TO_CHAR(C2.DTA_INI_CARGO, 'YYYYMM')
<= P_REF_ANOMES)) AS CARGO
, (SELECT DC.CLASSE
FROM USISTEMA.TBDCARGO DC
, USISTEMA.TBCARGO C
WHERE DC.CDG_ORGAO = P_CDG_ORGAO
AND DC.CDG_ORDEM = P_CDG_ORDEM
AND DC.CDG_FUNCIONAL = P_CDG_FUNCIONAL
AND DC.ID_CARGO = 1
AND DC.DTA_INI_CARGO = (SELECT MAX(DC2.DTA_INI_CARGO)
FROM USISTEMA.TBDCARGO DC2
WHERE DC2.CDG_ORGAO = DC.CDG_ORGAO
AND DC2.CDG_ORDEM = DC.CDG_ORDEM
AND DC2.CDG_FUNCIONAL =
DC.CDG_FUNCIONAL
AND TO_CHAR(DC2.DTA_INI_CARGO,
'YYYYMM') <= P_REF_ANOMES)
AND C.CDG_ORGAO = DC.CDG_ORGAO
AND C.CDG_CARGO = DC.CDG_CARGO
AND C.DTA_INI_CARGO = (SELECT MAX(C2.DTA_INI_CARGO)
FROM USISTEMA.TBCARGO C2
WHERE C2.CDG_ORGAO = C.CDG_ORGAO
AND C2.CDG_CARGO = C.CDG_CARGO
AND TO_CHAR(C2.DTA_INI_CARGO, 'YYYYMM')
<= P_REF_ANOMES)) AS CLASSE
, (SELECT DC.NIVEL
FROM USISTEMA.TBDCARGO DC
, USISTEMA.TBCARGO C
WHERE DC.CDG_ORGAO = P_CDG_ORGAO
AND DC.CDG_ORDEM = P_CDG_ORDEM
AND DC.CDG_FUNCIONAL = P_CDG_FUNCIONAL
AND DC.ID_CARGO = 1
AND DC.DTA_INI_CARGO = (SELECT MAX(DC2.DTA_INI_CARGO)
FROM USISTEMA.TBDCARGO DC2
WHERE DC2.CDG_ORGAO = DC.CDG_ORGAO
AND DC2.CDG_ORDEM = DC.CDG_ORDEM
AND DC2.CDG_FUNCIONAL =
DC.CDG_FUNCIONAL
AND TO_CHAR(DC2.DTA_INI_CARGO,
'YYYYMM') <= P_REF_ANOMES)
AND C.CDG_ORGAO = DC.CDG_ORGAO
AND C.CDG_CARGO = DC.CDG_CARGO
AND C.DTA_INI_CARGO = (SELECT MAX(C2.DTA_INI_CARGO)
FROM USISTEMA.TBCARGO C2
WHERE C2.CDG_ORGAO = C.CDG_ORGAO
AND C2.CDG_CARGO = C.CDG_CARGO
AND TO_CHAR(C2.DTA_INI_CARGO, 'YYYYMM')
<= P_REF_ANOMES)) AS NIVEL
, SL.CDG_UNIDADE
, S.CDG_TIP_EVENTO
FROM USISTEMA.TBDDESIGNACAO S
, USISTEMA.TBDESIGNACAO_LOTACAO SL
WHERE S.CDG_ORGAO = P_CDG_ORGAO
AND S.CDG_ORDEM = P_CDG_ORDEM
AND S.CDG_FUNCIONAL = P_CDG_FUNCIONAL
AND S.ID_DEFERIDO = 1
AND SL.GERA_FINANCEIRO = 1
AND S.CDG_DESIG_LOTACAO = SL.CDG_DESIG_LOTACAO
AND S.CDG_ORGAO = SL.CDG_ORGAO
AND S.DTA_INI_EVENTO <= L_DTA_SUBSTITUICAO
AND ((SL.DTA_TERMINO IS NULL)
OR (SL.DTA_TERMINO >= L_DTA_SUBSTITUICAO))
--AND TO_DATE(L_DTA_SUBSTITUICAO) >= S.DTA_INI_EVENTO
--AND ((SL.DTA_TERMINO IS NULL)
--OR (TO_DATE(L_DTA_SUBSTITUICAO) <= SL.DTA_TERMINO))
AND S.REF_ANOMES <= P_REF_ANOMES
AND (CASE WHEN (NVL(P_ID_AUX,0) = -4)
THEN S.REF_ANOMES_INCLUSAO
ELSE 0
END) < (CASE WHEN (NVL(P_ID_AUX,0) = -4)
THEN P_REF_ANOMES
ELSE 1
END)
AND S.CDG_TIP_EVENTO <> 777
--AND TO_NUMBER(S.DTA_INI_EVENTO, 'YYYYMM') <= P_REF_ANOMES
--AND ((SL.DTA_TERMINO IS NULL)
--OR (TO_NUMBER(SL.DTA_TERMINO, 'YYYYMM') >= P_REF_ANOMES))
--AND S.DTA_INI_EVENTO = TO_DATE('11/03/2016','DD/MM/YYYY')
ORDER BY 3 DESC;
CURSOR CURSOR_DIAS_MES_SUBST IS
SELECT TO_DATE(P_REF_ANOMES || '01', 'YYYYMMDD') + LEVEL - 1 AS DIA
FROM DUAL
CONNECT BY LEVEL <= ((LAST_DAY(TO_DATE(P_REF_ANOMES || '01', 'YYYYMMDD')) -
TO_DATE(P_REF_ANOMES || '01', 'YYYYMMDD')) + 1)
ORDER BY 1 ASC;
CURSOR BUSCA_VALORES_SERVIDOR IS
SELECT USISTEMA.GERA_SUBST_DIA_CARGO_PRINC ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, L_DTA_SUBSTITUICAO) AS VLR_CARGO
, USISTEMA.GERA_SUBST_DIA_CARGO_COMISS_V ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, L_DTA_SUBSTITUICAO) AS
VLR_CARGO_COMISS
, USISTEMA.GERA_SUBST_DIA_CARGO_COMISS_F ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, L_DTA_SUBSTITUICAO) AS
VLR_REPRESENTACAO
, USISTEMA.GERA_SUBST_DIA_FUNCAO ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, L_DTA_SUBSTITUICAO) AS VLR_FUNCAO
, USISTEMA.GERA_SUBST_DIA_COMPLEM_COMISS ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, L_DTA_SUBSTITUICAO) AS
VLR_COMPLEMENTO
FROM DUAL;
CURSOR EXISTE_SUBST IS
SELECT COUNT(*)
FROM USISTEMA.TBDDESIGNACAO S
, USISTEMA.TBDESIGNACAO_LOTACAO SL
WHERE (S.CDG_ORGAO = P_CDG_ORGAO)
AND (S.CDG_ORDEM = P_CDG_ORDEM)
AND (S.CDG_FUNCIONAL = P_CDG_FUNCIONAL)
AND (S.ID_DEFERIDO = 1)
AND (SL.GERA_FINANCEIRO = 1)
AND (S.CDG_DESIG_LOTACAO = SL.CDG_DESIG_LOTACAO)
AND (S.CDG_ORGAO = SL.CDG_ORGAO)
AND (TO_NUMBER(TO_CHAR(S.DTA_INI_EVENTO,'YYYYMM')) <= P_REF_ANOMES)
AND S.REF_ANOMES <= P_REF_ANOMES
AND (CASE WHEN (NVL(P_ID_AUX, 0) = -4)
THEN S.REF_ANOMES_INCLUSAO
ELSE 0
END) < (CASE WHEN (NVL(P_ID_AUX, 0) = -4)
THEN P_REF_ANOMES
ELSE 1
END)
AND ((SL.DTA_TERMINO IS NULL)
OR (TO_NUMBER(TO_CHAR(SL.DTA_TERMINO, 'YYYYMM')) >= P_REF_ANOMES))
AND S.CDG_TIP_EVENTO <> 777;
BEGIN
DELETE FROM USISTEMA.TB_CALCULO_SUBSTITUICAO
WHERE REF_ANOMES = P_REF_ANOMES
AND CDG_ORGAO = P_CDG_ORGAO
AND ID_AUX = P_ID_AUX
AND CDG_ORDEM = P_CDG_ORDEM
AND CDG_FUNCIONAL = P_CDG_FUNCIONAL;
L_EXISTE := 0;
L_VALOR_TOT_CUMULACAO := 0;
OPEN EXISTE_SUBST;
FETCH EXISTE_SUBST
INTO L_EXISTE;
CLOSE EXISTE_SUBST;
L_EXISTE := NVL(L_EXISTE, 0);
IF (L_EXISTE = 0) THEN
RETURN;
END IF;
VETOR_11280 := tVETOR();
VETOR_11281 := tVETOR();
VETOR_11284 := tVETOR();
VETOR_11287 := tVETOR();
I := 1;
FETCH CURSOR_DIAS_MES_SUBST
INTO L_DTA_SUBSTITUICAO; --DIA A DIA
L_MAIOR_VALOR_11280 := 0;
L_MAIOR_VALOR_11281 := 0;
L_MAIOR_VALOR_11284 := 0;
L_MAIOR_VALOR_11287 := 0;
L_VLR_CARGO_SERVIDOR := 0;
L_VLR_CARGOEXT_SERVIDOR := 0;
L_VLR_REPRESENTACAO_SERVIDOR := 0;
L_VLR_FUNCAO_SERVIDOR := 0;
L_VLR_COMPLEMENTO_SERVIDOR := 0;
OPEN BUSCA_VALORES_SERVIDOR;
FETCH BUSCA_VALORES_SERVIDOR
INTO L_VLR_CARGO_SERVIDOR
, L_VLR_CARGOEXT_SERVIDOR
, L_VLR_REPRESENTACAO_SERVIDOR
, L_VLR_FUNCAO_SERVIDOR
, L_VLR_COMPLEMENTO_SERVIDOR;
CLOSE BUSCA_VALORES_SERVIDOR;
OPEN CURSOR_SUBSTITUICAO;
LOOP
L_CDG_CARGOEFETIVO := 0;
L_CDG_CARGOEXT := 0;
L_CDG_FUNCAO := 0;
L_CLASSE := '000000';
L_NIVEL := '000000';
L_TIP_SUBSTITUICAO := 0;
L_CDG_ORDEM_SUBST := 0;
L_CDG_FUNCIONAL_SUBST := 0;
L_CLASSE_SERVIDOR := '000000';
L_NIVEL_SERVIDOR := '000000';
FETCH CURSOR_SUBSTITUICAO
INTO L_DTA_INICIO
, L_DTA_FIM
, L_CDG_CARGOEFETIVO
, L_CDG_CARGOEXT
, L_CDG_FUNCAO
, L_CLASSE
, L_NIVEL
, L_CDG_ORDEM_SUBST
, L_CDG_FUNCIONAL_SUBST
, L_CUMULACAO
, L_RECEBE_ULTIMO_DIA
, L_CARGO
, L_CLASSE_SERVIDOR
, L_NIVEL_SERVIDOR
, L_CDG_UNIDADE_SUBST
, L_CDG_TIP_EVENTO;
--L_QTD_DIAS_SUBST := 1;
IF (L_QTD_DIAS_SUBST = 0) THEN
L_TIP_SUBSTITUICAO := -1;
L_CUMULACAO := -1;
END IF;
L_VLR_CARGOEXT := 0;
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_VALOR
, L_VLR_REPRESENTACAO);
ELSE
USISTEMA.INF_CARGO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_CARGOEFETIVO
, L_ID_CH_CARGO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_CDG_FUNCAOEXT
, L_VALOR);
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_VALOR
, L_VLR_REPRESENTACAO);
END IF;
UPDATE USISTEMA.TB_CALCULO_SUBSTITUICAO
SET DTA_INICIO_SUBST = L_DTA_INICIO
, DTA_FIM_SUBST = L_DTA_FIM
, VALOR = L_VALOR_DIA
, VLR_REF_CARGO_MES = TRUNC((L_VALOR / 30) , 2)
, VLR_REF_VENC_COMISS_MES = 0
, VLR_REF_REPR_COMISS_MES = 0
, VLR_REF_FUNC_MES = 0
, VLR_DED_CARGO = L_VLR_CARGO_SERV_DIA
, VLR_DED_VENC_COMISS = 0
, VLR_DED_REPR_COMISS = 0
, VLR_DED_FUNCAO = 0
, VLR_DED_COMPLEMENTO = 0
, OBSERVACAO = L_OBSERVACAO
WHERE REF_ANOMES = P_REF_ANOMES
AND CDG_ORGAO = P_CDG_ORGAO
AND ID_AUX = P_ID_AUX
AND CDG_ORDEM = P_CDG_ORDEM
AND CDG_FUNCIONAL = P_CDG_FUNCIONAL
AND CDG_PROVDESC = 11280
AND DTA_ANALISE = L_DTA_SUBSTITUICAO;
IF (SQL%NOTFOUND) THEN
INSERT INTO USISTEMA.TB_CALCULO_SUBSTITUICAO
( CDG_ORGAO
, REF_ANOMES
, ID_AUX
, CDG_ORDEM
, CDG_FUNCIONAL
, CDG_PROVDESC
, DTA_INICIO_SUBST
, DTA_FIM_SUBST
, DTA_ANALISE
, VALOR
, VLR_REF_CARGO_MES
, VLR_REF_VENC_COMISS_MES
, VLR_REF_REPR_COMISS_MES
, VLR_REF_FUNC_MES
, VLR_DED_CARGO
, VLR_DED_VENC_COMISS
, VLR_DED_REPR_COMISS
, VLR_DED_FUNCAO
, VLR_DED_COMPLEMENTO
, OBSERVACAO)
VALUES
( P_CDG_ORGAO
, P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, 11280
, L_DTA_INICIO
, L_DTA_FIM
, L_DTA_SUBSTITUICAO
, L_VALOR_DIA
, TRUNC((L_VALOR / 30), 2)
, 0
, 0
, 0
, L_VLR_CARGO_SERV_DIA
, 0
, 0
, 0
, 0
, L_OBSERVACAO);
END IF;
END IF;
END IF;
L_VLR_CARGOEXT := 0;
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_VALOR
, L_VLR_REPRESENTACAO);
ELSE
USISTEMA.INF_CARGO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_CARGOEFETIVO
, L_ID_CH_CARGO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_CDG_FUNCAOEXT
, L_VALOR);
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_VALOR
, L_VLR_REPRESENTACAO);
END IF;
L_VALOR_CARGO := 0;
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE_SERVIDOR
, L_NIVEL_SERVIDOR
, L_VALOR_CARGO
, L_VALOR_CARGO_2);
ELSE
USISTEMA.INF_CARGO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CARGO
, L_ID_CH_CARGO
, L_CDG_GRU_CARGO
, L_CLASSE_SERVIDOR
, L_NIVEL_SERVIDOR
, L_CDG_FUNCAOEXT
, L_VALOR_CARGO);
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE_SERVIDOR
, L_NIVEL_SERVIDOR
, L_VALOR_CARGO
, L_VALOR_CARGO_2);
END IF;
L_VLR_CORTE_CUMULACAO := L_VALOR_CARGO;
IF (I > K) THEN
VETOR_11284(I).VALOR := 0;
VETOR_11284(I).VALOR_MES := 0;
END IF;
K := I + 1;
END IF;
K := K + 1;
END LOOP;
IF (SQL%NOTFOUND) THEN
INSERT INTO USISTEMA.TB_CALCULO_SUBSTITUICAO
( CDG_ORGAO
, REF_ANOMES
, ID_AUX
, CDG_ORDEM
, CDG_FUNCIONAL
, CDG_PROVDESC
, DTA_INICIO_SUBST
, DTA_FIM_SUBST
, DTA_ANALISE
, VALOR
, VLR_REF_CARGO_MES
, VLR_REF_VENC_COMISS_MES
, VLR_REF_REPR_COMISS_MES
, VLR_REF_FUNC_MES
, VLR_DED_CARGO
, VLR_DED_VENC_COMISS
, VLR_DED_REPR_COMISS
, VLR_DED_FUNCAO
, VLR_DED_COMPLEMENTO
, OBSERVACAO)
VALUES
( P_CDG_ORGAO
, P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, 11284
, L_DTA_INICIO
, L_DTA_FIM
, L_DTA_SUBSTITUICAO
, VETOR_11284(I).VALOR
, L_VALOR / 60
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, L_OBSERVACAO);
END IF;
END IF;
END IF;
END IF;
L_VLR_CARGOEXT := 0;
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_VALOR
, L_VLR_REPRESENTACAO);
ELSE
USISTEMA.INF_CARGO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_CARGOEFETIVO
, L_ID_CH_CARGO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_CDG_FUNCAOEXT
, L_VALOR);
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_VALOR
, L_VLR_REPRESENTACAO);
END IF;
IF (L_CLASSE_SERVIDOR <> '000000') THEN
USISTEMA.VLR_CARGO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CARGO
, L_ID_CH_CARGO
, L_CH_CARGO
, L_VALOR_CARGO
, L_CDG_GRU_CARGO
, L_VLR_DEV_ALT
, L_QTDDIAS_DEV_ALT);
L_VALOR_CARGO := 0;
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE_SERVIDOR
, L_NIVEL_SERVIDOR
, L_VALOR_CARGO
, L_VALOR_CARGO_2);
ELSE
USISTEMA.INF_CARGO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CARGO
, L_ID_CH_CARGO
, L_CDG_GRU_CARGO
, L_CLASSE_SERVIDOR
, L_NIVEL_SERVIDOR
, L_CDG_FUNCAOEXT
, L_VALOR_CARGO);
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE_SERVIDOR
, L_NIVEL_SERVIDOR
, L_VALOR_CARGO
, L_VALOR_CARGO_2);
END IF;
L_VLR_CORTE_CUMULACAO := L_VALOR_CARGO;
IF (I > K) THEN
VETOR_11287(I).VALOR := 0;
VETOR_11287(I).VALOR_MES := 0;
END IF;
K := I + 1;
END IF;
K := K + 1;
END LOOP;
IF (SQL%NOTFOUND) THEN
INSERT INTO USISTEMA.TB_CALCULO_SUBSTITUICAO
( CDG_ORGAO
, REF_ANOMES
, ID_AUX
, CDG_ORDEM
, CDG_FUNCIONAL
, CDG_PROVDESC
, DTA_INICIO_SUBST
, DTA_FIM_SUBST
, DTA_ANALISE
, VALOR
, VLR_REF_CARGO_MES
, VLR_REF_VENC_COMISS_MES
, VLR_REF_REPR_COMISS_MES
, VLR_REF_FUNC_MES
, VLR_DED_CARGO
, VLR_DED_VENC_COMISS
, VLR_DED_REPR_COMISS
, VLR_DED_FUNCAO
, VLR_DED_COMPLEMENTO
, OBSERVACAO)
VALUES
( P_CDG_ORGAO
, P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, 11287
, L_DTA_INICIO
, L_DTA_FIM
, L_DTA_SUBSTITUICAO
, VETOR_11284(I).VALOR
, L_VALOR / 60
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, L_OBSERVACAO);
END IF;
END IF;
END IF;
END IF;
----------------- SUBSTITUICAO DE FUNÇÃO
IF (L_TIP_SUBSTITUICAO = 1) THEN
VG.G_POSSUI_SUBS_FUNC_CARGOEXT := 1;
USISTEMA.VLR_FUNCAO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_FUNCAO
, L_ID_CH_FUNCAO
, L_CH_FUNCAO
, L_CDG_GRU_CARGO_FUNC
, L_CLASSE_FUNC
, L_NIVEL_FUNC
, L_CDG_CARREIRA_FUNC
, L_VLR_SUBSTITUICAO_FUNCAO);
K := 1;
IND_VET := VETOR_11281.COUNT;
IND_VET := IND_VET - 1;
END LOOP;
L_VLR_TOTAL_FUNCAO := 0;
L_VLR_LIMITE_FUNCAO := L_VLR_SUBSTITUICAO_FUNCAO;
VETOR_11281(I).VALOR := 0;
VETOR_11281(I).VALOR_MES := 0;
K := I + 1;
END IF;
IF (I > K) THEN
VETOR_11281(I).VALOR := 0;
VETOR_11281(I).VALOR_MES := 0;
END IF;
K := I + 1;
END IF;
K := K + 1;
END LOOP;
IF (SQL%NOTFOUND) THEN
INSERT INTO USISTEMA.TB_CALCULO_SUBSTITUICAO
( CDG_ORGAO
, REF_ANOMES
, ID_AUX
, CDG_ORDEM
, CDG_FUNCIONAL
, CDG_PROVDESC
, DTA_INICIO_SUBST
, DTA_FIM_SUBST
, DTA_ANALISE
, VALOR
, VLR_REF_CARGO_MES
, VLR_REF_VENC_COMISS_MES
, VLR_REF_REPR_COMISS_MES
, VLR_REF_FUNC_MES
, VLR_DED_CARGO
, VLR_DED_VENC_COMISS
, VLR_DED_REPR_COMISS
, VLR_DED_FUNCAO
, VLR_DED_COMPLEMENTO
, OBSERVACAO)
VALUES
( P_CDG_ORGAO
, P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, 11281
, L_DTA_INICIO
, L_DTA_FIM
, L_DTA_SUBSTITUICAO
, VETOR_11281(I).VALOR
, 0
, 0
, 0
, VETOR_11281(I).VALOR_MES / 30
, 0
, 0
, L_VLR_REPRESENTACAO_SERV_DIA
, L_VLR_FUNCAO_SERV_DIA
, 0
, L_OBSERVACAO);
END IF;
END IF;
END IF;
END IF;
IF (L_TIP_SUBSTITUICAO = 2) THEN
VG.G_POSSUI_SUBS_FUNC_CARGOEXT := 1;
L_VLR_CARGOEXT := 0;
L_VLR_REPRESENTACAO := 0;
L_VLR_VENCIMENTO := 0;
L_VLR_VENC_COMISSAO := 0;
L_VLR_VENC_COM_SUBST := 0;
L_VLR_FUNC_COM_SUBST := 0;
USISTEMA.INF_CARGO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_CARGOEXT
, L_ID_CARGO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_CDG_FUNCAOEXT
, L_VLR_CARGO);
L_VLR_CARGOEXT := 0;
USISTEMA.VLR_CLASSE ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_GRU_CARGO
, L_CLASSE
, L_NIVEL
, L_VLR_CARGOEXT
, L_VLR_REPRESENTACAO);
ELSE
USISTEMA.VLR_CARGO ( P_REF_ANOMES
, P_CDG_ORGAO
, L_CDG_CARGOEXT
, L_ID_CH_CARGO
, L_CH_CARGO
, L_VLR_CARGOEXT
, L_CDG_GRU_CARGO
, L_VLR_DEV_ALT
, L_QTDDIAS_DEV_ALT);
END IF;
UPDATE USISTEMA.TB_CALCULO_SUBSTITUICAO
SET DTA_INICIO_SUBST = L_DTA_INICIO
, DTA_FIM_SUBST = L_DTA_FIM
, VALOR = L_VALOR_DIA
, VLR_REF_CARGO_MES = 0
, VLR_REF_VENC_COMISS_MES = L_VLR_CHEIO_VENCIMENTO / 30
, VLR_REF_REPR_COMISS_MES = L_VLR_CHEIO_REPRESENTACAO / 30
, VLR_REF_FUNC_MES = 0
, VLR_DED_CARGO = L_VLR_CARGO_SERV_DIA
, VLR_DED_VENC_COMISS = L_VLR_CARGOEXT_SERV_DIA
, VLR_DED_REPR_COMISS = L_VLR_REPRESENTACAO_SERV_DIA
, VLR_DED_FUNCAO = L_VLR_FUNCAO_SERV_DIA
, VLR_DED_COMPLEMENTO = L_VLR_COMPLEMENTO_SERV_DIA
, OBSERVACAO = L_OBSERVACAO
WHERE REF_ANOMES = P_REF_ANOMES
AND CDG_ORGAO = P_CDG_ORGAO
AND ID_AUX = P_ID_AUX
AND CDG_ORDEM = P_CDG_ORDEM
AND CDG_FUNCIONAL = P_CDG_FUNCIONAL
AND CDG_PROVDESC = 11281
AND DTA_ANALISE = L_DTA_SUBSTITUICAO;
IF (SQL%NOTFOUND) THEN
INSERT INTO USISTEMA.TB_CALCULO_SUBSTITUICAO
( CDG_ORGAO
, REF_ANOMES
, ID_AUX
, CDG_ORDEM
, CDG_FUNCIONAL
, CDG_PROVDESC
, DTA_INICIO_SUBST
, DTA_FIM_SUBST
, DTA_ANALISE
, VALOR
, VLR_REF_CARGO_MES
, VLR_REF_VENC_COMISS_MES
, VLR_REF_REPR_COMISS_MES
, VLR_REF_FUNC_MES
, VLR_DED_CARGO
, VLR_DED_VENC_COMISS
, VLR_DED_REPR_COMISS
, VLR_DED_FUNCAO
, VLR_DED_COMPLEMENTO
, OBSERVACAO)
VALUES
( P_CDG_ORGAO
, P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, 11281
, L_DTA_INICIO
, L_DTA_FIM
, L_DTA_SUBSTITUICAO
, VETOR_11281(I).VALOR
, 0
, TRUNC(L_VLR_CHEIO_VENCIMENTO / 30, 2)
, TRUNC(L_VLR_CHEIO_REPRESENTACAO / 30, 2)
, 0
, L_VLR_CARGO_SERV_DIA
, 0
, L_VLR_REPRESENTACAO_SERV_DIA
, L_VLR_FUNCAO_SERV_DIA
, L_VLR_COMPLEMENTO_SERV_DIA
, L_OBSERVACAO);
END IF;
END IF;
END IF; -- FIM DO TESTE SE EXISTE SUBST POR CARGO EXTRA
END LOOP;
CLOSE CURSOR_SUBSTITUICAO;
L_DTA_SUBSTITUICAO := L_DTA_SUBSTITUICAO + 1;
I := I + 1;
END LOOP;
CLOSE CURSOR_DIAS_MES_SUBST;
I := 1;
J := 0;
VG.G_VALOR := 0;
VG.G_QUANTIDADE := 0;
VG.G_OBSERVACAO := '';
I := I + 1;
END LOOP;
else
WHILE (I <= VETOR_11280.COUNT) LOOP
IF ((J < 30) AND (VETOR_11280(I).VALOR > 0)) THEN
VG.G_VALOR := VG.G_VALOR + VETOR_11280(I).VALOR;
J := J + 1;
END IF;
I := I + 1;
END LOOP;
END IF;
IF (VG.G_VALOR > 0) THEN
VG.G_FORMULA := 999;
VG.G_PRAZO_INI := 1;
VG.G_PRAZO_FIM := 1;
VG.G_OPERACAO := 4;
VG.G_CALCULADO := 1;
VG.G_CDG_PROVDESC := 11280;
VG.G_QUANTIDADE := J;
USISTEMA.GRAVA_FINANCEIROCOMP ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, VG.G_CDG_PROVDESC
, VG.G_FORMULA
, VG.G_PRAZO_INI
, VG.G_PRAZO_FIM
, VG.G_QUANTIDADE
, VG.G_VALOR
, VG.G_OPERACAO
, P_ODM_ATUALIZACAO
, VG.G_CALCULADO
, VG.G_OBSERVACAO);
END IF;
I := 1;
J := 0;
VG.G_VALOR := 0;
VG.G_QUANTIDADE := 0;
VG.G_OBSERVACAO := '';
I := I + 1;
END LOOP;
else
WHILE (I <= VETOR_11281.COUNT) LOOP
IF ((J < 30) AND (VETOR_11281(I).VALOR > 0)) THEN
VG.G_VALOR := VG.G_VALOR + VETOR_11281(I).VALOR;
J := J + 1;
END IF;
I := I + 1;
END LOOP;
END IF;
IF ((P_REF_ANOMES = 201802) AND (P_CDG_ORDEM = 17019)) THEN
VG.G_VALOR := 5492.94;
END IF;
USISTEMA.GRAVA_FINANCEIROCOMP ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, VG.G_CDG_PROVDESC
, VG.G_FORMULA
, VG.G_PRAZO_INI
, VG.G_PRAZO_FIM
, VG.G_QUANTIDADE
, VG.G_VALOR
, VG.G_OPERACAO
, P_ODM_ATUALIZACAO
, VG.G_CALCULADO
, VG.G_OBSERVACAO);
END IF;
I := 1;
VG.G_VALOR := 0;
VG.G_QUANTIDADE := 0;
VG.G_OBSERVACAO := '';
TOT_VETOR_11284 := 0;
USISTEMA.GRAVA_FINANCEIROCOMP ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, VG.G_CDG_PROVDESC
, VG.G_FORMULA
, VG.G_PRAZO_INI
, VG.G_PRAZO_FIM
, VG.G_QUANTIDADE
, VG.G_VALOR
, VG.G_OPERACAO
, P_ODM_ATUALIZACAO
, VG.G_CALCULADO
, VG.G_OBSERVACAO);
END IF;
VG.G_VALOR := 0;
VG.G_QUANTIDADE := 0;
END IF;
USISTEMA.GRAVA_FINANCEIROCOMP ( P_REF_ANOMES
, P_ID_AUX
, P_CDG_ORGAO
, P_CDG_ORDEM
, P_CDG_FUNCIONAL
, VG.G_CDG_PROVDESC
, VG.G_FORMULA
, VG.G_PRAZO_INI
, VG.G_PRAZO_FIM
, VG.G_QUANTIDADE
, VG.G_VALOR
, VG.G_OPERACAO
, P_ODM_ATUALIZACAO
, VG.G_CALCULADO
, VG.G_OBSERVACAO);
END IF;
END IF;
RETURN;
END;