diff --git a/Categoria_clientes.sql b/Categoria_clientes.sql new file mode 100644 index 0000000..8ac85b6 --- /dev/null +++ b/Categoria_clientes.sql @@ -0,0 +1,1082 @@ +---------------------------- +fCategoria +---------------------------- + + +WITH PERIODOS AS ( + SELECT + LEVEL AS ID_PERIODO, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)) AS MES_REF, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -LEVEL) AS MES_ANALISE, + ADD_MONTHS( + TRUNC(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -LEVEL), 'MM'), + -11 + ) AS DATA_INICIO, + LAST_DAY( + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -LEVEL) + ) AS DATA_FIM + FROM DUAL + CONNECT BY LEVEL <= 12 +), +PARAMETROS AS ( + SELECT + MAX(CASE WHEN NOME = 'CON_FREQUENCIACLIENTE' + THEN VALOR END) AS CON_FREQUENCIACLIENTE, + MAX(CASE WHEN NOME = 'CON_FATURAMENTOCATCLIENTE' + THEN VALOR END) AS CON_FATURAMENTOCATCLIENTE + FROM PCPARAMFILIAL +), +PARAM_CATEGORIA_TICKET AS ( + SELECT + 500 AS LIM_TICKET_VALOR, + 3 AS LIM_TICKET_FREQUENCIA + FROM DUAL +), +FATURAMENTO AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + SUM(NF.VLATEND) AS FATURAMENTO_BRUTO, + SUM(NF.VLCUSTOFIN) AS CUSTO_BRUTO + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +DEVOLUCAO AS ( + SELECT + P.ID_PERIODO, + DV.CODCLI, + SUM(DV.VLDEVOLUCAO) AS DEVOLUCAO, + SUM(DV.VLCMVDEVOL) AS CUSTO_DEVOL + FROM VIEW_DEVOL_RESUMO_FATURAMENTO DV + JOIN PERIODOS P + ON DV.DTENT BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE DV.DTCANCEL IS NULL + AND DV.CONDVENDA IN (1,7) + GROUP BY + P.ID_PERIODO, + DV.CODCLI +), +FREQUENCIA AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + COUNT(DISTINCT NF.NUMTRANSVENDA) AS FREQUENCIA + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +FREQ_VENDEDOR AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + NF.CODUSUR AS CODVEND, + COUNT(DISTINCT NF.NUMTRANSVENDA) AS FREQUENCIA_VENDEDOR + FROM PCNFSAID NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI, + NF.CODUSUR +), +VENDEDOR_PRINCIPAL AS ( + SELECT + V.ID_PERIODO, + V.CODCLI, + V.CODVEND, + U.NOME AS NOME_VENDEDOR, + V.FREQUENCIA_VENDEDOR, + ROW_NUMBER() OVER ( + PARTITION BY V.ID_PERIODO, V.CODCLI + ORDER BY V.FREQUENCIA_VENDEDOR DESC + ) AS RN + FROM FREQ_VENDEDOR V + LEFT JOIN PCUSUARI U + ON U.CODUSUR = V.CODVEND +), +BASE AS ( + SELECT + P.ID_PERIODO, + TO_CHAR(P.MES_REF,'MM/YYYY') AS PERIODO_REFERENCIA, + F.CODCLI, + CLI.CLIENTE, + CASE + WHEN CLI.TIPOFJ = 'F' THEN 'Física' + WHEN CLI.TIPOFJ = 'J' THEN 'Jurídica' + ELSE 'Não informado' + END AS TIPO_PESSOA, + NVL(FR.FREQUENCIA,0) AS FREQUENCIA, + NVL(F.FATURAMENTO_BRUTO,0) AS FATURAMENTO_BRUTO, + NVL(D.DEVOLUCAO,0) AS DEVOLUCAO, + NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0) AS FATURAMENTO_LIQUIDO, + NVL(F.CUSTO_BRUTO,0) - NVL(D.CUSTO_DEVOL,0) AS CUSTO_LIQUIDO, + ROUND( + ( + (NVL(F.FATURAMENTO_BRUTO,0)) + - (NVL(F.CUSTO_BRUTO,0)) + ) + / + NULLIF((NVL(F.FATURAMENTO_BRUTO,0)),0), + 4) AS PERCENT_MARGEM, + ROUND( + NVL(F.FATURAMENTO_BRUTO,0) + / + NULLIF(FR.FREQUENCIA,0), + 2) AS TICKET_MEDIO, + VP.CODVEND AS CODVEND_PRINCIPAL, + VP.NOME_VENDEDOR AS VENDEDOR_PRINCIPAL, + VP.FREQUENCIA_VENDEDOR, + ROUND( + VP.FREQUENCIA_VENDEDOR + / + NULLIF(FR.FREQUENCIA,0), + 4) AS PERC_COMPRAS_VENDEDOR_PRINCIPAL, + P2.CON_FATURAMENTOCATCLIENTE, + P2.CON_FREQUENCIACLIENTE, + PC.LIM_TICKET_VALOR, + PC.LIM_TICKET_FREQUENCIA + FROM PERIODOS P + JOIN FATURAMENTO F ON F.ID_PERIODO = P.ID_PERIODO + JOIN PCCLIENT CLI ON CLI.CODCLI = F.CODCLI + LEFT JOIN DEVOLUCAO D ON D.ID_PERIODO = F.ID_PERIODO AND D.CODCLI = F.CODCLI + LEFT JOIN FREQUENCIA FR ON FR.ID_PERIODO = F.ID_PERIODO AND FR.CODCLI = F.CODCLI + LEFT JOIN VENDEDOR_PRINCIPAL VP + ON VP.ID_PERIODO = F.ID_PERIODO + AND VP.CODCLI = F.CODCLI + AND VP.RN = 1 + CROSS JOIN PARAMETROS P2 + CROSS JOIN PARAM_CATEGORIA_TICKET PC +) +SELECT + ID_PERIODO, + PERIODO_REFERENCIA, + CODCLI, + CLIENTE, + TIPO_PESSOA, + FREQUENCIA, + FATURAMENTO_BRUTO, + DEVOLUCAO, + FATURAMENTO_LIQUIDO, + CUSTO_LIQUIDO, + TICKET_MEDIO, + CODVEND_PRINCIPAL, + VENDEDOR_PRINCIPAL, + FREQUENCIA_VENDEDOR, + PERC_COMPRAS_VENDEDOR_PRINCIPAL, + CASE + WHEN FATURAMENTO_LIQUIDO > CON_FATURAMENTOCATCLIENTE + AND FREQUENCIA > CON_FREQUENCIACLIENTE + THEN 'DIAMANTE' + WHEN FATURAMENTO_LIQUIDO > CON_FATURAMENTOCATCLIENTE + AND FREQUENCIA <= CON_FREQUENCIACLIENTE + THEN 'OURO' + WHEN FATURAMENTO_LIQUIDO <= CON_FATURAMENTOCATCLIENTE + AND FREQUENCIA > CON_FREQUENCIACLIENTE + THEN 'PRATA' + ELSE 'BRONZE' + END AS CATEGORIA_FATURAMENTO, + CASE + WHEN TICKET_MEDIO > LIM_TICKET_VALOR + AND FREQUENCIA > LIM_TICKET_FREQUENCIA + THEN 'DIAMANTE' + WHEN TICKET_MEDIO > LIM_TICKET_VALOR + AND FREQUENCIA <= LIM_TICKET_FREQUENCIA + THEN 'OURO' + WHEN TICKET_MEDIO <= LIM_TICKET_VALOR + AND FREQUENCIA > LIM_TICKET_FREQUENCIA + THEN 'PRATA' + ELSE 'BRONZE' + END AS CATEGORIA_TICKET, + PERCENT_MARGEM +FROM BASE +WHERE CODCLI NOT IN (1,2) +ORDER BY + ID_PERIODO, + FATURAMENTO_LIQUIDO DESC; + + +-------------------------- +fTopProdCli +-------------------------- + +WITH PERIODOS AS ( + SELECT + LEVEL AS ID_PERIODO, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)) AS MES_REF, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL+10)) AS DATA_INICIO, + LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS DATA_FIM + FROM DUAL + CONNECT BY LEVEL <= 12 +), +ITENS_CLIENTE AS ( + SELECT + P.ID_PERIODO, + P.MES_REF, + NF.CODCLI, + M.CODPROD, + PR.DESCRICAO AS PRODUTO, + SUM(M.QT) AS QTD_VENDIDA, + SUM(M.QT * M.PUNIT) AS FATURAMENTO_PRODUTO, + SUM(M.QT * M.CUSTOFIN) AS CUSTO_PRODUTO + FROM PCNFSAID NF + JOIN PCMOV M + ON M.NUMTRANSVENDA = NF.NUMTRANSVENDA + JOIN PCPRODUT PR + ON PR.CODPROD = M.CODPROD + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + AND NF.CODCLI NOT IN (1,2) + GROUP BY + P.ID_PERIODO, + P.MES_REF, + NF.CODCLI, + M.CODPROD, + PR.DESCRICAO +), +DEVOLUCAO AS ( + SELECT + P.ID_PERIODO, + DV.CODCLI, + DV.CODPROD, + SUM(DV.VLDEVOLUCAO) AS VLR_DEVOLUCAO + FROM VIEW_DEVOL_RESUMO_FATURAMENTO DV + JOIN PERIODOS P + ON DV.DTENT BETWEEN P.DATA_INICIO AND P.DATA_FIM + GROUP BY + P.ID_PERIODO, + DV.CODCLI, + DV.CODPROD +), +BASE AS ( + SELECT + I.ID_PERIODO, + I.MES_REF, + I.CODCLI, + I.CODPROD, + I.PRODUTO, + I.QTD_VENDIDA, + I.FATURAMENTO_PRODUTO, + I.CUSTO_PRODUTO, + (I.FATURAMENTO_PRODUTO - NVL(D.VLR_DEVOLUCAO,0)) AS FATURAMENTO_LIQUIDO + FROM ITENS_CLIENTE I + LEFT JOIN DEVOLUCAO D + ON D.ID_PERIODO = I.ID_PERIODO + AND D.CODCLI = I.CODCLI + AND D.CODPROD = I.CODPROD +), +BASE_FILTRADA AS ( + SELECT * + FROM BASE + WHERE FATURAMENTO_LIQUIDO > 0 +), +RANKED AS ( + SELECT + ID_PERIODO, + MES_REF, + CODCLI, + CODPROD, + PRODUTO, + QTD_VENDIDA, + FATURAMENTO_LIQUIDO, + CUSTO_PRODUTO, + (FATURAMENTO_LIQUIDO - CUSTO_PRODUTO) AS LUCRO_PRODUTO, + ROUND( + (FATURAMENTO_LIQUIDO - CUSTO_PRODUTO) + / FATURAMENTO_LIQUIDO, + 4) AS MARGEM_PERC, + ROW_NUMBER() OVER ( + PARTITION BY ID_PERIODO, CODCLI + ORDER BY FATURAMENTO_LIQUIDO DESC + ) AS POSICAO + FROM BASE_FILTRADA +) +SELECT + ID_PERIODO, + TO_CHAR(MES_REF, 'MM/YYYY') AS PERIODO_REFERENCIA, + CODCLI, + CODPROD, + PRODUTO, + QTD_VENDIDA, + FATURAMENTO_LIQUIDO, + CUSTO_PRODUTO, + LUCRO_PRODUTO, + MARGEM_PERC, + POSICAO +FROM RANKED +WHERE POSICAO <= 5 +ORDER BY + CODCLI, + POSICAO; + + +---------------------- +fTopProdCateg +---------------------- + +WITH PERIODOS AS ( + SELECT + LEVEL AS ID_PERIODO, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)) AS MES_REF, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL+10)) AS DATA_INICIO, + LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS DATA_FIM + FROM DUAL + CONNECT BY LEVEL <= 12 +), +PARAMETROS AS ( + SELECT + MAX(CASE WHEN NOME = 'CON_FREQUENCIACLIENTE' + THEN VALOR END) AS CON_FREQUENCIACLIENTE, + MAX(CASE WHEN NOME = 'CON_FATURAMENTOCATCLIENTE' + THEN VALOR END) AS CON_FATURAMENTOCATCLIENTE + FROM PCPARAMFILIAL +), +FATURAMENTO_CLIENTE AS ( + SELECT + P.ID_PERIODO, + P.MES_REF, + NF.CODCLI, + SUM(NF.VLATEND) AS FATURAMENTO_BRUTO + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + P.MES_REF, + NF.CODCLI +), +DEVOLUCAO_CLIENTE AS ( + SELECT + P.ID_PERIODO, + DV.CODCLI, + SUM(DV.VLVENDA) * -1 AS DEVOLUCAO + FROM VB_DEVOLUCAO DV + JOIN PERIODOS P + ON DV.DTVENDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + GROUP BY + P.ID_PERIODO, + DV.CODCLI +), +FREQUENCIA_CLIENTE AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + COUNT(NF.NUMNOTA) AS FREQUENCIA + FROM PCNFSAID NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +CLIENTES_CATEGORIZADOS AS ( + SELECT + F.ID_PERIODO, + F.MES_REF, + F.CODCLI, + (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) AS FATURAMENTO_LIQUIDO, + NVL(FR.FREQUENCIA,0) AS FREQUENCIA, + CASE + WHEN (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) > P.CON_FATURAMENTOCATCLIENTE + AND NVL(FR.FREQUENCIA,0) > P.CON_FREQUENCIACLIENTE + THEN 'DIAMANTE' + WHEN (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) > P.CON_FATURAMENTOCATCLIENTE + AND NVL(FR.FREQUENCIA,0) <= P.CON_FREQUENCIACLIENTE + THEN 'OURO' + WHEN (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) <= P.CON_FATURAMENTOCATCLIENTE + AND NVL(FR.FREQUENCIA,0) > P.CON_FREQUENCIACLIENTE + THEN 'PRATA' + ELSE 'BRONZE' + END AS CATEGORIA_CLIENTE + FROM FATURAMENTO_CLIENTE F + LEFT JOIN DEVOLUCAO_CLIENTE D + ON D.ID_PERIODO = F.ID_PERIODO + AND D.CODCLI = F.CODCLI + LEFT JOIN FREQUENCIA_CLIENTE FR + ON FR.ID_PERIODO = F.ID_PERIODO + AND FR.CODCLI = F.CODCLI + CROSS JOIN PARAMETROS P +), +ITENS_CLIENTE AS ( + SELECT + P.ID_PERIODO, + P.MES_REF, + NF.CODCLI, + M.CODPROD, + PR.DESCRICAO AS PRODUTO, + SUM(M.QT) AS QTD_VENDIDA, + SUM(M.QT * M.PUNIT) AS FATURAMENTO_PRODUTO, + SUM(M.QT * M.CUSTOFIN) AS CUSTO_PRODUTO + FROM PCNFSAID NF + JOIN PCMOV M ON M.NUMTRANSVENDA = NF.NUMTRANSVENDA + JOIN PCPRODUT PR ON PR.CODPROD = M.CODPROD + JOIN PERIODOS P ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + AND PR.CODPROD NOT IN (48500) + AND PR.DESCRICAO NOT LIKE '++%' + AND PR.DESCRICAO NOT LIKE '$%' + GROUP BY + P.ID_PERIODO, + P.MES_REF, + NF.CODCLI, + M.CODPROD, + PR.DESCRICAO +), +PRODUTOS_POR_CATEGORIA AS ( + SELECT + C.ID_PERIODO, + C.MES_REF, + C.CATEGORIA_CLIENTE, + I.CODPROD, + I.PRODUTO, + SUM(I.QTD_VENDIDA) AS QTD_TOTAL, + SUM(I.FATURAMENTO_PRODUTO) AS FAT_TOTAL, + SUM(I.CUSTO_PRODUTO) AS CUSTO_TOTAL + FROM ITENS_CLIENTE I + JOIN CLIENTES_CATEGORIZADOS C + ON C.ID_PERIODO = I.ID_PERIODO + AND C.CODCLI = I.CODCLI + GROUP BY + C.ID_PERIODO, + C.MES_REF, + C.CATEGORIA_CLIENTE, + I.CODPROD, + I.PRODUTO +), +RANKED AS ( + SELECT + ID_PERIODO, + MES_REF, + CATEGORIA_CLIENTE, + CODPROD, + PRODUTO, + QTD_TOTAL, + FAT_TOTAL, + CUSTO_TOTAL, + ROUND( + CASE + WHEN FAT_TOTAL > 0 + THEN (FAT_TOTAL - CUSTO_TOTAL) / FAT_TOTAL + ELSE 0 + END + , 4) AS MARGEM_PERC, + RANK() OVER ( + PARTITION BY ID_PERIODO, CATEGORIA_CLIENTE + ORDER BY FAT_TOTAL DESC + ) AS POSICAO + FROM PRODUTOS_POR_CATEGORIA +) +SELECT + ID_PERIODO, + TO_CHAR(MES_REF, 'MM/YYYY') AS PERIODO_REFERENCIA, + CATEGORIA_CLIENTE, + POSICAO, + CODPROD, + PRODUTO, + QTD_TOTAL, + FAT_TOTAL, + CUSTO_TOTAL, + MARGEM_PERC +FROM RANKED +WHERE POSICAO <= 20 +ORDER BY + ID_PERIODO, + CATEGORIA_CLIENTE, + POSICAO; + + + +---------------------------- +fTopProdCategTicket +---------------------------- + +WITH PERIODOS AS ( + SELECT + LEVEL AS ID_PERIODO, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)) AS MES_REF, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL+10)) AS DATA_INICIO, + LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS DATA_FIM + FROM DUAL + CONNECT BY LEVEL <= 12 +), +PARAM_CATEGORIA_TICKET AS ( + SELECT + 500 AS LIM_TICKET_VALOR, + 3 AS LIM_TICKET_FREQUENCIA + FROM DUAL +), +FATURAMENTO AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + SUM(NF.VLATEND) AS FATURAMENTO_BRUTO + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +DEVOLUCAO AS ( + SELECT + P.ID_PERIODO, + DV.CODCLI, + SUM(DV.VLDEVOLUCAO) AS DEVOLUCAO + FROM VIEW_DEVOL_RESUMO_FATURAMENTO DV + JOIN PERIODOS P + ON DV.DTENT BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE DV.DTCANCEL IS NULL + AND DV.CONDVENDA IN (1,7) + GROUP BY + P.ID_PERIODO, + DV.CODCLI +), +FREQUENCIA AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + COUNT(DISTINCT NF.NUMTRANSVENDA) AS FREQUENCIA + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +CLIENTE_TICKET AS ( + SELECT + F.ID_PERIODO, + F.CODCLI, + (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) AS FATURAMENTO_LIQUIDO, + FR.FREQUENCIA, + ROUND( + (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) + / NULLIF(FR.FREQUENCIA,0), + 2) AS TICKET_MEDIO, + CASE + WHEN ROUND( + (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) + / NULLIF(FR.FREQUENCIA,0),2 + ) >= PT.LIM_TICKET_VALOR + AND FR.FREQUENCIA >= PT.LIM_TICKET_FREQUENCIA + THEN 'DIAMANTE' + WHEN ROUND( + (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) + / NULLIF(FR.FREQUENCIA,0),2 + ) < PT.LIM_TICKET_VALOR + AND FR.FREQUENCIA >= PT.LIM_TICKET_FREQUENCIA + THEN 'PRATA' + WHEN ROUND( + (NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0)) + / NULLIF(FR.FREQUENCIA,0),2 + ) >= PT.LIM_TICKET_VALOR + AND FR.FREQUENCIA < PT.LIM_TICKET_FREQUENCIA + THEN 'OURO' + ELSE 'BRONZE' + END AS CATEGORIA_TICKET + FROM FATURAMENTO F + LEFT JOIN DEVOLUCAO D + ON D.ID_PERIODO = F.ID_PERIODO + AND D.CODCLI = F.CODCLI + LEFT JOIN FREQUENCIA FR + ON FR.ID_PERIODO = F.ID_PERIODO + AND FR.CODCLI = F.CODCLI + CROSS JOIN PARAM_CATEGORIA_TICKET PT +), +ITENS_CLIENTE AS ( + SELECT + P.ID_PERIODO, + P.MES_REF, + NF.CODCLI, + M.CODPROD, + PR.DESCRICAO AS PRODUTO, + SUM(M.QT * M.PUNIT) AS FATURAMENTO_PRODUTO, + SUM(M.QT * M.CUSTOFIN) AS CUSTO_PRODUTO + FROM PCNFSAID NF + JOIN PCMOV M ON M.NUMTRANSVENDA = NF.NUMTRANSVENDA + JOIN PCPRODUT PR ON PR.CODPROD = M.CODPROD + JOIN PERIODOS P ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + AND PR.CODPROD NOT IN (48500) + AND PR.DESCRICAO NOT LIKE '++%' + AND PR.DESCRICAO NOT LIKE '$%' + GROUP BY + P.ID_PERIODO, + P.MES_REF, + NF.CODCLI, + M.CODPROD, + PR.DESCRICAO +), +PRODUTO_CATEGORIA AS ( + SELECT + I.ID_PERIODO, + I.MES_REF, + C.CATEGORIA_TICKET, + I.CODPROD, + I.PRODUTO, + SUM(I.FATURAMENTO_PRODUTO) AS FAT_TOTAL, + SUM(I.CUSTO_PRODUTO) AS CUSTO_TOTAL + FROM ITENS_CLIENTE I + JOIN CLIENTE_TICKET C + ON C.ID_PERIODO = I.ID_PERIODO + AND C.CODCLI = I.CODCLI + GROUP BY + I.ID_PERIODO, + I.MES_REF, + C.CATEGORIA_TICKET, + I.CODPROD, + I.PRODUTO +), +RANKED AS ( + SELECT + ID_PERIODO, + TO_CHAR(MES_REF,'MM/YYYY') AS PERIODO_REFERENCIA, + CATEGORIA_TICKET, + CODPROD, + PRODUTO, + FAT_TOTAL, + ROUND( + CASE + WHEN FAT_TOTAL > 0 + THEN (FAT_TOTAL - CUSTO_TOTAL) / FAT_TOTAL + ELSE 0 + END, + 4) AS MARGEM_PERC, + RANK() OVER ( + PARTITION BY ID_PERIODO, CATEGORIA_TICKET + ORDER BY FAT_TOTAL DESC + ) AS POSICAO + FROM PRODUTO_CATEGORIA +) +SELECT * +FROM RANKED +WHERE POSICAO <= 20 +ORDER BY + ID_PERIODO, + CATEGORIA_TICKET, + POSICAO; + + +--------------------------------- +DIM_PERIODO +--------------------------------- + +SELECT + LEVEL AS ID_PERIODO, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)) AS MES_REF, + ADD_MONTHS(TRUNC(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)),'MM'), -11) AS DATA_INICIO, + LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS DATA_FIM, + TO_CHAR( + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)), + 'MM/YYYY' + ) AS PERIODO_REFERENCIA, + EXTRACT(YEAR FROM ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS ANO, + EXTRACT(MONTH FROM ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS MES, + TO_CHAR( + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)), + 'Month', + 'NLS_DATE_LANGUAGE=PORTUGUESE' + ) AS NOME_MES, + TO_CHAR( + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)), + 'YYYY/MM' + ) AS ANO_MES, + CASE + WHEN EXTRACT(MONTH FROM ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) BETWEEN 1 AND 3 THEN 'Q1' + WHEN EXTRACT(MONTH FROM ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) BETWEEN 4 AND 6 THEN 'Q2' + WHEN EXTRACT(MONTH FROM ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) BETWEEN 7 AND 9 THEN 'Q3' + ELSE 'Q4' + END AS TRIMESTRE, + CASE + WHEN EXTRACT(MONTH FROM ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) BETWEEN 1 AND 6 THEN '1º Sem' + ELSE '2º Sem' + END AS SEMESTRE +FROM DUAL +CONNECT BY LEVEL <= 12; + + + +------------------------- +Valores_Categ_Fatu +------------------------- + +WITH PERIODOS AS ( + SELECT + LEVEL AS ID_PERIODO, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)) AS MES_REF, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL+10)) AS DATA_INICIO, + LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS DATA_FIM + FROM DUAL + CONNECT BY LEVEL <= 12 +), +PARAMETROS AS ( + SELECT + MAX(CASE WHEN NOME = 'CON_FREQUENCIACLIENTE' + THEN VALOR END) AS CON_FREQUENCIACLIENTE, + MAX(CASE WHEN NOME = 'CON_FATURAMENTOCATCLIENTE' + THEN VALOR END) AS CON_FATURAMENTOCATCLIENTE + FROM PCPARAMFILIAL +), +FATURAMENTO AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + SUM(NF.VLATEND) AS FATURAMENTO_BRUTO, + SUM(NF.VLCUSTOFIN) AS CUSTO_BRUTO + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +DEVOLUCAO AS ( + SELECT + P.ID_PERIODO, + DV.CODCLI, + SUM(DV.VLDEVOLUCAO) AS DEVOLUCAO + FROM VIEW_DEVOL_RESUMO_FATURAMENTO DV + JOIN PERIODOS P + ON DV.DTENT BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE DV.DTCANCEL IS NULL + AND DV.CONDVENDA IN (1,7) + GROUP BY + P.ID_PERIODO, + DV.CODCLI +), +FREQUENCIA AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + COUNT(DISTINCT NF.NUMTRANSVENDA) AS FREQUENCIA + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +BASE_CLIENTE AS ( + SELECT + P.ID_PERIODO, + P.MES_REF, + F.CODCLI, + NVL(F.FATURAMENTO_BRUTO,0) AS FATURAMENTO_BRUTO, + NVL(D.DEVOLUCAO,0) AS DEVOLUCAO, + NVL(FR.FREQUENCIA,0) AS FREQUENCIA, + NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0) AS FATURAMENTO_LIQUIDO, + NVL(F.CUSTO_BRUTO,0) AS CUSTO_LIQUIDO + FROM PERIODOS P + JOIN FATURAMENTO F ON F.ID_PERIODO = P.ID_PERIODO + LEFT JOIN DEVOLUCAO D + ON D.ID_PERIODO = F.ID_PERIODO + AND D.CODCLI = F.CODCLI + LEFT JOIN FREQUENCIA FR + ON FR.ID_PERIODO = F.ID_PERIODO + AND FR.CODCLI = F.CODCLI +), +CLIENTE_CATEGORIA AS ( + SELECT + B.*, + CASE + WHEN FATURAMENTO_LIQUIDO >= CON_FATURAMENTOCATCLIENTE + AND FREQUENCIA >= CON_FREQUENCIACLIENTE + THEN 'DIAMANTE' + WHEN FATURAMENTO_LIQUIDO < CON_FATURAMENTOCATCLIENTE + AND FREQUENCIA >= CON_FREQUENCIACLIENTE + THEN 'PRATA' + WHEN FATURAMENTO_LIQUIDO >= CON_FATURAMENTOCATCLIENTE + AND FREQUENCIA < CON_FREQUENCIACLIENTE + THEN 'OURO' + ELSE 'BRONZE' + END AS CATEGORIA + FROM BASE_CLIENTE B + CROSS JOIN PARAMETROS P +) +SELECT + ID_PERIODO, + TO_CHAR(MES_REF,'MM/YYYY') AS PERIODO_REFERENCIA, + CATEGORIA, + COUNT(DISTINCT CODCLI) AS QTD_CLIENTES, + SUM(FREQUENCIA) AS FREQUENCIA_TOTAL, + SUM(FATURAMENTO_BRUTO) AS FATURAMENTO_BRUTO, + SUM(DEVOLUCAO) AS DEVOLUCAO, + ROUND(SUM(FATURAMENTO_LIQUIDO),2) AS FATURAMENTO_LIQUIDO, + ROUND( + SUM(FATURAMENTO_BRUTO ) + / + NULLIF(SUM(FREQUENCIA),0), + 2) AS TICKET_MEDIO, + ROUND( + (SUM(FATURAMENTO_LIQUIDO) - SUM(CUSTO_LIQUIDO)) + / + NULLIF(SUM(FATURAMENTO_LIQUIDO),0), + 4) AS MARGEMa +FROM CLIENTE_CATEGORIA +GROUP BY + ID_PERIODO, + MES_REF, + CATEGORIA +ORDER BY + ID_PERIODO, + CATEGORIA + + +---------------------------------------------- +Valores_Categ_Ticket +---------------------------------------------- + +WITH PERIODOS AS ( + SELECT + LEVEL AS ID_PERIODO, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)) AS MES_REF, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL+10)) AS DATA_INICIO, + LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS DATA_FIM + FROM DUAL + CONNECT BY LEVEL <= 12 +), +PARAM_CATEGORIA_TICKET AS ( + SELECT + 500 AS LIM_TICKET_VALOR, + 3 AS LIM_TICKET_FREQUENCIA + FROM DUAL +), +FATURAMENTO AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + SUM(NF.VLATEND) AS FATURAMENTO_BRUTO, + SUM(NF.VLCUSTOFIN) AS CUSTO_BRUTO + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +DEVOLUCAO AS ( + SELECT + P.ID_PERIODO, + DV.CODCLI, + SUM(DV.VLDEVOLUCAO) AS DEVOLUCAO + FROM VIEW_DEVOL_RESUMO_FATURAMENTO DV + JOIN PERIODOS P + ON DV.DTENT BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE DV.DTCANCEL IS NULL + AND DV.CONDVENDA IN (1,7) + GROUP BY + P.ID_PERIODO, + DV.CODCLI +), +FREQUENCIA AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + COUNT(DISTINCT NF.NUMTRANSVENDA) AS FREQUENCIA + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +BASE_CLIENTE AS ( + SELECT + P.ID_PERIODO, + P.MES_REF, + F.CODCLI, + NVL(F.FATURAMENTO_BRUTO,0) AS FATURAMENTO_BRUTO, + NVL(D.DEVOLUCAO,0) AS DEVOLUCAO, + NVL(FR.FREQUENCIA,0) AS FREQUENCIA, + NVL(F.FATURAMENTO_BRUTO,0) - NVL(D.DEVOLUCAO,0) AS FATURAMENTO_LIQUIDO, + NVL(F.CUSTO_BRUTO,0) AS CUSTO_LIQUIDO + FROM PERIODOS P + JOIN FATURAMENTO F ON F.ID_PERIODO = P.ID_PERIODO + LEFT JOIN DEVOLUCAO D + ON D.ID_PERIODO = F.ID_PERIODO + AND D.CODCLI = F.CODCLI + LEFT JOIN FREQUENCIA FR + ON FR.ID_PERIODO = F.ID_PERIODO + AND FR.CODCLI = F.CODCLI +), +CLIENTE_TICKET AS ( + SELECT + B.*, + ROUND( + B.FATURAMENTO_LIQUIDO / NULLIF(B.FREQUENCIA,0), + 2) AS TICKET_MEDIO_CLI, + CASE + WHEN ROUND(B.FATURAMENTO_LIQUIDO / NULLIF(B.FREQUENCIA,0),2) >= PT.LIM_TICKET_VALOR + AND B.FREQUENCIA >= PT.LIM_TICKET_FREQUENCIA + THEN 'DIAMANTE' + WHEN ROUND(B.FATURAMENTO_LIQUIDO / NULLIF(B.FREQUENCIA,0),2) < PT.LIM_TICKET_VALOR + AND B.FREQUENCIA >= PT.LIM_TICKET_FREQUENCIA + THEN 'PRATA' + WHEN ROUND(B.FATURAMENTO_LIQUIDO / NULLIF(B.FREQUENCIA,0),2) >= PT.LIM_TICKET_VALOR + AND B.FREQUENCIA < PT.LIM_TICKET_FREQUENCIA + THEN 'OURO' + ELSE 'BRONZE' + END AS CATEGORIA_TICKET + FROM BASE_CLIENTE B + CROSS JOIN PARAM_CATEGORIA_TICKET PT +) +SELECT + ID_PERIODO, + TO_CHAR(MES_REF,'MM/YYYY') AS PERIODO_REFERENCIA, + CATEGORIA_TICKET, + COUNT(DISTINCT CODCLI) AS QTD_CLIENTES, + SUM(FREQUENCIA) AS FREQUENCIA_TOTAL, + ROUND(SUM(FATURAMENTO_BRUTO),2) AS FATURAMENTO_BRUTO, + ROUND(SUM(DEVOLUCAO),2) AS DEVOLUCAO, + ROUND(SUM(FATURAMENTO_LIQUIDO),2) AS FATURAMENTO_LIQUIDO, + ROUND( + SUM(FATURAMENTO_BRUTO) + / + NULLIF(SUM(FREQUENCIA),0), + 2) AS TICKET_MEDIO, + ROUND( + (SUM(FATURAMENTO_LIQUIDO) - SUM(CUSTO_LIQUIDO)) + / + NULLIF(SUM(FATURAMENTO_LIQUIDO),0), + 4) AS MARGEM +FROM CLIENTE_TICKET +GROUP BY + ID_PERIODO, + MES_REF, + CATEGORIA_TICKET +ORDER BY + ID_PERIODO, + CATEGORIA_TICKET; + + +-------------------------- +Valores_Periodo +-------------------------- + +WITH PERIODOS AS ( + SELECT + LEVEL AS ID_PERIODO, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1)) AS MES_REF, + ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL+10)) AS DATA_INICIO, + LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE,'MM'), -(LEVEL-1))) AS DATA_FIM + FROM DUAL + CONNECT BY LEVEL <= 12 +), +FATURAMENTO AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + SUM(NF.VLATEND) AS FATURAMENTO_BRUTO, + SUM(NF.VLCUSTOFIN) AS CUSTO_BRUTO + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +DEVOLUCAO AS ( + SELECT + P.ID_PERIODO, + DV.CODCLI, + SUM(DV.VLDEVOLUCAO) AS DEVOLUCAO + FROM VIEW_DEVOL_RESUMO_FATURAMENTO DV + JOIN PERIODOS P + ON DV.DTENT BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE DV.DTCANCEL IS NULL + AND DV.CONDVENDA IN (1,7) + GROUP BY + P.ID_PERIODO, + DV.CODCLI +), +FREQUENCIA AS ( + SELECT + P.ID_PERIODO, + NF.CODCLI, + COUNT(DISTINCT NF.NUMTRANSVENDA) AS FREQUENCIA + FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF + JOIN PERIODOS P + ON NF.DTSAIDA BETWEEN P.DATA_INICIO AND P.DATA_FIM + WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL + GROUP BY + P.ID_PERIODO, + NF.CODCLI +), +BASE AS ( + SELECT + P.ID_PERIODO, + P.MES_REF, + F.CODCLI, + NVL(F.FATURAMENTO_BRUTO,0) AS FATURAMENTO_BRUTO, + NVL(F.CUSTO_BRUTO,0) AS CUSTO_BRUTO, + NVL(D.DEVOLUCAO,0) AS DEVOLUCAO, + NVL(FR.FREQUENCIA,0) AS FREQUENCIA + FROM PERIODOS P + JOIN FATURAMENTO F ON F.ID_PERIODO = P.ID_PERIODO + LEFT JOIN DEVOLUCAO D + ON D.ID_PERIODO = F.ID_PERIODO + AND D.CODCLI = F.CODCLI + LEFT JOIN FREQUENCIA FR + ON FR.ID_PERIODO = F.ID_PERIODO + AND FR.CODCLI = F.CODCLI +) +SELECT + ID_PERIODO, + TO_CHAR(MES_REF,'MM/YYYY') AS PERIODO_REFERENCIA, + COUNT(DISTINCT CODCLI) AS QTD_CLIENTES, + SUM(FREQUENCIA) AS FREQUENCIA_TOTAL, + ROUND(SUM(FATURAMENTO_BRUTO),2) AS FATURAMENTO_BRUTO, + ROUND(SUM(DEVOLUCAO),2) AS DEVOLUCAO, + ROUND(SUM(FATURAMENTO_BRUTO - DEVOLUCAO),2) AS FATURAMENTO_LIQUIDO, + ROUND(SUM(CUSTO_BRUTO),2) AS CUSTO_BRUTO, + ROUND( + (SUM(FATURAMENTO_BRUTO - DEVOLUCAO) - SUM(CUSTO_BRUTO)) + / + NULLIF(SUM(FATURAMENTO_BRUTO - DEVOLUCAO),0), + 4) AS MARGEM, + ROUND( + SUM(FATURAMENTO_BRUTO) + / + NULLIF(SUM(FREQUENCIA), 0), + 2) AS TICKET_MEDIO +FROM BASE +GROUP BY + ID_PERIODO, + MES_REF +ORDER BY + ID_PERIODO \ No newline at end of file diff --git a/DITO-original(luiz).sql b/DITO-original(luiz).sql new file mode 100644 index 0000000..49ff44a --- /dev/null +++ b/DITO-original(luiz).sql @@ -0,0 +1,162 @@ +SELECT + VENDAS.CODFILIAL CODIGO_FILIAL + ,PCCLIENT.CLIENTE NOME_CLIENTE + ,PCCLIENT.EMAIL EMAIL_CLIENTE + ,REGEXP_REPLACE(PCCLIENT.CGCENT, '[^0-9]', '') CPF + ,PCCLIENT.CODCLI CODIGO_CLIENTE + ,PCCLIENT.TIPOFJ TIPO_PESSOA + ,PCCLIENT.SEXO + ,PCCLIENT.DTNASC DATA_NASCIMENTO + ,PCCIDADE.NOMECIDADE + ,PCCLIENT.TELENT TELEFONE + ,PCCLIENT.ENDERENT ENDERECO + ,PCCLIENT.NUMEROENT NUMERO + ,PCCLIENT.BAIRROENT BAIRRO + ,PCCLIENT.ESTENT ESTADO + ,PCCLIENT.DTCADASTRO DATA_CADASTO + ,PCCLIENT.DTPRIMCOMPRA DATA_PRIMEIRA_COMPRA + ,PCCLIENT.DTULTCOMP DATA_ULTIMA_COMPRA + ,PCPEDC.DATA DATA_COMPRA + ,PCPEDC.NUMPED NUMERO_PEDIDO + ,PCSUPERV.NOME NOME_LOJA + ,PCPEDC.CODSUPERVISOR CODIGO_SUPERVISOR + ,PCUSUARI.NOME NOME_VENDEDOR + ,PCPEDC.CODUSUR CODIGO_VENDEDOR + ,PCCOB.COBRANCA METODO_PAGAMENTO + ,PCPLPAG.DESCRICAO PLANO_DE_PAGAMENTO + ,( SELECT SUM(P.QT*P.PVENDA) + FROM PCPEDI P + WHERE P.NUMPED = PCPEDC.NUMPED ) TOTAL_COMPRA + ,( SELECT COUNT(1) + FROM PCPEDI P + WHERE P.NUMPED + = PCPEDC.NUMPED ) QTD_TOTAL_PRODUTO + ,GREATEST( + (PCPEDC.VLTABELA - + ( SELECT SUM(P.QT*P.PVENDA) + FROM PCPEDI P + WHERE P.NUMPED = PCPEDC.NUMPED ) ),0) TOTAL_DESCONTO + ,( SELECT SUM(P.QT*P.PVENDA) + FROM PCPEDI P + WHERE P.NUMPED = PCPEDC.NUMPED + AND P.CODPROD = 48500 ) TOTAL_FRETE + ,VENDAS.CODPROD ID_PRODUTO + ,PCPRODUT.DESCRICAO NOME_PRODUTO + ,VENDAS.QT QTDE_PRODUTO + ,( VENDAS.VLVENDA / DECODE(VENDAS.QT,0,1,VENDAS.QT) ) PRECO_PRODUTO + ,'VENDA' TIPO_FATURAMENTO + ,VENDAS.VLVENDA SUB_TOTAL + ,PCCATEGORIA.CATEGORIA CATEGORIA_PRODUTO + ,PCSECAO.DESCRICAO SECAO_PRODUTO + ,PCDEPTO.DESCRICAO DEPARTAMENTO_PRODUTO + ,ESTPARCEIRO.nome NOME_PARCEIRO + ,ESTPARCEIRO.ID CODIGO_PARCEIRO + ,ESTPARCEIRO.TELEFONE TELEFONE_PARCEIRO + FROM view_vendas_resumo_faturamento VENDAS, PCPRODUT, PCCLIENT, PCUSUARI, PCSUPERV, PCCOB, PCPLPAG, + ESTPARCEIRO, PCDEPTO, PCSECAO, PCCATEGORIA, PCCIDADE, PCPEDC +WHERE VENDAS.CODPROD = PCPRODUT.CODPROD + AND VENDAS.CODCLI = PCCLIENT.CODCLI + AND VENDAS.NUMPED = PCPEDC.NUMPED + AND PCCLIENT.CODCIDADE = PCCIDADE.CODCIDADE (+) + AND VENDAS.CODUSUR = PCUSUARI.CODUSUR + AND PCPEDC.CODSUPERVISOR = PCSUPERV.CODSUPERVISOR + AND VENDAS.CODCOB = PCCOB.CODCOB + AND VENDAS.CODPLPAG = PCPLPAG.CODPLPAG + AND PCPEDC.CODUSUR3 = ESTPARCEIRO.ID (+) + AND PCPRODUT.CODEPTO = PCDEPTO.CODEPTO + AND PCPRODUT.CODSEC = PCSECAO.CODSEC + AND PCPRODUT.CODSEC = PCCATEGORIA.CODSEC (+) + AND PCPRODUT.CODCATEGORIA = PCCATEGORIA.CODCATEGORIA (+) + AND VENDAS.CONDVENDA IN (1, 7) + AND VENDAS.CODCLI NOT IN (1) + AND VENDAS.DTSAIDA >= TRUNC(SYSDATE) - (365*4) + +UNION ALL + +SELECT + DEVOLUCAO.CODFILIAL CODIGO_FILIAL + ,PCCLIENT.CLIENTE NOME_CLIENTE + ,PCCLIENT.EMAIL EMAIL_CLIENTE + ,REGEXP_REPLACE(PCCLIENT.CGCENT, '[^0-9]', '') CPF + ,PCCLIENT.CODCLI CODIGO_CLIENTE + ,PCCLIENT.TIPOFJ TIPO_PESSOA + ,PCCLIENT.SEXO + ,PCCLIENT.DTNASC DATA_NASCIMENTO + ,PCCIDADE.NOMECIDADE + ,PCCLIENT.TELENT TELEFONE + ,PCCLIENT.ENDERENT ENDERECO + ,PCCLIENT.NUMEROENT NUMERO + ,PCCLIENT.BAIRROENT BAIRRO + ,PCCLIENT.ESTENT ESTADO + ,PCCLIENT.DTCADASTRO DATA_CADASTO + ,PCCLIENT.DTPRIMCOMPRA DATA_PRIMEIRA_COMPRA + ,PCCLIENT.DTULTCOMP DATA_ULTIMA_COMPRA + ,DEVOLUCAO.DTENT DATA_COMPRA + ,DEVOLUCAO.NUMPED NUMERO_PEDIDO + ,PCSUPERV.NOME NOME_LOJA + ,PCPEDC.CODSUPERVISOR CODIGO_SUPERVISOR + ,PCUSUARI.NOME NOME_VENDEDOR + ,DEVOLUCAO.CODUSUR CODIGO_VENDEDOR + ,PCCOB.COBRANCA METODO_PAGAMENTO + ,PCPLPAG.DESCRICAO PLANO_DE_PAGAMENTO + ,DEVOLUCAO.VLDEVOLUCAO * (-1) TOTAL_COMPRA + ,( SELECT COUNT(1) + FROM PCMOV M + WHERE M.NUMTRANSENT + = DEVOLUCAO.NUMTRANSENT ) QTD_TOTAL_PRODUTO + ,( ( SELECT SUM(M.QT * M.PTABELA) + FROM PCMOV M + WHERE M.NUMTRANSENT = DEVOLUCAO.NUMTRANSENT ) - DEVOLUCAO.VLDEVOLUCAO ) * (-1) TOTAL_DESCONTO + ,0 TOTAL_FRETE + ,DEVOLUCAO.CODPROD ID_PRODUTO + ,PCPRODUT.DESCRICAO NOME_PRODUTO + ,DEVOLUCAO.QT * (-1) QTDE_PRODUTO + ,( DEVOLUCAO.VLDEVOLUCAO / DECODE(DEVOLUCAO.QT,0,1,DEVOLUCAO.QT) ) * (-1) PRECO_PRODUTO + ,'DEVOLUCAO' TIPO_FATURAMENTO + ,DEVOLUCAO.VLDEVOLUCAO * (-1) SUB_TOTAL + ,PCCATEGORIA.CATEGORIA CATEGORIA_PRODUTO + ,PCSECAO.DESCRICAO SECAO_PRODUTO + ,PCDEPTO.DESCRICAO DEPARTAMENTO_PRODUTO + ,ESTPARCEIRO.nome NOME_PARCEIRO + ,ESTPARCEIRO.ID CODIGO_PARCEIRO + ,ESTPARCEIRO.TELEFONE TELEFONE_PARCEIRO + FROM view_devol_resumo_faturamento DEVOLUCAO, PCPEDC, PCPRODUT, PCCLIENT, PCUSUARI, PCSUPERV, PCCOB, PCPLPAG, + PCDEPTO, PCSECAO, PCCATEGORIA, PCCIDADE, ESTPARCEIRO +WHERE DEVOLUCAO.NUMPED = PCPEDC.NUMPED + AND PCPEDC.CODUSUR3 = ESTPARCEIRO.ID (+) + AND DEVOLUCAO.CODPROD = PCPRODUT.CODPROD + AND DEVOLUCAO.CODCLI = PCCLIENT.CODCLI + AND PCCLIENT.CODCIDADE = PCCIDADE.CODCIDADE (+) + AND DEVOLUCAO.CODUSUR = PCUSUARI.CODUSUR + AND PCPEDC.CODSUPERVISOR = PCSUPERV.CODSUPERVISOR + AND DEVOLUCAO.CODCOB = PCCOB.CODCOB + AND DEVOLUCAO.CODPLPAG = PCPLPAG.CODPLPAG + AND PCPRODUT.CODEPTO = PCDEPTO.CODEPTO + AND PCPRODUT.CODSEC = PCSECAO.CODSEC + AND PCPRODUT.CODSEC = PCCATEGORIA.CODSEC (+) + AND PCPRODUT.CODCATEGORIA = PCCATEGORIA.CODCATEGORIA (+) + AND DEVOLUCAO.CONDVENDA IN (1, 7, 8) + AND DEVOLUCAO.CODCLI NOT IN (1) + AND DEVOLUCAO.DTENT >= TRUNC(SYSDATE) - (365*4) + + + -- batendo valores + + + SELECT + 'QUERY CONFERÊNCIA' AS ORIGEM, + (SELECT SUM(VLVENDA) FROM VIEW_VENDAS_RESUMO_FATURAMENTO + WHERE CONDVENDA IN (1,7) AND CODCLI NOT IN (1) AND EXTRACT(YEAR FROM DTSAIDA) = 2025) AS VENDA_BRUTA, + (SELECT SUM(VLDEVOLUCAO) FROM VIEW_DEVOL_RESUMO_FATURAMENTO + WHERE DTCANCEL IS NULL AND EXTRACT(YEAR FROM DTENT) = 2025) AS DEVOLUCAO +FROM DUAL + +UNION ALL + +SELECT + 'VIEW DITO (SOMA DIRETA)' AS ORIGEM, + SUM(CASE WHEN TIPO_FATURAMENTO = 'VENDA' THEN SUB_TOTAL ELSE 0 END) AS VENDA_BRUTA, + SUM(CASE WHEN TIPO_FATURAMENTO = 'DEVOLUCAO' THEN ABS(SUB_TOTAL) ELSE 0 END) AS DEVOLUCAO +FROM SEVEN.ESV_DITO_BASE_COMPRA +WHERE EXTRACT(YEAR FROM DATA_COMPRA) = 2025 + \ No newline at end of file diff --git a/DITO-reformulado.sql b/DITO-reformulado.sql new file mode 100644 index 0000000..06a140c --- /dev/null +++ b/DITO-reformulado.sql @@ -0,0 +1,293 @@ +-- 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 + 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' \ No newline at end of file diff --git a/TABLE_HIST_BLOQ_SEMANAL.sql b/TABLE_HIST_BLOQ_SEMANAL.sql new file mode 100644 index 0000000..b640808 --- /dev/null +++ b/TABLE_HIST_BLOQ_SEMANAL.sql @@ -0,0 +1,267 @@ +-- Table HIST_BLOQUEIO_SEMANAL + +-- CREATE TABLE + + CREATE TABLE HIST_BLOQUEIO_SABADO ( + DATA_SABADO DATE NOT NULL, + TIPO_BLOQUEIO VARCHAR2(30) NOT NULL, + CODFILIAL VARCHAR2(10) NOT NULL, + CODPROD NUMBER NOT NULL, + DESCRICAO VARCHAR2(200), + MARCA VARCHAR2(80), + QTESTGER NUMBER(18,4), + QT NUMBER(18,4), + CUSTOFIN NUMBER(18,6), + VALOR NUMBER(18,2), + DATA_TIPO DATE, -- (DADOS.DATA) + CODMOTIVO NUMBER, + MOTIVO VARCHAR2(200), + CODFUNC NUMBER, + FUNCIONARIO VARCHAR2(120), + HISTORICO VARCHAR2(4000), + FAIXA_PRIM VARCHAR2(30), + DT_CARGA TIMESTAMP DEFAULT SYSTIMESTAMP NOT NULL, + CONSTRAINT PK_HIST_BLOQ_SAB PRIMARY KEY + (DATA_SABADO, CODFILIAL, CODPROD, TIPO_BLOQUEIO) +); +CREATE INDEX IX_HIST_BLOQ_SAB_01 + ON HIST_BLOQUEIO_SABADO (CODFILIAL, CODPROD, DATA_SABADO); +CREATE INDEX IX_HIST_BLOQ_SAB_02 + ON HIST_BLOQUEIO_SABADO (DATA_SABADO, TIPO_BLOQUEIO, FAIXA_PRIM); + + + +-- CREATE PROCEDURE + +CREATE OR REPLACE PROCEDURE PRC_SNAPSHOT_BLOQUEIO_SABADO ( + P_DATA_BASE IN DATE DEFAULT SYSDATE +) AS + V_SABADO DATE; +BEGIN + V_SABADO := TRUNC(P_DATA_BASE,'IW') + 5; -- sábado + DELETE FROM HIST_BLOQUEIO_SABADO + WHERE DATA_SABADO = V_SABADO; + INSERT INTO HIST_BLOQUEIO_SABADO ( + DATA_SABADO, TIPO_BLOQUEIO, CODFILIAL, CODPROD, + DESCRICAO, MARCA, QTESTGER, + QT, CUSTOFIN, VALOR, + DATA_TIPO, CODMOTIVO, MOTIVO, CODFUNC, FUNCIONARIO, HISTORICO, + FAIXA_PRIM, DT_CARGA + ) + WITH + /* --------------------------------------------------------- + BASE ESTOQUE (fonte de quantidades da 9871) + --------------------------------------------------------- */ + BASE_EST AS ( + SELECT + E.CODFILIAL, + E.CODPROD, + NVL(E.QTBLOQUEADA,0) AS QT_BLOQ_TOTAL, + NVL(E.QTINDENIZ,0) AS QT_AVARIA, + NVL(E.QTEXPOSICAO,0) AS QT_EXPOSICAO, + E.QTESTGER, + NVL(E.CUSTOFIN,0) AS CUSTOFIN + FROM PCEST E + ), + /* --------------------------------------------------------- + ÚLTIMO MOV 53 (só para DATA/CODMOTIVO/CODFUNC/HIST) + --------------------------------------------------------- */ + MOV53 AS ( + SELECT + CODFILIAL, CODPROD, + TRUNC(DTINCLUSAO) AS DATA_EXPO, + CODMOTIVO, + CODFUNC, + HISTORICO + FROM ( + SELECT + M.*, + ROW_NUMBER() OVER ( + PARTITION BY M.CODFILIAL, M.CODPROD + ORDER BY M.DTINCLUSAO DESC, M.ROWID DESC + ) RN + FROM ESTMOVBLOQESTOQUE M + WHERE M.CODMOTIVO IN (53) + ) + WHERE RN = 1 + ), + /* --------------------------------------------------------- + ÚLTIMO EA (AVARIA) para DATA/CODMOTIVO/CODFUNC/HIST + --------------------------------------------------------- */ + EA AS ( + SELECT + CODFILIAL, CODPROD, + TRUNC(DATA) AS DATA_EA, + CODMOTIVO, + CODFUNC, + HISTORICO + FROM ( + SELECT + M.*, + ROW_NUMBER() OVER ( + PARTITION BY M.CODFILIAL, M.CODPROD + ORDER BY TRUNC(M.DATA) DESC, M.ROWID DESC + ) RN + FROM ESTMOVBLOQESTOQUE M + WHERE M.TIPO = 'EA' + ) + WHERE RN = 1 + ), + /* --------------------------------------------------------- + Data ENTRADA (último B no log, exceto 9871) igual 8189 + --------------------------------------------------------- */ + DT_ENTRADA AS ( + SELECT CODFILIAL, CODPROD, MAX(TRUNC(DATA)) AS DATA_ENT + FROM ESTLOGBLOQESTOQUE + WHERE PROGRAMA NOT LIKE '%9871%' + AND TIPOBLOQUEIO = 'B' + GROUP BY CODFILIAL, CODPROD + ), + /* --------------------------------------------------------- + EXPOSIÇÃO (lógica 9871) + --------------------------------------------------------- */ + EXPOSICAO AS ( + SELECT + 'BLOQUEIO EXPOSICAO' AS TIPO_BLOQUEIO, + B.QT_EXPOSICAO AS QUANTIDADE, + M53.DATA_EXPO AS DATA, + B.CODPROD, + B.CODFILIAL, + M53.CODMOTIVO, + M53.CODFUNC, + M53.HISTORICO + FROM BASE_EST B + LEFT JOIN MOV53 M53 + ON M53.CODFILIAL = B.CODFILIAL + AND M53.CODPROD = B.CODPROD + WHERE B.QT_EXPOSICAO > 0 + ), + /* --------------------------------------------------------- + MANUAL (lógica 9871) = QTBLOQMANUAL - QTEXPOSICAO + --------------------------------------------------------- */ + MANUAL AS ( + SELECT + 'BLOQUEIO MANUAL' AS TIPO_BLOQUEIO, + GREATEST(NVL(EBP.QTBLOQMANUAL,0) - B.QT_EXPOSICAO, 0) AS QUANTIDADE, + TRUNC(EBP.DTPRIMBLOQUEIO) AS DATA, + B.CODPROD, + B.CODFILIAL, + CAST(NULL AS NUMBER) AS CODMOTIVO, + CAST(NULL AS NUMBER) AS CODFUNC, + CAST(NULL AS VARCHAR2(4000)) AS HISTORICO + FROM BASE_EST B + LEFT JOIN ESTBLOQUEIOPRODUTO EBP + ON EBP.CODFILIAL = B.CODFILIAL + AND EBP.CODPROD = B.CODPROD + WHERE GREATEST(NVL(EBP.QTBLOQMANUAL,0) - B.QT_EXPOSICAO, 0) > 0 + ), + /* --------------------------------------------------------- + ENTRADA (lógica 9871 = 8189) + Entrada = QTBLOQUEADA - QTINDENIZ - QTBLOQMANUAL + --------------------------------------------------------- */ + ENTRADA AS ( + SELECT + 'BLOQUEIO ENTRADA' AS TIPO_BLOQUEIO, + GREATEST(B.QT_BLOQ_TOTAL - B.QT_AVARIA - NVL(EBP.QTBLOQMANUAL,0), 0) AS QUANTIDADE, + X.DATA_ENT AS DATA, + B.CODPROD, + B.CODFILIAL, + CAST(NULL AS NUMBER) AS CODMOTIVO, + CAST(NULL AS NUMBER) AS CODFUNC, + CAST(NULL AS VARCHAR2(4000)) AS HISTORICO + FROM BASE_EST B + LEFT JOIN ESTBLOQUEIOPRODUTO EBP + ON EBP.CODFILIAL = B.CODFILIAL + AND EBP.CODPROD = B.CODPROD + INNER JOIN DT_ENTRADA X + ON X.CODFILIAL = B.CODFILIAL + AND X.CODPROD = B.CODPROD + WHERE GREATEST(B.QT_BLOQ_TOTAL - B.QT_AVARIA - NVL(EBP.QTBLOQMANUAL,0), 0) > 0 + ), + /* --------------------------------------------------------- + AVARIA (quantidade vem do PCEST.QTINDENIZ) + --------------------------------------------------------- */ + AVARIA AS ( + SELECT + 'BLOQUEIO AVARIA' AS TIPO_BLOQUEIO, + B.QT_AVARIA AS QUANTIDADE, + EA.DATA_EA AS DATA, + B.CODPROD, + B.CODFILIAL, + EA.CODMOTIVO, + EA.CODFUNC, + EA.HISTORICO + FROM BASE_EST B + LEFT JOIN EA + ON EA.CODFILIAL = B.CODFILIAL + AND EA.CODPROD = B.CODPROD + WHERE B.QT_AVARIA > 0 + ), + DADOS AS ( + SELECT * FROM EXPOSICAO + UNION ALL + SELECT * FROM MANUAL + UNION ALL + SELECT * FROM ENTRADA + UNION ALL + SELECT * FROM AVARIA + ) + SELECT + V_SABADO AS DATA_SABADO, + DADOS.TIPO_BLOQUEIO, + TO_CHAR(DADOS.CODFILIAL) AS CODFILIAL, + DADOS.CODPROD, + P.DESCRICAO, + M.MARCA, + E.QTESTGER, + DADOS.QUANTIDADE AS QT, + ROUND(E.CUSTOFIN, 2) AS CUSTOFIN, + ROUND(DADOS.QUANTIDADE * E.CUSTOFIN, 2) AS VALOR, + DADOS.DATA AS DATA_TIPO, + DADOS.CODMOTIVO, + TD.MOTIVO, + DADOS.CODFUNC, + F.NOME AS FUNCIONARIO, + DADOS.HISTORICO, + CASE + WHEN DADOS.DATA IS NULL THEN '?' + WHEN V_SABADO - TRUNC(DADOS.DATA) <= 3 THEN '1 - 0 A 3 DIAS' + WHEN V_SABADO - TRUNC(DADOS.DATA) <= 7 THEN '2 - 4 A 7 DIAS' + WHEN V_SABADO - TRUNC(DADOS.DATA) <= 14 THEN '3 - 8 A 14 DIAS' + WHEN V_SABADO - TRUNC(DADOS.DATA) <= 30 THEN '4 - 15 A 30 DIAS' + WHEN V_SABADO - TRUNC(DADOS.DATA) <= 60 THEN '5 - 30 A 60 DIAS' + ELSE '6 - 60 + DIAS' + END AS FAIXA_PRIM, + SYSTIMESTAMP AS DT_CARGA + FROM DADOS + JOIN PCPRODUT P + ON P.CODPROD = DADOS.CODPROD + JOIN PCEST E + ON E.CODPROD = DADOS.CODPROD + AND E.CODFILIAL = DADOS.CODFILIAL + LEFT JOIN PCMARCA M + ON M.CODMARCA = P.CODMARCA + LEFT JOIN PCTABDEV TD + ON TD.CODDEVOL = DADOS.CODMOTIVO + LEFT JOIN PCEMPR F + ON F.MATRICULA = DADOS.CODFUNC; + + COMMIT; +END; +/ + + +-- job (todo sábado) + +BEGIN + DBMS_SCHEDULER.CREATE_JOB ( + job_name => 'JOB_SNAPSHOT_BLOQUEIO_SABADO', + job_type => 'STORED_PROCEDURE', + job_action => 'PRC_SNAPSHOT_BLOQUEIO_SABADO', + start_date => SYSTIMESTAMP, + repeat_interval => 'FREQ=WEEKLY;BYDAY=SAT;BYHOUR=23;BYMINUTE=55;BYSECOND=0', + enabled => TRUE + ); +END; +/ + diff --git a/qryProdutos9930.sql b/qryProdutos9930.sql new file mode 100644 index 0000000..ac51f89 --- /dev/null +++ b/qryProdutos9930.sql @@ -0,0 +1,2366 @@ +SELECT rank() over (order by ( nvl(VENDAMESATUAL.QTVENDAMES,0) + + nvl(VENDAMESANT.QTVENDAMES1,0) + + nvl(VENDAMESANT.QTVENDAMES2,0) + + nvl(VENDAMESANT.QTVENDAMES3,0) ) DESC) rankqtdevenda + ,rank() over (order by ( NVL(VENDAMESATUAL.VLVENDAMES,0) - NVL(VENDAMESATUAL.VLCUSTOMES,0) ) DESC) rankperclucro + ,rank() over (order by ( nvl(VENDAMESATUAL.VLVENDAMES,0) + + nvl(VENDAMESANT.VLVENDAMES1,0) + + nvl(VENDAMESANT.VLVENDAMES2,0) + + nvl(VENDAMESANT.VLVENDAMES3,0) ) DESC) rankvalorvenda + ,( SELECT ESTVENDAPRODMES.QTMESES FROM ESTVENDAPRODMES + WHERE ESTVENDAPRODMES.CODPROD = PCPRODUT.CODPROD ) QTMESESVENDA + ,CASE WHEN ( nvl(VENDAMESATUAL.QTVENDAMES,0) + + nvl(VENDAMESANT.QTVENDAMES1,0) + + nvl(VENDAMESANT.QTVENDAMES2,0) + + nvl(VENDAMESANT.QTVENDAMES3,0) ) > 0 THEN + ( ( nvl(VENDAMESATUAL.VLVENDAMES,0) + + nvl(VENDAMESANT.VLVENDAMES1,0) + + nvl(VENDAMESANT.VLVENDAMES2,0) + + nvl(VENDAMESANT.VLVENDAMES3,0) ) / + ( nvl(VENDAMESATUAL.QTVENDAMES,0) + + nvl(VENDAMESANT.QTVENDAMES1,0) + + nvl(VENDAMESANT.QTVENDAMES2,0) + + nvl(VENDAMESANT.QTVENDAMES3,0) ) ) + ELSE 0 END PRECOMEDIO + ,CASE WHEN ( nvl(VENDAMESATUAL.VLVENDAMES,0) + + nvl(VENDAMESANT.VLVENDAMES1,0) + + nvl(VENDAMESANT.VLVENDAMES2,0) + + nvl(VENDAMESANT.VLVENDAMES3,0) ) <> 0 THEN + ROUND(( ( ( nvl(VENDAMESATUAL.VLVENDAMES,0) + + nvl(VENDAMESANT.VLVENDAMES1,0) + + nvl(VENDAMESANT.VLVENDAMES2,0) + + nvl(VENDAMESANT.VLVENDAMES3,0) ) - + ( nvl(VENDAMESATUAL.VLCUSTOMES,0) + + nvl(VENDAMESANT.VLCUSTOFINMES1,0) + + nvl(VENDAMESANT.VLCUSTOFINMES2,0) + + nvl(VENDAMESANT.VLCUSTOFINMES3,0) ) ) / + ( nvl(VENDAMESATUAL.VLVENDAMES,0) + + nvl(VENDAMESANT.VLVENDAMES1,0) + + nvl(VENDAMESANT.VLVENDAMES2,0) + + nvl(VENDAMESANT.VLVENDAMES3,0) ) ) * 100,2) + ELSE 0 END PERLUCROTOTAL + ,PCEST.CODFILIAL + ,PCPRODUT.CODPROD + ,PCPRODUT.DESCRICAO + ,PCPRODUT.EMBALAGEM + ,esf_lista_produtos_similares(PCPRODUT.CODPROD) LISTA_PRODUTOS_SIMILARES + ,PCPRODUT.CUSTOREP PCOMPRA + ,PCPRODUT.DTPROXCOMPRA + ,PCPRODUT.PERCIPI + ,PCPRODUT.PERCST + ,PCPRODUT.PERCDESC + ,PCPRODUT.PCOMREP1 + ,PCPRODUT.PERCFRETE + ,PCTRIBUT.CODST + ,PCTRIBUT.MENSAGEM + ,PCPRODUT.UNIDADE + ,PCPRODUT.NOMEECOMMERCE + ,PCPRODUT.QTUNITCX + ,PCPRODUT.MULTIPLO + ,PCPRODUT.CODFAB + ,PCPRODUT.CODAUXILIAR + ,PCPRODUT.CODMARCA + ,PCPRODUT.TEMREPOS + ,PCFORNEC.PRAZOENTREGA + ,PCMARCA.MARCA + ,PCPRODUT.CODEPTO + ,PCPRODUT.TIPOPRODUTO + ,PCDEPTO.DESCRICAO NOMEDEPARTAMENTO + ,PCPRODUT.CODSEC + ,PCSECAO.DESCRICAO NOMESECAO + ,PCPRODUT.DADOSTECNICOS + ,PCPRODUT.CODCATEGORIA + ,PCCATEGORIA.CATEGORIA + ,PCSUBCATEGORIA.CODSUBCATEGORIA + ,PCSUBCATEGORIA.SUBCATEGORIA + ,PCPRODUT.CODFORNEC + ,PCFORNEC.CODFORNECPRINC + ,PCFORNEC.FORNECEDOR + ,PCPRODUT.CODCOMPRADOR + ,COMPRADOR.NOME NOMECOMPRADOR + ,PCPRODUT.PESOBRUTO + ,PCPRODUT.PESOLIQ + ,PCPRODUT.CLASSEVENDA + ,PCPRODUT.CLASSEESTOQUE + ,PCPRODUT.ENVIAECOMMERCE + ,PCPRODUT.LARGURAM3 + ,PCPRODUT.ALTURAM3 + ,PCPRODUT.COMPRIMENTOM3 + ,PCPRODUT.VOLUME + ,PCPRODUT.JUR_MARGEMMIN MARGEMMIN + ,DDE_PRODUTO.DDE DDEPRODUTO + ,DDE_SECAO.DDE DDESECAO + ,DDE_CATEGORIA.DDE DDECATEGORIA + ,( SELECT PCTABPR.PVENDA1 FROM PCTABPR WHERE PCTABPR.NUMREGIAO = 4 + AND PCTABPR.CODPROD = PCPRODUT.CODPROD ) PVENDA4 + ,( SELECT PCTABPR.PVENDA1 FROM PCTABPR WHERE PCTABPR.NUMREGIAO = 5 + AND PCTABPR.CODPROD = PCPRODUT.CODPROD ) PVENDA5 + ,( SELECT PCTABPR.PVENDA1 FROM PCTABPR WHERE PCTABPR.NUMREGIAO = 7 + AND PCTABPR.CODPROD = PCPRODUT.CODPROD ) PVENDA7 + ,( SELECT PCTABPR.PVENDA1 FROM PCTABPR WHERE PCTABPR.NUMREGIAO = 8 + AND PCTABPR.CODPROD = PCPRODUT.CODPROD ) PVENDA8 + ,( SELECT P.CODPROD FROM PCFORMPROD, PCPRODUT P + WHERE PCFORMPROD.CODPRODMP = PCPRODUT.CODPROD + AND PCFORMPROD.CODPRODACAB = P.CODPROD + AND P.DTEXCLUSAO IS NULL + AND ROWNUM = 1 ) CODKIT + ,( SELECT P.DESCRICAO FROM PCFORMPROD, PCPRODUT P + WHERE PCFORMPROD.CODPRODMP = PCPRODUT.CODPROD + AND PCFORMPROD.CODPRODACAB = P.CODPROD + AND P.DTEXCLUSAO IS NULL + AND ROWNUM = 1 ) DESCRICAOKIT + ,PCPRODUT.ESC_EXIBIRSITE + ,NVL(PCPRODUT.ESC_ATIVOSITE,'N') ESC_ATIVOSITE + ,CASE WHEN PCPRODUT.OBS2 = 'FL' THEN 'S' ELSE 'N' END OBS2 + ,CASE WHEN PCPRODUT.DTEXCLUSAO IS NULL THEN 'N' ELSE 'S' END EXCLUIDO + ,ESTPRODUCTECOMMERCE.informacoesecom INFORMACOESTECNICAS + --,PCPRODUT.INFORMACOESTECNICAS URLIMAGEM + , CASE WHEN PCPRODUT.URLIMAGEM IS NULL THEN 0 + WHEN INSTR(PCPRODUT.URLIMAGEM,';') = 0 THEN 1 + ELSE ( LENGTH(PCPRODUT.URLIMAGEM) - LENGTH(REPLACE(PCPRODUT.URLIMAGEM, ';'))) + 1 END QTDEIMAGENS + , CASE WHEN PROD_ECOMMERCE.ID IS NULL THEN 'NÃO' ELSE 'SIM' END PRODUTO_CADASTRADO_ECOMMERCE + ,PCPRODUT.URLIMAGEM + ,ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) CUSTOULTENT --PCEST.CUSTOULTENT + ,PCEST.CUSTOFIN + ,PCEST.CUSTOREP + ,PCEST.VALORULTENT + + ,(SELECT ESTFRETECOMPRA.VLFRETEFOB FROM PCMOV, ESTFRETECOMPRA + WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTCANCEL IS NULL + AND PCMOV.NUMNOTA = ESTFRETECOMPRA.NUMNOTA + AND PCMOV.CODPROD = ESTFRETECOMPRA.CODPROD + AND PCMOV.CODFORNEC = ESTFRETECOMPRA.CODFORNEC + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) + AND ROWNUM = 1 ) VLFRETE_AJUSTADO + ,PCPRODUT.DTCADASTRO + ,PCPRODUT.NBM + ,PCPRODUT.CODNCMEX + ,( SELECT PCMOVPREENT.NBM + FROM PCMOVPREENT + WHERE PCMOVPREENT.CODPROD = PCPRODUT.CODPROD + AND PCMOVPREENT.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOVPREENT M + WHERE M.CODPROD = PCMOVPREENT.CODPROD + AND M.DTMOV >= TRUNC(SYSDATE) - 360 ) + AND ROWNUM = 1 ) NCM_FORNECEDOR + ,( SELECT PCCEST.CODCEST FROM PCCESTPRODUTO, PCCEST + WHERE PCCESTPRODUTO.CODPROD = PCPRODUT.CODPROD + AND PCCESTPRODUTO.CODSEQCEST = PCCEST.CODIGO AND ROWNUM = 1 ) CODCEST + ,( SELECT PCCEST.DESCRICAOCEST FROM PCCESTPRODUTO, PCCEST + WHERE PCCESTPRODUTO.CODPROD = PCPRODUT.CODPROD + AND PCCESTPRODUTO.CODSEQCEST = PCCEST.CODIGO AND ROWNUM = 1 ) DESCRICAOCEST + ,PCTRIBFIGURA.CODFIGURA + ,PCTRIBFIGURA.DESCRICAO DESC_FIGURA_ENTRADA + ,PCFORNEC.ESTADO UF_FORNECEDOR + ,PCTRIBFIGURA.PERCICM + ,PCTRIBFIGURA.PERCREDICMS + ,ESTPRODUCTECOMMERCE.OBSESTOQUE + ,ESTPRODUCTECOMMERCE.CLASSECOMPRADOR + ,ESTPRODUCTECOMMERCE.CLASSEVENDA CLASSE01 + ,ESTPRODUCTECOMMERCE.CALCULARPRECOTINTOMETRICO + ,ESTPRODUCTECOMMERCE.QTUNITRESSUPRIMENTO + ,PCPRODUT.LETRABASETINTOMETRICO + ,CASE WHEN CAMPANHA.CODPROD IS NULL THEN 'NAO' ELSE 'SIM' END PRODUTO_EM_CAMPANHA + ,( SELECT MIN(E.DTMOV) FROM PCMOV E + WHERE E.CODPROD = PCPRODUT.CODPROD AND E.CODOPER = 'E' + AND NVL(E.QT,0) > 0 + AND E.DTCANCEL IS NULL) DTPRIMCOMPRA + ,( nvl(VENDAMESATUAL.QTVENDAMES,0) + + nvl(VENDAMESANT.QTVENDAMES1,0) + + nvl(VENDAMESANT.QTVENDAMES2,0) + + nvl(VENDAMESANT.QTVENDAMES3,0) ) QTVENDATOTAL + ,( nvl(VENDAMESATUAL.VLVENDAMES,0) + + nvl(VENDAMESANT.VLVENDAMES1,0) + + nvl(VENDAMESANT.VLVENDAMES2,0) + + nvl(VENDAMESANT.VLVENDAMES3,0) ) VLVENDATOTAL + ,( nvl(VENDAMESATUAL.VLCUSTOMES,0) + + nvl(VENDAMESANT.VLCUSTOFINMES1,0) + + nvl(VENDAMESANT.VLCUSTOFINMES2,0) + + nvl(VENDAMESANT.VLCUSTOFINMES3,0) ) VLCUSTOFINTOTAL + ,( SELECT SUM( (NVL(ESTOQUE_TOTAL.QTESTGER,0) - NVL(ESTOQUE_TOTAL.QTRESERV,0) + - GREATEST(NVL(ESTOQUE_TOTAL.QTBLOQUEADA,0),0) - NVL(ESTOQUE_TOTAL.QTPENDENTE,0) )) + FROM PCEST ESTOQUE_TOTAL + WHERE ESTOQUE_TOTAL.CODPROD = PCEST.CODPROD ) QTESTDISP_TOTAL + ,( SELECT SUM( (NVL(ESTOQUE_TOTAL.QTESTGER,0) - NVL(ESTOQUE_TOTAL.QTRESERV,0) - + GREATEST(NVL(ESTOQUE_TOTAL.QTBLOQUEADA,0),0) - NVL(ESTOQUE_TOTAL.QTPENDENTE,0) ) * ESTOQUE_TOTAL.CUSTOREP ) + FROM PCEST ESTOQUE_TOTAL + WHERE ESTOQUE_TOTAL.CODPROD = PCEST.CODPROD ) VLESTDISP_TOTAL + ,( SELECT SUM( (NVL(ESTOQUE_TOTAL.QTESTGER,0) - NVL(ESTOQUE_TOTAL.QTRESERV,0) - GREATEST(NVL(ESTOQUE_TOTAL.QTEXPOSICAO,0),0) + - GREATEST(NVL(ESTOQUE_TOTAL.QTINDENIZ,0),0) - NVL(ESTOQUE_TOTAL.QTPENDENTE,0) )) + FROM PCEST ESTOQUE_TOTAL + WHERE ESTOQUE_TOTAL.CODPROD = PCEST.CODPROD ) QTESTDISP_COMPRA_TOTAL + ,VENDAMESATUAL.VLVENDAMES + ,VENDAMESATUAL.QTVENDAMES + ,VENDAMESANT.VLVENDAMES1 + ,VENDAMESANT.VLCUSTOFINMES1 + ,VENDAMESANT.QTVENDAMES1 + ,VENDAMESANT.VLVENDAMES2 + ,VENDAMESANT.VLCUSTOFINMES2 + ,VENDAMESANT.QTVENDAMES2 + ,VENDAMESANT.VLVENDAMES3 + ,VENDAMESANT.VLCUSTOFINMES3 + ,VENDAMESANT.QTVENDAMES3 + ,CONSUMO.QT QTCONSUMO + ,NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) PRECO_A_VISTA + ,(SELECT PCPRECOPROM.DTULTALTER FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ) ALTERACAO_PRECO_A_VISTA + ,NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 2 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) PRECO_DEBITO + ,(SELECT PCPRECOPROM.DTULTALTER FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 2 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ) ALTERACAO_PRECO_DEBITO + ,NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) PRECO_CREDITO_1X + ,(SELECT PCPRECOPROM.DTULTALTER FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ) ALTERACAO_PRECO_CREDITO_1X + ,NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) PRECO_CREDITO_10X + ,(SELECT PCPRECOPROM.DTULTALTER FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ) ALTERACAO_PRECO_CREDITO_10X + + --DATA INICIO VIGENCIA + ,(SELECT PCPRECOPROM.DTINICIOVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 1 + AND ROWNUM = 1 ) DTINI_PRECO_A_VISTA + ,(SELECT PCPRECOPROM.DTINICIOVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 2 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 1 + AND ROWNUM = 1 ) DTINI_PRECO_DEBITO + ,(SELECT PCPRECOPROM.DTINICIOVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 1 + AND ROWNUM = 1 ) DTINI_PRECO_CREDITO_1X + ,(SELECT PCPRECOPROM.DTINICIOVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 1 + AND ROWNUM = 1 ) DTINI_PRECO_CREDITO_10X + --DATA FIM VIGENCIA + ,(SELECT PCPRECOPROM.DTFIMVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 1 + AND ROWNUM = 1 ) DTFIM_PRECO_A_VISTA + ,(SELECT PCPRECOPROM.DTFIMVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 2 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 1 + AND ROWNUM = 1 ) DTFIM_PRECO_DEBITO + ,(SELECT PCPRECOPROM.DTFIMVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 1 + AND ROWNUM = 1 ) DTFIM_PRECO_CREDITO_1X + ,(SELECT PCPRECOPROM.DTFIMVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 1 + AND ROWNUM = 1 ) DTFIM_PRECO_CREDITO_10X + + + ,( ((VENDAMESATUAL.VLVENDAMES - VENDAMESATUAL.VLCUSTOMES ) / + DECODE( VENDAMESATUAL.VLVENDAMES, 0, 1,VENDAMESATUAL.VLVENDAMES) ) * 100 ) PERCLUCRO + ,(SELECT CASE WHEN PCTABPR.PVENDA > 0 THEN + ROUND(( ( PCTABPR.PVENDA - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( PCTABPR.PVENDA * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL(PCTABPR.PVENDA,0) ) * 100,2) + ELSE 0 END MARGEMATUAL + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 1 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 1 ) MARGEMATUAL + + ,(SELECT CASE WHEN PCTABPR.PVENDA > 0 THEN + ROUND(( ( PCTABPR.PVENDA - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( PCTABPR.PVENDA * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL(PCTABPR.PVENDA,0) ) * 100,2) + ELSE 0 END MARGEMATUAL + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 4 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 4 ) MARGEMATUAL4 + + + ,(SELECT CASE WHEN PCTABPR.PVENDA > 0 THEN + ROUND(( ( PCTABPR.PVENDA - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( PCTABPR.PVENDA * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL(PCTABPR.PVENDA,0) ) * 100,2) + ELSE 0 END MARGEMATUAL + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 5 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 5 ) MARGEMATUAL5 + + ,(SELECT CASE WHEN PCTABPR.PVENDA > 0 THEN + ROUND(( ( PCTABPR.PVENDA - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( PCTABPR.PVENDA * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL(PCTABPR.PVENDA,0) ) * 100,2) + ELSE 0 END MARGEMATUAL + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 7 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 7 ) MARGEMATUAL7 + + ,(SELECT CASE WHEN PCTABPR.PVENDA > 0 THEN + ROUND(( ( PCTABPR.PVENDA - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( PCTABPR.PVENDA * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL(PCTABPR.PVENDA,0) ) * 100,2) + ELSE 0 END MARGEMATUAL + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 8 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 8 ) MARGEMATUAL8 + + --FILIAL 9 + ,NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) PRECO_A_VISTA_F9 + ,(SELECT PCPRECOPROM.DTULTALTER FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ) ALTERACAO_PRECO_A_VISTA_F9 + ,NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 2 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) PRECO_DEBITO_F9 + ,(SELECT PCPRECOPROM.DTULTALTER FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 2 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ) ALTERACAO_PRECO_DEBITO_F9 + ,NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) PRECO_CREDITO_1X_F9 + ,(SELECT PCPRECOPROM.DTULTALTER FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ) ALTERACAO_PRECO_CREDITO_1X_F9 + ,NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) PRECO_CREDITO_10X_F9 + ,(SELECT PCPRECOPROM.DTULTALTER FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ) ALTERACAO_PRECO_CREDITO_10X_F9 + +--DATA INICIO VIGENCIA + ,(SELECT PCPRECOPROM.DTINICIOVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 4 + AND ROWNUM = 1 ) DTINI_PRECO_A_VISTA_F9 + ,(SELECT PCPRECOPROM.DTINICIOVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 2 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 4 + AND ROWNUM = 1 ) DTINI_PRECO_DEBITO_F9 + ,(SELECT PCPRECOPROM.DTINICIOVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 4 + AND ROWNUM = 1 ) DTINI_PRECO_CREDITO_1X_F9 + ,(SELECT PCPRECOPROM.DTINICIOVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 4 + AND ROWNUM = 1 ) DTINI_PRECO_CREDITO_10X_F9 + --DATA FIM VIGENCIA + ,(SELECT PCPRECOPROM.DTFIMVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 4 + AND ROWNUM = 1 ) DTFIM_PRECO_A_VISTA_F9 + ,(SELECT PCPRECOPROM.DTFIMVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 2 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 4 + AND ROWNUM = 1 ) DTFIM_PRECO_DEBITO_F9 + ,(SELECT PCPRECOPROM.DTFIMVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 4 + AND ROWNUM = 1 ) DTFIM_PRECO_CREDITO_1X_F9 + ,(SELECT PCPRECOPROM.DTFIMVIGENCIA FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND PCPRECOPROM.NUMREGIAO = 4 + AND ROWNUM = 1 ) DTFIM_PRECO_CREDITO_10X_F9 + + + ,(SELECT CASE WHEN PCTABPR.PVENDA > 0 THEN + ROUND(( ( PCTABPR.PVENDA - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( PCTABPR.PVENDA * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL(PCTABPR.PVENDA,0) ) * 100,2) + ELSE 0 END MARGEMATUAL + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 4 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 4 ) MARGEMATUAL_F9 + --FILIAL 9 -FIM + + + ,(SELECT MAX(PCMOV.DTMOV) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) DATAULTCOMPRA + ,(SELECT MAX(PCMOV.PTABELA) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) PRECOULTCOMPRA + + ,( (SELECT MAX(PCMOV.PTABELA) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) + + (SELECT MAX(PCMOV.VLDESPFORANF) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTCANCEL IS NULL + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) ) PRECOULTCOMPRA_CHEIO + + ,(SELECT MAX(PCMOV.VALORULTENT) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTCANCEL IS NULL + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) VALORULTCOMPRA + ,(SELECT MAX(PCMOV.VLDESPFORANF) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTCANCEL IS NULL + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) VALORDESPFORANF + ,(SELECT MAX(PCMOV.QT) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) QTDEULTCOPRA + ,(SELECT MAX(PCMOV.CODFORNEC) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) CODFORNECULTCOMPRA + ,(SELECT MAX(PCMOV.CODFILIAL) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) CODFILIALULTCOMPRA + ,(SELECT MAX(PCMOV.VLFRETE) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) VLFRETEULTCOMPRA + ,(SELECT MAX(PCMOV.VLFRETECONHEC) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) VLFRETEFOBULTCOMPRA + ,(SELECT MAX(PCMOV.PERCST) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) PERCSTENTRADA + ,(SELECT MAX(PCMOV.ST) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) VLST + ,(SELECT MAX(PCMOV.VLDESPADICIONAL) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) VLSTGUIA + ,(SELECT MAX(PCMOV.PERCDESPADICIONAL) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) PERCSTGUIA + + ,( SELECT PCFORNEC.FORNECEDOR FROM PCFORNEC + WHERE PCFORNEC.CODFORNEC = (SELECT MAX(PCMOV.CODFORNEC) FROM PCMOV + WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) ) FORNECEDORULTCOMPRA + ,(SELECT MAX(PCMOV.PUNIT) FROM PCMOV WHERE PCMOV.CODPROD = PCPRODUT.CODPROD + AND PCMOV.CODOPER = 'E' + AND PCMOV.DTCANCEL IS NULL + AND NVL(PCMOV.QT,0) > 0 + AND PCMOV.DTMOV = ( SELECT MAX(M.DTMOV) FROM PCMOV M WHERE M.CODPROD = PCMOV.CODPROD + AND M.CODOPER = 'E' + AND NVL(M.QT,0) > 0 + AND M.DTMOV >= TO_DATE('01/01/2019', 'DD/MM/YYYY') ) ) VLULTPRECONF + ,( EST_F1.QTESTGER - NVL(EST_F1.QTRESERV,0) - NVL(EST_F1.QTPENDENTE,0) - GREATEST(NVL(EST_F1.QTBLOQUEADA,0),0) ) QTDISP_F1 + ,( EST_F2.QTESTGER - NVL(EST_F2.QTRESERV,0) - NVL(EST_F2.QTPENDENTE,0) - GREATEST(NVL(EST_F2.QTBLOQUEADA,0),0) ) QTDISP_F2 + ,( EST_F3.QTESTGER - NVL(EST_F3.QTRESERV,0) - NVL(EST_F3.QTPENDENTE,0) - GREATEST(NVL(EST_F3.QTBLOQUEADA,0),0) ) QTDISP_F3 + ,( EST_F4.QTESTGER - NVL(EST_F4.QTRESERV,0) - NVL(EST_F4.QTPENDENTE,0) - GREATEST(NVL(EST_F4.QTBLOQUEADA,0),0) ) QTDISP_F4 + ,( EST_F5.QTESTGER - NVL(EST_F5.QTRESERV,0) - NVL(EST_F5.QTPENDENTE,0) - GREATEST(NVL(EST_F5.QTBLOQUEADA,0),0) ) QTDISP_F5 + ,( EST_F6.QTESTGER - NVL(EST_F6.QTRESERV,0) - NVL(EST_F6.QTPENDENTE,0) - GREATEST(NVL(EST_F6.QTBLOQUEADA,0),0) ) QTDISP_F6 + ,( EST_F8.QTESTGER - NVL(EST_F8.QTRESERV,0) - NVL(EST_F8.QTPENDENTE,0) - GREATEST(NVL(EST_F8.QTBLOQUEADA,0),0) ) QTDISP_F8 + ,( EST_F9.QTESTGER - NVL(EST_F9.QTRESERV,0) - NVL(EST_F9.QTPENDENTE,0) - GREATEST(NVL(EST_F9.QTBLOQUEADA,0),0) ) QTDISP_F9 + ,( EST_F10.QTESTGER - NVL(EST_F10.QTRESERV,0) - NVL(EST_F10.QTPENDENTE,0) - GREATEST(NVL(EST_F10.QTBLOQUEADA,0),0) ) QTDISP_F10 + ,( EST_F11.QTESTGER - NVL(EST_F11.QTRESERV,0) - NVL(EST_F11.QTPENDENTE,0) - GREATEST(NVL(EST_F11.QTBLOQUEADA,0),0) ) QTDISP_F11 + ,( EST_F12.QTESTGER - NVL(EST_F12.QTRESERV,0) - NVL(EST_F12.QTPENDENTE,0) - GREATEST(NVL(EST_F12.QTBLOQUEADA,0),0) ) QTDISP_F12 + ,( EST_F13.QTESTGER - NVL(EST_F13.QTRESERV,0) - NVL(EST_F13.QTPENDENTE,0) - GREATEST(NVL(EST_F13.QTBLOQUEADA,0),0) ) QTDISP_F13 + ,CASE WHEN NVL(PROD_F1.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F1 + ,CASE WHEN NVL(PROD_F2.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F2 + ,CASE WHEN NVL(PROD_F3.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F3 + ,CASE WHEN NVL(PROD_F4.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F4 + ,CASE WHEN NVL(PROD_F5.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F5 + ,CASE WHEN NVL(PROD_F6.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F6 + ,CASE WHEN NVL(PROD_F8.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F8 + ,CASE WHEN NVL(PROD_F9.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F9 + ,CASE WHEN NVL(PROD_F10.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F10 + ,CASE WHEN NVL(PROD_F11.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F11 + ,CASE WHEN NVL(PROD_F12.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F12 + ,CASE WHEN NVL(PROD_F13.FORALINHA,'N') = 'N' THEN 'S' ELSE 'N' END PERTENCE_F13 + ,PCTABPR.PVENDA1 + ,NVL(PCTABPR_CAST.PVENDA1,0) PVENDA1_CAST + ,NVL(PCTABPR_OUTLET.PVENDA1,0) PVENDA1_OUTLET + ,PCTABPR.DTULTALTPTABELA + ,(SELECT CASE WHEN NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) > 0 THEN + ROUND(( ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) ) * 100,2) ELSE 0 END MARGEM_A_VISTA + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 1 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 1 ) MARGEM_A_VISTA + + ,(SELECT CASE WHEN NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) > 0 THEN + ROUND(( ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) ) * 100,2) ELSE 0 END MARGEM_A_VISTA + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 1 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 1 ) MARGEM_CARTAO1X + + ,(SELECT CASE WHEN NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) > 0 THEN + ROUND(( ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 1 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) ) * 100,2) ELSE 0 END MARGEM_A_VISTA + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 1 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 1 ) MARGEM_CARTAO10X + --FILIAL 9 + ,(SELECT CASE WHEN NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) > 0 THEN + ROUND(( ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 1 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) ) * 100,2) ELSE 0 END MARGEM_A_VISTA + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 4 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 4 ) MARGEM_A_VISTA_F9 + + ,(SELECT CASE WHEN NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) > 0 THEN + ROUND(( ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX = 10 AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) ) * 100,2) ELSE 0 END MARGEM_A_VISTA + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 4 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 4 ) MARGEM_CARTAO1X_F9 + + ,(SELECT CASE WHEN NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) > 0 THEN + ROUND(( ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) - ( ESF_CALC_CUSTO_PRECIFICACAO(PCEST.CODFILIAL, PCEST.CODPROD) + + ( NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) * ( ( NVL(PCTRIBUT.CODICMTAB,0) + NVL(PCPRODUT.PCOMREP1,0) + NVL(PCCONSUM.TXVENDA,0) /*+ NVL(PCREGIAO.PERFRETETERCEIROS,0)*/ ) / 100 ) ) ) ) + / NVL((SELECT PCPRECOPROM.PRECOFIXO FROM PCPRECOPROM + WHERE PCPRECOPROM.DTFIMVIGENCIA >= TRUNC(SYSDATE) --BETWEEN PCPRECOPROM.DTINICIOVIGENCIA AND PCPRECOPROM.DTFIMVIGENCIA + AND PCPRECOPROM.CODPLPAGMAX IN (42,46) AND PCPRECOPROM.NUMREGIAO = 4 + AND PCPRECOPROM.CODPROD = PCPRODUT.CODPROD + AND ROWNUM = 1 ),0) ) * 100,2) ELSE 0 END MARGEM_A_VISTA + FROM PCTABPR, PCREGIAO, PCTABTRIB, PCTRIBUT, PCCONSUM + WHERE PCTABPR.CODPROD = PCPRODUT.CODPROD + AND PCREGIAO.NUMREGIAO = 4 + AND PCREGIAO.UF = PCTABTRIB.UFDESTINO + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF + AND PCEST.CODPROD = PCTABTRIB.CODPROD + AND PCTABTRIB.CODST = PCTRIBUT.CODST + AND PCTABPR.NUMREGIAO = 4 ) MARGEM_CARTAO10X_F9 + --FILIAL 9 - FIM + + --CLASSE PRODUTO + ,ABC_GERAL_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_RETIRA + ,ABC_GERAL_RETIRA.CLASSEESTOQUEDEPTO CLASSEESTOQUEDEPTO_RETIRA + ,ABC_GERAL_RETIRA.CLASSEVENDA CLASSEVENDA_RETIRA + + ,ABC_GERAL_VENDA.CLASSEESTOQUE CLASSEESTOQUE_VENDA + ,ABC_GERAL_VENDA.CLASSEVENDA CLASSEVENDA_VENDA + ,ABC_GERAL_VENDA.CLASSEVENDADEPTO CLASSEVENDADEPTO_VENDA + + ,ABC_F1_VENDA.CLASSEVENDA CLASSEVENDA_F1 + ,ABC_F1_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F1 + ,ABC_F2_VENDA.CLASSEVENDA CLASSEVENDA_F2 + ,ABC_F2_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F2 + ,ABC_F3_VENDA.CLASSEVENDA CLASSEVENDA_F3 + ,ABC_F3_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F3 + ,ABC_F4_VENDA.CLASSEVENDA CLASSEVENDA_F4 + ,ABC_F4_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F4 + ,ABC_F5_VENDA.CLASSEVENDA CLASSEVENDA_F5 + ,ABC_F5_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F5 + ,ABC_F6_VENDA.CLASSEVENDA CLASSEVENDA_F6 + ,ABC_F6_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F6 + ,ABC_F8_VENDA.CLASSEVENDA CLASSEVENDA_F8 + ,ABC_F8_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F8 + ,ABC_F9_VENDA.CLASSEVENDA CLASSEVENDA_F9 + ,ABC_F9_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F9 + ,ABC_F10_VENDA.CLASSEVENDA CLASSEVENDA_F10 + ,ABC_F10_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F10 + ,ABC_F11_VENDA.CLASSEVENDA CLASSEVENDA_F11 + ,ABC_F11_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F11 + ,ABC_F12_VENDA.CLASSEVENDA CLASSEVENDA_F12 + ,ABC_F12_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F12 + ,ABC_F13_VENDA.CLASSEVENDA CLASSEVENDA_F13 + ,ABC_F13_RETIRA.CLASSEESTOQUE CLASSEESTOQUE_F13 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 1 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F1 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 2 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F2 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 3 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F3 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 4 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F4 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 5 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F5 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 6 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F6 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 8 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F8 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 9 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F9 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 10 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F10 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 11 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F11 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 12 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F12 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 13 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F13 + ,( SELECT S.FREQUENCIA FROM ESTSYSTOCKPRODUTO S WHERE S.CODFILIAL = 49 AND S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F49 + ,( SELECT SUM(S.FREQUENCIA) FROM ESTSYSTOCKPRODUTO S WHERE S.CODPROD = PCPRODUT.CODPROD ) FREQUENCIA_F99 + + ,EST_F1.QTEXPOSICAO EXPOSICAO_F1 + ,EST_F2.QTEXPOSICAO EXPOSICAO_F2 + ,EST_F3.QTEXPOSICAO EXPOSICAO_F3 + ,EST_F4.QTEXPOSICAO EXPOSICAO_F4 + ,EST_F5.QTEXPOSICAO EXPOSICAO_F5 + ,EST_F6.QTEXPOSICAO EXPOSICAO_F6 + ,EST_F8.QTEXPOSICAO EXPOSICAO_F8 + ,EST_F9.QTEXPOSICAO EXPOSICAO_F9 + ,EST_F10.QTEXPOSICAO EXPOSICAO_F10 + ,EST_F11.QTEXPOSICAO EXPOSICAO_F11 + ,EST_F12.QTEXPOSICAO EXPOSICAO_F12 + ,EST_F13.QTEXPOSICAO EXPOSICAO_F13 + ,EST_F99.QTEXPOSICAO EXPOSICAO_F99 + + --//COLUNAS PARA EXCEL + --//FILIAL 1 + ,PROD_F1.ESTOQUEIDEAL DIAS_EST_IDEAL_F1 + ,PROD_F1.ESTIDEAL ESTOQUE_IDEAL_M_F1 + ,EST_F1.QTESTGER QTESTGER_F1 + ,( GREATEST(EST_F1.QTBLOQUEADA,0) - + NVL(BLOQ_MANUAL_F1.QTBLOQMANUAL,0) ) QTBLOQUEADA_F1 + ,( NVL(BLOQ_MANUAL_F1.QTBLOQMANUAL,0) - + NVL(EST_F1.QTEXPOSICAO,0) ) QTBLOQMANUAL_F1 + ,EST_F1.QTINDENIZ QTINDENIZ_F1 + ,EST_F1.QTPENDENTE QTPENDENTE_F1 + ,EST_F1.QTRESERV QTRESERV_F1 + ,( EST_F1.QTESTGER - GREATEST(NVL(EST_F1.QTBLOQUEADA,0),0) - NVL(EST_F1.QTPENDENTE,0) - NVL(EST_F1.QTRESERV,0) ) QTEST_DISP_F1 + ,GIRO_F1.ESTOQUEIDEAL ESTOQUE_IDEAL_F1 + ,PEDIDOSLIBERADOS_F1.QTPEDIDA QTPEDIDA_F1 + ,PEDIDOS_EM_TRANSITO_F1.QT QTTRANSITO_F1 + ,CASE WHEN NVL(GIRO_F1.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F1.QTESTGER,0) - NVL(EST_F1.QTINDENIZ,0) - + NVL(EST_F1.QTPENDENTE,0) - NVL(EST_F1.QTRESERV,0) ) / NVL(GIRO_F1.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F1 + ,( GIRO_F1.QTGIRODIA * 30 ) GIRO_15DIAS_F1 + + --//FILIAL 2 + ,PROD_F2.ESTOQUEIDEAL DIAS_EST_IDEAL_F2 + ,PROD_F2.ESTIDEAL ESTOQUE_IDEAL_M_F2 + ,EST_F2.QTESTGER QTESTGER_F2 + ,( EST_F2.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F2.QTBLOQMANUAL,0) ) QTBLOQUEADA_F2 + ,( NVL(BLOQ_MANUAL_F2.QTBLOQMANUAL,0) - + NVL(EST_F2.QTEXPOSICAO,0) ) QTBLOQMANUAL_F2 + ,EST_F2.QTINDENIZ QTINDENIZ_F2 + ,EST_F2.QTPENDENTE QTPENDENTE_F2 + ,EST_F2.QTRESERV QTRESERV_F2 + ,PEDIDOSLIBERADOS_F2.QTPEDIDA QTPEDIDA_F2 + ,( EST_F2.QTESTGER - NVL(EST_F2.QTBLOQUEADA,0) - NVL(EST_F2.QTPENDENTE,0) - NVL(EST_F2.QTRESERV,0) ) QTEST_DISP_F2 + ,GIRO_F2.ESTOQUEIDEAL ESTOQUE_IDEAL_F2 + ,PEDIDOS_EM_TRANSITO_F2.QT QTTRANSITO_F2 + ,CASE WHEN NVL(GIRO_F2.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F2.QTESTGER,0) - NVL(EST_F2.QTINDENIZ,0) - + NVL(EST_F2.QTPENDENTE,0) - NVL(EST_F2.QTRESERV,0) ) / NVL(GIRO_F2.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F2 + ,( GIRO_F2.QTGIRODIA * 30 ) GIRO_15DIAS_F2 + + + --//FILIAL 3 + ,PROD_F3.ESTOQUEIDEAL DIAS_EST_IDEAL_F3 + ,PROD_F3.ESTIDEAL ESTOQUE_IDEAL_M_F3 + ,EST_F3.QTESTGER QTESTGER_F3 + ,( EST_F3.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F3.QTBLOQMANUAL,0) ) QTBLOQUEADA_F3 + ,( NVL(BLOQ_MANUAL_F3.QTBLOQMANUAL,0) - + NVL(EST_F3.QTEXPOSICAO,0) ) QTBLOQMANUAL_F3 + ,EST_F3.QTINDENIZ QTINDENIZ_F3 + ,EST_F3.QTPENDENTE QTPENDENTE_F3 + ,EST_F3.QTRESERV QTRESERV_F3 + ,PEDIDOSLIBERADOS_F3.QTPEDIDA QTPEDIDA_F3 + ,( EST_F3.QTESTGER - NVL(EST_F3.QTBLOQUEADA,0) - NVL(EST_F3.QTPENDENTE,0) - NVL(EST_F3.QTRESERV,0) ) QTEST_DISP_F3 + ,GIRO_F3.ESTOQUEIDEAL ESTOQUE_IDEAL_F3 + ,PEDIDOS_EM_TRANSITO_F3.QT QTTRANSITO_F3 + ,CASE WHEN NVL(GIRO_F3.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F3.QTESTGER,0) - NVL(EST_F3.QTINDENIZ,0) - + NVL(EST_F3.QTPENDENTE,0) - NVL(EST_F3.QTRESERV,0) ) / NVL(GIRO_F3.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F3 + ,( GIRO_F3.QTGIRODIA * 30 ) GIRO_15DIAS_F3 + + + --//FILIAL 4 + ,PROD_F4.ESTOQUEIDEAL DIAS_EST_IDEAL_F4 + ,PROD_F4.ESTIDEAL ESTOQUE_IDEAL_M_F4 + ,EST_F4.QTESTGER QTESTGER_F4 + ,( EST_F4.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F4.QTBLOQMANUAL,0) ) QTBLOQUEADA_F4 + ,( NVL(BLOQ_MANUAL_F4.QTBLOQMANUAL,0) - + NVL(EST_F4.QTEXPOSICAO,0) ) QTBLOQMANUAL_F4 + ,EST_F4.QTINDENIZ QTINDENIZ_F4 + ,EST_F4.QTPENDENTE QTPENDENTE_F4 + ,EST_F4.QTRESERV QTRESERV_F4 + ,PEDIDOSLIBERADOS_F4.QTPEDIDA QTPEDIDA_F4 + ,( EST_F4.QTESTGER - NVL(EST_F4.QTBLOQUEADA,0) - NVL(EST_F4.QTPENDENTE,0) - NVL(EST_F4.QTRESERV,0) ) QTEST_DISP_F4 + ,GIRO_F4.ESTOQUEIDEAL ESTOQUE_IDEAL_F4 + ,PEDIDOS_EM_TRANSITO_F4.QT QTTRANSITO_F4 + ,CASE WHEN NVL(GIRO_F4.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F4.QTESTGER,0) - NVL(EST_F4.QTINDENIZ,0) - + NVL(EST_F4.QTPENDENTE,0) - NVL(EST_F4.QTRESERV,0) ) / NVL(GIRO_F4.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F4 + ,( GIRO_F4.QTGIRODIA * 30 ) GIRO_15DIAS_F4 + + + --//FILIAL 5 + ,PROD_F5.ESTOQUEIDEAL DIAS_EST_IDEAL_F5 + ,PROD_F5.ESTIDEAL ESTOQUE_IDEAL_M_F5 + ,EST_F5.QTESTGER QTESTGER_F5 + ,( EST_F5.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F5.QTBLOQMANUAL,0) ) QTBLOQUEADA_F5 + ,( NVL(BLOQ_MANUAL_F5.QTBLOQMANUAL,0) - + NVL(EST_F5.QTEXPOSICAO,0) ) QTBLOQMANUAL_F5 + ,EST_F5.QTINDENIZ QTINDENIZ_F5 + ,EST_F5.QTPENDENTE QTPENDENTE_F5 + ,EST_F5.QTRESERV QTRESERV_F5 + ,PEDIDOSLIBERADOS_F5.QTPEDIDA QTPEDIDA_F5 + ,( EST_F5.QTESTGER - NVL(EST_F5.QTBLOQUEADA,0) - NVL(EST_F5.QTPENDENTE,0) - NVL(EST_F5.QTRESERV,0) ) QTEST_DISP_F5 + ,GIRO_F5.ESTOQUEIDEAL ESTOQUE_IDEAL_F5 + ,PEDIDOS_EM_TRANSITO_F5.QT QTTRANSITO_F5 + ,CASE WHEN NVL(GIRO_F5.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F5.QTESTGER,0) - NVL(EST_F5.QTINDENIZ,0) - + NVL(EST_F5.QTPENDENTE,0) - NVL(EST_F5.QTRESERV,0) ) / NVL(GIRO_F5.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F5 + ,( GIRO_F5.QTGIRODIA * 30 ) GIRO_15DIAS_F5 + + + --//FILIAL 6 + ,PROD_F6.ESTOQUEIDEAL DIAS_EST_IDEAL_F6 + ,PROD_F6.ESTIDEAL ESTOQUE_IDEAL_M_F6 + ,EST_F6.QTESTGER QTESTGER_F6 + ,( EST_F6.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F6.QTBLOQMANUAL,0) ) QTBLOQUEADA_F6 + ,( NVL(BLOQ_MANUAL_F6.QTBLOQMANUAL,0) - + NVL(EST_F6.QTEXPOSICAO,0) ) QTBLOQMANUAL_F6 + + ,EST_F6.QTINDENIZ QTINDENIZ_F6 + ,EST_F6.QTPENDENTE QTPENDENTE_F6 + ,EST_F6.QTRESERV QTRESERV_F6 + ,PEDIDOSLIBERADOS_F6.QTPEDIDA QTPEDIDA_F6 + ,( EST_F6.QTESTGER - NVL(EST_F6.QTBLOQUEADA,0) - NVL(EST_F6.QTPENDENTE,0) - NVL(EST_F6.QTRESERV,0) ) QTEST_DISP_F6 + ,GIRO_F6.ESTOQUEIDEAL ESTOQUE_IDEAL_F6 + ,PEDIDOS_EM_TRANSITO_F6.QT QTTRANSITO_F6 + ,CASE WHEN NVL(GIRO_F6.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F6.QTESTGER,0) - NVL(EST_F6.QTINDENIZ,0) - + NVL(EST_F6.QTPENDENTE,0) - NVL(EST_F6.QTRESERV,0) ) / NVL(GIRO_F6.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F6 + ,( GIRO_F6.QTGIRODIA * 30 ) GIRO_15DIAS_F6 + + + --//FILIAL 8 + ,PROD_F8.ESTOQUEIDEAL DIAS_EST_IDEAL_F8 + ,PROD_F8.ESTIDEAL ESTOQUE_IDEAL_M_F8 + ,EST_F8.QTESTGER QTESTGER_F8 + ,( EST_F8.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F8.QTBLOQMANUAL,0) ) QTBLOQUEADA_F8 + ,( NVL(BLOQ_MANUAL_F8.QTBLOQMANUAL,0) - + NVL(EST_F8.QTEXPOSICAO,0) ) QTBLOQMANUAL_F8 + ,EST_F8.QTINDENIZ QTINDENIZ_F8 + ,EST_F8.QTPENDENTE QTPENDENTE_F8 + ,EST_F8.QTRESERV QTRESERV_F8 + ,PEDIDOSLIBERADOS_F8.QTPEDIDA QTPEDIDA_F8 + ,( EST_F8.QTESTGER - NVL(EST_F8.QTBLOQUEADA,0) - NVL(EST_F8.QTPENDENTE,0) - NVL(EST_F8.QTRESERV,0) ) QTEST_DISP_F8 + ,GIRO_F8.ESTOQUEIDEAL ESTOQUE_IDEAL_F8 + ,PEDIDOS_EM_TRANSITO_F8.QT QTTRANSITO_F8 + ,CASE WHEN NVL(GIRO_F8.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F8.QTESTGER,0) - NVL(EST_F8.QTINDENIZ,0) - + NVL(EST_F8.QTPENDENTE,0) - NVL(EST_F8.QTRESERV,0) ) / NVL(GIRO_F8.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F8 + ,( GIRO_F8.QTGIRODIA * 30 ) GIRO_15DIAS_F8 + + --//FILIAL 9 + ,PROD_F9.ESTOQUEIDEAL DIAS_EST_IDEAL_F9 + ,PROD_F9.ESTIDEAL ESTOQUE_IDEAL_M_F9 + ,EST_F9.QTESTGER QTESTGER_F9 + ,( EST_F9.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F9.QTBLOQMANUAL,0) ) QTBLOQUEADA_F9 + ,( NVL(BLOQ_MANUAL_F9.QTBLOQMANUAL,0) - + NVL(EST_F9.QTEXPOSICAO,0) ) QTBLOQMANUAL_F9 + ,EST_F9.QTINDENIZ QTINDENIZ_F9 + ,EST_F9.QTPENDENTE QTPENDENTE_F9 + ,EST_F9.QTRESERV QTRESERV_F9 + ,PEDIDOSLIBERADOS_F9.QTPEDIDA QTPEDIDA_F9 + ,( EST_F9.QTESTGER - NVL(EST_F9.QTBLOQUEADA,0) - NVL(EST_F9.QTPENDENTE,0) - NVL(EST_F9.QTRESERV,0) ) QTEST_DISP_F9 + ,GIRO_F9.ESTOQUEIDEAL ESTOQUE_IDEAL_F9 + ,PEDIDOS_EM_TRANSITO_F9.QT QTTRANSITO_F9 + ,CASE WHEN NVL(GIRO_F9.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F9.QTESTGER,0) - NVL(EST_F9.QTINDENIZ,0) - + NVL(EST_F9.QTPENDENTE,0) - NVL(EST_F9.QTRESERV,0) ) / NVL(GIRO_F9.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F9 + ,( GIRO_F9.QTGIRODIA * 30 ) GIRO_15DIAS_F9 + + + --//FILIAL 10 + ,PROD_F10.ESTOQUEIDEAL DIAS_EST_IDEAL_F10 + ,PROD_F10.ESTIDEAL ESTOQUE_IDEAL_M_F10 + ,EST_F10.QTESTGER QTESTGER_F10 + ,( EST_F10.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F10.QTBLOQMANUAL,0) ) QTBLOQUEADA_F10 + ,( NVL(BLOQ_MANUAL_F10.QTBLOQMANUAL,0) - + NVL(EST_F10.QTEXPOSICAO,0) ) QTBLOQMANUAL_F10 + ,EST_F10.QTINDENIZ QTINDENIZ_F10 + ,EST_F10.QTPENDENTE QTPENDENTE_F10 + ,EST_F10.QTRESERV QTRESERV_F10 + ,PEDIDOSLIBERADOS_F10.QTPEDIDA QTPEDIDA_F10 + ,( EST_F10.QTESTGER - NVL(EST_F10.QTBLOQUEADA,0) - NVL(EST_F10.QTPENDENTE,0) - NVL(EST_F10.QTRESERV,0) ) QTEST_DISP_F10 + ,GIRO_F10.ESTOQUEIDEAL ESTOQUE_IDEAL_F10 + ,PEDIDOS_EM_TRANSITO_F10.QT QTTRANSITO_F10 + ,CASE WHEN NVL(GIRO_F10.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F10.QTESTGER,0) - NVL(EST_F10.QTINDENIZ,0) - + NVL(EST_F10.QTPENDENTE,0) - NVL(EST_F10.QTRESERV,0) ) / NVL(GIRO_F10.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F10 + ,( GIRO_F10.QTGIRODIA * 30 ) GIRO_15DIAS_F10 + + + --//FILIAL 11 + ,PROD_F11.ESTOQUEIDEAL DIAS_EST_IDEAL_F11 + ,PROD_F11.ESTIDEAL ESTOQUE_IDEAL_M_F11 + ,EST_F11.QTESTGER QTESTGER_F11 + ,( EST_F11.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F11.QTBLOQMANUAL,0) ) QTBLOQUEADA_F11 + ,( NVL(BLOQ_MANUAL_F11.QTBLOQMANUAL,0) - + NVL(EST_F11.QTEXPOSICAO,0) ) QTBLOQMANUAL_F11 + ,EST_F11.QTINDENIZ QTINDENIZ_F11 + ,EST_F11.QTPENDENTE QTPENDENTE_F11 + ,EST_F11.QTRESERV QTRESERV_F11 + ,PEDIDOSLIBERADOS_F11.QTPEDIDA QTPEDIDA_F11 + ,( EST_F11.QTESTGER - NVL(EST_F11.QTBLOQUEADA,0) - NVL(EST_F11.QTPENDENTE,0) - NVL(EST_F11.QTRESERV,0) ) QTEST_DISP_F11 + ,GIRO_F11.ESTOQUEIDEAL ESTOQUE_IDEAL_F11 + ,PEDIDOS_EM_TRANSITO_F11.QT QTTRANSITO_F11 + ,CASE WHEN NVL(GIRO_F11.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F11.QTESTGER,0) - NVL(EST_F11.QTINDENIZ,0) - + NVL(EST_F11.QTPENDENTE,0) - NVL(EST_F11.QTRESERV,0) ) / NVL(GIRO_F11.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F11 + ,( GIRO_F11.QTGIRODIA * 30 ) GIRO_15DIAS_F11 + + + --//FILIAL 12 + ,PROD_F12.ESTOQUEIDEAL DIAS_EST_IDEAL_F12 + ,PROD_F12.ESTIDEAL ESTOQUE_IDEAL_M_F12 + ,EST_F12.QTESTGER QTESTGER_F12 + ,( EST_F12.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F12.QTBLOQMANUAL,0) ) QTBLOQUEADA_F12 + ,( NVL(BLOQ_MANUAL_F12.QTBLOQMANUAL,0) - + NVL(EST_F12.QTEXPOSICAO,0) ) QTBLOQMANUAL_F12 + ,EST_F12.QTINDENIZ QTINDENIZ_F12 + ,EST_F12.QTPENDENTE QTPENDENTE_F12 + ,EST_F12.QTRESERV QTRESERV_F12 + ,PEDIDOSLIBERADOS_F12.QTPEDIDA QTPEDIDA_F12 + ,( EST_F12.QTESTGER - NVL(EST_F12.QTBLOQUEADA,0) - NVL(EST_F12.QTPENDENTE,0) - NVL(EST_F12.QTRESERV,0) ) QTEST_DISP_F12 + ,GIRO_F12.ESTOQUEIDEAL ESTOQUE_IDEAL_F12 + ,PEDIDOS_EM_TRANSITO_F12.QT QTTRANSITO_F12 + ,CASE WHEN NVL(GIRO_F12.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F12.QTESTGER,0) - NVL(EST_F12.QTINDENIZ,0) - + NVL(EST_F12.QTPENDENTE,0) - NVL(EST_F12.QTRESERV,0) ) / NVL(GIRO_F12.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F12 + ,( GIRO_F12.QTGIRODIA * 30 ) GIRO_15DIAS_F12 + + --//FILIAL 13 + ,PROD_F13.ESTOQUEIDEAL DIAS_EST_IDEAL_F13 + ,PROD_F13.ESTIDEAL ESTOQUE_IDEAL_M_F13 + ,EST_F13.QTESTGER QTESTGER_F13 + ,( GREATEST(EST_F13.QTBLOQUEADA,0) - + NVL(BLOQ_MANUAL_F13.QTBLOQMANUAL,0) ) QTBLOQUEADA_F13 + ,( NVL(BLOQ_MANUAL_F13.QTBLOQMANUAL,0) - + NVL(EST_F13.QTEXPOSICAO,0) ) QTBLOQMANUAL_F13 + ,EST_F13.QTINDENIZ QTINDENIZ_F13 + ,EST_F13.QTPENDENTE QTPENDENTE_F13 + ,EST_F13.QTRESERV QTRESERV_F13 + ,PEDIDOSLIBERADOS_F13.QTPEDIDA QTPEDIDA_F13 + ,( EST_F13.QTESTGER - GREATEST(NVL(EST_F13.QTBLOQUEADA,0),0) - NVL(EST_F13.QTPENDENTE,0) - NVL(EST_F13.QTRESERV,0) ) QTEST_DISP_F13 + ,GIRO_F13.ESTOQUEIDEAL ESTOQUE_IDEAL_F13 + ,PEDIDOS_EM_TRANSITO_F13.QT QTTRANSITO_F13 + ,CASE WHEN NVL(GIRO_F13.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F13.QTESTGER,0) - NVL(EST_F13.QTINDENIZ,0) - + NVL(EST_F13.QTPENDENTE,0) - NVL(EST_F13.QTRESERV,0) ) / NVL(GIRO_F13.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F13 + ,( GIRO_F13.QTGIRODIA * 30 ) GIRO_15DIAS_F13 + + + --//FILIAL 49 + ,PROD_F49.ESTOQUEIDEAL DIAS_EST_IDEAL_F49 + ,PROD_F49.ESTIDEAL ESTOQUE_IDEAL_M_F49 + ,EST_F49.QTESTGER QTESTGER_F49 + ,( EST_F49.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F49.QTBLOQMANUAL,0) ) QTBLOQUEADA_F49 + ,( NVL(BLOQ_MANUAL_F49.QTBLOQMANUAL,0) - + NVL(EST_F49.QTEXPOSICAO,0) ) QTBLOQMANUAL_F49 + ,EST_F49.QTINDENIZ QTINDENIZ_F49 + ,EST_F49.QTPENDENTE QTPENDENTE_F49 + ,EST_F49.QTRESERV QTRESERV_F49 + ,PEDIDOSLIBERADOS_F49.QTPEDIDA QTPEDIDA_F49 + ,( EST_F49.QTESTGER - NVL(EST_F49.QTBLOQUEADA,0) - NVL(EST_F49.QTPENDENTE,0) - NVL(EST_F49.QTRESERV,0) ) QTEST_DISP_F49 + ,GIRO_F49.ESTOQUEIDEAL ESTOQUE_IDEAL_F49 + ,PEDIDOS_EM_TRANSITO_F49.QT QTTRANSITO_F49 + ,CASE WHEN NVL(GIRO_F49.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F49.QTESTGER,0) - NVL(EST_F49.QTINDENIZ,0) - + NVL(EST_F49.QTPENDENTE,0) - NVL(EST_F49.QTRESERV,0) ) / NVL(GIRO_F49.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F49 + ,( GIRO_F49.QTGIRODIA * 30 ) GIRO_15DIAS_F49 + + + --//FILIAL 99 + ,EST_F99.QTESTGER QTESTGER_F99 + ,( EST_F99.QTBLOQUEADA - + NVL(BLOQ_MANUAL_F99.QTBLOQMANUAL,0) ) QTBLOQUEADA_F99 + ,( NVL(BLOQ_MANUAL_F99.QTBLOQMANUAL,0) - + NVL(EST_F99.QTEXPOSICAO,0) ) QTBLOQMANUAL_F99 + ,EST_F99.QTINDENIZ QTINDENIZ_F99 + ,EST_F99.QTPENDENTE QTPENDENTE_F99 + ,EST_F99.QTRESERV QTRESERV_F99 + ,PEDIDOSLIBERADOS_F99.QTPEDIDA QTPEDIDA_F99 + ,( NVL(EST_F99.QTESTGER,0) - NVL(EST_F99.QTBLOQUEADA,0) - NVL(EST_F99.QTPENDENTE,0) - NVL(EST_F99.QTRESERV,0) ) QTEST_DISP_F99 + ,GIRO_F99.ESTOQUEIDEAL ESTOQUE_IDEAL_F99 + ,PEDIDOS_EM_TRANSITO_F99.QT QTTRANSITO_F99 + ,CASE WHEN NVL(GIRO_F99.QTGIRODIA,0) > 0 THEN + ( ( NVL(EST_F99.QTESTGER,0) - NVL(EST_F99.QTINDENIZ,0) - + NVL(EST_F99.QTPENDENTE,0) - NVL(EST_F99.QTRESERV,0) ) / NVL(GIRO_F99.QTGIRODIA,0) ) + ELSE 0 END DIASESTOQUE_F99 + ,( GIRO_F99.QTGIRODIA * 30 ) GIRO_15DIAS_F99 + ,PROD_F99.ESTIDEAL ESTOQUE_IDEAL_M_F99 + + --//VENDAS F1 + ,VENDAMES_F1.VLVENDAMES VLVENDAMES_F1 + ,VENDAMES_F1.QTGIROMES QTGIROMES_F1 + --//VENDAS F1 + ,VENDAMES_F2.VLVENDAMES VLVENDAMES_F2 + ,VENDAMES_F2.QTGIROMES QTGIROMES_F2 + --//VENDAS F1 + ,VENDAMES_F3.VLVENDAMES VLVENDAMES_F3 + ,VENDAMES_F3.QTGIROMES QTGIROMES_F3 + --//VENDAS F1 + ,VENDAMES_F4.VLVENDAMES VLVENDAMES_F4 + ,VENDAMES_F4.QTGIROMES QTGIROMES_F4 + --//VENDAS F1 + ,VENDAMES_F5.VLVENDAMES VLVENDAMES_F5 + ,VENDAMES_F5.QTGIROMES QTGIROMES_F5 + --//VENDAS F1 + ,VENDAMES_F6.VLVENDAMES VLVENDAMES_F6 + ,VENDAMES_F6.QTGIROMES QTGIROMES_F6 + --//VENDAS F1 + ,VENDAMES_F7.VLVENDAMES VLVENDAMES_F7 + ,VENDAMES_F7.QTGIROMES QTGIROMES_F7 + --//VENDAS F1 + ,VENDAMES_F8.VLVENDAMES VLVENDAMES_F8 + ,VENDAMES_F8.QTGIROMES QTGIROMES_F8 + --//VENDAS F9 + ,VENDAMES_F9.VLVENDAMES VLVENDAMES_F9 + ,VENDAMES_F9.QTGIROMES QTGIROMES_F9 + --//VENDAS F9 + ,VENDAMES_F49.VLVENDAMES VLVENDAMES_F49 + ,VENDAMES_F49.QTGIROMES QTGIROMES_F49 + --//VENDAS F10 + ,VENDAMES_F10.VLVENDAMES VLVENDAMES_F10 + ,VENDAMES_F10.QTGIROMES QTGIROMES_F10 + --//VENDAS F11 + ,VENDAMES_F11.VLVENDAMES VLVENDAMES_F11 + ,VENDAMES_F11.QTGIROMES QTGIROMES_F11 + --//VENDAS F12 + ,VENDAMES_F12.VLVENDAMES VLVENDAMES_F12 + ,VENDAMES_F12.QTGIROMES QTGIROMES_F12 + --//VENDAS F13 + ,VENDAMES_F13.VLVENDAMES VLVENDAMES_F13 + ,VENDAMES_F13.QTGIROMES QTGIROMES_F13 + + --//VENDAS F99 + ,VENDAMES_F99.VLVENDAMES VLVENDAMES_F99 + ,VENDAMES_F99.QTGIROMES QTGIROMES_F99 + + --//VENDAS 12 MESES + MES ATUAL - GERAL + ,DDE_ANUAL.GIRODIA GIRODIAANUAL_F99 + ,DDE_ANUAL.VLVENDAANUAL VLVENDAANUAL_F99 + ,DDE_ANUAL.QTVENDAANUAL QTVENDAANUAL_F99 + ,DDE_ANUAL.DDE DDEANUAL_F99 + + --//VENDAS TRIMESTRE + MES ATUAL - GERAL + ,DDE_TRIMESTRE.GIRODIA GIRODIATRIMESTRE_F99 + ,DDE_TRIMESTRE.VLVENDATRIMESTRE VLVENDATRIMESTRE_F99 + ,DDE_TRIMESTRE.QTVENDATRIMESTRE QTVENDATRIMESTRE_F99 + ,DDE_TRIMESTRE.DDE DDETRIMESTRE_F99 + + ,PREENT.QT QT_PREENT + + + FROM PCPRODUT, PCEST, PCDEPTO, PCSECAO, PCCATEGORIA, PCSUBCATEGORIA, PCFORNEC, PCMARCA, PCTABPR, PCTABPR PCTABPR_CAST, + PCTABPR PCTABPR_OUTLET, PCTRIBENTRADA, PCTRIBFIGURA, PCTABTRIB, PCTRIBUT, PCEMPR COMPRADOR, ESTPRODUCTECOMMERCE, + ( SELECT ESTPRODUCTECOMMERCE_ID.ID, ESTPRODUCTECOMMERCE_ID.CODPROD FROM ESTPRODUCTECOMMERCE_ID + WHERE ESTPRODUCTECOMMERCE_ID.TIPO = 'PRODUTO' + AND ESTPRODUCTECOMMERCE_ID.ECOMMERCE = 'VTEX' ) PROD_ECOMMERCE, + ( SELECT CODPROD, SUM(VLVENDAMES) VLVENDAMES, SUM(QTVENDAMES) QTVENDAMES, SUM(VLCUSTOMES) VLCUSTOMES + FROM ESVVENDAMES + GROUP BY CODPROD ) VENDAMESATUAL, + ( SELECT VENDA12MESES.CODPRODUTO, + SUM(VENDA12MESES.VLVENDAMES1) VLVENDAMES1, + SUM(VENDA12MESES.VLVENDAMES2) VLVENDAMES2, + SUM(VENDA12MESES.VLVENDAMES3) VLVENDAMES3, + SUM(VENDA12MESES.VLCUSTOFINMES1) VLCUSTOFINMES1, + SUM(VENDA12MESES.VLCUSTOFINMES2) VLCUSTOFINMES2, + SUM(VENDA12MESES.VLCUSTOFINMES3) VLCUSTOFINMES3, + SUM(VENDA12MESES.QTVENDAMES1) QTVENDAMES1, + SUM(VENDA12MESES.QTVENDAMES2) QTVENDAMES2, + SUM(VENDA12MESES.QTVENDAMES3) QTVENDAMES3 + FROM ESVVENDAPRODUTO12MESES VENDA12MESES + GROUP BY VENDA12MESES.CODPRODUTO ) VENDAMESANT, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '1' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F1, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '2' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F2, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '3' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F3, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '4' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F4, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '5' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F5, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '6' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F6, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '7' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F7, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '8' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F8, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '9' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F9, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '10' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F10, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '11' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F11, + + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '12' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F12, + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '13' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F13, + + + ( SELECT VENDA12MESES.CODPRODUTO, + ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + ( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = '49' + AND VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) ) VENDAMES_F49, + ( SELECT VENDA12MESES.CODPRODUTO, + SUM( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(VENDA12MESES.VLVENDAMES1,0) + + NVL(VENDA12MESES.VLVENDAMES2,0) + + NVL(VENDA12MESES.VLVENDAMES3,0) ) VLVENDAMES, + SUM( NVL(ESVVENDAMES.QTVENDAMES,0) + + NVL(VENDA12MESES.QTVENDAMES1,0) + + NVL(VENDA12MESES.QTVENDAMES2,0) + + NVL(VENDA12MESES.QTVENDAMES3,0)) QTGIROMES + FROM ESVVENDAPRODUTO12MESES VENDA12MESES, ESVVENDAMES + WHERE VENDA12MESES.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND VENDA12MESES.CODPRODUTO = ESVVENDAMES.CODPROD (+) + GROUP BY VENDA12MESES.CODPRODUTO ) VENDAMES_F99, + PCEST EST_F1, + PCEST EST_F2, + PCEST EST_F3, + PCEST EST_F4, + PCEST EST_F5, + PCEST EST_F6, + PCEST EST_F8, + PCEST EST_F9, + PCEST EST_F10, + PCEST EST_F11, + PCEST EST_F12, + PCEST EST_F13, + PCEST EST_F49, + ( SELECT PCEST.CODPROD, SUM(NVL(PCEST.QTESTGER,0)) QTESTGER, SUM(NVL(PCEST.QTRESERV,0)) QTRESERV, + SUM(NVL(PCEST.QTPENDENTE,0)) QTPENDENTE, SUM(NVL(PCEST.QTBLOQUEADA,0)) QTBLOQUEADA, + SUM(NVL(PCEST.QTINDENIZ,0)) QTINDENIZ, SUM(NVL(PCEST.QTPEDIDA,0)), + SUM(NVL(PCEST.QTEXPOSICAO,0)) QTEXPOSICAO + FROM PCEST + GROUP BY PCEST.CODPROD ) EST_F99, + PCPRODFILIAL PROD_F1, + PCPRODFILIAL PROD_F2, + PCPRODFILIAL PROD_F3, + PCPRODFILIAL PROD_F4, + PCPRODFILIAL PROD_F5, + PCPRODFILIAL PROD_F6, + PCPRODFILIAL PROD_F8, + PCPRODFILIAL PROD_F9, + PCPRODFILIAL PROD_F10, + PCPRODFILIAL PROD_F11, + PCPRODFILIAL PROD_F12, + PCPRODFILIAL PROD_F13, + PCPRODFILIAL PROD_F49, + ( SELECT PCPRODFILIAL.CODPROD, SUM(PCPRODFILIAL.ESTIDEAL) ESTIDEAL FROM PCPRODFILIAL + GROUP BY PCPRODFILIAL.CODPROD ) PROD_F99, + ( SELECT ESTABCPRODUTO.CODPROD, ESTABCPRODUTO.CLASSEESTOQUE, ESTABCPRODUTO.CLASSEVENDA, + ESTABCPRODUTO.CLASSEESTOQUEDEPTO + FROM ESTABCPRODUTO + WHERE ESTABCPRODUTO.CODFILIAL = '99' + AND ESTABCPRODUTO.TIPO = 'R' ) ABC_GERAL_RETIRA, + ( SELECT ESTABCPRODUTO.CODPROD, ESTABCPRODUTO.CLASSEESTOQUE, ESTABCPRODUTO.CLASSEVENDA, + ESTABCPRODUTO.CLASSEVENDADEPTO + FROM ESTABCPRODUTO + WHERE ESTABCPRODUTO.CODFILIAL = '99' + AND ESTABCPRODUTO.TIPO = 'V' ) ABC_GERAL_VENDA, + ESTABCPRODUTO ABC_F1_VENDA, + ESTABCPRODUTO ABC_F1_RETIRA, + ESTABCPRODUTO ABC_F2_VENDA, + ESTABCPRODUTO ABC_F2_RETIRA, + ESTABCPRODUTO ABC_F3_VENDA, + ESTABCPRODUTO ABC_F3_RETIRA, + ESTABCPRODUTO ABC_F4_VENDA, + ESTABCPRODUTO ABC_F4_RETIRA, + ESTABCPRODUTO ABC_F5_VENDA, + ESTABCPRODUTO ABC_F5_RETIRA, + ESTABCPRODUTO ABC_F6_VENDA, + ESTABCPRODUTO ABC_F6_RETIRA, + ESTABCPRODUTO ABC_F8_VENDA, + ESTABCPRODUTO ABC_F8_RETIRA, + ESTABCPRODUTO ABC_F9_VENDA, + ESTABCPRODUTO ABC_F9_RETIRA, + ESTABCPRODUTO ABC_F10_VENDA, + ESTABCPRODUTO ABC_F10_RETIRA, + ESTABCPRODUTO ABC_F11_VENDA, + ESTABCPRODUTO ABC_F11_RETIRA, + ESTABCPRODUTO ABC_F12_VENDA, + ESTABCPRODUTO ABC_F12_RETIRA, + ESTABCPRODUTO ABC_F13_VENDA, + ESTABCPRODUTO ABC_F13_RETIRA, + + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '1' ) BLOQ_MANUAL_F1, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '2' ) BLOQ_MANUAL_F2, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '3' ) BLOQ_MANUAL_F3, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '4' ) BLOQ_MANUAL_F4, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '5' ) BLOQ_MANUAL_F5, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '6' ) BLOQ_MANUAL_F6, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '8' ) BLOQ_MANUAL_F8, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '9' ) BLOQ_MANUAL_F9, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '10' ) BLOQ_MANUAL_F10, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '11' ) BLOQ_MANUAL_F11, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '12' ) BLOQ_MANUAL_F12, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '13' ) BLOQ_MANUAL_F13, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, ESTBLOQUEIOPRODUTO.QTBLOQMANUAL FROM ESTBLOQUEIOPRODUTO + WHERE ESTBLOQUEIOPRODUTO.CODFILIAL = '49' ) BLOQ_MANUAL_F49, + ( SELECT ESTBLOQUEIOPRODUTO.CODPROD, SUM(NVL(ESTBLOQUEIOPRODUTO.QTBLOQMANUAL,0)) QTBLOQMANUAL + FROM ESTBLOQUEIOPRODUTO + GROUP BY ESTBLOQUEIOPRODUTO.CODPROD ) BLOQ_MANUAL_F99, + + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '1' ) GIRO_F1, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '2' ) GIRO_F2, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '3' ) GIRO_F3, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '4' ) GIRO_F4, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '5' ) GIRO_F5, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '6' ) GIRO_F6, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '8' ) GIRO_F8, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '9' ) GIRO_F9, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '10' ) GIRO_F10, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '11' ) GIRO_F11, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '12' ) GIRO_F12, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '13' ) GIRO_F13, + ( SELECT ESTGIRODIA.CODFILIAL, ESTGIRODIA.CODPROD, ESTGIRODIA.ESTOQUEIDEAL, ESTGIRODIA.QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' AND ESTGIRODIA.CODFILIAL = '49' ) GIRO_F49, + ( SELECT ESTGIRODIA.CODPROD, SUM(ESTGIRODIA.ESTOQUEIDEAL) ESTOQUEIDEAL, + SUM(ESTGIRODIA.QTGIRODIA) QTGIRODIA + FROM ESTGIRODIA WHERE ESTGIRODIA.TIPO = 'R' + GROUP BY ESTGIRODIA.CODPROD ) GIRO_F99, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '1' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F1, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '1' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F1, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '2' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F2, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '2' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F2, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '3' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F3, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '3' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F3, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '4' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F4, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '4' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F4, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '5' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F5, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '5' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F5, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '6' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F6, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '6' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F6, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '7' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F7, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '7' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F7, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '8' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F8, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '8' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F8, + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '9' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F9, + + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '10' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F10, + + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '11' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F11, + + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '12' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F12, + + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '13' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F13, + + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '9' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F9, + + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '10' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F10, + + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '11' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F11, + + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '12' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F12, + + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '13' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F13, + + ( SELECT PCPEDIDO.CODFILIAL, PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + AND PCPEDIDO.CODFILIAL = '49' + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCPEDIDO.CODFILIAL, PCITEM.CODPROD ) PEDIDOSLIBERADOS_F49, + ( SELECT PCFILIAL.CODIGO CODFILIAL, PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND PCFILIAL.CODIGO = '49' + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCFILIAL.CODIGO, PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F49, + + ( SELECT PCITEM.CODPROD, SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) QTPEDIDA + FROM PCITEM, PCPEDIDO + WHERE PCITEM.NUMPED = PCPEDIDO.NUMPED + AND PCPEDIDO.DTLIBERA IS NOT NULL + HAVING SUM(PCITEM.QTPEDIDA - NVL(PCITEM.QTENTREGUE, 0)) > 0 + GROUP BY PCITEM.CODPROD ) PEDIDOSLIBERADOS_F99, + ( SELECT PCPEDI.CODPROD, SUM(PCPEDI.QT) QT + FROM PCPEDI, PCPEDC, PCFILIAL + WHERE PCPEDI.NUMPED = PCPEDC.NUMPED + AND PCPEDI.CODCLI = PCFILIAL.CODCLI + AND PCPEDC.CONDVENDA = 10 + AND ( ( PCPEDC.POSICAO IN ('L','M','P', 'B') ) OR + ( ( PCPEDC.POSICAO = 'F' ) AND + ( NOT EXISTS(SELECT PCNFENT.CODFORNEC FROM PCNFENT, PCFILIAL FIL_ORIGEM + WHERE PCNFENT.CODFORNEC = FIL_ORIGEM.CODFORNEC + AND FIL_ORIGEM.CODIGO = PCPEDC.CODFILIAL + AND PCNFENT.NUMNOTA = PCPEDC.NUMNOTA ) )) ) + GROUP BY PCPEDI.CODPROD ) PEDIDOS_EM_TRANSITO_F99 + ,( SELECT DISTINCT ESTCAMPANHAATACPROD.CODPROD FROM ESTCAMPANHAATAC, ESTCAMPANHAATACPROD + WHERE TRUNC(SYSDATE) BETWEEN ESTCAMPANHAATAC.DTINICIO AND ESTCAMPANHAATAC.DTFIM + AND ESTCAMPANHAATACPROD.CODCAMPANHA = ESTCAMPANHAATAC.CODCAMPANHA ) CAMPANHA, + ( SELECT DADOS.CODPROD, DADOS.CODEPTO, DADOS.CODSEC, DADOS.CODCATEGORIA, + SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) VALOR_ESTOQUE_DISP, + SUM(DADOS.VALOR_ULT_TRI_MES_ATUAL) VALOR_CMV, + CASE WHEN SUM(NVL(DADOS.VALOR_ULT_TRI_MES_ATUAL,0)) = 0 THEN + 999 + ELSE + ROUND(SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) / + ( SUM(DADOS.VALOR_ULT_TRI_MES_ATUAL) / ( 90 + TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) - 1 ) ),2) END DDE + FROM ( + SELECT PCEST.CODFILIAL, PCEST.CODPROD, PCPRODUT.CODEPTO, PCPRODUT.CODSEC, PCPRODUT.CODCATEGORIA, PCEST.CUSTOREP, + ( ( NVL(ESVVENDAMES.qtvendames,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames1,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames2,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames3,0) ) * PCEST.CUSTOREP ) VALOR_ULT_TRI_MES_ATUAL, + GREATEST(( NVL(PCEST.QTESTGER,0) - NVL(PCEST.QTRESERV,0) - + NVL(PCEST.QTBLOQUEADA,0) - NVL(PCEST.QTPENDENTE,0) ),0) QTESTOQUE_DISPONIVEL + FROM PCEST, ESVVENDAPRODUTO12MESES, ESVVENDAMES, PCPRODUT + WHERE PCEST.CODPROD = PCPRODUT.CODPROD + AND PCEST.CODPROD = ESVVENDAMES.CODPROD (+) + AND PCEST.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND PCEST.CODPROD = ESVVENDAPRODUTO12MESES.CODPRODUTO (+) + AND PCEST.CODFILIAL = ESVVENDAPRODUTO12MESES.CODFILIAL (+) + AND PCPRODUT.DESCRICAO NOT LIKE '++%' ) DADOS + GROUP BY DADOS.CODPROD, DADOS.CODEPTO, DADOS.CODSEC, DADOS.CODCATEGORIA + ) DDE_PRODUTO, + ( SELECT DADOS.CODSEC, + SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) VALOR_ESTOQUE_DISP, + SUM(DADOS.VALOR_ULT_TRI_MES_ATUAL) VALOR_CMV, + CASE WHEN SUM(NVL(DADOS.VALOR_ULT_TRI_MES_ATUAL,0)) = 0 THEN + 999 + ELSE + ROUND(SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) / + ( SUM(DADOS.VALOR_ULT_TRI_MES_ATUAL) / ( 90 + TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) - 1 ) ),2) END DDE + FROM ( + SELECT PCEST.CODFILIAL, PCEST.CODPROD, PCPRODUT.CODEPTO, PCPRODUT.CODSEC, PCPRODUT.CODCATEGORIA, PCEST.CUSTOREP, + ( ( NVL(ESVVENDAMES.qtvendames,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames1,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames2,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames3,0) ) * PCEST.CUSTOREP ) VALOR_ULT_TRI_MES_ATUAL, + GREATEST(( NVL(PCEST.QTESTGER,0) - NVL(PCEST.QTRESERV,0) - + NVL(PCEST.QTBLOQUEADA,0) - NVL(PCEST.QTPENDENTE,0) ),0) QTESTOQUE_DISPONIVEL + FROM PCEST, ESVVENDAPRODUTO12MESES, ESVVENDAMES, PCPRODUT + WHERE PCEST.CODPROD = PCPRODUT.CODPROD + AND PCEST.CODPROD = ESVVENDAMES.CODPROD (+) + AND PCEST.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND PCEST.CODPROD = ESVVENDAPRODUTO12MESES.CODPRODUTO (+) + AND PCEST.CODFILIAL = ESVVENDAPRODUTO12MESES.CODFILIAL (+) + AND PCPRODUT.DESCRICAO NOT LIKE '++%' ) DADOS + GROUP BY DADOS.CODSEC + ) DDE_SECAO, + ( SELECT DADOS.CODEPTO, DADOS.CODSEC, DADOS.CODCATEGORIA, + SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) VALOR_ESTOQUE_DISP, + SUM(DADOS.VALOR_ULT_TRI_MES_ATUAL) VALOR_CMV, + CASE WHEN SUM(NVL(DADOS.VALOR_ULT_TRI_MES_ATUAL,0)) = 0 THEN + 999 + ELSE + ROUND(SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) / + ( SUM(DADOS.VALOR_ULT_TRI_MES_ATUAL) / ( 90 + TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) - 1 ) ),2) END DDE + FROM ( + SELECT PCEST.CODFILIAL, PCEST.CODPROD, PCPRODUT.CODEPTO, PCPRODUT.CODSEC, PCPRODUT.CODCATEGORIA, PCEST.CUSTOREP, + ( ( NVL(ESVVENDAMES.qtvendames,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames1,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames2,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames3,0) ) * PCEST.CUSTOREP ) VALOR_ULT_TRI_MES_ATUAL, + GREATEST(( NVL(PCEST.QTESTGER,0) - NVL(PCEST.QTRESERV,0) - + NVL(PCEST.QTBLOQUEADA,0) - NVL(PCEST.QTPENDENTE,0) ),0) QTESTOQUE_DISPONIVEL + FROM PCEST, ESVVENDAPRODUTO12MESES, ESVVENDAMES, PCPRODUT + WHERE PCEST.CODPROD = PCPRODUT.CODPROD + AND PCEST.CODPROD = ESVVENDAMES.CODPROD (+) + AND PCEST.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND PCEST.CODPROD = ESVVENDAPRODUTO12MESES.CODPRODUTO (+) + AND PCEST.CODFILIAL = ESVVENDAPRODUTO12MESES.CODFILIAL (+) + AND PCPRODUT.DESCRICAO NOT LIKE '++%' ) DADOS + GROUP BY DADOS.CODEPTO, DADOS.CODSEC, DADOS.CODCATEGORIA + ) DDE_CATEGORIA, + ( SELECT PCMOV.CODPROD, SUM(PCMOV.QT) QT + FROM PCMOV + WHERE PCMOV.CODOPER = 'SM' + AND PCMOV.DTMOV >= lAST_DAY(ADD_MONTHS(TRUNC(SYSDATE),-4)) + 1 + GROUP BY PCMOV.CODPROD ) CONSUMO, + ( SELECT DADOS.CODPROD, DADOS.CODEPTO, DADOS.CODSEC, DADOS.CODCATEGORIA, + DADOS.QTDIAS, + SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) VALOR_ESTOQUE_DISP, + ROUND(SUM(DADOS.QT_VENDA_ANUAL / DADOS.QTDIAS),3) GIRODIA, + SUM(DADOS.VL_VENDA_ANUAL) VLVENDAANUAL, + SUM(DADOS.QT_VENDA_ANUAL) QTVENDAANUAL, + CASE WHEN SUM(NVL(DADOS.VL_VENDA_ANUAL,0)) = 0 THEN + 999 + ELSE + ROUND(SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) / + ( SUM(DADOS.VL_VENDA_ANUAL) / ( 90 + TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) - 1 ) ),2) END DDE + FROM ( + SELECT PCEST.CODPROD, PCPRODUT.CODEPTO, + PCPRODUT.CODSEC, PCPRODUT.CODCATEGORIA, PCEST.CUSTOREP, + DIAS_ESTOQUE_ANUAL.QTDIAS, + ( ( NVL(ESVVENDAMES.qtvendames,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames1,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames2,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames3,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames4,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames5,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames6,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames7,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames8,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames9,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames10,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames11,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames12,0) ) ) QT_VENDA_ANUAL, + ( ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(ESVVENDAPRODUTO12MESES.vlvendames1,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES2,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES3,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES4,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES5,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES6,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES7,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES8,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES9,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES10,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES11,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES12,0) ) ) VL_VENDA_ANUAL, + GREATEST(( NVL(PCEST.QTESTGER,0) - NVL(PCEST.QTRESERV,0) - + NVL(PCEST.QTBLOQUEADA,0) - NVL(PCEST.QTPENDENTE,0) ),0) QTESTOQUE_DISPONIVEL + FROM PCEST, ESVVENDAPRODUTO12MESES, ESVVENDAMES, PCPRODUT, + ( SELECT PCHISTEST.CODPROD, COUNT(DISTINCT PCHISTEST.DATA) QTDIAS FROM PCHISTEST + WHERE PCHISTEST.DATA >= LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE), -14)) + 1 + HAVING SUM(PCHISTEST.QTESTGER) > 0 + GROUP BY PCHISTEST.CODPROD ) DIAS_ESTOQUE_ANUAL + WHERE PCEST.CODPROD = PCPRODUT.CODPROD + AND PCEST.CODPROD = ESVVENDAMES.CODPROD (+) + AND PCEST.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND PCEST.CODPROD = ESVVENDAPRODUTO12MESES.CODPRODUTO (+) + AND PCEST.CODFILIAL = ESVVENDAPRODUTO12MESES.CODFILIAL (+) + AND PCEST.CODPROD = DIAS_ESTOQUE_ANUAL.CODPROD (+) + AND PCPRODUT.DESCRICAO NOT LIKE '++%' ) DADOS + GROUP BY DADOS.CODPROD, DADOS.CODEPTO, DADOS.CODSEC, DADOS.CODCATEGORIA, DADOS.QTDIAS + ) DDE_ANUAL, +( SELECT DADOS.CODPROD, DADOS.CODEPTO, DADOS.CODSEC, DADOS.CODCATEGORIA, + DADOS.QTDIAS, + SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) VALOR_ESTOQUE_DISP, + ROUND(SUM(DADOS.QT_VENDA_ANUAL / DADOS.QTDIAS),3) GIRODIA, + SUM(DADOS.VL_VENDA_ANUAL) VLVENDATRIMESTRE, + SUM(DADOS.QT_VENDA_ANUAL) QTVENDATRIMESTRE, + CASE WHEN SUM(NVL(DADOS.VL_VENDA_ANUAL,0)) = 0 THEN + 999 + ELSE + ROUND(SUM(DADOS.QTESTOQUE_DISPONIVEL*DADOS.CUSTOREP) / + ( SUM(DADOS.VL_VENDA_ANUAL) / ( 90 + TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) - 1 ) ),2) END DDE + FROM ( + SELECT PCEST.CODPROD, PCPRODUT.CODEPTO, + PCPRODUT.CODSEC, PCPRODUT.CODCATEGORIA, PCEST.CUSTOREP, + DIAS_ESTOQUE_ANUAL.QTDIAS, + ( ( NVL(ESVVENDAMES.qtvendames,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames1,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames2,0) + + NVL(ESVVENDAPRODUTO12MESES.qtvendames3,0) ) ) QT_VENDA_ANUAL, + ( ( NVL(ESVVENDAMES.VLVENDAMES,0) + + NVL(ESVVENDAPRODUTO12MESES.vlvendames1,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES2,0) + + NVL(ESVVENDAPRODUTO12MESES.VLVENDAMES3,0) ) ) VL_VENDA_ANUAL, + GREATEST(( NVL(PCEST.QTESTGER,0) - NVL(PCEST.QTRESERV,0) - + NVL(PCEST.QTBLOQUEADA,0) - NVL(PCEST.QTPENDENTE,0) ),0) QTESTOQUE_DISPONIVEL + FROM PCEST, ESVVENDAPRODUTO12MESES, ESVVENDAMES, PCPRODUT, + ( SELECT PCHISTEST.CODPROD, COUNT(DISTINCT PCHISTEST.DATA) QTDIAS FROM PCHISTEST + WHERE PCHISTEST.DATA >= LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE), -4)) + 1 + HAVING SUM(PCHISTEST.QTESTGER) > 0 + GROUP BY PCHISTEST.CODPROD ) DIAS_ESTOQUE_ANUAL + WHERE PCEST.CODPROD = PCPRODUT.CODPROD + AND PCEST.CODPROD = ESVVENDAMES.CODPROD (+) + AND PCEST.CODFILIAL = ESVVENDAMES.CODFILIAL (+) + AND PCEST.CODPROD = ESVVENDAPRODUTO12MESES.CODPRODUTO (+) + AND PCEST.CODFILIAL = ESVVENDAPRODUTO12MESES.CODFILIAL (+) + AND PCEST.CODPROD = DIAS_ESTOQUE_ANUAL.CODPROD (+) + AND PCPRODUT.DESCRICAO NOT LIKE '++%' ) DADOS + GROUP BY DADOS.CODPROD, DADOS.CODEPTO, DADOS.CODSEC, DADOS.CODCATEGORIA, DADOS.QTDIAS + ) DDE_TRIMESTRE + ,( SELECT PCMOVPREENT.CODPROD, SUM(PCMOVPREENT.QT) QT + FROM PCMOVPREENT + WHERE NOT EXISTS(SELECT PCMOV.NUMTRANSENT FROM PCMOV + WHERE PCMOV.NUMTRANSENT = PCMOVPREENT.NUMTRANSENT + AND PCMOV.CODPROD = PCMOVPREENT.CODPROD ) + GROUP BY PCMOVPREENT.CODPROD ) PREENT + WHERE PCPRODUT.DTEXCLUSAO IS NULL + AND PCPRODUT.CODEPTO = PCDEPTO.CODEPTO + AND PCPRODUT.CODSEC = PCSECAO.CODSEC + AND PCPRODUT.CODSEC = PCCATEGORIA.CODSEC (+) + AND PCPRODUT.CODCATEGORIA = PCCATEGORIA.CODCATEGORIA (+) + AND PCPRODUT.CODSEC = PCSUBCATEGORIA.CODSEC (+) + AND PCPRODUT.CODCATEGORIA = PCSUBCATEGORIA.CODCATEGORIA (+) + AND PCPRODUT.CODSUBCATEGORIA = PCSUBCATEGORIA.CODSUBCATEGORIA (+) + AND PCPRODUT.CODMARCA = PCMARCA.CODMARCA (+) + AND PCPRODUT.CODFORNEC = PCFORNEC.CODFORNEC (+) + AND PCPRODUT.CODPROD = VENDAMESATUAL.CODPROD (+) + AND PCPRODUT.CODPROD = VENDAMESANT.CODPRODUTO (+) + AND PCPRODUT.CODPROD = ABC_GERAL_RETIRA.CODPROD (+) + AND PCPRODUT.CODPROD = ABC_GERAL_VENDA.CODPROD (+) + AND PCPRODUT.CODPROD = PROD_ECOMMERCE.CODPROD (+) + AND PCPRODUT.CODPROD = ESTPRODUCTECOMMERCE.ID (+) + AND PCPRODUT.CODPROD = CONSUMO.CODPROD (+) + AND PCPRODUT.CODPROD = PREENT.CODPROD (+) + AND PCPRODUT.CODPROD = PCEST.CODPROD + AND PCEST.CODFILIAL = :CODFILIAL + AND PCPRODUT.CODCOMPRADOR = COMPRADOR.MATRICULA (+) + AND NOT EXISTS(SELECT PCFORMPROD.CODPRODMP FROM PCFORMPROD + WHERE PCFORMPROD.CODPRODACAB = PCPRODUT.CODPROD ) + AND PCEST.CODPROD = DDE_ANUAL.CODPROD (+) + AND PCEST.CODPROD = DDE_TRIMESTRE.CODPROD (+) + --TRIBUTACAO + AND PCPRODUT.CODNCMEX = PCTRIBENTRADA.NCM (+) + AND PCEST.CODFILIAL = PCTRIBENTRADA.CODFILIAL (+) + AND PCFORNEC.TIPOFORNEC = PCTRIBENTRADA.TIPOFORNEC (+) + AND PCFORNEC.ESTADO = PCTRIBENTRADA.UFORIGEM (+) + AND PCTRIBENTRADA.CODFIGURA = PCTRIBFIGURA.CODFIGURA (+) + AND PCPRODUT.CODPROD = PCTABPR.CODPROD + AND PCTABPR.NUMREGIAO = 1 + AND PCPRODUT.CODPROD = PCTABPR_CAST.CODPROD + AND PCTABPR_CAST.NUMREGIAO = 4 + AND PCPRODUT.CODPROD = PCTABPR_OUTLET.CODPROD + AND PCTABPR_OUTLET.NUMREGIAO = 6 + AND PCEST.CODPROD = PCTABTRIB.CODPROD (+) + AND PCEST.CODFILIAL = PCTABTRIB.CODFILIALNF (+) + AND PCTABTRIB.UFDESTINO = 'PA' + AND PCTABTRIB.CODST = PCTRIBUT.CODST (+) + AND PCPRODUT.CODPROD = CAMPANHA.CODPROD (+) + AND PCPRODUT.CODPROD = EST_F1.CODPROD + AND EST_F1.CODFILIAL = '1' + AND PCPRODUT.CODPROD = EST_F2.CODPROD + AND EST_F2.CODFILIAL = '2' + AND PCPRODUT.CODPROD = EST_F3.CODPROD + AND EST_F3.CODFILIAL = '3' + AND PCPRODUT.CODPROD = EST_F4.CODPROD + AND EST_F4.CODFILIAL = '4' + AND PCPRODUT.CODPROD = EST_F5.CODPROD + AND EST_F5.CODFILIAL = '5' + AND PCPRODUT.CODPROD = EST_F6.CODPROD + AND EST_F6.CODFILIAL = '6' + AND PCPRODUT.CODPROD = EST_F8.CODPROD + AND EST_F8.CODFILIAL = '8' + AND PCPRODUT.CODPROD = EST_F9.CODPROD + AND EST_F9.CODFILIAL = '9' + AND PCPRODUT.CODPROD = EST_F10.CODPROD + AND EST_F10.CODFILIAL = '10' + AND PCPRODUT.CODPROD = EST_F11.CODPROD + AND EST_F11.CODFILIAL = '11' + AND PCPRODUT.CODPROD = EST_F12.CODPROD + AND EST_F12.CODFILIAL = '12' + AND PCPRODUT.CODPROD = EST_F13.CODPROD + AND EST_F13.CODFILIAL = '13' + AND PCPRODUT.CODPROD = EST_F49.CODPROD + AND EST_F49.CODFILIAL = '49' + AND PCPRODUT.CODPROD = EST_F99.CODPROD + AND PCPRODUT.CODPROD = PROD_F1.CODPROD + AND PROD_F1.CODFILIAL = '1' + AND PCPRODUT.CODPROD = PROD_F2.CODPROD + AND PROD_F2.CODFILIAL = '2' + AND PCPRODUT.CODPROD = PROD_F3.CODPROD + AND PROD_F3.CODFILIAL = '3' + AND PCPRODUT.CODPROD = PROD_F4.CODPROD + AND PROD_F4.CODFILIAL = '4' + AND PCPRODUT.CODPROD = PROD_F5.CODPROD + AND PROD_F5.CODFILIAL = '5' + AND PCPRODUT.CODPROD = PROD_F6.CODPROD + AND PROD_F6.CODFILIAL = '6' + AND PCPRODUT.CODPROD = PROD_F8.CODPROD + AND PROD_F8.CODFILIAL = '8' + AND PCPRODUT.CODPROD = PROD_F9.CODPROD + AND PROD_F9.CODFILIAL = '9' + AND PCPRODUT.CODPROD = PROD_F10.CODPROD + AND PROD_F10.CODFILIAL = '10' + AND PCPRODUT.CODPROD = PROD_F11.CODPROD + AND PROD_F11.CODFILIAL = '11' + AND PCPRODUT.CODPROD = PROD_F12.CODPROD + AND PROD_F12.CODFILIAL = '12' + AND PCPRODUT.CODPROD = PROD_F13.CODPROD + AND PROD_F13.CODFILIAL = '13' + AND PCPRODUT.CODPROD = PROD_F49.CODPROD + AND PROD_F49.CODFILIAL = '49' + AND PCPRODUT.CODPROD = PROD_F99.CODPROD + AND PCPRODUT.CODPROD = ABC_F1_VENDA.CODPROD + AND ABC_F1_VENDA.TIPO = 'V' + AND ABC_F1_VENDA.CODFILIAL = '1' + AND PCPRODUT.CODPROD = ABC_F2_VENDA.CODPROD + AND ABC_F2_VENDA.TIPO = 'V' + AND ABC_F2_VENDA.CODFILIAL = '2' + AND PCPRODUT.CODPROD = ABC_F3_VENDA.CODPROD + AND ABC_F3_VENDA.TIPO = 'V' + AND ABC_F3_VENDA.CODFILIAL = '3' + AND PCPRODUT.CODPROD = ABC_F4_VENDA.CODPROD + AND ABC_F4_VENDA.TIPO = 'V' + AND ABC_F4_VENDA.CODFILIAL = '4' + AND PCPRODUT.CODPROD = ABC_F5_VENDA.CODPROD + AND ABC_F5_VENDA.TIPO = 'V' + AND ABC_F5_VENDA.CODFILIAL = '5' + AND PCPRODUT.CODPROD = ABC_F6_VENDA.CODPROD + AND ABC_F6_VENDA.TIPO = 'V' + AND ABC_F6_VENDA.CODFILIAL = '6' + AND PCPRODUT.CODPROD = ABC_F8_VENDA.CODPROD + AND ABC_F8_VENDA.TIPO = 'V' + AND ABC_F8_VENDA.CODFILIAL = '8' + AND PCPRODUT.CODPROD = ABC_F9_VENDA.CODPROD + AND ABC_F9_VENDA.TIPO = 'V' + AND ABC_F9_VENDA.CODFILIAL = '9' + AND PCPRODUT.CODPROD = ABC_F10_VENDA.CODPROD + AND ABC_F10_VENDA.TIPO = 'V' + AND ABC_F10_VENDA.CODFILIAL = '10' + AND PCPRODUT.CODPROD = ABC_F11_VENDA.CODPROD + AND ABC_F11_VENDA.TIPO = 'V' + AND ABC_F11_VENDA.CODFILIAL = '11' + AND PCPRODUT.CODPROD = ABC_F12_VENDA.CODPROD + AND ABC_F12_VENDA.TIPO = 'V' + AND ABC_F12_VENDA.CODFILIAL = '12' + AND PCPRODUT.CODPROD = ABC_F13_VENDA.CODPROD + AND ABC_F13_VENDA.TIPO = 'V' + AND ABC_F13_VENDA.CODFILIAL = '13' + AND PCPRODUT.CODPROD = ABC_F1_RETIRA.CODPROD + AND ABC_F1_RETIRA.TIPO = 'R' + AND ABC_F1_RETIRA.CODFILIAL = '1' + AND PCPRODUT.CODPROD = ABC_F2_RETIRA.CODPROD + AND ABC_F2_RETIRA.TIPO = 'R' + AND ABC_F2_RETIRA.CODFILIAL = '2' + AND PCPRODUT.CODPROD = ABC_F3_RETIRA.CODPROD + AND ABC_F3_RETIRA.TIPO = 'R' + AND ABC_F3_RETIRA.CODFILIAL = '3' + AND PCPRODUT.CODPROD = ABC_F4_RETIRA.CODPROD + AND ABC_F4_RETIRA.TIPO = 'R' + AND ABC_F4_RETIRA.CODFILIAL = '4' + AND PCPRODUT.CODPROD = ABC_F5_RETIRA.CODPROD + AND ABC_F5_RETIRA.TIPO = 'R' + AND ABC_F5_RETIRA.CODFILIAL = '5' + AND PCPRODUT.CODPROD = ABC_F6_RETIRA.CODPROD + AND ABC_F6_RETIRA.TIPO = 'R' + AND ABC_F6_RETIRA.CODFILIAL = '6' + AND PCPRODUT.CODPROD = ABC_F8_RETIRA.CODPROD + AND ABC_F8_RETIRA.TIPO = 'R' + AND ABC_F8_RETIRA.CODFILIAL = '8' + AND PCPRODUT.CODPROD = ABC_F9_RETIRA.CODPROD + AND ABC_F9_RETIRA.TIPO = 'R' + AND ABC_F9_RETIRA.CODFILIAL = '9' + + AND PCPRODUT.CODPROD = ABC_F10_RETIRA.CODPROD + AND ABC_F10_RETIRA.TIPO = 'R' + AND ABC_F10_RETIRA.CODFILIAL = '10' + + AND PCPRODUT.CODPROD = ABC_F11_RETIRA.CODPROD + AND ABC_F11_RETIRA.TIPO = 'R' + AND ABC_F11_RETIRA.CODFILIAL = '11' + + AND PCPRODUT.CODPROD = ABC_F12_RETIRA.CODPROD + AND ABC_F12_RETIRA.TIPO = 'R' + AND ABC_F12_RETIRA.CODFILIAL = '12' + + AND PCPRODUT.CODPROD = ABC_F13_RETIRA.CODPROD + AND ABC_F13_RETIRA.TIPO = 'R' + AND ABC_F13_RETIRA.CODFILIAL = '13' + + AND PCPRODUT.CODPROD = GIRO_F1.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F2.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F3.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F4.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F5.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F6.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F8.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F9.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F10.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F11.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F12.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F13.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F49.CODPROD (+) + AND PCPRODUT.CODPROD = GIRO_F99.CODPROD (+) + + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F1.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F2.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F3.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F4.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F5.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F6.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F8.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F9.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F10.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F11.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F12.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F13.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F49.CODPROD (+) + AND PCPRODUT.CODPROD = BLOQ_MANUAL_F99.CODPROD (+) + + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F1.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F1.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F2.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F2.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F3.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F3.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F4.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F4.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F5.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F5.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F6.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F6.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F7.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F7.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F8.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F8.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F9.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F9.CODPROD (+) + + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F10.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F10.CODPROD (+) + + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F11.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F11.CODPROD (+) + + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F12.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F12.CODPROD (+) + + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F13.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F13.CODPROD (+) + + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F49.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F49.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOSLIBERADOS_F99.CODPROD (+) + AND PCPRODUT.CODPROD = PEDIDOS_EM_TRANSITO_F99.CODPROD (+) + AND PCPRODUT.CODPROD = VENDAMES_F1.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F2.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F3.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F4.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F5.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F6.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F7.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F8.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F9.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F10.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F11.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F12.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F13.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F49.CODPRODUTO (+) + AND PCPRODUT.CODPROD = VENDAMES_F99.CODPRODUTO (+) + AND PCPRODUT.CODPROD = DDE_PRODUTO.CODPROD (+) + AND PCPRODUT.CODSEC = DDE_SECAO.CODSEC (+) + AND PCPRODUT.CODSEC = DDE_CATEGORIA.CODSEC (+) + AND PCPRODUT.CODCATEGORIA = DDE_CATEGORIA.CODCATEGORIA (+) + AND PCPRODUT.DESCRICAO NOT LIKE '%++%' + diff --git a/query Controle de Perdas_dataset.sql b/query Controle de Perdas_dataset.sql new file mode 100644 index 0000000..2467212 --- /dev/null +++ b/query Controle de Perdas_dataset.sql @@ -0,0 +1,199 @@ +-- Tabelas Controle de Perdas_dataset + +CREATE OR REPLACE VIEW DIM_FILIAL AS + + +-- DIM_FILIAL +SELECT + CODIGO AS CODFILIAL, + FANTASIA AS NOME_FILIAL, + CODIGO || ' - ' || REGEXP_REPLACE(FANTASIA, '^JURUNENSE[[:space:]]*', '') AS FILIAL_COMPLETA +FROM PCFILIAL; + + +-- DIM_DEPARTAMENTO +SELECT + CODEPTO, + DESCRICAO AS NOME_DEPARTAMENTO, + CODEPTO || ' - ' || DESCRICAO AS DEPTO_COMPLETO +FROM PCDEPTO; + + +-- DIM_MARCA +SELECT + CODMARCA, + MARCA AS NOME_MARCA, + CODMARCA || ' - ' || MARCA AS MARCA_COMPLETA +FROM PCMARCA; + + +-- DIM_PRODUTO +SELECT + P.CODPROD, + P.DESCRICAO AS NOME_PRODUTO, + P.CODEPTO, + P.CODMARCA, + P.CODPROD || ' - ' || P.DESCRICAO AS PRODUTO_COMPLETO +FROM PCPRODUT P; + + +-- DIM_CALENDARIO +SELECT DISTINCT + DATA, + EXTRACT(YEAR FROM DATA) AS ANO, + EXTRACT(MONTH FROM DATA) AS MES, + EXTRACT(DAY FROM DATA) AS DIA +FROM ( + SELECT TRUNC(DTSAIDA) AS DATA FROM VIEW_VENDAS_RESUMO_FATURAMENTO + UNION + SELECT TRUNC(DTENT) AS DATA FROM VIEW_DEVOL_RESUMO_FATURAMENTO + UNION + SELECT TRUNC(DTMOV) AS DATA FROM PCMOV +); + +-- DIM_TIPO_BLOQUEIO + +SELECT 1 AS TIPO_BLOQUEIO_ID, 'BLOQUEIO EXPOSICAO' AS TIPO_BLOQUEIO, 1 AS ORDEM, 'S' AS ATIVO FROM DUAL +UNION ALL +SELECT 2, 'BLOQUEIO MANUAL', 2, 'S' FROM DUAL +UNION ALL +SELECT 3, 'BLOQUEIO ENTRADA', 3, 'S' FROM DUAL +UNION ALL +SELECT 4, 'BLOQUEIO AVARIA', 4, 'S' FROM DUAL; + +-- DIM_MOTIVO_BLOQUEIO + +SELECT + CODDEVOL AS CODMOTIVO, + MOTIVO, + 'S' AS ATIVO +FROM PCTABDEV; + +-- DIM_FAIXA_PRIM + +SELECT 1 AS FAIXA_ID, '1 - 0 A 3 DIAS' AS FAIXA_PRIM, 0 AS DIAS_INICIO, 3 AS DIAS_FIM, 1 AS ORDEM FROM DUAL +UNION ALL +SELECT 2, '2 - 4 A 7 DIAS', 4, 7, 2 FROM DUAL +UNION ALL +SELECT 3, '3 - 8 A 14 DIAS', 8, 14, 3 FROM DUAL +UNION ALL +SELECT 4, '4 - 15 A 30 DIAS',15, 30, 4 FROM DUAL +UNION ALL +SELECT 5, '5 - 30 A 60 DIAS',31, 60, 5 FROM DUAL +UNION ALL +SELECT 6, '6 - 60 + DIAS', 61, 9999,6 FROM DUAL; + +-- FATO_FATURAMENTO-filial +SELECT + NF.CODFILIAL, + TRUNC(NF.DTSAIDA) AS DATA, + NF.CODPROD, + SUM(NF.VLVENDA) AS FATURAMENTO_BRUTO, + SUM(NF.VLCUSTOFIN) AS CUSTO_TOTAL +FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF +WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL +GROUP BY + NF.CODFILIAL, + TRUNC(NF.DTSAIDA), + NF.CODPROD; + + +-- FATO_DEVOLUCAO-filial +SELECT + DV.CODFILIAL, + TRUNC(DV.DTENT) AS DATA, + DV.CODPROD, + SUM(DV.VLDEVOLUCAO) AS DEVOLUCAO, + SUM(DV.VLCUSTOFIN) AS CUSTO_DEVOLUCAO +FROM VIEW_DEVOL_RESUMO_FATURAMENTO DV +WHERE DV.CONDVENDA IN (1,7,8) + AND DV.DTCANCEL IS NULL +GROUP BY + DV.CODFILIAL, + TRUNC(DV.DTENT), + DV.CODPROD; + + +-- FATO_FATURAMENTO-supervmov +SELECT + NF.CODSUPERVMOV, + TRUNC(NF.DTSAIDA) AS DATA, + NF.CODPROD, + SUM(NF.VLVENDA) AS FATURAMENTO_BRUTO, + SUM(NF.VLCUSTOFIN) AS CUSTO_TOTAL +FROM VIEW_VENDAS_RESUMO_FATURAMENTO NF +WHERE NF.CONDVENDA IN (1,7) + AND NF.DTCANCEL IS NULL +GROUP BY + NF.CODSUPERVMOV, + TRUNC(NF.DTSAIDA), + NF.CODPROD; + + +-- FATO_DEVOLUCAO-supervmov +SELECT + DV.CODSUPERVMOV, + TRUNC(DV.DTENT) AS DATA, + DV.CODPROD, + SUM(DV.VLDEVOLUCAO) AS DEVOLUCAO, + SUM(DV.VLCUSTOFIN) AS CUSTO_DEVOLUCAO +FROM VIEW_DEVOL_RESUMO_FATURAMENTO DV +WHERE DV.CONDVENDA IN (1,7,8) + AND DV.DTCANCEL IS NULL +GROUP BY + DV.CODSUPERVMOV, + TRUNC(DV.DTENT), + DV.CODPROD; + +-- FatoAjusteEstoque +SELECT + M.CODFILIAL, + TRUNC(M.DTMOV) AS DATA, + M.CODPROD, + SUM( + CASE + WHEN M.CODOPER IN ('EA','EI') THEN M.QT * ROUND(M.PUNIT,2) + WHEN M.CODOPER IN ('SA','SI') THEN (M.QT * -1) * ROUND(M.PUNIT,2) + ELSE 0 + END + ) AS VALOR_AJUSTE +FROM PCMOV M +WHERE M.CODOPER IN ('EA','EI','SA','SI') +GROUP BY + M.CODFILIAL, + TRUNC(M.DTMOV), + M.CODPROD; + +-- FatoAjusteDetalhe +SELECT + M.CODFILIAL, + TRUNC(M.DTMOV) AS DATA, + M.CODPROD, + COALESCE(L1.NOMEFUNC, L2.NOMEFUNC) AS RESPONSAVEL_AJUSTE, + COALESCE(L1.HISTORICO, L2.HISTORICO) AS HISTORICO, + COALESCE(L1.HISTORICO2, L2.HISTORICO2) AS HISTORICO2, + DECODE(M.CODOPER, + 'EA','ENTRADA AJUSTE', + 'EI','ENTRADA INVENTARIO', + 'SA','SAIDA AJUSTE', + 'SI','SAIDA INVENTARIO' +select * from pcpedc ) AS TIPO_OPERACAO, + CASE + WHEN M.CODOPER IN ('EA','EI') THEN M.QT + WHEN M.CODOPER IN ('SA','SI') THEN (M.QT * -1) + ELSE 0 + END AS QT_AJUSTE, + CASE + WHEN M.CODOPER IN ('EA','EI') THEN M.QT * ROUND(M.PUNIT,2) + WHEN M.CODOPER IN ('SA','SI') THEN (M.QT * -1) * ROUND(M.PUNIT,2) + ELSE 0 + END AS VALOR_AJUSTE +FROM PCMOV M +LEFT JOIN PCLANC L1 + ON M.CODOPER IN ('EA','EI') + AND L1.NUMTRANSENT = M.NUMTRANSENT +LEFT JOIN PCLANC L2 + ON M.CODOPER IN ('SA','SI') + AND L2.NUMTRANSVENDA = M.NUMTRANSVENDA +WHERE M.CODOPER IN ('EA','EI','SA','SI');