VerificandoEstoque

De Projetus Wiki

Como Verificar o Estoque dos Produtos?

Para conferir o estoque dos produtos, baseado em um determinado período, deve-se seguir os passos abaixo:

  1. Executar a função de recalcular o estoque
  2. Verificar o estoque atual de um produto em uma determinada data (Ex. 31/01/2010)
  3. Executar os SQLs abaixo para somar com o estoque obtido acima (Utilizar o período seguinte a data informada anteriormente. Ex. de 01/02/2010 a 28/02/2010, assim teremos o estoque em 28/02/2010 para conferir com o do sistema):

SQL para pegar a quantidade total de Movimentação Interna de SAÍDA

select sum(es.f_quantidade)
  from esprodutos es
 where es.data >= :dtInicial
   and es.data <= :dtFinal
   and es.f_codproduto = :codProduto
   and es.tipoes = 'S'

SQL para pegar a quantidade total de Movimentação Interna de ENTRADA

select sum(es.f_quantidade)
  from esprodutos es
 where es.data >= :dtInicial
   and es.data <= :dtFinal
   and es.f_codproduto = :codProduto
   and es.tipoes = 'E'

SQL para pegar a quantidade total de VENDA (No SQL é retirado as notas ou cupons cancelados e também os itens cancelados)

select sum(vp.quantidade)
  from vendasprodutos vp
 inner join nfsaidas nf
    on nf.nempresa = vp.nempresa
   and nf.referencia = vp.referencia
   and nf.data = vp.data
   and nf.nseqvendas = vp.nseqvendas
 where vp.data >= :dtInicial
   and vp.data <= :dtFinal
   and vp.codproduto = :codProduto
   and vp.ctrlestoque = 'T'
   and vp.incestoque = 'T'
   and vp.nseqvendasprodutosexc is null
   and (select count(*) from vendasprodutos vp2
         where vp2.nempresa = vp.nempresa
           and vp2.referencia = vp.referencia
           and vp2.data = vp.data
           and vp2.nseqvendas = vp.nseqvendas
           and vp2.nseqvendasprodutosexc = vp.nseqvendasprodutos) <= 0
   and nf.situacaonota = '0'

SQL para pegar a quantidade total de COMPRA (No SQL é retirado as notas ou cupons cancelados)

select sum(cp.quantidade)
  from comprasprodutos cp
 inner join nfentradas nf
    on nf.nempresa = cp.nempresa
   and nf.referencia = cp.referencia
   and nf.data = cp.data
   and nf.nseqcompras = cp.nseqcompras
 where cp.data >= :dtInicial
   and cp.data <= :dtFinal
   and cp.codproduto = :codProduto
   and cp.ctrlestoque = 'T'
   and cp.incestoque = 'T'
   and nf.situacaonota = '0'