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;