diff --git a/src/products/products.module.ts b/src/products/products.module.ts index 444330b..444c7f8 100644 --- a/src/products/products.module.ts +++ b/src/products/products.module.ts @@ -2864,47 +2864,166 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) pp.precovenda / GREATEST(ean.quantidade, 1) AS preco_unidade, ROUND(pp.sugestao, 2) AS margem - FROM produtos p - INNER JOIN produtos_loja pl + FROM verdemar.produtos p + INNER JOIN verdemar.produtos_loja pl ON pl.codigo = p.codigo - INNER JOIN loja l + INNER JOIN verdemar.loja l ON l.codigo = pl.loja - INNER JOIN produtos_precos pp + INNER JOIN verdemar.produtos_precos pp ON pp.codigo = p.codigo AND pp.loja = l.codigo - INNER JOIN produtos_ean ean + INNER JOIN verdemar.produtos_ean ean ON ean.codigo = p.codigo AND ean.comprapadrao = 'S' - WHERE p.codigo = ${args.codproduto} AND l.codigo = ${args.nrempresa} AND p.inativo = 'N' ` } }, - detalhe_custo_liquido: (args) => { - return { - sql: /*sql*/ `` - } - }, - detalhe_estoque_disponivel: (args) => { - return { - sql: /*sql*/ `` - } - }, - detalhe_estoque_transito: (args) => { - return { - sql: /*sql*/ `` - } - }, detalhe_mdv: (args) => { return { - sql: /*sql*/ `` + sql: /*sql*/ ` + SELECT + pm.data AS dtaentradasaida, + pm.loja AS nroempresa, + pm.codigo AS seqproduto, + DECODE(TO_CHAR(pm.data, 'D'), + '1', 'Domingo', + '2', 'Segunda', + '3', 'Terça', + '4', 'Quarta', + '5', 'Quinta', + '6', 'Sexta', + '7', 'Sábado' + ) AS diasemana, + pm.quantidade AS qtd, + 0 AS qtd_inicial + + FROM produtos_movimento pm + + WHERE pm.quantidade > 0 + AND pm.data >= TRUNC(SYSDATE) - 365 + AND pm.loja = ${args.nrempresa} + AND pm.codigo = ${args.codproduto} + + ORDER BY pm.data DESC + ` } }, detalhe_situacao_vigente: (args) => { return { - sql: /*sql*/ `` + sql: /*sql*/ ` + SELECT + l.codigo AS nroempresa, + p.codigo AS seqproduto, + prom.datainicial AS dtainicio, + prom.datafinal AS dtafim, + ean.quantidade || ' ' || ean.embalagem AS embalagem, + prom.precopromocao AS preco + + FROM promocao prom + INNER JOIN produtos p + ON p.codigo = prom.codigo + INNER JOIN produtos_loja pl + ON pl.codigo = p.codigo + INNER JOIN loja l + ON l.codigo = pl.loja + AND l.codigo = prom.loja + LEFT JOIN produtos_ean ean + ON ean.codigo = p.codigo + AND ean.comprapadrao = 'S' + + WHERE prom.datainicial >= TRUNC(SYSDATE) - 90 + AND prom.loja = ${args.nrempresa} + AND prom.codigo = ${args.codproduto} + ORDER BY prom.datainicial DESC + ` + } + }, + detalhe_custo_liquido: (args) => { + return { + sql: /*sql*/ ` + SELECT + e.dataentrada AS dtaentradasaida, + e.loja AS nroempresa, + ei.codigo AS SEQPRODUTO, + 0 AS seqfamilia, + 0 AS estqinicial, + 0 AS estqfinal, + ei.custoliquido AS custo + + FROM entradas e + INNER JOIN entradas_itens ei + ON ei.chaveentrada = e.chave + INNER JOIN operacoes_entradas oe + ON oe.codigo = e.operacao + WHERE e.dataentrada >= TRUNC(SYSDATE) - 365 + AND e.status = 'S' + AND e.loja = ${args.nrempresa} + AND ei.codigo = ${args.codproduto} + ORDER BY e.dataentrada DESC + ` + } + }, + 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 + + WHERE e.dataentrada >= TRUNC(SYSDATE) - 365 + AND e.status = 'S' + AND e.loja = ${args.nrempresa} + AND ei.codigo = ${args.codproduto} + + GROUP BY + e.dataentrada, + e.loja, + ei.codigo + ORDER BY e.dataentrada DESC + ` + } + }, + detalhe_estoque_transito: (args) => { + return { + sql: /*sql*/ ` + SELECT + e.loja AS nroempresa, + ei.codigo AS seqproduto, + FNC_NOMEPESSOAS(e.fornecedor) AS FORNECEDOR, + e.numero AS NUMERONF, + e.serie AS SERIENF, + e.dataemissao AS DTAEMISSAO, + e.dataentrada AS DTAENTRADA, + ei.quantidade AS QUANTIDADE, + ei.custoliquido * ei.quantidade AS VALOR + + FROM entradas e + INNER JOIN entradas_itens ei + ON ei.chaveentrada = e.chave + + WHERE e.status <> 'S' + AND e.dataemissao >= TRUNC(SYSDATE) - 365 + AND e.loja = ${args.nrempresa} + AND ei.codigo = ${args.codproduto} + ORDER BY e.dataemissao ASC, e.numero, e.serie + ` } } }