From 8fea2da1c9716f9acca7ad70ac71f5bfc2494823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonath=C3=A3=20Correa?= Date: Thu, 7 May 2026 15:01:29 -0300 Subject: [PATCH] =?UTF-8?q?Fix:=20ajuste=20nas=20procedures=20de=20contrib?= =?UTF-8?q?ui=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7000001_seq_tb_flash_fato_contribuicao.sql | 1 + ...60507000002_tb_flash_fato_contribuicao.sql | 1 + ..._seq_tb_flash_nodo_resumo_contribuicao.sql | 1 + ...0010_tb_flash_nodo_resumo_contribuicao.sql | 1 + ...11_prc_flash_carga_resumo_contribuicao.sql | 24 ++++++--- ...2_prc_flash_atualiza_contribuicao_dono.sql | 1 + ...013_prc_flash_carga_dados_contribuicao.sql | 50 ++++++++++++------- ...7000014_tb_flash_meta_contribuicao_stg.sql | 1 + ...7000015_vw_flash_meta_contribuicao_stg.sql | 1 + 9 files changed, 56 insertions(+), 25 deletions(-) diff --git a/migrations/20260507000001_seq_tb_flash_fato_contribuicao.sql b/migrations/20260507000001_seq_tb_flash_fato_contribuicao.sql index 169f621..96e423d 100644 --- a/migrations/20260507000001_seq_tb_flash_fato_contribuicao.sql +++ b/migrations/20260507000001_seq_tb_flash_fato_contribuicao.sql @@ -21,3 +21,4 @@ BEGIN END IF; END; -- +goose StatementEnd + \ No newline at end of file diff --git a/migrations/20260507000002_tb_flash_fato_contribuicao.sql b/migrations/20260507000002_tb_flash_fato_contribuicao.sql index fc35414..07062f1 100644 --- a/migrations/20260507000002_tb_flash_fato_contribuicao.sql +++ b/migrations/20260507000002_tb_flash_fato_contribuicao.sql @@ -109,3 +109,4 @@ BEGIN END IF; END; -- +goose StatementEnd + \ No newline at end of file diff --git a/migrations/20260507000009_seq_tb_flash_nodo_resumo_contribuicao.sql b/migrations/20260507000009_seq_tb_flash_nodo_resumo_contribuicao.sql index 426e103..064b5cf 100644 --- a/migrations/20260507000009_seq_tb_flash_nodo_resumo_contribuicao.sql +++ b/migrations/20260507000009_seq_tb_flash_nodo_resumo_contribuicao.sql @@ -21,3 +21,4 @@ BEGIN END IF; END; -- +goose StatementEnd + \ No newline at end of file diff --git a/migrations/20260507000010_tb_flash_nodo_resumo_contribuicao.sql b/migrations/20260507000010_tb_flash_nodo_resumo_contribuicao.sql index e841102..7b8d179 100644 --- a/migrations/20260507000010_tb_flash_nodo_resumo_contribuicao.sql +++ b/migrations/20260507000010_tb_flash_nodo_resumo_contribuicao.sql @@ -87,3 +87,4 @@ BEGIN END IF; END; -- +goose StatementEnd + \ No newline at end of file diff --git a/migrations/20260507000011_prc_flash_carga_resumo_contribuicao.sql b/migrations/20260507000011_prc_flash_carga_resumo_contribuicao.sql index d83796d..9c854d9 100644 --- a/migrations/20260507000011_prc_flash_carga_resumo_contribuicao.sql +++ b/migrations/20260507000011_prc_flash_carga_resumo_contribuicao.sql @@ -10,7 +10,9 @@ BEGIN INSERT INTO TB_FLASH_NODO_RESUMO_CONTRIBUICAO ( id_resumo, id_nodo, data_referencia, ano_referencia, mes_referencia, dia_referencia, - valor_contribuicao, valor_meta_propria, valor_meta_filhos, valor_meta_efetiva, + nro_tickets, vlr_imp_contribuicao, qtde_contribuicao, + vlr_contribuicao, vl_ticket_medio, + valor_meta_propria, valor_meta_filhos, valor_meta_efetiva, percentual_meta_propria, percentual_meta_filhos, percentual_meta_efetiva, desvio, percentual_atingimento, data_apuracao ) @@ -22,7 +24,10 @@ BEGIN contribuicao_direta AS ( SELECT f.id_nodo, TRUNC(f.data_referencia) AS data_referencia, f.ano_referencia, f.mes_referencia, f.dia_referencia, - SUM(f.vlr_contribuicao) AS valor_contribuicao + SUM(f.nro_tickets) AS nro_tickets, + SUM(f.vlr_imp_contribuicao) AS vlr_imp_contribuicao, + SUM(f.qtde_contribuicao) AS qtde_contribuicao, + SUM(f.vlr_contribuicao) AS vlr_contribuicao FROM TB_FLASH_FATO_CONTRIBUICAO f WHERE f.data_referencia BETWEEN p_data_inicial AND p_data_final GROUP BY f.id_nodo, TRUNC(f.data_referencia), f.ano_referencia, f.mes_referencia, f.dia_referencia @@ -33,7 +38,10 @@ BEGIN EXTRACT(YEAR FROM d.data_referencia) AS ano_referencia, EXTRACT(MONTH FROM d.data_referencia) AS mes_referencia, EXTRACT(DAY FROM d.data_referencia) AS dia_referencia, - SUM(NVL(cd.valor_contribuicao, 0)) AS valor_contribuicao + SUM(NVL(cd.nro_tickets, 0)) AS nro_tickets, + SUM(NVL(cd.vlr_imp_contribuicao, 0)) AS vlr_imp_contribuicao, + SUM(NVL(cd.qtde_contribuicao, 0)) AS qtde_contribuicao, + SUM(NVL(cd.vlr_contribuicao, 0)) AS vlr_contribuicao FROM ( SELECT CONNECT_BY_ROOT n.id_nodo AS id_nodo_ancestral, n.id_nodo AS id_nodo_descendente @@ -72,17 +80,21 @@ BEGIN ) SELECT SEQ_TB_FLASH_NODO_RESUMO_CONTRIBUICAO.NEXTVAL, b.id_nodo, b.data_referencia, b.ano_referencia, b.mes_referencia, b.dia_referencia, - ch.valor_contribuicao, + ch.nro_tickets, + ch.vlr_imp_contribuicao, + ch.qtde_contribuicao, + ch.vlr_contribuicao, + CASE WHEN NVL(ch.nro_tickets, 0) > 0 THEN ch.vlr_contribuicao / ch.nro_tickets ELSE NULL END, mpd.valor_meta_propria, mfd.valor_meta_filhos, CASE WHEN mpd.valor_meta_propria IS NOT NULL THEN mpd.valor_meta_propria ELSE mfd.valor_meta_filhos END, mpd.percentual_meta_propria, CAST(NULL AS NUMBER(10,4)), CASE WHEN mpd.percentual_meta_propria IS NOT NULL THEN mpd.percentual_meta_propria ELSE NULL END, - NVL(ch.valor_contribuicao, 0) - NVL(CASE WHEN mpd.valor_meta_propria IS NOT NULL THEN mpd.valor_meta_propria ELSE mfd.valor_meta_filhos END, 0), + NVL(ch.vlr_contribuicao, 0) - NVL(CASE WHEN mpd.valor_meta_propria IS NOT NULL THEN mpd.valor_meta_propria ELSE mfd.valor_meta_filhos END, 0), CASE WHEN NVL(CASE WHEN mpd.valor_meta_propria IS NOT NULL THEN mpd.valor_meta_propria ELSE mfd.valor_meta_filhos END, 0) = 0 THEN NULL - ELSE (NVL(ch.valor_contribuicao, 0) / CASE WHEN mpd.valor_meta_propria IS NOT NULL THEN mpd.valor_meta_propria ELSE mfd.valor_meta_filhos END) * 100 + ELSE (NVL(ch.vlr_contribuicao, 0) / CASE WHEN mpd.valor_meta_propria IS NOT NULL THEN mpd.valor_meta_propria ELSE mfd.valor_meta_filhos END) * 100 END, SYSDATE FROM base b diff --git a/migrations/20260507000012_prc_flash_atualiza_contribuicao_dono.sql b/migrations/20260507000012_prc_flash_atualiza_contribuicao_dono.sql index c0b6b73..8c12ae7 100644 --- a/migrations/20260507000012_prc_flash_atualiza_contribuicao_dono.sql +++ b/migrations/20260507000012_prc_flash_atualiza_contribuicao_dono.sql @@ -79,3 +79,4 @@ BEGIN END IF; END; -- +goose StatementEnd + \ No newline at end of file diff --git a/migrations/20260507000013_prc_flash_carga_dados_contribuicao.sql b/migrations/20260507000013_prc_flash_carga_dados_contribuicao.sql index a0317f6..2c009ac 100644 --- a/migrations/20260507000013_prc_flash_carga_dados_contribuicao.sql +++ b/migrations/20260507000013_prc_flash_carga_dados_contribuicao.sql @@ -85,8 +85,11 @@ BEGIN FOR r IN ( SELECT Z.DTA, Z.NROEMPRESA, + Z.NOMEEMPRESA, Z.NROSEGMENTO, + Z.NRODIVISAO, Z.SEQPRODUTO, + Z.SEQPRODUTOBASE, Z.PRODUTO, Z.SEQCATEGORIAN1, Z.CATEGORIAN1, @@ -121,11 +124,15 @@ BEGIN Z.VLRCONTRIB_MES_ANT, Z.VLRVENDA_ANO_ANT, Z.VLRCONTRIB_ANO_ANT, - Z.QTDE_VENDA + Z.QTDE_VENDA, + Z.VLR_IMP_VENDA, + Z.PROPQTDPRODUTOBASE FROM (SELECT /*+OPTIMIZER_FEATURES_ENABLE('10.2.0.4')*/ TO_DATE( Y.DTAENTRADASAIDA, 'DD/MM/RRRR' ) DTA, V.NROEMPRESA, + E.NOMEFANTASIA AS NOMEEMPRESA, V.NROSEGMENTO, + V.NRODIVISAO, V.SEQPRODUTO, A.SEQPRODUTOBASE, A.DESCCOMPLETA PRODUTO, @@ -348,7 +355,8 @@ BEGIN , CAST( 0.0000 AS NUMBER(20,4)) AS VLRVENDA_MES_ANT , CAST( 0.0000 AS NUMBER(20,4)) AS VLRCONTRIB_MES_ANT , CAST( 0.0000 AS NUMBER(20,4)) AS VLRVENDA_ANO_ANT - , CAST( 0.0000 AS NUMBER(20,4)) AS VLRCONTRIB_ANO_ANT + , CAST( 0.0000 AS NUMBER(20,4)) AS VLRCONTRIB_ANO_ANT + , MAX(A.PROPQTDPRODUTOBASE) AS PROPQTDPRODUTOBASE FROM MRL_CUSTODIA Y JOIN MAXV_ABCDISTRIBBASE V ON Y.DTAENTRADASAIDA = V.DTAVDA JOIN MAP_PRODUTO A ON A.SEQPRODUTO = V.SEQPRODUTO @@ -363,9 +371,10 @@ BEGIN WHERE V.NROEMPRESA IN ( SELECT E.EMPRESA_ID FROM EMPRESA_PARAMETROS E WHERE E.PARTICIPA_FLASH = 1 ) AND V.NROSEGMENTO IN ( SELECT A.NROSEGMENTO FROM CONSINCO.MAD_SEGMENTO A WHERE A.STATUS = 'A' ) AND DECODE(V.TIPTABELA, 'S', V.CGOACMCOMPRAVENDA, V.ACMCOMPRAVENDA) IN ( 'S','I' ) - AND V.DTAVDA BETWEEN ParDataInicial AND ParDataFinal + AND V.DTAVDA BETWEEN p_data_inicial AND p_data_final GROUP BY TO_DATE( Y.DTAENTRADASAIDA, 'DD/MM/RRRR' ) , V.NROEMPRESA + , E.NOMEFANTASIA , V.NRODIVISAO , V.NROSEGMENTO , V.SEQPRODUTO @@ -376,29 +385,29 @@ BEGIN , CC1.CATEGORIA) Z ) LOOP - v_id_empresa := FN_GET_OR_CREATE_NODO(NULL, 'EMPRESA', TO_CHAR(r.empresa), r.nomeempresa, 1, r.empresa); + v_id_empresa := FN_GET_OR_CREATE_NODO(NULL, 'EMPRESA', TO_CHAR(r.NROEMPRESA), r.NOMEEMPRESA, 1, r.NROEMPRESA); - IF r.codcatn1 IS NOT NULL THEN - v_id_cat1 := FN_GET_OR_CREATE_NODO(v_id_empresa, 'CATEGORIA', TO_CHAR(r.codcatn1), r.nomecatn1, 2, r.empresa); + IF r.SEQCATEGORIAN1 IS NOT NULL THEN + v_id_cat1 := FN_GET_OR_CREATE_NODO(v_id_empresa, 'CATEGORIA', TO_CHAR(r.SEQCATEGORIAN1), r.CATEGORIAN1, 2, r.NROEMPRESA); ELSE v_id_cat1 := v_id_empresa; END IF; - IF r.codcatn2 IS NOT NULL THEN - v_id_cat2 := FN_GET_OR_CREATE_NODO(v_id_cat1, 'CATEGORIA', TO_CHAR(r.codcatn2), r.nomecatn2, 3, r.empresa); + IF r.SEQCATEGORIAN2 IS NOT NULL THEN + v_id_cat2 := FN_GET_OR_CREATE_NODO(v_id_cat1, 'CATEGORIA', TO_CHAR(r.SEQCATEGORIAN2), r.CATEGORIAN2, 3, r.NROEMPRESA); ELSE v_id_cat2 := v_id_cat1; END IF; - IF r.codcatn3 IS NOT NULL THEN - v_id_cat3 := FN_GET_OR_CREATE_NODO(v_id_cat2, 'CATEGORIA', TO_CHAR(r.codcatn3), r.nomecatn3, 4, r.empresa); + IF r.SEQCATEGORIAN3 IS NOT NULL THEN + v_id_cat3 := FN_GET_OR_CREATE_NODO(v_id_cat2, 'CATEGORIA', TO_CHAR(r.SEQCATEGORIAN3), r.CATEGORIAN3, 4, r.NROEMPRESA); ELSE v_id_cat3 := v_id_cat2; END IF; - IF r.codcatn4 IS NOT NULL THEN - v_id_cat4 := FN_GET_OR_CREATE_NODO(v_id_cat3, 'CATEGORIA', TO_CHAR(r.codcatn4), r.nomecatn4, 5, r.empresa); + IF r.SEQCATEGORIAN4 IS NOT NULL THEN + v_id_cat4 := FN_GET_OR_CREATE_NODO(v_id_cat3, 'CATEGORIA', TO_CHAR(r.SEQCATEGORIAN4), r.CATEGORIAN4, 5, r.NROEMPRESA); ELSE v_id_cat4 := v_id_cat3; END IF; - IF r.codcatn5 IS NOT NULL THEN - v_id_cat5 := FN_GET_OR_CREATE_NODO(v_id_cat4, 'CATEGORIA', TO_CHAR(r.codcatn5), r.nomecatn5, 6, r.empresa); + IF r.SEQCATEGORIAN5 IS NOT NULL THEN + v_id_cat5 := FN_GET_OR_CREATE_NODO(v_id_cat4, 'CATEGORIA', TO_CHAR(r.SEQCATEGORIAN5), r.CATEGORIAN5, 6, r.NROEMPRESA); ELSE v_id_cat5 := v_id_cat4; END IF; - v_id_produto := FN_GET_OR_CREATE_NODO(v_id_cat5, 'PRODUTO', TO_CHAR(r.cod_produto), r.descricao, 7, r.empresa, r.cod_produto, r.seqprodutobase); + v_id_produto := FN_GET_OR_CREATE_NODO(v_id_cat5, 'PRODUTO', TO_CHAR(r.SEQPRODUTO), r.PRODUTO, 7, r.NROEMPRESA, r.SEQPRODUTO, r.SEQPRODUTOBASE); INSERT INTO TB_FLASH_FATO_CONTRIBUICAO ( id_fato, data_referencia, ano_referencia, mes_referencia, dia_referencia, dia_semana, @@ -407,10 +416,13 @@ BEGIN vlr_contribuicao, vl_ticket_medio, propqtdprodutobase, data_cadastro ) VALUES ( SEQ_TB_FLASH_FATO_CONTRIBUICAO.NEXTVAL, - r.data_referencia, r.ano, r.mes, r.dia, r.dia_semana, - v_id_produto, v_id_empresa, r.empresa, r.nomeempresa, r.cod_produto, r.descricao, - r.seqprodutobase, r.nrodivisao, r.nrosegmento, r.nro_tickets, r.vlr_imp_contribuicao, - r.qtde_contribuicao, r.vlr_contribuicao, r.vl_ticket_medio, r.propqtdprodutobase, SYSDATE + r.DTA, EXTRACT(YEAR FROM r.DTA), EXTRACT(MONTH FROM r.DTA), EXTRACT(DAY FROM r.DTA), + TO_NUMBER(TO_CHAR(r.DTA, 'D')), + v_id_produto, v_id_empresa, r.NROEMPRESA, r.NOMEEMPRESA, r.SEQPRODUTO, r.PRODUTO, + r.SEQPRODUTOBASE, r.NRODIVISAO, r.NROSEGMENTO, r.QTDE_VENDA, r.VLR_IMP_VENDA, + r.QTDE_VENDA, r.VLRCONTRIB, + CASE WHEN r.QTDE_VENDA > 0 THEN r.VLRVENDA / r.QTDE_VENDA ELSE NULL END, + r.PROPQTDPRODUTOBASE, SYSDATE ); END LOOP; diff --git a/migrations/20260507000014_tb_flash_meta_contribuicao_stg.sql b/migrations/20260507000014_tb_flash_meta_contribuicao_stg.sql index 7ec7401..24e4b1f 100644 --- a/migrations/20260507000014_tb_flash_meta_contribuicao_stg.sql +++ b/migrations/20260507000014_tb_flash_meta_contribuicao_stg.sql @@ -71,3 +71,4 @@ BEGIN END IF; END; -- +goose StatementEnd + \ No newline at end of file diff --git a/migrations/20260507000015_vw_flash_meta_contribuicao_stg.sql b/migrations/20260507000015_vw_flash_meta_contribuicao_stg.sql index 76d9027..4d68566 100644 --- a/migrations/20260507000015_vw_flash_meta_contribuicao_stg.sql +++ b/migrations/20260507000015_vw_flash_meta_contribuicao_stg.sql @@ -31,3 +31,4 @@ BEGIN END IF; END; -- +goose StatementEnd + \ No newline at end of file