Projeto

Geral

Perfil

Suporte #90 » SCRIPT CREATE PROC E JOB COMPETENCIAS.sql

Sonia Gomides, 24/07/2025 20:29 h

 
CREATE OR REPLACE PROCEDURE AGH.FECHAR_ABRIR_FAT_COMPETENCIA (p_modulo IN VARCHAR2, p_openOrClose IN NUMBER)
IS
BEGIN
IF p_openOrClose = 0 THEN
INSERT INTO agh.FAT_COMPETENCIAS(modulo, mes, ano, dt_hr_inicio, ind_faturado, dt_hr_fim, criado_por, alterado_por, criado_em, alterado_em, ind_situacao, dthr_liberado_co, dthr_liberado_emerg, dthr_encerra_estatistica, VERSION, versao_sisaih)
VALUES(UPPER(p_modulo), -- MODULO
TRUNC(TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'MM')), -- MES
TRUNC(TO_CHAR(SYSDATE, 'YYYY')), -- ANO
TRUNC(ADD_MONTHS(SYSDATE, 1), 'MM'), -- DT_HR_INICIO
'N', -- IND_FATURADO
NULL, -- DT_HR_FIM
'AGHU', -- CRIADO_POR
'AGHU', -- ALTERADO_POR
SYSDATE, -- CRIADO_EM
NULL, 'A', NULL, NULL, NULL, 0, NULL);
ELSIF p_openOrClose = 1 THEN
UPDATE agh.FAT_COMPETENCIAS
SET ind_faturado='S',
dt_hr_fim=TRUNC(LAST_DAY(SYSDATE)),
ind_situacao='P',
alterado_em=SYSDATE
WHERE modulo=UPPER(p_modulo)
AND ind_situacao='A'
AND mes=TRUNC(TO_CHAR(SYSDATE, 'MM'))
AND ano=TRUNC(TO_CHAR(SYSDATE, 'YYYY'));
END IF;
COMMIT;
END FECHAR_ABRIR_FAT_COMPETENCIA;

COMMIT;

CREATE OR REPLACE PROCEDURE AGH.UPDATE_FAT_COMPETENCIA IS
BEGIN
AGH.FECHAR_ABRIR_FAT_COMPETENCIA('AMB', 1); -- FECHA COMPETENCIA MES ANTERIOR
AGH.FECHAR_ABRIR_FAT_COMPETENCIA('AMB', 0); -- ABRE COMPETENCIA MES ATUAL
AGH.FECHAR_ABRIR_FAT_COMPETENCIA('INT', 1); -- FECHA COMPETENCIA MES ANTERIOR
AGH.FECHAR_ABRIR_FAT_COMPETENCIA('INT', 0); -- ABRE COMPETENCIA MES ATUAL
END UPDATE_FAT_COMPETENCIA;

COMMIT;

BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
JOB_NAME => 'JB_UPDATE_FAT_COMPETENCIA',
JOB_TYPE => 'STORED_PROCEDURE',
JOB_ACTION => 'AGH.UPDATE_FAT_COMPETENCIA',
START_DATE => TO_DATE(CONCAT(TO_CHAR(LAST_DAY(SYSDATE), 'DD/MM/YYYY'), ' 23:59:00'), 'DD/MM/YYYY HH24:MI:SS'),
REPEAT_INTERVAL => 'FREQ=MONTHLY; BYMONTHDAY=-1; BYHOUR=23; BYMINUTE=59;',
END_DATE => NULL,
ENABLED => TRUE,
COMMENTS => 'ENCERRA E CRIA UMA NOVA COMPETENCIA NA TABELA AGH.FAT_COMPETENCIAS.'
);
END;

COMMIT;
(2-2/5)