Feat: Adicionando Flash Contribuição
This commit is contained in:
@@ -0,0 +1,432 @@
|
||||
-- +goose Up
|
||||
-- +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.NROSEGMENTO,
|
||||
Z.SEQPRODUTO,
|
||||
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
|
||||
FROM (SELECT /*+OPTIMIZER_FEATURES_ENABLE('10.2.0.4')*/
|
||||
TO_DATE( Y.DTAENTRADASAIDA, 'DD/MM/RRRR' ) DTA,
|
||||
V.NROEMPRESA,
|
||||
V.NROSEGMENTO,
|
||||
V.SEQPRODUTO,
|
||||
A.SEQPRODUTOBASE,
|
||||
A.DESCCOMPLETA PRODUTO,
|
||||
CC1.SEQCATEGORIA AS SEQCATEGORIAN1,
|
||||
CC1.CATEGORIA AS CATEGORIAN1,
|
||||
( SELECT CC2.SEQCATEGORIA
|
||||
FROM MAP_FAMDIVCATEG DC2
|
||||
JOIN 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 MAP_FAMDIVCATEG DC2
|
||||
JOIN 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 MAP_FAMDIVCATEG DC2
|
||||
JOIN 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 MAP_FAMDIVCATEG DC2
|
||||
JOIN 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 MAP_FAMDIVCATEG DC2
|
||||
JOIN 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 MAP_FAMDIVCATEG DC2
|
||||
JOIN 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 MAP_FAMDIVCATEG DC2
|
||||
JOIN 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 MAP_FAMDIVCATEG DC2
|
||||
JOIN 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
|
||||
FROM MRL_CUSTODIA Y
|
||||
JOIN MAXV_ABCDISTRIBBASE V ON Y.DTAENTRADASAIDA = V.DTAVDA
|
||||
JOIN MAP_PRODUTO A ON A.SEQPRODUTO = V.SEQPRODUTO
|
||||
JOIN MAP_PRODUTO PB ON PB.SEQPRODUTO = V.SEQPRODUTOCUSTO AND PB.SEQPRODUTO = Y.SEQPRODUTO
|
||||
JOIN MAP_FAMDIVISAO D ON D.SEQFAMILIA = A.SEQFAMILIA AND D.NRODIVISAO = V.NRODIVISAO
|
||||
JOIN MAP_FAMEMBALAGEM K ON K.SEQFAMILIA = A.SEQFAMILIA AND K.QTDEMBALAGEM = 1
|
||||
JOIN MAX_EMPRESA E ON E.NROEMPRESA = V.NROEMPRESA AND Y.NROEMPRESA = NVL( E.NROEMPCUSTOABC, E.NROEMPRESA )
|
||||
JOIN MAX_DIVISAO DV ON E.NRODIVISAO = DV.NRODIVISAO
|
||||
JOIN MAP_FAMDIVCATEG DC ON DC.NRODIVISAO = D.NRODIVISAO AND DC.STATUS = 'A' AND DC.SEQFAMILIA = D.SEQFAMILIA
|
||||
JOIN 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 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.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
|
||||
GROUP BY TO_DATE( Y.DTAENTRADASAIDA, 'DD/MM/RRRR' )
|
||||
, V.NROEMPRESA
|
||||
, 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.empresa), r.nomeempresa, 1, r.empresa);
|
||||
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
|
||||
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.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
|
||||
);
|
||||
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
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_CARGA_DADOS_CONTRIBUICAO' AND object_type = 'PROCEDURE' AND owner = 'VITRUVIO';
|
||||
IF v_count > 0 THEN
|
||||
EXECUTE IMMEDIATE 'DROP PROCEDURE VITRUVIO.PRC_FLASH_CARGA_DADOS_CONTRIBUICAO';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
Reference in New Issue
Block a user