From 8d11ef33651d174be7acd6524841f8d6bde34bbd Mon Sep 17 00:00:00 2001 From: "sarah.magalhaes" Date: Tue, 9 Jun 2026 14:48:45 -0300 Subject: [PATCH] Ajustando estoque inicial detalhe estoque disponivel --- src/products/products.module.ts | 53 +++++++++++++++++---------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/products/products.module.ts b/src/products/products.module.ts index e0a3f80..e4ff674 100644 --- a/src/products/products.module.ts +++ b/src/products/products.module.ts @@ -3021,34 +3021,35 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) detalhe_estoque_disponivel: (args) => { return { sql: /*sql*/ ` - SELECT - e.dataentrada AS dtaentradasaida, - e.loja AS nroempresa, - ei.codigo AS seqproduto, - SUM(CASE WHEN oe.tiponota = 'E' OR oe.tiponota IS NULL - THEN ei.quantidade ELSE 0 END) AS qtdentrada, - SUM(CASE WHEN oe.tiponota = 'S' - THEN ei.quantidade ELSE 0 END) AS qtdsaida, - SUM(CASE WHEN oe.tiponota = 'E' OR oe.tiponota IS NULL - THEN ei.quantidade ELSE 0 END) - - SUM(CASE WHEN oe.tiponota = 'S' - THEN ei.quantidade ELSE 0 END) AS qtdsaldo - FROM entradas e - INNER JOIN entradas_itens ei - ON ei.chaveentrada = e.chave - INNER JOIN operacoes_entradas oe - ON oe.codigo = e.operacao + WITH cte_extrato AS ( + SELECT /*+ MATERIALIZE */ + TRUNC(pe.datamovimento) AS dia, + MAX(pe.saldo + pe.quantidade) + KEEP (DENSE_RANK FIRST ORDER BY pe.integradorflaginc) AS estoque_inicial, + MAX(pe.saldo) + KEEP (DENSE_RANK LAST ORDER BY pe.integradorflaginc) AS estoque_final, + SUM(CASE WHEN pe.tipoorigem IN (1, 3, 4, 5) + THEN pe.quantidade ELSE 0 END) AS qtdentrada, + SUM(CASE WHEN pe.tipoorigem IN (0, 2) + THEN pe.quantidade ELSE 0 END) AS qtdsaida + FROM verdemar.produtos_extrato pe + WHERE pe.codigo = ${args.codproduto} + AND pe.loja = ${args.nrempresa} + AND pe.datamovimento >= TRUNC(SYSDATE) - 365 + GROUP BY + TRUNC(pe.datamovimento) + ) + SELECT + ext.dia AS dtaentradasaida, + ${args.nrempresa} AS nroempresa, + ${args.codproduto} AS seqproduto, + NVL(ext.qtdentrada, 0) AS qtdentrada, + NVL(ext.qtdsaida, 0) AS qtdsaida, + NVL(ext.estoque_final, 0) AS qtdsaldo - WHERE e.dataentrada >= TRUNC(SYSDATE) - 365 - AND e.status = 'S' - AND e.loja = ${args.nrempresa} - AND ei.codigo = ${args.codproduto} + FROM cte_extrato ext - GROUP BY - e.dataentrada, - e.loja, - ei.codigo - ORDER BY e.dataentrada DESC + ORDER BY ext.dia DESC ` } },