This commit is contained in:
+117
-47
@@ -2663,49 +2663,75 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
WITH CTE_UltimaEntrada AS (
|
||||
SELECT /*+ MATERIALIZE */
|
||||
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
|
||||
|
||||
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'
|
||||
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.quantidade * ean2.quantidade > NVL(eit.quantidadedevolvida,
|
||||
0)
|
||||
AND eit.codigo = ${args.codproduto}
|
||||
AND ent.loja IN (${args.ctx_user_companies_for_module})
|
||||
|
||||
)
|
||||
|
||||
SELECT
|
||||
l.codigo AS idempresa,
|
||||
FNC_NOMEPESSOAS(l.codigo) AS nomeempresa,
|
||||
cat.nome AS categoria,
|
||||
ult_ent.dataultimaentrada AS dataultimaentrada,
|
||||
(
|
||||
SELECT MAX(pm.data)
|
||||
FROM verdemar.produtos_movimento pm
|
||||
WHERE pm.codigo = p.codigo
|
||||
SELECT
|
||||
MAX(pm.data)
|
||||
FROM
|
||||
verdemar.produtos_movimento pm
|
||||
WHERE
|
||||
pm.codigo = p.codigo
|
||||
AND pm.loja = l.codigo
|
||||
AND pm.data >= TRUNC(SYSDATE) - 50
|
||||
-- limita o scan
|
||||
|
||||
) AS dataultimavenda,
|
||||
NULL AS precoatacado,
|
||||
pp.precovenda AS precovarejo,
|
||||
COALESCE(prom.precopromocao, 0) AS precopromoc,
|
||||
COALESCE(prom.precopromocao,
|
||||
0) AS precopromoc,
|
||||
pp.precovenda AS preconormal,
|
||||
(
|
||||
SELECT pf.precofidelidade
|
||||
FROM verdemar.produtos_fidelidade pf
|
||||
WHERE pf.codigo = p.codigo
|
||||
SELECT
|
||||
pf.precofidelidade
|
||||
FROM
|
||||
verdemar.produtos_fidelidade pf
|
||||
WHERE
|
||||
pf.codigo = p.codigo
|
||||
AND TRUNC(SYSDATE) BETWEEN pf.datainicial AND pf.datafinal
|
||||
AND (pf.codigo_tipo = 0 OR pf.codigo_tipo = 2)
|
||||
AND (pf.codigo_tipo = 0
|
||||
OR pf.codigo_tipo = 2)
|
||||
AND pf.loja = l.codigo
|
||||
AND ROWNUM = 1
|
||||
|
||||
) AS precomeuMambo,
|
||||
0 AS vlrprecovenctoprox,
|
||||
pp.custoliquido AS custoliquido,
|
||||
@@ -2713,29 +2739,41 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
||||
0 AS margematacado,
|
||||
pp.lucro AS margemnormal,
|
||||
(
|
||||
SELECT api.margemprecopromocao_clubevm
|
||||
FROM verdemar.produtos_fidelidade pf
|
||||
SELECT
|
||||
api.margemprecopromocao_clubevm
|
||||
FROM
|
||||
verdemar.produtos_fidelidade pf
|
||||
INNER JOIN verdemar.autorizacao_promocao_itens api
|
||||
ON api.codigo = pf.codigo
|
||||
|
||||
ON
|
||||
api.codigo = pf.codigo
|
||||
AND api.chave = pf.chaveorigem
|
||||
WHERE pf.codigo = p.codigo
|
||||
WHERE
|
||||
pf.codigo = p.codigo
|
||||
AND api.datafinal >= SYSDATE
|
||||
AND api.datainicial <= SYSDATE
|
||||
AND pf.loja = l.codigo
|
||||
AND ROWNUM = 1
|
||||
|
||||
) AS margemmeuMambo,
|
||||
subg.sugestao AS margemlucrodivisao,
|
||||
est.quantidade AS estoqueDisponivel,
|
||||
(
|
||||
SELECT est2.quantidade
|
||||
FROM verdemar.loja l2
|
||||
INNER JOIN verdemar.produtos_estoque est2 ON est2.loja = l2.codigo
|
||||
WHERE l2.lojanota = l.codigo
|
||||
SELECT
|
||||
est2.quantidade
|
||||
FROM
|
||||
verdemar.produtos_estoque est2
|
||||
INNER JOIN verdemar.loja l2 ON
|
||||
l2.codigo = est2.loja
|
||||
WHERE
|
||||
est2.codigo = p.codigo
|
||||
AND l2.lojanota = l.codigo
|
||||
AND l2.statusloja = 3
|
||||
AND est2.codigo = p.codigo
|
||||
AND ROWNUM = 1
|
||||
|
||||
) AS estoquetroca,
|
||||
FNC_QTD_EMTRANSITO(p.codigo, l.codigo) AS estoquetransito,
|
||||
FNC_QTD_EMTRANSITO(p.codigo,
|
||||
l.codigo) AS estoquetransito,
|
||||
0 AS estoquefuturo,
|
||||
0 AS estoquereservado,
|
||||
0 AS reserva,
|
||||
@@ -2755,59 +2793,91 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
||||
ult_ent.quantidadecompra AS quantidadecompra,
|
||||
0 AS qtdeatacado,
|
||||
CASE
|
||||
WHEN COALESCE(prom.precopromocao, 0) > 0 THEN 'PROMOCAO'
|
||||
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,
|
||||
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
|
||||
FROM
|
||||
verdemar.produtos p
|
||||
INNER JOIN verdemar.produtos_loja pl
|
||||
ON pl.codigo = p.codigo
|
||||
|
||||
ON
|
||||
pl.codigo = p.codigo
|
||||
INNER JOIN verdemar.loja l
|
||||
ON l.codigo = pl.loja
|
||||
|
||||
ON
|
||||
l.codigo = pl.loja
|
||||
INNER JOIN verdemar.produtos_precos pp
|
||||
ON pp.codigo = p.codigo
|
||||
|
||||
ON
|
||||
pp.codigo = p.codigo
|
||||
AND pp.loja = l.codigo
|
||||
LEFT JOIN verdemar.produtos_estoque est
|
||||
ON est.codigo = p.codigo
|
||||
|
||||
ON
|
||||
est.codigo = p.codigo
|
||||
AND est.loja = l.codigo
|
||||
LEFT JOIN verdemar.produtos_venda_media pvm
|
||||
ON pvm.codigo = p.codigo
|
||||
|
||||
ON
|
||||
pvm.codigo = p.codigo
|
||||
AND pvm.loja = l.codigo
|
||||
LEFT JOIN CTE_UltimaEntrada ult_ent
|
||||
ON ult_ent.produto_codigo = p.codigo
|
||||
|
||||
ON
|
||||
ult_ent.produto_codigo = p.codigo
|
||||
AND ult_ent.loja_codigo = l.codigo
|
||||
AND ult_ent.rn = 1
|
||||
LEFT JOIN (
|
||||
SELECT pr.codigo,
|
||||
SELECT
|
||||
pr.codigo,
|
||||
pr.loja,
|
||||
pr.precopromocao
|
||||
FROM verdemar.promocao pr
|
||||
WHERE (pr.datafinal >= TRUNC(SYSDATE) OR pr.indeterminada = 'S')
|
||||
FROM
|
||||
verdemar.promocao pr
|
||||
WHERE
|
||||
(pr.datafinal >= TRUNC(SYSDATE)
|
||||
OR pr.indeterminada = 'S')
|
||||
|
||||
) prom
|
||||
ON prom.codigo = p.codigo
|
||||
|
||||
ON
|
||||
prom.codigo = p.codigo
|
||||
AND prom.loja = l.codigo
|
||||
LEFT JOIN verdemar.produtos_ean ean
|
||||
ON ean.codigo = p.codigo
|
||||
|
||||
ON
|
||||
ean.codigo = p.codigo
|
||||
AND ean.comprapadrao = 'S'
|
||||
LEFT JOIN verdemar.categoria cat
|
||||
ON cat.codigo = p.categoria
|
||||
|
||||
ON
|
||||
cat.codigo = p.categoria
|
||||
LEFT JOIN verdemar.subgrupo subg
|
||||
ON subg.codigo = p.subgrupo
|
||||
|
||||
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
|
||||
|
||||
ON
|
||||
pew.produto = p.codigo
|
||||
AND pew.cd = 892605
|
||||
WHERE p.codigo = ${args.codproduto}
|
||||
WHERE
|
||||
p.codigo = ${args.codproduto}
|
||||
AND l.participageradorlojas = 'S'
|
||||
AND p.inativo = 'N'
|
||||
`
|
||||
AND l.codigo IN (${args.ctx_user_companies_for_module})`
|
||||
}
|
||||
},
|
||||
detalhe_preco: (args) => {
|
||||
|
||||
Reference in New Issue
Block a user