ID: enum_IDHelp_RelatProdutosCompradosNaoVendidos
Versão: 2.04.4
Objetivo: Gerar um relatório de produtos comprados que não tiveram vendas para avaliação de produtos sem movimentação no estoque.
Filtros: Para geração do relatório, pode-se usar os seguintes filtros.
Produtos: Forma de filtro de produtos quanto ao status de ativação do produto (Produtos ativos ou não).
Todos: Mostra todos os produtos encontrados independente dos produtos estarem ativos ou não.
Ativos: Mostra apenas os produtos com status de ativo.
Inativos: Mostra apenas os produtos com status de inativos.
Considerar transferência de estoque como saída: Com esta opção acionada o sistema irá considerar transferência de saída como venda, ou seja, se houve transferência o produto é removido do relatório, esta condição geralmente ocorre em transferência de estoque e em apenas situações específicas que isso deve ocorrer.
Desconsiderar produtos com estoque atual zerado: Com esta opção marcada itens com estoque zerado serão desconsiderados.
Ordenação: Na caixa de ordenação é mostrado por qual campo o relatório será ordenado e que tipo de ordenação será aplicada, se de forma crescente ou decrescente.
Querys:
Geração de dados: Para obtenção dos dados a seguinte consulta é aplicada
select historicoproduto.codigoproduto, produto.codbarras, produto.codigoalternativo, produto.produto, sum(historicoproduto.entrada) AS entrada, sum(historicoproduto.saida) AS saida, (0) as CodigoNFEntrada, '' as NumeroNFEntrada, '' as DataNFEntrada, (0) as QtdeNFEntrada, estoqueproduto.Quantidade as QuantidadeEmEstoque From historicoproduto inner join produto on produto.codigo = historicoproduto.codigoproduto inner join estoqueproduto on estoqueproduto.codigoproduto = historicoproduto.codigoproduto and estoqueproduto.CodigoEstoque = historicoproduto.codigoestoque Where (historicoproduto.CodigoEstoque in(1) and historicoproduto.tipoorigem in(2,5,6,9,10)) group by historicoproduto.codigoproduto, produto.codbarras, produto.codigoalternativo, produto.produto ORDER BY produto.codigoalternativo ASC
No resultado da consulta é removido os registros que são processado saída.
Obtenção dos dados da ultima compra: Para cada linha do relatório e executando uma consulta para obter os dados da ultima compra que é:
select nf.codigo, nf.dataentrada, nf.numero, subnf.Quantidade From nf inner join subnf on subnf.codigonf = nf.codigo inner join historicoproduto on historicoproduto.codigoorigem = subnf.codigo and historicoproduto.tipoorigem = 5 Where (nf.TipoNF = 0 and nf.codigoestoque in(1) and subnf.codigoproduto = 260) order by nf.dataentrada desc limit 1