Fórum Atualiza saldo de estoque via banco de dados #449349

24/07/2013

0

Ola amigos!
Tenho um software erp e até entao nao estou gravando o saldo de estoque dos produtos (embora tenha o campo criado na tabela), hoje faco da seguinte forma: sempre que o software vai mostrar o saldo de 1 ou + produto, ele soma todas as entradas e diminui as saidas e apresenta o saldo. Fica perfeito em termos de resultado pq o sistema sempre mostra o saldo baseado nas movimentacoes ate aquele momento.
Porém em alguns cliente esse processo deixa o sistema lento, devido ao volume de registros.
Andei pesquisando alguma coisa sobre triggers para atualizar esse estoque, porém minha duvida seria em como usar essas triggers na seguinte situacao:
Parte do principio que tenho 3 tabelas: produto, movimento e movimentoitem (no produto tem o campo saldo, e o produto esta vinculado a tabela movimentoitem)
O estoque do produto A é 100, dou saída de 10 e salvo, pela trigger ele vai baixar o estoque para 90... OK
Mas se eu entrar nesta mesma saída e alterar a qtde para 5 (estava como 10), como a trigger vai saber q tem que voltar as 10 para depois dar outra saida de 5*.
*Estou imaginando que a trigger precisa esta ligada ao insert ou update da movimentoitem.
Alessandro Pancotte

Alessandro Pancotte

Responder

Posts

24/07/2013

Joel Rodrigues

No trigger que roda no update você consegue acessar tanto o valor antigo da coluna quanto o valor que está sendo atualizado.
Para isso use as variáveis NEW e OLD, que representam o registro que está sendo inserido e o que está sendo excluído. Isso por que o update funciona como um DELETE+INSERT, saca?
Aí você vai DEVOLVER a quantidade que tinha sido baixada (ESTOQUE += OLD.QUANTIDADE) e BAIXAR a quantidade atual (ESTOQUE -= NEW.QUANTIDADE).
Deu pra sacar a ideia?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar