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:
- Executar a função de recalcular o estoque
- Verificar o estoque atual de um produto em uma determinada data (Ex. 31/01/2010)
- 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'
