Ajustando detalhes vdm
davinTI/app-dono-modulos/pipeline/head This commit looks good

This commit is contained in:
Sarah Magalhães
2026-06-03 17:01:06 -03:00
parent aa308dfb95
commit a36e6bbae2
+33 -73
View File
@@ -2662,26 +2662,42 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
detalhe: (args) => {
return {
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
l.codigo AS idempresa,
FNC_NOMEPESSOAS(l.codigo) AS nomeempresa,
cat.nome AS categoria,
ult_ent.dataultimaentrada AS dataultimaentrada,
(
SELECT MAX(e.dataentrada)
FROM verdemar.entradas e
INNER JOIN verdemar.entradas_itens ei ON ei.chaveentrada = e.chave
WHERE ei.codigo = p.codigo
AND e.loja = l.codigo
AND e.status = 'S'
) AS dataultimaentrada,
pm.ultimavenda AS dataultimavenda,
SELECT MAX(pm.data)
FROM verdemar.produtos_movimento pm
WHERE pm.codigo = p.codigo
AND pm.loja = l.codigo
) AS dataultimavenda,
NULL AS precoatacado,
pp.precovenda AS precovarejo,
COALESCE(prom.precopromocao, 0) AS precopromoc,
pp.precovenda AS preconormal,
(
SELECT pf.precofidelidade
FROM verdemar.produtos_fidelidade pf
@@ -2691,10 +2707,8 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
AND pf.loja = l.codigo
AND ROWNUM = 1
) AS precomeuMambo,
0 AS vlrprecovenctoprox,
pp.custoliquido AS custoliquido,
pp.sugestao AS margem,
0 AS margematacado,
pp.lucro AS margemnormal,
@@ -2711,7 +2725,6 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
AND ROWNUM = 1
) AS margemmeuMambo,
subg.sugestao AS margemlucrodivisao,
est.quantidade AS estoqueDisponivel,
(
SELECT est2.quantidade
@@ -2728,7 +2741,6 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
0 AS reserva,
pew.estoque AS estoquedisponivelcd,
0 AS estoquefuturocd,
pvm.mediasempromocao AS mdv,
pvm.mediacompromocao AS mdvpromoc,
pvm.diasestoque AS ddv,
@@ -2736,114 +2748,62 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
NULL AS ddvmaximo,
NULL AS dtavalidade,
p.numerodiasvalidade AS validadedias,
NULL AS classeabastecimento,
p.tipoabastecimento AS formaabastecimento,
ean.embalagem AS descricaoembalagem,
ean.quantidade AS quantidadeembalagem,
(
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,
ult_ent.quantidadecompra AS quantidadecompra,
0 AS qtdeatacado,
CASE
WHEN COALESCE(prom.precopromocao, 0) > 0 THEN 'PROMOCAO'
ELSE 'NORMAL'
END AS situacao,
CASE WHEN p.inativo = 'N' THEN 'A' ELSE 'I' END AS statusvenda,
NULL AS statuscompra,
p.paicomposto AS idbase,
NULL AS tipotroca,
p.codigo AS seqproduto,
p.nome AS Descricao
FROM verdemar.produtos p
INNER JOIN verdemar.produtos_loja pl
ON pl.codigo = p.codigo
INNER JOIN verdemar.loja l
ON l.codigo = pl.loja
INNER JOIN verdemar.produtos_precos pp
ON pp.codigo = p.codigo
AND pp.loja = l.codigo
LEFT JOIN verdemar.produtos_estoque est
ON est.codigo = p.codigo
AND est.loja = l.codigo
LEFT JOIN verdemar.produtos_venda_media pvm
ON pvm.codigo = p.codigo
AND pvm.loja = l.codigo
LEFT JOIN (
SELECT codigo,
loja,
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 CTE_UltimaEntrada ult_ent
ON ult_ent.produto_codigo = p.codigo
AND ult_ent.loja_codigo = l.codigo
AND ult_ent.rn = 1
LEFT JOIN (
SELECT pr.codigo,
pr.loja,
pr.precopromocao
FROM verdemar.promocao pr
WHERE pr.datafinal >= TRUNC(SYSDATE)
OR pr.indeterminada = 'S'
WHERE (pr.datafinal >= TRUNC(SYSDATE) OR pr.indeterminada = 'S')
) prom
ON prom.codigo = p.codigo
AND prom.loja = l.codigo
LEFT JOIN verdemar.produtos_ean ean
ON ean.codigo = p.codigo
AND ean.comprapadrao = 'S'
LEFT JOIN verdemar.categoria cat
ON cat.codigo = p.categoria
LEFT JOIN verdemar.subgrupo subg
ON subg.codigo = p.subgrupo
AND subg.setor = p.setor
AND subg.grupo = p.grupo
LEFT JOIN verdemar.produtos_estoque_wms pew
ON pew.produto = p.codigo
AND pew.cd = 892605
WHERE p.codigo = ${args.codproduto}
AND l.participageradorlojas = 'S'
AND p.inativo = 'N'