Bom dia, Afim de contribuir com seu projeto vou lhe passar um pouco da minha vivência trabalhando com o maior ERP do Brasil.
- Organize os processos :
- Entradas de Notas : São todos os movimentos que vão abastecer o estoque a atualizar o saldo atual dos produtos. Ex: Notas de Compras, Devolução de Vendas. Organize em 2 tabelas: uma cabeçalho da nota fiscal e outra itens da nota fiscal.
- Saida de Notas : São os movimentos que irão baixar o estoque atualizando o saldo atual do produto. Ex: Notas de vendas e Devolução de Compras. Organize também em 2 tabelas da mesma forma que a entrada, pois técnicamente são tabelas espelhos.
- Movimentações Internas : São todas as movimentações afim de corrigir o estoque em caso de divergencia, processo serve tanto para entrada quanto para saida.
- Inventário : Processo utilizado também para ajustar estoque, mas esse processo é mais utilizando para virada de exercício ou quando o estoque está todo bagunçado mesmo. Esse é um processo avançado mas é bom colocar no radar de features.
- Organize a Lógica:
- Crie uma tabela para armazenar o saldo inicial de estoque. Exemplo de tabela:
codigo | armazem | quantidade | data. Essa tabela será essencial - Crie uma tabela para armazenar o saldo atual de estoque. Exemplo de tabela:
codigo | armazem | quantidade. Essa tabela será volátil ela sempre vai sofrer alteração de acordo com as movimentações de entrada ou saida, e essa tabela que o sistema de venda irá consultar para validar a saida. - Crie uma procedure ou função no banco de dados para realizar o recalculo da tabela de saldo atual sempre que for inserida uma nota fiscal de entrada ou saida. Lógica:
Saldo Inicial + Entradas - Saida = Saldo Atual - Trabalhe a lógica de fechamento estoque: Afim de ganhar performance e evitar problemas de cálculo de estoque trabalhe com lógica de fechamento mensal. Exemplo: Setembro foi realizada todas a operações de entradas e saida, tudo certinho. Ao iniciar o novo mes(Outubro) o sistema deve gerar o saldo inicial referente ao saldo acumulado de Setembro e esse saldo por produto deve ser inserido naquela tabela de saldo incial. Então basicamente o que vai acontecer é que
o saldo contido na sua tabela de saldo atual irá compor o novo saldo inicial para o período de outubro. Assim você irá trabalha sempre com o seu estoque disponível dentro do mes corrente.
Está bem resumido mas dá para dar um bom norte no caminho.