controle de estoque
oi!!!!!
Estou criando um programa que exige um controle de estoque, ele está sendo feito no delphi, mas o banco de dados dele é no access.
Gostaria de saber como eu faço para quando uma meradoria for comprada, ela ir automaticamente para o estoque, e quando for vendida, automaticamente ser excluída do estoque.
Conto com a juda de vcs!!!!
Obrigada!!!
´Ninguém sabe tão pouco que não tenha nada a ensinar.Ninguém sabe tanto que não tenha nada a aprender!´
Estou criando um programa que exige um controle de estoque, ele está sendo feito no delphi, mas o banco de dados dele é no access.
Gostaria de saber como eu faço para quando uma meradoria for comprada, ela ir automaticamente para o estoque, e quando for vendida, automaticamente ser excluída do estoque.
Conto com a juda de vcs!!!!
Obrigada!!!
´Ninguém sabe tão pouco que não tenha nada a ensinar.Ninguém sabe tanto que não tenha nada a aprender!´
Liliamcas
Curtidas 0
Respostas
Aroldo Zanela
16/03/2004
Colega,
Acho recomendável utilizar três colunas para estoque: inicial, saidas e entradas. Quando cadastrar e efetuar o primeiro inventário deve ser lançado em estoque inicial e para as operações de compra, venda, devoluções, trocas e outras baixas (quebras - roubo, etc) lançar na coluna respectiva.
Isto ajuda numa eventual rotina de consistência, ou seja, somar todas as entradas e confrontar com a coluna de entradas e somar todas as saídas e confrontar com a coluna de saídas.
Para efetuar essas tarefas, basta utilizar algum método de posicionamento no registro desejado, como por exemplo o método locate.
Acho recomendável utilizar três colunas para estoque: inicial, saidas e entradas. Quando cadastrar e efetuar o primeiro inventário deve ser lançado em estoque inicial e para as operações de compra, venda, devoluções, trocas e outras baixas (quebras - roubo, etc) lançar na coluna respectiva.
Isto ajuda numa eventual rotina de consistência, ou seja, somar todas as entradas e confrontar com a coluna de entradas e somar todas as saídas e confrontar com a coluna de saídas.
Para efetuar essas tarefas, basta utilizar algum método de posicionamento no registro desejado, como por exemplo o método locate.
GOSTEI 0
Liliamcas
16/03/2004
oi Aroldo,
Era isso msm q eu estava precisando, na verdade eu já tinha criado essas tabelas separadamente, mas ao invés de simplificar as coisas, eu estava pensando em algo muito complicado e meio sem lógica, mas era exatamente essa visão q estava faltando.
Ah, se possível, vc poderia falar mais sobre o método locate?
Obrigada!!!!!!
Era isso msm q eu estava precisando, na verdade eu já tinha criado essas tabelas separadamente, mas ao invés de simplificar as coisas, eu estava pensando em algo muito complicado e meio sem lógica, mas era exatamente essa visão q estava faltando.
Ah, se possível, vc poderia falar mais sobre o método locate?
Obrigada!!!!!!
GOSTEI 0
Microbios
16/03/2004
O comando locate é usado para localizar um registro em um campo da tabela ou vários campos. Ex.
tabela.locate(´Codigo´,Edit1.text,[loPartial,loCaseInsensitive]); e
tabela.locate(´Codigo;Nome´,VarArrayOf[Edit1.Text,Edit2.Text]
,[LoPartial,LoCaseInsesitive]) com esse locate vc estaria procurando na sua tabela um campo codigo e um campo nome, passado por edit1 e edit2 respectivamente.
Espero ter Ajudado
Rafael
microbios@indinet.com.br
tabela.locate(´Codigo´,Edit1.text,[loPartial,loCaseInsensitive]); e
tabela.locate(´Codigo;Nome´,VarArrayOf[Edit1.Text,Edit2.Text]
,[LoPartial,LoCaseInsesitive]) com esse locate vc estaria procurando na sua tabela um campo codigo e um campo nome, passado por edit1 e edit2 respectivamente.
Espero ter Ajudado
Rafael
microbios@indinet.com.br
GOSTEI 0
Anderson Silva
16/03/2004
Bom ai vai minha Opniao
vc deve gravar registro por registro de cada operacao.
por exemplo
na Tabela de Movimento de Estoque vc teria diversos campos do material, nota fiscal etc mas tambem os 3 campos abaixo para o controle do movimento de entrada e saida.
quando fosse entrada vc gravaria por exemplo
Material, TipoMovto, QtdEntrada, QtdSaida
25478, ´E´, 10, 0
qundo fosse saida vc gravaria
Material, TipoMovto, QtdEntrada, QtdSaida
25478, ´S´, 0, 10
ou seja, vc teria um saldo de 0, pois entrou 10 e saiu 10, tudo isso gravado para no futuro poder ser analizado e resomado se preciso
pq fazer isso
com isso vc teria um log de entradas e saidas facilitando os relatórios de posicao de estoque, livros modelos, Inventários etc,
eu cheguei a essa conclusão depois de passar por problemas do tipo, eu gravava isso no cadastro do mateiral, porem, devido a erros como quedas de energia etc, os saldos nunca batiam com as contagens de estoque, então resolvi gravar registro por registro e nunca mais encontramos problemas de inventario não baterem com os saldos etc.
sei que a quantidade de registros será enorme, mas nada que os bancos de dados hoje noa suportem brincando, e ainda existe as rotinas de sintetização de movimento onde vc retira movimentos do banco de dados e deixa só os saldos, mas isso vai da nescessidade de cada um.
espero ter ajudado um pouco.
vc deve gravar registro por registro de cada operacao.
por exemplo
na Tabela de Movimento de Estoque vc teria diversos campos do material, nota fiscal etc mas tambem os 3 campos abaixo para o controle do movimento de entrada e saida.
quando fosse entrada vc gravaria por exemplo
Material, TipoMovto, QtdEntrada, QtdSaida
25478, ´E´, 10, 0
qundo fosse saida vc gravaria
Material, TipoMovto, QtdEntrada, QtdSaida
25478, ´S´, 0, 10
ou seja, vc teria um saldo de 0, pois entrou 10 e saiu 10, tudo isso gravado para no futuro poder ser analizado e resomado se preciso
pq fazer isso
com isso vc teria um log de entradas e saidas facilitando os relatórios de posicao de estoque, livros modelos, Inventários etc,
eu cheguei a essa conclusão depois de passar por problemas do tipo, eu gravava isso no cadastro do mateiral, porem, devido a erros como quedas de energia etc, os saldos nunca batiam com as contagens de estoque, então resolvi gravar registro por registro e nunca mais encontramos problemas de inventario não baterem com os saldos etc.
sei que a quantidade de registros será enorme, mas nada que os bancos de dados hoje noa suportem brincando, e ainda existe as rotinas de sintetização de movimento onde vc retira movimentos do banco de dados e deixa só os saldos, mas isso vai da nescessidade de cada um.
espero ter ajudado um pouco.
GOSTEI 0
Hard.disk
16/03/2004
Bom.. eu ja fiz isso.. a solução que eu tive foi a seguinte:
Na tabela de produtos eu tenho 3 campos
QtdMinima (se o estoque for menor que isso.. ele avisa que tem falta desse produto)
QtdIdeal (é o estoque que ele sugere quando tira um relatorio de produtos que eu presiso comprar)
Estoque (é o estoque atual)
Alem disso uma tabela de movimento de estoque
sempre q eu realizo uma venda ou uma compra eu registro nessa tabela de movimento de estoque e somo ou subtraio do estoque atual na tabela de produtos.. assim eu sempre tenho o estoque atual sem precisar fazer conta.. e tenho um registro de todo movimento de estoque para futuras referencias..
Abraços..
Na tabela de produtos eu tenho 3 campos
QtdMinima (se o estoque for menor que isso.. ele avisa que tem falta desse produto)
QtdIdeal (é o estoque que ele sugere quando tira um relatorio de produtos que eu presiso comprar)
Estoque (é o estoque atual)
Alem disso uma tabela de movimento de estoque
sempre q eu realizo uma venda ou uma compra eu registro nessa tabela de movimento de estoque e somo ou subtraio do estoque atual na tabela de produtos.. assim eu sempre tenho o estoque atual sem precisar fazer conta.. e tenho um registro de todo movimento de estoque para futuras referencias..
Abraços..
GOSTEI 0
Raserafim
16/03/2004
Anderson, eu tb faço os meus controles de estoques registrando todas as movimentações. acho mais seguro, mais lógico, e mais rico.
mas vc poderia falar um pouco sobre rotinas de sintetização de movimento?
mas vc poderia falar um pouco sobre rotinas de sintetização de movimento?
GOSTEI 0