This commit is contained in:
@@ -2662,26 +2662,42 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
|||||||
detalhe: (args) => {
|
detalhe: (args) => {
|
||||||
return {
|
return {
|
||||||
sql: /*sql*/ `
|
sql: /*sql*/ `
|
||||||
|
WITH CTE_UltimaEntrada AS (
|
||||||
|
SELECT /*+ MATERIALIZE */
|
||||||
|
eit.codigo AS produto_codigo,
|
||||||
|
ent.loja AS loja_codigo,
|
||||||
|
ean2.quantidade AS quantidadecompra,
|
||||||
|
ent.dataentrada AS dataultimaentrada,
|
||||||
|
ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY eit.codigo, ent.loja
|
||||||
|
ORDER BY ent.dataentrada DESC, ent.chave DESC
|
||||||
|
) AS rn
|
||||||
|
FROM verdemar.entradas ent
|
||||||
|
INNER JOIN verdemar.entradas_itens eit ON ent.chave = eit.chaveentrada
|
||||||
|
INNER JOIN verdemar.operacoes_entradas op ON ent.operacao = op.codigo
|
||||||
|
INNER JOIN verdemar.produtos_ean ean2 ON eit.embalagem = ean2.chave
|
||||||
|
WHERE ent.status = 'S'
|
||||||
|
AND op.atualizacusto = 'S'
|
||||||
|
AND op.tiponota NOT IN ('B', 'T', 'L')
|
||||||
|
AND ent.dataentrada <= TRUNC(SYSDATE)
|
||||||
|
AND eit.quantidade * ean2.quantidade > NVL(eit.quantidadedevolvida, 0)
|
||||||
|
AND eit.codigo = ${args.codproduto}
|
||||||
|
)
|
||||||
SELECT
|
SELECT
|
||||||
l.codigo AS idempresa,
|
l.codigo AS idempresa,
|
||||||
FNC_NOMEPESSOAS(l.codigo) AS nomeempresa,
|
FNC_NOMEPESSOAS(l.codigo) AS nomeempresa,
|
||||||
cat.nome AS categoria,
|
cat.nome AS categoria,
|
||||||
|
ult_ent.dataultimaentrada AS dataultimaentrada,
|
||||||
(
|
(
|
||||||
SELECT MAX(e.dataentrada)
|
SELECT MAX(pm.data)
|
||||||
FROM verdemar.entradas e
|
FROM verdemar.produtos_movimento pm
|
||||||
INNER JOIN verdemar.entradas_itens ei ON ei.chaveentrada = e.chave
|
WHERE pm.codigo = p.codigo
|
||||||
WHERE ei.codigo = p.codigo
|
AND pm.loja = l.codigo
|
||||||
AND e.loja = l.codigo
|
) AS dataultimavenda,
|
||||||
AND e.status = 'S'
|
|
||||||
) AS dataultimaentrada,
|
|
||||||
|
|
||||||
pm.ultimavenda AS dataultimavenda,
|
|
||||||
|
|
||||||
NULL AS precoatacado,
|
NULL AS precoatacado,
|
||||||
pp.precovenda AS precovarejo,
|
pp.precovenda AS precovarejo,
|
||||||
COALESCE(prom.precopromocao, 0) AS precopromoc,
|
COALESCE(prom.precopromocao, 0) AS precopromoc,
|
||||||
pp.precovenda AS preconormal,
|
pp.precovenda AS preconormal,
|
||||||
|
|
||||||
(
|
(
|
||||||
SELECT pf.precofidelidade
|
SELECT pf.precofidelidade
|
||||||
FROM verdemar.produtos_fidelidade pf
|
FROM verdemar.produtos_fidelidade pf
|
||||||
@@ -2691,10 +2707,8 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
|||||||
AND pf.loja = l.codigo
|
AND pf.loja = l.codigo
|
||||||
AND ROWNUM = 1
|
AND ROWNUM = 1
|
||||||
) AS precomeuMambo,
|
) AS precomeuMambo,
|
||||||
|
|
||||||
0 AS vlrprecovenctoprox,
|
0 AS vlrprecovenctoprox,
|
||||||
pp.custoliquido AS custoliquido,
|
pp.custoliquido AS custoliquido,
|
||||||
|
|
||||||
pp.sugestao AS margem,
|
pp.sugestao AS margem,
|
||||||
0 AS margematacado,
|
0 AS margematacado,
|
||||||
pp.lucro AS margemnormal,
|
pp.lucro AS margemnormal,
|
||||||
@@ -2711,7 +2725,6 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
|||||||
AND ROWNUM = 1
|
AND ROWNUM = 1
|
||||||
) AS margemmeuMambo,
|
) AS margemmeuMambo,
|
||||||
subg.sugestao AS margemlucrodivisao,
|
subg.sugestao AS margemlucrodivisao,
|
||||||
|
|
||||||
est.quantidade AS estoqueDisponivel,
|
est.quantidade AS estoqueDisponivel,
|
||||||
(
|
(
|
||||||
SELECT est2.quantidade
|
SELECT est2.quantidade
|
||||||
@@ -2728,7 +2741,6 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
|||||||
0 AS reserva,
|
0 AS reserva,
|
||||||
pew.estoque AS estoquedisponivelcd,
|
pew.estoque AS estoquedisponivelcd,
|
||||||
0 AS estoquefuturocd,
|
0 AS estoquefuturocd,
|
||||||
|
|
||||||
pvm.mediasempromocao AS mdv,
|
pvm.mediasempromocao AS mdv,
|
||||||
pvm.mediacompromocao AS mdvpromoc,
|
pvm.mediacompromocao AS mdvpromoc,
|
||||||
pvm.diasestoque AS ddv,
|
pvm.diasestoque AS ddv,
|
||||||
@@ -2736,114 +2748,62 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
|||||||
NULL AS ddvmaximo,
|
NULL AS ddvmaximo,
|
||||||
NULL AS dtavalidade,
|
NULL AS dtavalidade,
|
||||||
p.numerodiasvalidade AS validadedias,
|
p.numerodiasvalidade AS validadedias,
|
||||||
|
|
||||||
NULL AS classeabastecimento,
|
NULL AS classeabastecimento,
|
||||||
p.tipoabastecimento AS formaabastecimento,
|
p.tipoabastecimento AS formaabastecimento,
|
||||||
ean.embalagem AS descricaoembalagem,
|
ean.embalagem AS descricaoembalagem,
|
||||||
ean.quantidade AS quantidadeembalagem,
|
ean.quantidade AS quantidadeembalagem,
|
||||||
|
ult_ent.quantidadecompra AS quantidadecompra,
|
||||||
(
|
|
||||||
SELECT ean2.quantidade
|
|
||||||
FROM verdemar.entradas ent
|
|
||||||
INNER JOIN verdemar.entradas_itens eit ON ent.chave = eit.chaveentrada
|
|
||||||
INNER JOIN verdemar.operacoes_entradas op ON ent.operacao = op.codigo
|
|
||||||
INNER JOIN verdemar.produtos_ean ean2 ON eit.embalagem = ean2.chave
|
|
||||||
WHERE eit.codigo = p.codigo
|
|
||||||
AND ent.loja = l.codigo
|
|
||||||
AND op.atualizacusto = 'S'
|
|
||||||
AND op.tiponota NOT IN ('B', 'T', 'L')
|
|
||||||
AND ent.status = 'S'
|
|
||||||
AND ent.dataentrada <= TRUNC(SYSDATE)
|
|
||||||
AND eit.quantidade * ean2.quantidade > NVL(eit.quantidadedevolvida, 0)
|
|
||||||
AND ent.dataentrada = (
|
|
||||||
SELECT MAX(ent2.dataentrada)
|
|
||||||
FROM verdemar.entradas ent2
|
|
||||||
INNER JOIN verdemar.entradas_itens eit2 ON ent2.chave = eit2.chaveentrada
|
|
||||||
INNER JOIN verdemar.operacoes_entradas op2 ON ent2.operacao = op2.codigo
|
|
||||||
INNER JOIN verdemar.produtos_ean ean3 ON eit2.embalagem = ean3.chave
|
|
||||||
WHERE eit2.codigo = p.codigo
|
|
||||||
AND ent2.loja = l.codigo
|
|
||||||
AND op2.atualizacusto = 'S'
|
|
||||||
AND op2.tiponota NOT IN ('B', 'T', 'L')
|
|
||||||
AND ent2.status = 'S'
|
|
||||||
AND ent2.dataentrada <= TRUNC(SYSDATE)
|
|
||||||
AND eit2.quantidade * ean3.quantidade > NVL(eit2.quantidadedevolvida, 0)
|
|
||||||
)
|
|
||||||
AND ROWNUM = 1
|
|
||||||
) AS quantidadecompra,
|
|
||||||
|
|
||||||
0 AS qtdeatacado,
|
0 AS qtdeatacado,
|
||||||
|
|
||||||
CASE
|
CASE
|
||||||
WHEN COALESCE(prom.precopromocao, 0) > 0 THEN 'PROMOCAO'
|
WHEN COALESCE(prom.precopromocao, 0) > 0 THEN 'PROMOCAO'
|
||||||
ELSE 'NORMAL'
|
ELSE 'NORMAL'
|
||||||
END AS situacao,
|
END AS situacao,
|
||||||
|
|
||||||
CASE WHEN p.inativo = 'N' THEN 'A' ELSE 'I' END AS statusvenda,
|
CASE WHEN p.inativo = 'N' THEN 'A' ELSE 'I' END AS statusvenda,
|
||||||
NULL AS statuscompra,
|
NULL AS statuscompra,
|
||||||
p.paicomposto AS idbase,
|
p.paicomposto AS idbase,
|
||||||
NULL AS tipotroca,
|
NULL AS tipotroca,
|
||||||
|
|
||||||
p.codigo AS seqproduto,
|
p.codigo AS seqproduto,
|
||||||
p.nome AS Descricao
|
p.nome AS Descricao
|
||||||
|
|
||||||
FROM verdemar.produtos p
|
FROM verdemar.produtos p
|
||||||
|
|
||||||
INNER JOIN verdemar.produtos_loja pl
|
INNER JOIN verdemar.produtos_loja pl
|
||||||
ON pl.codigo = p.codigo
|
ON pl.codigo = p.codigo
|
||||||
|
|
||||||
INNER JOIN verdemar.loja l
|
INNER JOIN verdemar.loja l
|
||||||
ON l.codigo = pl.loja
|
ON l.codigo = pl.loja
|
||||||
|
|
||||||
INNER JOIN verdemar.produtos_precos pp
|
INNER JOIN verdemar.produtos_precos pp
|
||||||
ON pp.codigo = p.codigo
|
ON pp.codigo = p.codigo
|
||||||
AND pp.loja = l.codigo
|
AND pp.loja = l.codigo
|
||||||
|
|
||||||
LEFT JOIN verdemar.produtos_estoque est
|
LEFT JOIN verdemar.produtos_estoque est
|
||||||
ON est.codigo = p.codigo
|
ON est.codigo = p.codigo
|
||||||
AND est.loja = l.codigo
|
AND est.loja = l.codigo
|
||||||
|
|
||||||
LEFT JOIN verdemar.produtos_venda_media pvm
|
LEFT JOIN verdemar.produtos_venda_media pvm
|
||||||
ON pvm.codigo = p.codigo
|
ON pvm.codigo = p.codigo
|
||||||
AND pvm.loja = l.codigo
|
AND pvm.loja = l.codigo
|
||||||
|
LEFT JOIN CTE_UltimaEntrada ult_ent
|
||||||
LEFT JOIN (
|
ON ult_ent.produto_codigo = p.codigo
|
||||||
SELECT codigo,
|
AND ult_ent.loja_codigo = l.codigo
|
||||||
loja,
|
AND ult_ent.rn = 1
|
||||||
MAX(data) AS ultimavenda
|
|
||||||
FROM verdemar.produtos_movimento
|
|
||||||
GROUP BY codigo, loja
|
|
||||||
) pm
|
|
||||||
ON pm.codigo = p.codigo
|
|
||||||
AND pm.loja = l.codigo
|
|
||||||
|
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT pr.codigo,
|
SELECT pr.codigo,
|
||||||
pr.loja,
|
pr.loja,
|
||||||
pr.precopromocao
|
pr.precopromocao
|
||||||
FROM verdemar.promocao pr
|
FROM verdemar.promocao pr
|
||||||
WHERE pr.datafinal >= TRUNC(SYSDATE)
|
WHERE (pr.datafinal >= TRUNC(SYSDATE) OR pr.indeterminada = 'S')
|
||||||
OR pr.indeterminada = 'S'
|
|
||||||
) prom
|
) prom
|
||||||
ON prom.codigo = p.codigo
|
ON prom.codigo = p.codigo
|
||||||
AND prom.loja = l.codigo
|
AND prom.loja = l.codigo
|
||||||
|
|
||||||
LEFT JOIN verdemar.produtos_ean ean
|
LEFT JOIN verdemar.produtos_ean ean
|
||||||
ON ean.codigo = p.codigo
|
ON ean.codigo = p.codigo
|
||||||
AND ean.comprapadrao = 'S'
|
AND ean.comprapadrao = 'S'
|
||||||
|
|
||||||
LEFT JOIN verdemar.categoria cat
|
LEFT JOIN verdemar.categoria cat
|
||||||
ON cat.codigo = p.categoria
|
ON cat.codigo = p.categoria
|
||||||
|
|
||||||
LEFT JOIN verdemar.subgrupo subg
|
LEFT JOIN verdemar.subgrupo subg
|
||||||
ON subg.codigo = p.subgrupo
|
ON subg.codigo = p.subgrupo
|
||||||
AND subg.setor = p.setor
|
AND subg.setor = p.setor
|
||||||
AND subg.grupo = p.grupo
|
AND subg.grupo = p.grupo
|
||||||
|
|
||||||
LEFT JOIN verdemar.produtos_estoque_wms pew
|
LEFT JOIN verdemar.produtos_estoque_wms pew
|
||||||
ON pew.produto = p.codigo
|
ON pew.produto = p.codigo
|
||||||
AND pew.cd = 892605
|
AND pew.cd = 892605
|
||||||
|
|
||||||
WHERE p.codigo = ${args.codproduto}
|
WHERE p.codigo = ${args.codproduto}
|
||||||
AND l.participageradorlojas = 'S'
|
AND l.participageradorlojas = 'S'
|
||||||
AND p.inativo = 'N'
|
AND p.inativo = 'N'
|
||||||
|
|||||||
Reference in New Issue
Block a user