Merge branch 'main' of https://git.davinti.com.br/davinTI/app-dono-modulos
davinTI/app-dono-modulos/pipeline/head This commit looks good

This commit is contained in:
2026-05-07 15:03:39 -03:00
9 changed files with 56 additions and 25 deletions
@@ -21,3 +21,4 @@ BEGIN
END IF; END IF;
END; END;
-- +goose StatementEnd -- +goose StatementEnd
@@ -109,3 +109,4 @@ BEGIN
END IF; END IF;
END; END;
-- +goose StatementEnd -- +goose StatementEnd
@@ -21,3 +21,4 @@ BEGIN
END IF; END IF;
END; END;
-- +goose StatementEnd -- +goose StatementEnd
@@ -87,3 +87,4 @@ BEGIN
END IF; END IF;
END; END;
-- +goose StatementEnd -- +goose StatementEnd
@@ -10,7 +10,9 @@ BEGIN
INSERT INTO TB_FLASH_NODO_RESUMO_CONTRIBUICAO ( INSERT INTO TB_FLASH_NODO_RESUMO_CONTRIBUICAO (
id_resumo, id_nodo, data_referencia, ano_referencia, mes_referencia, dia_referencia, 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, percentual_meta_propria, percentual_meta_filhos, percentual_meta_efetiva,
desvio, percentual_atingimento, data_apuracao desvio, percentual_atingimento, data_apuracao
) )
@@ -22,7 +24,10 @@ BEGIN
contribuicao_direta AS ( contribuicao_direta AS (
SELECT f.id_nodo, TRUNC(f.data_referencia) AS data_referencia, SELECT f.id_nodo, TRUNC(f.data_referencia) AS data_referencia,
f.ano_referencia, f.mes_referencia, f.dia_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 FROM TB_FLASH_FATO_CONTRIBUICAO f
WHERE f.data_referencia BETWEEN p_data_inicial AND p_data_final 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 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(YEAR FROM d.data_referencia) AS ano_referencia,
EXTRACT(MONTH FROM d.data_referencia) AS mes_referencia, EXTRACT(MONTH FROM d.data_referencia) AS mes_referencia,
EXTRACT(DAY FROM d.data_referencia) AS dia_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 ( FROM (
SELECT CONNECT_BY_ROOT n.id_nodo AS id_nodo_ancestral, SELECT CONNECT_BY_ROOT n.id_nodo AS id_nodo_ancestral,
n.id_nodo AS id_nodo_descendente n.id_nodo AS id_nodo_descendente
@@ -72,17 +80,21 @@ BEGIN
) )
SELECT SEQ_TB_FLASH_NODO_RESUMO_CONTRIBUICAO.NEXTVAL, SELECT SEQ_TB_FLASH_NODO_RESUMO_CONTRIBUICAO.NEXTVAL,
b.id_nodo, b.data_referencia, b.ano_referencia, b.mes_referencia, b.dia_referencia, 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, mpd.valor_meta_propria,
mfd.valor_meta_filhos, mfd.valor_meta_filhos,
CASE WHEN mpd.valor_meta_propria IS NOT NULL THEN mpd.valor_meta_propria ELSE mfd.valor_meta_filhos END, CASE WHEN mpd.valor_meta_propria IS NOT NULL THEN mpd.valor_meta_propria ELSE mfd.valor_meta_filhos END,
mpd.percentual_meta_propria, mpd.percentual_meta_propria,
CAST(NULL AS NUMBER(10,4)), CAST(NULL AS NUMBER(10,4)),
CASE WHEN mpd.percentual_meta_propria IS NOT NULL THEN mpd.percentual_meta_propria ELSE NULL END, 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 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 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, END,
SYSDATE SYSDATE
FROM base b FROM base b
@@ -79,3 +79,4 @@ BEGIN
END IF; END IF;
END; END;
-- +goose StatementEnd -- +goose StatementEnd
@@ -85,8 +85,11 @@ BEGIN
FOR r IN ( FOR r IN (
SELECT Z.DTA, SELECT Z.DTA,
Z.NROEMPRESA, Z.NROEMPRESA,
Z.NOMEEMPRESA,
Z.NROSEGMENTO, Z.NROSEGMENTO,
Z.NRODIVISAO,
Z.SEQPRODUTO, Z.SEQPRODUTO,
Z.SEQPRODUTOBASE,
Z.PRODUTO, Z.PRODUTO,
Z.SEQCATEGORIAN1, Z.SEQCATEGORIAN1,
Z.CATEGORIAN1, Z.CATEGORIAN1,
@@ -121,11 +124,15 @@ BEGIN
Z.VLRCONTRIB_MES_ANT, Z.VLRCONTRIB_MES_ANT,
Z.VLRVENDA_ANO_ANT, Z.VLRVENDA_ANO_ANT,
Z.VLRCONTRIB_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')*/ FROM (SELECT /*+OPTIMIZER_FEATURES_ENABLE('10.2.0.4')*/
TO_DATE( Y.DTAENTRADASAIDA, 'DD/MM/RRRR' ) DTA, TO_DATE( Y.DTAENTRADASAIDA, 'DD/MM/RRRR' ) DTA,
V.NROEMPRESA, V.NROEMPRESA,
E.NOMEFANTASIA AS NOMEEMPRESA,
V.NROSEGMENTO, V.NROSEGMENTO,
V.NRODIVISAO,
V.SEQPRODUTO, V.SEQPRODUTO,
A.SEQPRODUTOBASE, A.SEQPRODUTOBASE,
A.DESCCOMPLETA PRODUTO, A.DESCCOMPLETA PRODUTO,
@@ -349,6 +356,7 @@ BEGIN
, CAST( 0.0000 AS NUMBER(20,4)) AS VLRCONTRIB_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 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 FROM MRL_CUSTODIA Y
JOIN MAXV_ABCDISTRIBBASE V ON Y.DTAENTRADASAIDA = V.DTAVDA JOIN MAXV_ABCDISTRIBBASE V ON Y.DTAENTRADASAIDA = V.DTAVDA
JOIN MAP_PRODUTO A ON A.SEQPRODUTO = V.SEQPRODUTO 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 ) 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 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 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' ) GROUP BY TO_DATE( Y.DTAENTRADASAIDA, 'DD/MM/RRRR' )
, V.NROEMPRESA , V.NROEMPRESA
, E.NOMEFANTASIA
, V.NRODIVISAO , V.NRODIVISAO
, V.NROSEGMENTO , V.NROSEGMENTO
, V.SEQPRODUTO , V.SEQPRODUTO
@@ -376,29 +385,29 @@ BEGIN
, CC1.CATEGORIA) Z , CC1.CATEGORIA) Z
) LOOP ) 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 IF r.SEQCATEGORIAN1 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); 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; ELSE v_id_cat1 := v_id_empresa; END IF;
IF r.codcatn2 IS NOT NULL THEN IF r.SEQCATEGORIAN2 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); 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; ELSE v_id_cat2 := v_id_cat1; END IF;
IF r.codcatn3 IS NOT NULL THEN IF r.SEQCATEGORIAN3 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); 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; ELSE v_id_cat3 := v_id_cat2; END IF;
IF r.codcatn4 IS NOT NULL THEN IF r.SEQCATEGORIAN4 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); 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; ELSE v_id_cat4 := v_id_cat3; END IF;
IF r.codcatn5 IS NOT NULL THEN IF r.SEQCATEGORIAN5 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); 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; 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 ( INSERT INTO TB_FLASH_FATO_CONTRIBUICAO (
id_fato, data_referencia, ano_referencia, mes_referencia, dia_referencia, dia_semana, 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 vlr_contribuicao, vl_ticket_medio, propqtdprodutobase, data_cadastro
) VALUES ( ) VALUES (
SEQ_TB_FLASH_FATO_CONTRIBUICAO.NEXTVAL, SEQ_TB_FLASH_FATO_CONTRIBUICAO.NEXTVAL,
r.data_referencia, r.ano, r.mes, r.dia, r.dia_semana, r.DTA, EXTRACT(YEAR FROM r.DTA), EXTRACT(MONTH FROM r.DTA), EXTRACT(DAY FROM r.DTA),
v_id_produto, v_id_empresa, r.empresa, r.nomeempresa, r.cod_produto, r.descricao, TO_NUMBER(TO_CHAR(r.DTA, 'D')),
r.seqprodutobase, r.nrodivisao, r.nrosegmento, r.nro_tickets, r.vlr_imp_contribuicao, v_id_produto, v_id_empresa, r.NROEMPRESA, r.NOMEEMPRESA, r.SEQPRODUTO, r.PRODUTO,
r.qtde_contribuicao, r.vlr_contribuicao, r.vl_ticket_medio, r.propqtdprodutobase, SYSDATE 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; END LOOP;
@@ -71,3 +71,4 @@ BEGIN
END IF; END IF;
END; END;
-- +goose StatementEnd -- +goose StatementEnd
@@ -31,3 +31,4 @@ BEGIN
END IF; END IF;
END; END;
-- +goose StatementEnd -- +goose StatementEnd