Ir para conteúdo

Arquivado

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

CrazyLOL

Algoritmo de baixa estoque

Recommended Posts

Galera estou precisando de uma pequena ajuda em montar um algoritmo aqui, a situação é seguinte.

Vou ter em uma tabela que salvara a entrada de vários produtos, o mesmo produto vai ter N registros porem com N quantidades. Mas não posso salvar a quantidade do estoque "juntos" porque preciso saber de qual Pedido que houve a saída. Em outras palavras a minha tabela sera a seguinte:

Pedido | Produto | QTDE | Usado

1 | A | 15 | 0

2 | A | 40 | 0

Com esta tabela de exemplo acima imagine que fiz uma saída do produto A com a quantidade 18, sabemos que se somarmos os dois pedidos temos de saldo 55 correto?

Porém eu preciso marcar em cada registro a quantidade que saiu sendo assim preciso pegar todos registros e fazer descontos por exemplo eu usei 18 então eu vou Descontar 15 do pedido 1 e preciso descontar 3 do pedido 2, a tabela final iria ficar assim:

Pedido | Produto | QTDE | Usado

1 | A | 15 | 15

2 | A | 40 | 3

Claro podemos ter uma situação simples em que uma saída pode ser descontado apenas de um pedido, exemplo, o produto A saiu 4, sendo assim no pedido 2 temos ainda 37 de qtde não temos necessidade de fazer as comparações e etc..

mas enfim a minha duvida está no seguinte ponto, como que poderei fazer essas verificações e descontos?

Estive pensando em fazer WHILE que enquanto o $valorSaida for maior que 0 ele ira percorrer os pedidos que possuem SALDO de quantidade e ir fazendo esses descontos. Mas não sei se isso é uma saída "correta".

Gostaria da opinião dos Srs.

Agradeço antecipado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

Tenho uma pergunta, por que é necessário saber de qual pedido houve a saída? não vejo lógica de saber o quanto falta de cada pedido no seu estoque.

Seria melhor se você tivesse uma tabela onde você de entrada nos pedidos e uma somente com o estoque desses pedidos e uma outra tabela com as saídas.

Se você não for utilizar essa informação a nível de relatório que sirva para alguma outra coisa saber a quantidade de itens que falta para cara pedido é irrelevante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E por isso mesmo, relatórios..

Esses pedidos eles sao alocados por departamentos e preciso identificar depois qual departamento que utilizou tudo o produto e qual que não usou e assim por diante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É bem como ygor.anjos sugeriu.

Mas neste caso eu preferiria trabalhar com triggers, deixando toda a logica diretamente no banco de dados. Se por ventura o pedido for cancelado ou caso tenha pelo caminho um rollback a integridade dos dados do estoque não seria afetada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha esta trigger que vou deixar de exemplo para você fazer no mySql WorkBench ele vai te ajudar a fazer automaticamente o seu controle no estoque.

SAIDA<-----

DELIMITER $$

CREATE TRIGGER TgrItensSaida BEFORE INSERT
ON itens_saida

FOR EACH ROW
BEGIN

UPDATE Produto SET qtd_estoque = qtd_estoque - NEW.qtd_saida
WHERE cod_barras = NEW.cod_barras;

END$$

DELIMITER ;

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

<----ENTRADA

DELIMITER $$

CREATE TRIGGER TgrItensEntrada BEFORE INSERT
ON itens_entrada

FOR EACH ROW
BEGIN

UPDATE Produto SET qtd_estoque = qtd_estoque + NEW.qtd_entrada
WHERE cod_barras = NEW.cod_barras;

END$$

DELIMITER ;

Agora e só chamar o método referente a essa atualização no php q ele executará a TRIGGER OK!!

Espero que te ajude Abraços mano!!!!

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.