294 lines
12 KiB
SQL
294 lines
12 KiB
SQL
-- DITO - reformulado
|
|
|
|
WITH TOTAIS_PEDIDO AS (
|
|
/* Agrega os totais por pedido */
|
|
SELECT
|
|
NUMPED,
|
|
SUM(QT * PVENDA) AS TOTAL_BRUTO,
|
|
COUNT(DISTINCT CODPROD) AS QTD_SKUS,
|
|
SUM(CASE WHEN CODPROD = 48500 THEN (QT * PVENDA) ELSE 0 END) AS TOTAL_FRETE_PED
|
|
FROM PCPEDI
|
|
GROUP BY NUMPED
|
|
)
|
|
/* --- BLOCO DE VENDAS --- */
|
|
SELECT
|
|
V.CODFILIAL AS CODIGO_FILIAL,
|
|
C.CLIENTE AS NOME_CLIENTE,
|
|
C.EMAIL AS EMAIL_CLIENTE,
|
|
REGEXP_REPLACE(C.CGCENT, '[^0-9]', '') AS CPF,
|
|
C.CODCLI AS CODIGO_CLIENTE,
|
|
C.TIPOFJ AS TIPO_PESSOA,
|
|
C.SEXO,
|
|
C.DTNASC AS DATA_NASCIMENTO,
|
|
CID.NOMECIDADE,
|
|
C.TELENT AS TELEFONE,
|
|
C.ENDERENT AS ENDERECO,
|
|
C.NUMEROENT AS NUMERO,
|
|
C.BAIRROENT AS BAIRRO,
|
|
C.ESTENT AS ESTADO,
|
|
C.DTCADASTRO AS DATA_CADASTO,
|
|
C.DTPRIMCOMPRA AS DATA_PRIMEIRA_COMPRA,
|
|
C.DTULTCOMP AS DATA_ULTIMA_COMPRA,
|
|
V.DTSAIDA AS DATA_COMPRA,
|
|
V.NUMPED AS NUMERO_PEDIDO,
|
|
S.NOME AS NOME_LOJA,
|
|
P.CODSUPERVISOR AS CODIGO_SUPERVISOR,
|
|
U.NOME AS NOME_VENDEDOR,
|
|
V.CODUSUR AS CODIGO_VENDEDOR,
|
|
COB.COBRANCA AS METODO_PAGAMENTO,
|
|
PL.DESCRICAO AS PLANO_DE_PAGAMENTO,
|
|
TP.TOTAL_BRUTO AS TOTAL_COMPRA,
|
|
TP.QTD_SKUS AS QTD_TOTAL_PRODUTO,
|
|
GREATEST(NVL(P.VLTABELA, 0) - NVL(TP.TOTAL_BRUTO, 0), 0) AS TOTAL_DESCONTO,
|
|
NVL(TP.TOTAL_FRETE_PED, 0) AS TOTAL_FRETE,
|
|
V.CODPROD AS ID_PRODUTO,
|
|
PROD.DESCRICAO AS NOME_PRODUTO,
|
|
V.QT AS QTDE_PRODUTO,
|
|
(V.VLVENDA / DECODE(V.QT, 0, 1, V.QT)) AS PRECO_PRODUTO,
|
|
'VENDA' AS TIPO_FATURAMENTO,
|
|
V.VLVENDA AS SUB_TOTAL,
|
|
CAT.CATEGORIA AS CATEGORIA_PRODUTO,
|
|
SEC.DESCRICAO AS SECAO_PRODUTO,
|
|
DEP.DESCRICAO AS DEPARTAMENTO_PRODUTO,
|
|
PARC.NOME AS NOME_PARCEIRO,
|
|
PARC.ID AS CODIGO_PARCEIRO,
|
|
PARC.TELEFONE AS TELEFONE_PARCEIRO
|
|
FROM view_vendas_resumo_faturamento V
|
|
INNER JOIN PCPRODUT PROD ON V.CODPROD = PROD.CODPROD
|
|
INNER JOIN PCCLIENT C ON V.CODCLI = C.CODCLI
|
|
INNER JOIN PCPEDC P ON V.NUMPED = P.NUMPED
|
|
INNER JOIN PCUSUARI U ON V.CODUSUR = U.CODUSUR
|
|
INNER JOIN PCCOB COB ON V.CODCOB = COB.CODCOB
|
|
INNER JOIN PCPLPAG PL ON V.CODPLPAG = PL.CODPLPAG
|
|
INNER JOIN PCDEPTO DEP ON PROD.CODEPTO = DEP.CODEPTO
|
|
INNER JOIN PCSECAO SEC ON PROD.CODSEC = SEC.CODSEC
|
|
INNER JOIN PCSUPERV S ON P.CODSUPERVISOR = S.CODSUPERVISOR
|
|
LEFT JOIN TOTAIS_PEDIDO TP ON V.NUMPED = TP.NUMPED
|
|
LEFT JOIN PCCIDADE CID ON C.CODCIDADE = CID.CODCIDADE
|
|
LEFT JOIN ESTPARCEIRO PARC ON P.CODUSUR3 = PARC.ID
|
|
LEFT JOIN PCCATEGORIA CAT ON (PROD.CODSEC = CAT.CODSEC AND PROD.CODCATEGORIA = CAT.CODCATEGORIA)
|
|
WHERE V.CONDVENDA IN (1, 7)
|
|
AND V.CODCLI NOT IN (1)
|
|
AND V.CODPROD NOT IN (48500) -- REMOVE O PRODUTO FRETE
|
|
AND V.DTSAIDA >= TRUNC(SYSDATE) - (365*4)
|
|
|
|
UNION ALL
|
|
|
|
/* --- BLOCO DE DEVOLUÇÃO --- */
|
|
SELECT
|
|
D.CODFILIAL,
|
|
C.CLIENTE,
|
|
C.EMAIL,
|
|
REGEXP_REPLACE(C.CGCENT, '[^0-9]', ''),
|
|
C.CODCLI,
|
|
C.TIPOFJ,
|
|
C.SEXO,
|
|
C.DTNASC,
|
|
CID.NOMECIDADE,
|
|
C.TELENT,
|
|
C.ENDERENT,
|
|
C.NUMEROENT,
|
|
C.BAIRROENT,
|
|
C.ESTENT,
|
|
C.DTCADASTRO,
|
|
C.DTPRIMCOMPRA,
|
|
C.DTULTCOMP,
|
|
D.DTENT,
|
|
D.NUMPED,
|
|
S.NOME,
|
|
P.CODSUPERVISOR,
|
|
U.NOME,
|
|
D.CODUSUR,
|
|
COB.COBRANCA,
|
|
PL.DESCRICAO,
|
|
D.VLDEVOLUCAO * -1,
|
|
1,
|
|
0,
|
|
0,
|
|
D.CODPROD,
|
|
PROD.DESCRICAO,
|
|
D.QT * -1,
|
|
(D.VLDEVOLUCAO / DECODE(D.QT, 0, 1, D.QT)) * -1,
|
|
'DEVOLUCAO',
|
|
D.VLDEVOLUCAO * -1,
|
|
CAT.CATEGORIA,
|
|
SEC.DESCRICAO,
|
|
DEP.DESCRICAO,
|
|
PARC.NOME,
|
|
PARC.ID,
|
|
PARC.TELEFONE
|
|
FROM view_devol_resumo_faturamento D
|
|
INNER JOIN PCPEDC P ON D.NUMPED = P.NUMPED
|
|
INNER JOIN PCPRODUT PROD ON D.CODPROD = PROD.CODPROD
|
|
INNER JOIN PCCLIENT C ON D.CODCLI = C.CODCLI
|
|
INNER JOIN PCUSUARI U ON D.CODUSUR = U.CODUSUR
|
|
INNER JOIN PCCOB COB ON D.CODCOB = COB.CODCOB
|
|
INNER JOIN PCPLPAG PL ON D.CODPLPAG = PL.CODPLPAG
|
|
INNER JOIN PCDEPTO DEP ON PROD.CODEPTO = DEP.CODEPTO
|
|
INNER JOIN PCSECAO SEC ON PROD.CODSEC = SEC.CODSEC
|
|
INNER JOIN PCSUPERV S ON P.CODSUPERVISOR = S.CODSUPERVISOR
|
|
LEFT JOIN PCCIDADE CID ON C.CODCIDADE = CID.CODCIDADE
|
|
LEFT JOIN ESTPARCEIRO PARC ON P.CODUSUR3 = PARC.ID
|
|
LEFT JOIN PCCATEGORIA CAT ON (PROD.CODSEC = CAT.CODSEC AND PROD.CODCATEGORIA = CAT.CODCATEGORIA)
|
|
WHERE D.CONDVENDA IN (1, 7, 8)
|
|
AND D.CODCLI NOT IN (1)
|
|
AND D.CODPROD NOT IN (48500) -- REMOVE O PRODUTO FRETE
|
|
AND D.DTCANCEL IS NULL
|
|
AND D.DTENT >= TRUNC(SYSDATE) - (365*4);
|
|
|
|
|
|
-- batendo valores
|
|
|
|
SELECT
|
|
'QUERY_2' AS ORIGEM,
|
|
SUM(CASE
|
|
WHEN TIPO_FATURAMENTO = 'VENDA'
|
|
THEN SUB_TOTAL
|
|
ELSE 0
|
|
END) AS FATURAMENTO_BRUTO,
|
|
SUM(CASE
|
|
WHEN TIPO_FATURAMENTO = 'DEVOLUCAO'
|
|
THEN SUB_TOTAL
|
|
ELSE 0
|
|
END) AS DEVOLUCAO,
|
|
SUM(SUB_TOTAL) AS FATURAMENTO_LIQUIDO
|
|
FROM (
|
|
WITH TOTAIS_PEDIDO AS (
|
|
/* Agrega os totais por pedido */
|
|
SELECT
|
|
NUMPED,
|
|
SUM(QT * PVENDA) AS TOTAL_BRUTO,
|
|
COUNT(DISTINCT CODPROD) AS QTD_SKUS,
|
|
SUM(CASE WHEN CODPROD = 48500 THEN (QT * PVENDA) ELSE 0 END) AS TOTAL_FRETE_PED
|
|
FROM PCPEDI
|
|
GROUP BY NUMPED
|
|
)
|
|
/* --- BLOCO DE VENDAS --- */
|
|
SELECT
|
|
V.CODSUPERVMOV AS CODIGO_FILIAL,
|
|
C.CLIENTE AS NOME_CLIENTE,
|
|
C.EMAIL AS EMAIL_CLIENTE,
|
|
REGEXP_REPLACE(C.CGCENT, '[^0-9]', '') AS CPF,
|
|
C.CODCLI AS CODIGO_CLIENTE,
|
|
C.TIPOFJ AS TIPO_PESSOA,
|
|
C.SEXO,
|
|
C.DTNASC AS DATA_NASCIMENTO,
|
|
CID.NOMECIDADE,
|
|
C.TELENT AS TELEFONE,
|
|
C.ENDERENT AS ENDERECO,
|
|
C.NUMEROENT AS NUMERO,
|
|
C.BAIRROENT AS BAIRRO,
|
|
C.ESTENT AS ESTADO,
|
|
C.DTCADASTRO AS DATA_CADASTO,
|
|
C.DTPRIMCOMPRA AS DATA_PRIMEIRA_COMPRA,
|
|
C.DTULTCOMP AS DATA_ULTIMA_COMPRA,
|
|
V.DTSAIDA AS DATA_COMPRA,
|
|
V.NUMPED AS NUMERO_PEDIDO,
|
|
S.NOME AS NOME_LOJA,
|
|
P.CODSUPERVISOR AS CODIGO_SUPERVISOR,
|
|
U.NOME AS NOME_VENDEDOR,
|
|
V.CODUSUR AS CODIGO_VENDEDOR,
|
|
COB.COBRANCA AS METODO_PAGAMENTO,
|
|
PL.DESCRICAO AS PLANO_DE_PAGAMENTO,
|
|
TP.TOTAL_BRUTO AS TOTAL_COMPRA,
|
|
TP.QTD_SKUS AS QTD_TOTAL_PRODUTO,
|
|
GREATEST(NVL(P.VLTABELA, 0) - NVL(TP.TOTAL_BRUTO, 0), 0) AS TOTAL_DESCONTO,
|
|
NVL(TP.TOTAL_FRETE_PED, 0) AS TOTAL_FRETE,
|
|
V.CODPROD AS ID_PRODUTO,
|
|
PROD.DESCRICAO AS NOME_PRODUTO,
|
|
V.QT AS QTDE_PRODUTO,
|
|
(V.VLVENDA / DECODE(V.QT, 0, 1, V.QT)) AS PRECO_PRODUTO,
|
|
'VENDA' AS TIPO_FATURAMENTO,
|
|
V.VLVENDA AS SUB_TOTAL,
|
|
CAT.CATEGORIA AS CATEGORIA_PRODUTO,
|
|
SEC.DESCRICAO AS SECAO_PRODUTO,
|
|
DEP.DESCRICAO AS DEPARTAMENTO_PRODUTO,
|
|
PARC.NOME AS NOME_PARCEIRO,
|
|
PARC.ID AS CODIGO_PARCEIRO,
|
|
PARC.TELEFONE AS TELEFONE_PARCEIRO
|
|
FROM view_vendas_resumo_faturamento V
|
|
INNER JOIN PCPRODUT PROD ON V.CODPROD = PROD.CODPROD
|
|
INNER JOIN PCCLIENT C ON V.CODCLI = C.CODCLI
|
|
INNER JOIN PCPEDC P ON V.NUMPED = P.NUMPED
|
|
INNER JOIN PCUSUARI U ON V.CODUSUR = U.CODUSUR
|
|
INNER JOIN PCCOB COB ON V.CODCOB = COB.CODCOB
|
|
INNER JOIN PCPLPAG PL ON V.CODPLPAG = PL.CODPLPAG
|
|
INNER JOIN PCDEPTO DEP ON PROD.CODEPTO = DEP.CODEPTO
|
|
INNER JOIN PCSECAO SEC ON PROD.CODSEC = SEC.CODSEC
|
|
INNER JOIN PCSUPERV S ON P.CODSUPERVISOR = S.CODSUPERVISOR
|
|
LEFT JOIN TOTAIS_PEDIDO TP ON V.NUMPED = TP.NUMPED
|
|
LEFT JOIN PCCIDADE CID ON C.CODCIDADE = CID.CODCIDADE
|
|
LEFT JOIN ESTPARCEIRO PARC ON P.CODUSUR3 = PARC.ID
|
|
LEFT JOIN PCCATEGORIA CAT ON (PROD.CODSEC = CAT.CODSEC AND PROD.CODCATEGORIA = CAT.CODCATEGORIA)
|
|
WHERE V.CONDVENDA IN (1, 7)
|
|
--AND V.CODCLI NOT IN (1)
|
|
--AND V.CODPROD NOT IN (48500) -- REMOVE O PRODUTO FRETE
|
|
AND V.DTSAIDA >= TRUNC(SYSDATE) - (365*4)
|
|
|
|
UNION ALL
|
|
|
|
/* --- BLOCO DE DEVOLUÇÃO --- */
|
|
SELECT
|
|
D.CODSUPERVMOV,
|
|
C.CLIENTE,
|
|
C.EMAIL,
|
|
REGEXP_REPLACE(C.CGCENT, '[^0-9]', ''),
|
|
C.CODCLI,
|
|
C.TIPOFJ,
|
|
C.SEXO,
|
|
C.DTNASC,
|
|
CID.NOMECIDADE,
|
|
C.TELENT,
|
|
C.ENDERENT,
|
|
C.NUMEROENT,
|
|
C.BAIRROENT,
|
|
C.ESTENT,
|
|
C.DTCADASTRO,
|
|
C.DTPRIMCOMPRA,
|
|
C.DTULTCOMP,
|
|
D.DTENT,
|
|
D.NUMPED,
|
|
S.NOME,
|
|
P.CODSUPERVISOR,
|
|
U.NOME,
|
|
D.CODUSUR,
|
|
COB.COBRANCA,
|
|
PL.DESCRICAO,
|
|
D.VLDEVOLUCAO * -1,
|
|
1,
|
|
0,
|
|
0,
|
|
D.CODPROD,
|
|
PROD.DESCRICAO,
|
|
D.QT * -1,
|
|
(D.VLDEVOLUCAO / DECODE(D.QT, 0, 1, D.QT)) * -1,
|
|
'DEVOLUCAO',
|
|
D.VLDEVOLUCAO * -1,
|
|
CAT.CATEGORIA,
|
|
SEC.DESCRICAO,
|
|
DEP.DESCRICAO,
|
|
PARC.NOME,
|
|
PARC.ID,
|
|
PARC.TELEFONE
|
|
FROM view_devol_resumo_faturamento D
|
|
INNER JOIN PCPEDC P ON D.NUMPED = P.NUMPED
|
|
INNER JOIN PCPRODUT PROD ON D.CODPROD = PROD.CODPROD
|
|
INNER JOIN PCCLIENT C ON D.CODCLI = C.CODCLI
|
|
INNER JOIN PCUSUARI U ON D.CODUSUR = U.CODUSUR
|
|
INNER JOIN PCCOB COB ON D.CODCOB = COB.CODCOB
|
|
INNER JOIN PCPLPAG PL ON D.CODPLPAG = PL.CODPLPAG
|
|
INNER JOIN PCDEPTO DEP ON PROD.CODEPTO = DEP.CODEPTO
|
|
INNER JOIN PCSECAO SEC ON PROD.CODSEC = SEC.CODSEC
|
|
INNER JOIN PCSUPERV S ON P.CODSUPERVISOR = S.CODSUPERVISOR
|
|
LEFT JOIN PCCIDADE CID ON C.CODCIDADE = CID.CODCIDADE
|
|
LEFT JOIN ESTPARCEIRO PARC ON P.CODUSUR3 = PARC.ID
|
|
LEFT JOIN PCCATEGORIA CAT ON (PROD.CODSEC = CAT.CODSEC AND PROD.CODCATEGORIA = CAT.CODCATEGORIA)
|
|
WHERE D.CONDVENDA IN (1, 7, 8)
|
|
--AND D.CODCLI NOT IN (1)
|
|
--AND D.CODPROD NOT IN (48500) -- REMOVE O PRODUTO FRETE
|
|
-- comentario de teste
|
|
AND D.DTCANCEL IS NULL
|
|
AND D.DTENT >= TRUNC(SYSDATE) - (365*4)
|
|
)
|
|
WHERE DATA_COMPRA >= DATE '2025-01-01'
|
|
AND DATA_COMPRA < DATE '2026-01-01' |