Controle de Venda, Compra e Estoque - melhor solu��o
Usuário: Senha: Controle de Venda, Compra e Estoque - melhor solu��o
26/02/2011 18:23:54
Assunto: Controle de Venda, Compra e Estoque - melhor solu��o
Membro desde: 27/01/2009 14:12:51
Offline Pessoal, estou desenvolvendo um sistema, no qual criei as seguintes entidades:
-Itens de Venda
-Itens de Compra
O sistema � bem grande, preciso calcular o estoque, pensei em algumas estrategias e queria que alguem experiente em desenvolver grandes sistemas me desse uma opini�o sobre a melhor.
1- Criar uma tabela Estoque e criar triggers no banco para quando criar uma Compra, ele adicionar no estoque e quando fazer uma Venda ele remover.
Possiveis problemas: Quando efetuando uma venda vamos supor que a energia cai, e ele efetua a venda mas n executa a trigger, isso pode acontecer? ou o banco garante que a atomicidade da Venda+trigger?
2- Calcular o estoque buscando as Compras de um produto e depois buscar todas as Vendas e assim conseguir saber fazendo a subtra��o.
Possiveis problemas: Como o sistema vai ser muito grande, me parece uma opera��o bem custosa.
3- Criar a tabela estoque e quando fazer uma Venda, fazer uma baixa na tabela estoque naquele produto, fazer essa logica via software no pr�prio sistema.
Possiveis problemas: Pode ser que aconteca uma queda de energia apos inserir a venda e nao diminua do estoque, acho q essa seria a pior resolu��o para o problema.
Alguem tem uma boa solucao para isso?
This message was edited 2 times. Last update was at 27/02/2011 10:49:58
26/02/2011 21:16:55
Assunto: Re:Controle de Venda, Compra e Estoque - melhor solu��o
Offline A primeira. Com transa��es o banco garante a atomicidade da trigger. Ela tamb�m evita que haja furos no banco.
27/02/2011 10:22:30
Offline obrigado Vini
Estou usando hibernate, dai na tabela estoque nao tenho q fazer nada? nem falar pro hibernate que vai ter trigger??
Nao crio relacionamento nenhum na tabela estoque nao? faco so o mapeamento normal?
This message was edited 1 time. Last update was at 27/02/2011 10:49:41
27/02/2011 22:59:26
Membro desde: 06/02/2010 18:46:46
Offline fredcrs wrote:obrigado Vini
N�o, voce n�o precisa dizer ao hibernate o que uma trigger vai fazer, isto porque, como o pr�prio nome j� diz em ingl�s "Trigger" que quer dizer "Gatilho", � uma implementa��o do Banco de Dados, que � disparado quando h� uma a��o de "Insert", "Update" ou "Delete" em determinada tabela do Banco de Dados.
O que o Hibernate vai fazer � criar automaticamente as Instru��es de Insert, Update e Delete e um Select na tabela, quando executa as tres primeiras a��es, a Trigger (Gatilho) � executada dentro do banco e n�o na aplica��o. O Senhor � meu Pastor e nada me faltar�. (Sl. 23:01)
28/02/2011 09:22:54
Offline Depende muito do seu estoque, pois controle de estoque n�o � apenas dar baixa quando uma compra � feita... Ent�o a possibilidade de criar apenas uma trigger n�o sei se seria a melhor solu��o.
Conhe�o em alguns casos que o controle de estoque � utilizado para realizar as compras, e a empresa tem um estoque m�nimo e este produto fica na loja (mercado), ent�o a baixa de estoque n�o precisa ser feita online, logo existe um processo no final do expediente que baixa o estoque j� gerando relat�rios.
O seu estoque precisa ser feito online? Ou seja, � necess�rio saber em tempo real quantos itens t�m para evitar uma venda sem aquele produto?
Outro detalhe que deve ser pensando � a possibilidade do estoque ser controlado por mais filiais, ou seja, o cliente compra na loja A, mas vai retirar o produto na loja B, onde o produto est� dispon�vel.
Outro fator que precisa considerar � como vai ser feito a entrada em estoque? atrav�s de nota fiscal de compra, por�m precisa pensar no caso de lan�amento de produto errado, erro na nota, ou at� mesmo devolu��o de produto com defeito, como vai ser feito o acerto no estoque?
Bom a principio, acho que temos pouca informa��o como vai ser feito o seu controle de estoque, todas as solu��es que mostrou da para ser implementada, a d�vida � s� quest�o de como vai ser controlado seu estoque (online, off-line)
28/02/2011 09:52:56
Offline Astork,
obrigado pelas dicas, vou explicar melhor...
Trata-se de um sistema para mais de uma loja e como voc� disse, o estoque deve ser controlado online pois, se n�o, duas lojas podem vender o mesmo produto em estoque.
A quest�o da entrada no estoque, eu estou fazendo pela Compra, mas existe uma confirma��o para essa compra onde ela deve ser finalizada com o rebecimento da carga e conferida por um funcion�rio. S� depois disso ela ser� adicionada ao estoque.
At� ai tudo ok
O problema � que, suponha que a carga chegue errada ou com algum com defeito, mas mesmo assim o funcion�rio quer aceitar essa parte da carga, na compra consta 50 itens mas ele vai pegar apenas 20, entao oq fa�o com esses 30? retiro da compra?
28/02/2011 10:15:08
Offline Trata-se de um sistema para mais de uma loja e como voc� disse, o estoque deve ser controlado online pois, se n�o, duas lojas podem vender o mesmo produto em estoque. Veja se � online o estoque, de fato voc� vai precisar de alguma transa��o para ser feito baixa na compra e no estoque, como uma unica transa��o.
Mas � preciso verificar com seu cliente se existe a possibilidade de uma reserva de compra, pois em alguns casos vai existir o produto em estoque, mas o mesmo n�o vai estar disponivel para venda, pois outro cliente est� em processo de compra, logo voc� n�o pode fazer uma trigger na hora da venda... !!!! Neste caso seria um m�dulo de reserva de produto ou de or�amento.
� necess�rio ver como seu cliente e confirmar que a forma de trabalho dele � esta, pois como ele vai fazer com a nota? A nota fiscal vai vim com o valor cheio, inclu�ndo impostos etc. Vai ser retificado esta nota? vai vim outra com outro numero?
E caso voc� queira saber que nota veio uma determinada carga? o numero da carga vai ser da antiga nota errada, ou da nova nota com apenas as 20 unidades?
A quest�o principal em rela��o a sua duvida � entender perfeitamente como seu cliente quer, pois a implementa��o n�o � dificil. Estou fazendo estas perguntas, para tentar lembrar voc� de algo que n�o foi levantado com o cliente e depois com todas informa��es discutirmos formas tecnicas de serem feitos... mas cuidado pois o grande problema do Controle de Estoque, est� em sua regra com muitos detalhes.
28/02/2011 10:26:04
Offline Agora falando tecnicamente e formas de implementar. A solu��o utilizando trigger no banco de dados n�o � uma boa solu��o.
- Voc� vai ficar dependente de banco de dados, e uma migra��o para outro banco, requer escrever algumas coisas que n�o seja padr�es entre os bancos.
- O estoque vai ter muito mais coisas que fazer, do que apenas da baixa, existem (reserva de produtos, transferencia de lojas, venda (problemas com venda, cliente comprou e n�o quer mais, pode devolver), compra (problemas na compra, nota fiscal errada, produto com erro).
Outro detalhe muito importante, estoque n�o s�o 100% confiaveis, pois o seu sistema vai estar seguro at� um momento, mas nas empresas que desenvolvemos estoque um grande problema era rouba, desvio, ent�o sempre, sempre vai ter estoque furado, e voc� vai precisar fazer uma conferencia, logo voc� n�o vai querer que seu cliente fica te ligando para voc� acertar o estoque certo?
Ent�o voc� teoricamente precisa desenvolver m�dulos de ajuste de estoque, com uma grande seguran�a (para apenas pessoas autorizadas poderem alterar / acertar estoque sem uma nota fiscal vinculada).
Outro detalhe, que esqueci de perguntar, que tipo de produto voc� est� mexendo? Produtos pequenos, por exemplo mercado (arroz, feij�o, refrigerante, chocolate, etc) ou produtos maiores (computador, televis�o). Que tipo de segmento � seu cliente... Pois cada segmento � diferente.
Onde desenvolvemos um sistema era para um mercado, ent�o existia muito furo de roubo, sempre ele estavam fazendo conferencia, em varios casos era obrigado acertar o estoque na m�o por um supervisor e claro descobrirem porque tal "sumi�o". Outra coisa que eles tinham produ��o propria, ent�o alguns produtos entrava no estoque mas n�o existia venda, apenas era feito transferencia para outros setores da empresa (dep�sito transfere 500 Kg de farinha para padaria, 300 ovos para confeitaria), logo n�o existia venda, mesmo assim era necess�rio controlar o estoque para n�o parar a produ��o interna.
Voc� ja fez o analise do cliente? Existe cliente? � um produto para qualquer segmento, ou � um software personalizado?
Bom desculpe tantas perguntas.. !!! Mas apenas para conhecer um pouco mais seu negocio.
28/02/2011 10:30:14
Offline Esse sistema n�o � para um cliente em espec�fico, � um sistema generico e por isso estou tentando cobrir diferentes maneiras de como o cliente pode trabalhar(regras de neg�cio)...
28/02/2011 10:33:37
Offline Legal fredcrs, seria interessante voc� fazer o levantamento de requisitos, se possivel em alguma empresa... caso n�o consiga.. tentar pensar em todas possibilidades, criar os requisitos.. e caso queira.. apresente aqui no forum e podemos discutir...
Infelizmente tecnicamente!! Eu s� consigo de ajudar dizendo que por trigger acredito n�o acho uma boa solu��o.. !!! Mais detalhes so com o problema todo mapeado.
28/02/2011 10:36:34
Offline Astork, seus posts est�o sendo de grande ajuda.
Sobre a implementa��o vejo que trigger pode n�o ser mesmo a melhor solu��o...
Mas n�o consigo enxergar algo mais facil...
Posso sim implementar um ajuste de estoque para pessoas autorizadas, � uma boa ideia mesmo..
O sistema n�o engloba empresas que produzem, apenas compra e venda. Ent�o ser� algo a menos para se preocupar.
28/02/2011 10:38:40
Offline Estou preenchendo um documento com os requisitos, antes de fazer o diagrama de classes...
Quando terminar posto algo e conversamos, obrigado pela ajuda
28/02/2011 10:44:42
Offline 3- Criar a tabela estoque e quando fazer uma Venda, fazer uma baixa na tabela estoque naquele produto, fazer essa logica via software no pr�prio sistema.
Eu iria por este caminho a principio.
Tratar a l�gica de neg�cio no seu modelo, e utilizar apenas o banco apenas para guardar dados... Com uma tabela de estoque (n�o esque�a da coluna FILIAL, ou algo do genero, para controlar por filial o estoque).
Utiliza o java (modelo) para tratar de atualiza��es, e sobre problemas de queda de energia, utiliza transa��es tornando o processo de baixa de estoque e compra da nota, como uma unica transa��o.
28/02/2011 14:51:56
Offline Astork wrote:
Entendi, mas nao vejo como utilizar apenas uma tabela para fazer compra e estoque - venda e estoque
This message was edited 1 time. Last update was at 28/02/2011 15:02:51
28/02/2011 16:43:21
Offline Entendi, mas nao vejo como utilizar apenas uma tabela para fazer compra e estoque - venda e estoque
Depende do nivel de informa��o que voc� quer armazenar.. !!!
Voc� quer fazer um rastreamento pela movimenta��o de uma mercadoria? algo como
Filial A -->> Transfere 100un Produto A -->> Filial B
Filial A -->> Vende 2un Produto A
Filial A -->> Vende 5un Produto B
Filial A -->> Recebe 100un Compra N.F. 112233
Se for assim, de fato vc n�o vai conseguir com apenas uma tabela.. !!! agora em casos mais b�sicos, apenas o numero atual do produto j� resolve.
Lembrando que Compra e venda de produto, faz movimenta��o do estoque, mas eles n�o s�o o m�dulo de estoque.
O que faz parte do estoque �, atualiza��o de estoque (acerto), transferencia de estoque, etc.. Saida para loja.