From 2cd3b13bcc63910da057f9fcf6c12ccba46d8f12 Mon Sep 17 00:00:00 2001 From: "lucas.favaro" Date: Mon, 25 May 2026 10:40:58 -0300 Subject: [PATCH] =?UTF-8?q?Atualiza=C3=A7=C3=A3o=20da=20Procedure=20de=20c?= =?UTF-8?q?arga=20de=20dados=20da=20Contribui=C3=A7=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...004_prc_flash_carga_dados_contribuicao.sql | 456 +----------------- 1 file changed, 2 insertions(+), 454 deletions(-) diff --git a/migrations/C5/20260513000004_prc_flash_carga_dados_contribuicao.sql b/migrations/C5/20260513000004_prc_flash_carga_dados_contribuicao.sql index 4ac4e90..0270177 100644 --- a/migrations/C5/20260513000004_prc_flash_carga_dados_contribuicao.sql +++ b/migrations/C5/20260513000004_prc_flash_carga_dados_contribuicao.sql @@ -102,24 +102,7 @@ BEGIN Z.SEQCATEGORIAN5, Z.CATEGORIAN5, Z.VLRVENDA, - (CASE WHEN (Z.SEQCATEGORIAN2 = 15458 AND z.seqcategorian3 NOT IN (SELECT seqcategoria FROM TB_EXCECAO_CONTRIB_HORTI) AND TRUNC(SYSDATE) < TO_DATE('01/09/2022','DD/MM/YYYY')) - OR ( Z.SEQCATEGORIAN2 = 15458 AND z.seqcategorian3 NOT IN (SELECT seqcategoria FROM TB_EXCECAO_CONTRIB_HORTI) AND TRUNC(SYSDATE) > TO_DATE('01/01/2024','DD/MM/YYYY')) THEN - Z.VLRVENDA - (Z.QTDE_VENDA * (SELECT nvl(ROUND((CD.CMDIAVLRNF + CD.CMDIAIPI + CD.CMDIAICMSST + CD.CMDIADESPNF + CD.CMDIADESPFORANF - - CD.CMDIACREDICMS - CD.CMDIACREDICMSPRESUM - CD.CMDIACREDICMSANTECIP - CD.CMDIACREDPIS - CD.CMDIACREDCOFINS- CD.CMDIADCTOFORANF),4),0) - FROM consinco.MRL_CUSTODIA CD - WHERE CD.SEQPRODUTO = (CASE WHEN Z.SEQPRODUTOBASE IS NULL THEN Z.SEQPRODUTO ELSE Z.SEQPRODUTOBASE END) - AND CD.NROEMPRESA = 301 - AND CD.DTAENTRADASAIDA = ( - SELECT MAX(CD1.DTAENTRADASAIDA) - FROM consinco.MRL_CUSTODIA CD1 - WHERE CD1.SEQPRODUTO = CD.SEQPRODUTO - AND CD1.NROEMPRESA = 301 - AND CD1.DTAENTRADASAIDA <= Z.DTA - ) - )) - Z.VLR_IMP_VENDA - ELSE - Z.VLRCONTRIB - END) AS VLRCONTRIB, + Z.VLRCONTRIB, Z.VLRVENDA_MES_ANT, Z.VLRCONTRIB_MES_ANT, Z.VLRVENDA_ANO_ANT, @@ -368,8 +351,7 @@ BEGIN JOIN consinco.MAP_FAMDIVCATEG DC ON DC.NRODIVISAO = D.NRODIVISAO AND DC.STATUS = 'A' AND DC.SEQFAMILIA = D.SEQFAMILIA JOIN consinco.MAP_CATEGORIA CC1 ON CC1.SEQCATEGORIA = DC.SEQCATEGORIA AND CC1.STATUSCATEGOR in ('A', 'F') AND CC1.NIVELHIERARQUIA = 1 AND CC1.NRODIVISAO = DC.NRODIVISAO AND CC1.TIPCATEGORIA = 'M' LEFT JOIN consinco.MAP_PRODACRESCCUSTORELAC PR ON PR.SEQPRODUTO = V.SEQPRODUTO AND PR.DTAMOVIMENTACAO = V.DTAVDA - WHERE V.NROEMPRESA IN ( SELECT E.EMPRESA_ID FROM EMPRESA_PARAMETROS E WHERE E.PARTICIPA_FLASH = 1 ) - AND V.NROEMPRESA = p_empresa + WHERE V.NROEMPRESA = p_empresa 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 p_data_inicial AND p_data_final @@ -431,437 +413,3 @@ BEGIN COMMIT; END; -- +goose StatementEnd - --- +goose Down --- +goose StatementBegin -CREATE OR REPLACE PROCEDURE VITRUVIO.PRC_FLASH_CARGA_DADOS_CONTRIBUICAO ( - p_data_inicial IN DATE, - p_data_final IN DATE, - p_empresa IN NUMBER -) AS - v_id_empresa NUMBER; - v_id_cat1 NUMBER; - v_id_cat2 NUMBER; - v_id_cat3 NUMBER; - v_id_cat4 NUMBER; - v_id_cat5 NUMBER; - v_id_produto NUMBER; - v_contador NUMBER := 0; - - FUNCTION FN_GET_OR_CREATE_NODO ( - p_id_nodo_pai IN NUMBER, - p_tipo_nodo IN VARCHAR2, - p_codigo IN VARCHAR2, - p_nome IN VARCHAR2, - p_nivel IN NUMBER, - p_cod_empresa IN NUMBER DEFAULT NULL, - p_cod_produto IN NUMBER DEFAULT NULL, - p_seqprodutobase IN NUMBER DEFAULT NULL - ) RETURN NUMBER - IS - v_id_nodo NUMBER; - BEGIN - SELECT n.id_nodo - INTO v_id_nodo - FROM TB_FLASH_NODO n - WHERE ( - n.id_nodo_pai = p_id_nodo_pai - OR (n.id_nodo_pai IS NULL AND p_id_nodo_pai IS NULL) - ) - AND n.tipo_nodo = p_tipo_nodo - AND n.codigo = p_codigo - AND ( - p_tipo_nodo <> 'PRODUTO' - OR ( - n.cod_empresa = p_cod_empresa - OR (n.cod_empresa IS NULL AND p_cod_empresa IS NULL) - ) - ); - - UPDATE TB_FLASH_NODO n - SET n.nome = p_nome, - n.cod_empresa = p_cod_empresa, - n.cod_produto = p_cod_produto, - n.seqprodutobase = p_seqprodutobase, - n.data_atualizacao = SYSDATE - WHERE n.id_nodo = v_id_nodo - AND ( - NVL(n.nome, '#') <> NVL(p_nome, '#') - OR NVL(n.cod_empresa, -1) <> NVL(p_cod_empresa, -1) - OR NVL(n.cod_produto, -1) <> NVL(p_cod_produto, -1) - OR NVL(n.seqprodutobase, -1) <> NVL(p_seqprodutobase, -1) - ); - - RETURN v_id_nodo; - - EXCEPTION - WHEN NO_DATA_FOUND THEN - v_id_nodo := SEQ_TB_FLASH_NODO.NEXTVAL; - - INSERT INTO TB_FLASH_NODO ( - id_nodo, id_nodo_pai, tipo_nodo, codigo, nome, nivel, - ordem_exibicao, ativo, cod_empresa, cod_produto, seqprodutobase, - data_cadastro, data_atualizacao - ) VALUES ( - v_id_nodo, p_id_nodo_pai, p_tipo_nodo, p_codigo, p_nome, p_nivel, - NULL, 'S', p_cod_empresa, p_cod_produto, p_seqprodutobase, - SYSDATE, NULL - ); - - RETURN v_id_nodo; - END; - -BEGIN - DELETE FROM TB_FLASH_FATO_CONTRIBUICAO - WHERE data_referencia BETWEEN p_data_inicial AND p_data_final - AND cod_empresa = p_empresa; - - FOR r IN ( - SELECT Z.DTA, - Z.NROEMPRESA, - Z.NOMEEMPRESA, - Z.NROSEGMENTO, - Z.NRODIVISAO, - Z.SEQPRODUTO, - Z.SEQPRODUTOBASE, - Z.PRODUTO, - Z.SEQCATEGORIAN1, - Z.CATEGORIAN1, - Z.SEQCATEGORIAN2, - Z.CATEGORIAN2, - Z.SEQCATEGORIAN3, - Z.CATEGORIAN3, - Z.SEQCATEGORIAN4, - Z.CATEGORIAN4, - Z.SEQCATEGORIAN5, - Z.CATEGORIAN5, - Z.VLRVENDA, - (CASE WHEN (Z.SEQCATEGORIAN2 = 15458 AND z.seqcategorian3 NOT IN (SELECT seqcategoria FROM TB_EXCECAO_CONTRIB_HORTI) AND TRUNC(SYSDATE) < TO_DATE('01/09/2022','DD/MM/YYYY')) - OR ( Z.SEQCATEGORIAN2 = 15458 AND z.seqcategorian3 NOT IN (SELECT seqcategoria FROM TB_EXCECAO_CONTRIB_HORTI) AND TRUNC(SYSDATE) > TO_DATE('01/01/2024','DD/MM/YYYY')) THEN - Z.VLRVENDA - (Z.QTDE_VENDA * (SELECT nvl(ROUND((CD.CMDIAVLRNF + CD.CMDIAIPI + CD.CMDIAICMSST + CD.CMDIADESPNF + CD.CMDIADESPFORANF - - CD.CMDIACREDICMS - CD.CMDIACREDICMSPRESUM - CD.CMDIACREDICMSANTECIP - CD.CMDIACREDPIS - CD.CMDIACREDCOFINS- CD.CMDIADCTOFORANF),4),0) - FROM MRL_CUSTODIA CD - WHERE CD.SEQPRODUTO = (CASE WHEN Z.SEQPRODUTOBASE IS NULL THEN Z.SEQPRODUTO ELSE Z.SEQPRODUTOBASE END) - AND CD.NROEMPRESA = 301 - AND CD.DTAENTRADASAIDA = ( - SELECT MAX(CD1.DTAENTRADASAIDA) - FROM MRL_CUSTODIA CD1 - WHERE CD1.SEQPRODUTO = CD.SEQPRODUTO - AND CD1.NROEMPRESA = 301 - AND CD1.DTAENTRADASAIDA <= Z.DTA - ) - )) - Z.VLR_IMP_VENDA - ELSE - Z.VLRCONTRIB - END) AS VLRCONTRIB, - Z.VLRVENDA_MES_ANT, - Z.VLRCONTRIB_MES_ANT, - Z.VLRVENDA_ANO_ANT, - Z.VLRCONTRIB_ANO_ANT, - 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.FANTASIA AS NOMEEMPRESA, - V.NROSEGMENTO, - V.NRODIVISAO, - V.SEQPRODUTO, - A.SEQPRODUTOBASE, - A.DESCCOMPLETA PRODUTO, - CC1.SEQCATEGORIA AS SEQCATEGORIAN1, - CC1.CATEGORIA AS CATEGORIAN1, - ( SELECT CC2.SEQCATEGORIA - FROM consinco.MAP_FAMDIVCATEG DC2 - JOIN consinco.MAP_CATEGORIA CC2 - ON CC2.SEQCATEGORIA = DC2.SEQCATEGORIA - AND CC2.STATUSCATEGOR in ('A', 'F') - AND CC2.NIVELHIERARQUIA = 2 - AND CC2.NRODIVISAO = DC2.NRODIVISAO - AND CC2.TIPCATEGORIA = 'M' - WHERE DC2.SEQFAMILIA = A.SEQFAMILIA - AND DC2.NRODIVISAO = V.NRODIVISAO - AND DC2.STATUS in ('A', 'F') - ) AS SEQCATEGORIAN2, - ( SELECT CC2.CATEGORIA - FROM consinco.MAP_FAMDIVCATEG DC2 - JOIN consinco.MAP_CATEGORIA CC2 - ON CC2.SEQCATEGORIA = DC2.SEQCATEGORIA - AND CC2.STATUSCATEGOR in ('A', 'F') - AND CC2.NIVELHIERARQUIA = 2 - AND CC2.NRODIVISAO = DC2.NRODIVISAO - AND CC2.TIPCATEGORIA = 'M' - WHERE DC2.SEQFAMILIA = A.SEQFAMILIA - AND DC2.NRODIVISAO = V.NRODIVISAO - AND DC2.STATUS in ('A', 'F') - ) AS CATEGORIAN2, - ( SELECT CC2.SEQCATEGORIA - FROM consinco.MAP_FAMDIVCATEG DC2 - JOIN consinco.MAP_CATEGORIA CC2 - ON CC2.SEQCATEGORIA = DC2.SEQCATEGORIA - AND CC2.STATUSCATEGOR = 'A' - AND CC2.NIVELHIERARQUIA = 3 - AND CC2.NRODIVISAO = DC2.NRODIVISAO - AND CC2.TIPCATEGORIA = 'M' - WHERE DC2.SEQFAMILIA = A.SEQFAMILIA - AND DC2.NRODIVISAO = V.NRODIVISAO - AND DC2.STATUS = 'A' - ) AS SEQCATEGORIAN3, - ( SELECT CC2.CATEGORIA - FROM consinco.MAP_FAMDIVCATEG DC2 - JOIN consinco.MAP_CATEGORIA CC2 - ON CC2.SEQCATEGORIA = DC2.SEQCATEGORIA - AND CC2.STATUSCATEGOR = 'A' - AND CC2.NIVELHIERARQUIA = 3 - AND CC2.NRODIVISAO = DC2.NRODIVISAO - AND CC2.TIPCATEGORIA = 'M' - WHERE DC2.SEQFAMILIA = A.SEQFAMILIA - AND DC2.NRODIVISAO = V.NRODIVISAO - AND DC2.STATUS = 'A' - ) AS CATEGORIAN3, - ( SELECT CC2.SEQCATEGORIA - FROM consinco.MAP_FAMDIVCATEG DC2 - JOIN consinco.MAP_CATEGORIA CC2 - ON CC2.SEQCATEGORIA = DC2.SEQCATEGORIA - AND CC2.STATUSCATEGOR = 'A' - AND CC2.NIVELHIERARQUIA = 4 - AND CC2.NRODIVISAO = DC2.NRODIVISAO - AND CC2.TIPCATEGORIA = 'M' - WHERE DC2.SEQFAMILIA = A.SEQFAMILIA - AND DC2.NRODIVISAO = V.NRODIVISAO - AND DC2.STATUS = 'A' - ) AS SEQCATEGORIAN4, - ( SELECT CC2.CATEGORIA - FROM consinco.MAP_FAMDIVCATEG DC2 - JOIN consinco.MAP_CATEGORIA CC2 - ON CC2.SEQCATEGORIA = DC2.SEQCATEGORIA - AND CC2.STATUSCATEGOR = 'A' - AND CC2.NIVELHIERARQUIA = 4 - AND CC2.NRODIVISAO = DC2.NRODIVISAO - AND CC2.TIPCATEGORIA = 'M' - WHERE DC2.SEQFAMILIA = A.SEQFAMILIA - AND DC2.NRODIVISAO = V.NRODIVISAO - AND DC2.STATUS = 'A' - ) AS CATEGORIAN4, - ( SELECT CC2.SEQCATEGORIA - FROM consinco.MAP_FAMDIVCATEG DC2 - JOIN consinco.MAP_CATEGORIA CC2 - ON CC2.SEQCATEGORIA = DC2.SEQCATEGORIA - AND CC2.STATUSCATEGOR = 'A' - AND CC2.NIVELHIERARQUIA = 5 - AND CC2.NRODIVISAO = DC2.NRODIVISAO - AND CC2.TIPCATEGORIA = 'M' - WHERE DC2.SEQFAMILIA = A.SEQFAMILIA - AND DC2.NRODIVISAO = V.NRODIVISAO - AND DC2.STATUS = 'A' - ) AS SEQCATEGORIAN5, - ( SELECT CC2.CATEGORIA - FROM consinco.MAP_FAMDIVCATEG DC2 - JOIN consinco.MAP_CATEGORIA CC2 - ON CC2.SEQCATEGORIA = DC2.SEQCATEGORIA - AND CC2.STATUSCATEGOR = 'A' - AND CC2.NIVELHIERARQUIA = 5 - AND CC2.NRODIVISAO = DC2.NRODIVISAO - AND CC2.TIPCATEGORIA = 'M' - WHERE DC2.SEQFAMILIA = A.SEQFAMILIA - AND DC2.NRODIVISAO = V.NRODIVISAO - AND DC2.STATUS = 'A' - ) AS CATEGORIAN5, - SUM( ( V.QTDITEM - NVL( V.QTDDEVOLITEM, 0 ) ) ) AS QTDE_VENDA, - SUM( ( ROUND( V.VLRITEM, 2 ) ) - ( ROUND( V.VLRDEVOLITEM, 2 ) - ( 0 ) ) ) AS VLRVENDA, - SUM( DECODE( - V.ACMCOMPRAVENDA, 'I', ( V.VLRITEM * ( V.PERCPMF + V.PEROUTROIMPOSTO ) / 100 ), - DECODE( Y.QTDVDA * V.QTDITEM, 0, 0, ( Y.VLRIMPOSTOVDA - NVL( Y.VLRIPIVDA, 0 ) ) * DECODE('S','N',1, NVL( A.PROPQTDPRODUTOBASE, 1) ) / Y.QTDVDA * V.QTDITEM ) - ) - - DECODE( - V.ACMCOMPRAVENDA, 'I', ( V.VLRDEVOLITEM * ( V.PERCPMF + V.PEROUTROIMPOSTO ) / 100 ), - DECODE( Y.QTDVDA * V.QTDDEVOLITEM, 0, 0, ( Y.VLRIMPOSTODEVOL - NVL( Y.VLRIPIVDA, 0 ) ) * DECODE('S','N',1, NVL( A.PROPQTDPRODUTOBASE, 1) ) / Y.QTDVDA * V.QTDDEVOLITEM ) - ) - + DECODE( - V.ACMCOMPRAVENDA, 'I', 0, - DECODE( V.ICMSEFETIVOITEM, 0, V.ICMSITEM, V.ICMSEFETIVOITEM ) - + V.VLRFCPICMS + V.PISITEM + V.COFINSITEM - - DECODE( V.ICMSEFETIVODEVOLITEM, 0, V.ICMSDEVOLITEM, V.ICMSEFETIVODEVOLITEM ) - - V.DVLRFCPICMS - V.PISDEVOLITEM - V.COFINSDEVOLITEM - ) - ) AS VLR_IMP_VENDA - , sum( - consinco.fC5_AbcDistribLucratividade( - 'L', - 'L', - 'N', - V.VLRITEM , - 'N', - V.VLRICMSST, - V.VLRFCPST, - V.VLRICMSSTEMPORIG, - E.UF, - V.UFPESSOA, - 'S', - null, - 'N', - V.VLRIPIITEM, - V.VLRIPIDEVOLITEM, - 'N', - V.VLRDESCFORANF, - Y.CMDIAVLRNF - 0 , - Y.CMDIAIPI, - nvl( Y.CMDIACREDPIS, 0 ), - nvl( Y.CMDIACREDCOFINS, 0 ), - Y.CMDIAICMSST, - Y.CMDIADESPNF, - Y.CMDIADESPFORANF, - Y.CMDIADCTOFORANF, - 'S', - a.propqtdprodutobase, - V.QTDITEM, - V.VLREMBDESCRESSARCST, - V.ACMCOMPRAVENDA, - V.PISITEM, - V.COFINSITEM, - decode( V.TIPCGO, 'S', Y.QTDVDA, nvl( Y.QTDDEVOL, Y.QTDVDA ) ), - ( decode( V.TIPCGO, 'S', Y.VLRIMPOSTOVDA - nvl( Y.VLRIPIVDA, 0 ), - nvl( Y.VLRIMPOSTODEVOL - nvl( V.VLRIPIDEVOLITEM, 0 ), - Y.VLRIMPOSTOVDA - nvl( Y.VLRIPIVDA, 0 ) ) ) ) , - 'N', - V.VLRDESPOPERACIONALITEM, - Y.VLRDESPESAVDA, - 'N', - nvl( Y.VLRVERBAVDAACR, 0 ), - DECODE( V.TIPDOCFISCALCGO, 'T', 0, Y.QTDVERBAVDA ), - Y.VLRVERBAVDA - nvl( Y.VLRVERBAVDAINDEVIDA, 0 ), - 'N', - NVL(V.VLRTOTCOMISSAOITEM, 0), - V.VLRDEVOLITEM, - VLRDEVOLICMSST, - V.DVLRFCPST, - V.QTDDEVOLITEM, - V.PISDEVOLITEM, - V.COFINSDEVOLITEM, - V.VLRDESPOPERACIONALITEMDEVOL, - V.VLRTOTCOMISSAOITEMDEVOL, - E.PERIRLUCRAT, - E.PERCSLLLUCRAT, - Y.CMDIACREDICMS, - decode( V.ICMSEFETIVOITEM, 0, V.ICMSITEM, V.ICMSEFETIVOITEM ) - + 0 , - V.VLRFCPICMS, - V.PERCPMF, - V.PEROUTROIMPOSTO, - decode( V.ICMSEFETIVODEVOLITEM, 0, V.ICMSDEVOLITEM, V.ICMSEFETIVODEVOLITEM ) - + 0 , - V.DVLRFCPICMS, - case when ( 'N' ) = 'N' then - (nvl(y.cmdiavlrdescpistransf,0) + nvl(y.cmdiavlrdesccofinstransf,0) + nvl(y.cmdiavlrdescicmstransf,0) + - nvl(y.cmdiavlrdescipitransf,0) + nvl(y.cmdiavlrdesclucrotransf,0) + nvl(y.cmdiavlrdescverbatransf,0) ) - else 0 - end, - case when DV.UTILACRESCCUSTPRODRELAC = 'S' and nvl( A.SEQPRODUTOBASE, A.SEQPRODUTOBASEANTIGO ) is not null then - coalesce( PR.PERCACRESCCUSTORELACVIG, nvl( consinco.F_RETACRESCCUSTORELACABC( V.SEQPRODUTO, V.DTAVDA ), 1 ) ) - else 1 - end, - 'N', - 0, - 0, - 'S', - V.VLRDESCMEDALHA, - 'S', - V.VLRDESCFORNEC, - V.VLRDESCFORNECDEVOL, - 'N', - V.VLRFRETEITEMRATEIO, - V.VLRFRETEITEMRATEIODEV, - 'S', - V.VLRICMSSTEMBUTPROD, - V.VLRICMSSTEMBUTPRODDEV, - V.VLREMBDESCRESSARCSTDEVOL, - case when 'N' = 'S' then nvl( V.VLRDESCACORDOVERBAPDV, 0 ) else 0 end, - nvl( Y.CMDIACREDIPI, 0 ), - NVL(V.VLRITEMRATEIOCTE,0), - 'N', - 'C', - V.VLRIPIPRECOVDA, - V.VLRIPIPRECODEVOL, - V.VLRDESCMEDALHADEVOL, - 'N' - )) AS VLRCONTRIB - , 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 - , MAX(A.PROPQTDPRODUTOBASE) AS PROPQTDPRODUTOBASE - FROM consinco.MRL_CUSTODIA Y - JOIN consinco.MAXV_ABCDISTRIBBASE V ON Y.DTAENTRADASAIDA = V.DTAVDA - JOIN consinco.MAP_PRODUTO A ON A.SEQPRODUTO = V.SEQPRODUTO - JOIN consinco.MAP_PRODUTO PB ON PB.SEQPRODUTO = V.SEQPRODUTOCUSTO AND PB.SEQPRODUTO = Y.SEQPRODUTO - JOIN consinco.MAP_FAMDIVISAO D ON D.SEQFAMILIA = A.SEQFAMILIA AND D.NRODIVISAO = V.NRODIVISAO - JOIN consinco.MAP_FAMEMBALAGEM K ON K.SEQFAMILIA = A.SEQFAMILIA AND K.QTDEMBALAGEM = 1 - JOIN consinco.MAX_EMPRESA E ON E.NROEMPRESA = V.NROEMPRESA AND Y.NROEMPRESA = NVL( E.NROEMPCUSTOABC, E.NROEMPRESA ) - JOIN consinco.MAX_DIVISAO DV ON E.NRODIVISAO = DV.NRODIVISAO - JOIN consinco.MAP_FAMDIVCATEG DC ON DC.NRODIVISAO = D.NRODIVISAO AND DC.STATUS = 'A' AND DC.SEQFAMILIA = D.SEQFAMILIA - JOIN consinco.MAP_CATEGORIA CC1 ON CC1.SEQCATEGORIA = DC.SEQCATEGORIA AND CC1.STATUSCATEGOR in ('A', 'F') AND CC1.NIVELHIERARQUIA = 1 AND CC1.NRODIVISAO = DC.NRODIVISAO AND CC1.TIPCATEGORIA = 'M' - LEFT JOIN consinco.MAP_PRODACRESCCUSTORELAC PR ON PR.SEQPRODUTO = V.SEQPRODUTO AND PR.DTAMOVIMENTACAO = V.DTAVDA - WHERE V.NROEMPRESA IN ( SELECT E.EMPRESA_ID FROM EMPRESA_PARAMETROS E WHERE E.PARTICIPA_FLASH = 1 ) - AND V.NROEMPRESA = p_empresa - 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 p_data_inicial AND p_data_final - GROUP BY TO_DATE( Y.DTAENTRADASAIDA, 'DD/MM/RRRR' ) - , V.NROEMPRESA - , E.FANTASIA - , V.NRODIVISAO - , V.NROSEGMENTO - , V.SEQPRODUTO - , A.SEQPRODUTOBASE - , A.SEQFAMILIA - , A.DESCCOMPLETA - , CC1.SEQCATEGORIA - , CC1.CATEGORIA) Z - ) LOOP - - v_id_empresa := FN_GET_OR_CREATE_NODO(NULL, 'EMPRESA', TO_CHAR(r.NROEMPRESA), r.NOMEEMPRESA, 1, r.NROEMPRESA); - - 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.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.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.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.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.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, - id_nodo, id_nodo_empresa, cod_empresa, nome_empresa, cod_produto, descricao_produto, - seqprodutobase, nrodivisao, nrosegmento, nro_tickets, vlr_imp_contribuicao, qtde_contribuicao, - vlr_contribuicao, vl_ticket_medio, propqtdprodutobase, data_cadastro - ) VALUES ( - SEQ_TB_FLASH_FATO_CONTRIBUICAO.NEXTVAL, - 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; - - COMMIT; -END; --- +goose StatementEnd