Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ghean

[Resolvido] Balanço de estoque

Recommended Posts

Como posso fazer a implementação FIFO para um balanço de estoque?

Sendo que, tenho os seguintes dados:

 

Entrada:

Produto | Qtd | Valor Unit

------------------------------------------------

Produto 1 | 20 | 13.00

------------------------------------------------

Produto 1 | 10 | 12.00

------------------------------------------------

 

Saida:

Produto | Qtd

------------------------------------------------

Produto 1 | 24

------------------------------------------------

 

Se der saída de 24 unidades do produto 1, as 20 primeiras terá o valor unitário de R$ 13,00 e as outras 4 unidades de R$ 12,00.

E qtd em estoque será 6 unidades com valor unitário de R$ 12,00.

 

É possivel retornar uma query no formato:

 

Produto | Qtd | Valor Unit

------------------------------------------------

Produto 1 | 20 | 13.00

------------------------------------------------

Produto 1 | 4 | 12.00

------------------------------------------------

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer FIFO (First In First Out) não seria preciso a data ?!

Seria feito pela ordem do registro ?

 

Em princípio não vejo como fazer por SQL puro, acho que somente por Procedure pois seria preciso verificar todas as possibilidades de estoque.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Motta eu tenho a data sim.

 

A principio imaginei que seria necessário o uso de procedure sim.

Mas não vejo o processo de sempre pegar a ultima quantidade válida.

 

=(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei algumas implementações de acordo com os exemplos mas não esta rolando...

Tem alguma sugestão de como poderia montar um procedure talvez?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, mas a minha ideia inicial seria montar uma tabela temporária com o "saldo" e depois ler esta temp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nessa temp, como eu poderia ter a informação do último estoque valido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Cria uma temp com

Produto | Qtd | Valor Unit

 

2) insere na tabela a medida que se vai abatendo o estoque até o fim da quantidade

 

Ler desta temp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso eu faria uma leitura da tabela de saida, pegaria a qtd de saida, logo em seguida faria um while e popularia a tabela temp fazendo a comparação com os registros de entrada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, a ideia básica é esta.

 

Mas o comando WITH (não coneço a fundo) não resolve o problema ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é Motta, eu não conheço a fundo a programação em MySQL, por isso estou penando um pouco em fazer essa funcionalidade.

Poderia até tentar resolver via script, PHP por exemplo, mas isso será um serviço e então no script não iria me ajudar muito, por isso estou tentando resolver via banco mesmo.

 

Tem algum exemplo de como pensou na utilização do WITH?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido.

 

Utilizei uma procedure para popular uma tabela com o saldo e uma função para cada insert na tabela saldo consultar o estoque e pegar o valor de acordo com a quantidade disponível em estoque.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.