From 25ff6c14df13b2ae859b431ee109254480446b7a Mon Sep 17 00:00:00 2001 From: "lucas.favaro" Date: Mon, 25 May 2026 11:41:12 -0300 Subject: [PATCH] =?UTF-8?q?Atualiza=C3=A7=C3=A3o=20de=20procedure=20e=20ch?= =?UTF-8?q?ama=20de=20atualiza=C3=A7=C3=A3o=20de=20vendas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...22000006_prc_flash_atualiza_venda_dono.sql | 78 +++++++++++++++++++ src/flash/flash.module.ts | 7 +- 2 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 migrations/C5/20260522000006_prc_flash_atualiza_venda_dono.sql diff --git a/migrations/C5/20260522000006_prc_flash_atualiza_venda_dono.sql b/migrations/C5/20260522000006_prc_flash_atualiza_venda_dono.sql new file mode 100644 index 0000000..4108c62 --- /dev/null +++ b/migrations/C5/20260522000006_prc_flash_atualiza_venda_dono.sql @@ -0,0 +1,78 @@ +-- +goose Up +-- +goose StatementBegin +CREATE OR REPLACE PROCEDURE VITRUVIO.PRC_FLASH_ATUALIZA_VENDA_DONO ( + p_data_inicial IN DATE, + p_data_final IN DATE, + p_empresas IN VARCHAR2 DEFAULT NULL +) AS + v_inicio_execucao DATE := SYSDATE; +BEGIN + DBMS_OUTPUT.PUT_LINE('Iniciando PRC_FLASH_ATUALIZA_VENDA_DONO em ' || TO_CHAR(v_inicio_execucao, 'DD/MM/YYYY HH24:MI:SS')); + DBMS_OUTPUT.PUT_LINE('Período: ' || TO_CHAR(p_data_inicial, 'DD/MM/YYYY') || ' até ' || TO_CHAR(p_data_final, 'DD/MM/YYYY')); + + FOR r IN ( + SELECT codigo + FROM vitruvio.vi_lojas + WHERE (p_empresas IS NULL OR INSTR(',' || p_empresas || ',', ',' || TO_CHAR(codigo) || ',') > 0) + ORDER BY codigo + ) LOOP + BEGIN + DBMS_OUTPUT.PUT_LINE('Carregando venda da empresa: ' || r.codigo); + + PRC_FLASH_CARGA_DADOS_VENDA( + p_data_inicial => p_data_inicial, + p_data_final => p_data_final, + p_empresa => r.codigo + ); + + EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE( + 'Erro ao carregar empresa ' || r.codigo || ': ' || SQLERRM + ); + RAISE; + END; + END LOOP; + + DBMS_OUTPUT.PUT_LINE('Carregando stage de metas de venda...'); + + PRC_FLASH_CARGA_META_VENDA_STG( + p_data_inicial => p_data_inicial, + p_data_final => p_data_final + ); + + DBMS_OUTPUT.PUT_LINE('Carregando metas finais de venda...'); + + PRC_FLASH_CARGA_META_VENDA( + p_data_inicial => p_data_inicial, + p_data_final => p_data_final + ); + + DBMS_OUTPUT.PUT_LINE('Atualizando resumo de venda...'); + + PRC_FLASH_CARGA_RESUMO_VENDA( + p_data_inicial => p_data_inicial, + p_data_final => p_data_final + ); + + DBMS_OUTPUT.PUT_LINE('PRC_FLASH_ATUALIZA_VENDA_DONO finalizada em ' || TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS')); + DBMS_OUTPUT.PUT_LINE('Tempo em segundos: ' || ROUND((SYSDATE - v_inicio_execucao) * 86400, 2)); + +EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE('Erro geral na PRC_FLASH_ATUALIZA_VENDA_DONO: ' || SQLERRM); + RAISE; +END; +-- +goose StatementEnd + +-- +goose Down +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM all_objects WHERE object_name = 'PRC_FLASH_ATUALIZA_VENDA_DONO' AND object_type = 'PROCEDURE' AND owner = 'VITRUVIO'; + IF v_count > 0 THEN + EXECUTE IMMEDIATE 'DROP PROCEDURE VITRUVIO.PRC_FLASH_ATUALIZA_VENDA_DONO'; + END IF; +END; +-- +goose StatementEnd diff --git a/src/flash/flash.module.ts b/src/flash/flash.module.ts index ee5ab72..3a94e07 100644 --- a/src/flash/flash.module.ts +++ b/src/flash/flash.module.ts @@ -968,14 +968,13 @@ where 1 = 0`, C5: [ createSchedule({ name: "Procedure que atualiza os dados do flash", - params: [], - command: (params) => ({ + params: ["empresas"], + command: (args) => ({ sql: /*sql*/ `BEGIN PRC_FLASH_ATUALIZA_VENDA_DONO( p_data_inicial => TRUNC(SYSDATE) - 30, p_data_final => TRUNC(SYSDATE), - p_empresa_ini => 1, - p_empresa_fim => 300 + p_empresas => ${args.empresas} ); END;`, }),