Atualizar estoque da Tabela de Produtos
30/11/2004
0
As tabelas são vendas, itenvendas, produtos. Eu sei que tenho que dar um update, mas não sei como nem aonde.
essas são as estruturas básicas das tabelas
Itenvenda Produtos
COD_VENDA COD_PRODUTO
COD_PRODUTO ESTOQUE_ATUAL
QUANTIDADE
preciso fazer ESTOQUE _ATUAL - QUANTIDADE quando finalizar a venda.
Por favor se alguém tiver alguma idéia
Luciohc
Posts
30/11/2004
Rômulo Barros
With(Query)Do Begin Close(); Sql.Text := ´ UPDATE PRODUTOS SET QUANTIDADE = QUANTIDADE - :Qtd_Vendida WHERE COD_PROD = :Codigo_Prod ´; Params[0].AsInteger := Quantidade_Vendida; Params[1].AsInteger := CodigoDoProdutoVendido; ExecSql; End;
30/11/2004
Demetrioi
30/11/2004
Rômulo Barros
Acredito eu que o estoque deve ser guardado na tabela de [b:e3e7d43bc2]produtos[/b:e3e7d43bc2], entretanto a [b:e3e7d43bc2]quantidade vendida [/b:e3e7d43bc2]e o [b:e3e7d43bc2]preço da venda [/b:e3e7d43bc2]deverá ser guardado na tabela [b:e3e7d43bc2]DetalhesDaVenda[/b:e3e7d43bc2].
30/11/2004
Demetrioi
Caro Colega,
Tenho plena certeza de que a qtd em estoque deve ser guardada na tabela de estoque.
Tenho diversos sistemas comerciais (vendidos) e em qq q seja a linguagem escolhida, ou banco de dados, a tabela de estoque vai registrar a qtd em estoque. no resto o citado acima está certo
30/11/2004
Technos
Mostrem aqui como seria a melhor forma.
um abraço.
30/11/2004
Demetrioi
Mande-me um email que te mando um banco de dados exemplo
demetrioi@bol.com.br
30/11/2004
Hard.disk
O que eu costumo fazer é uma tabela de movimento de estoque onde em cada operaçao que eu mexa no estoque eu gravo nessa tabela e a qtd em estoque eu gravo na tabela de produtos.
Não vejo motivo pra não ser dessa forma!!
Por favor, me explique o pq de vc gravar numa outra tabela.. estou curioso...
Obrigado
30/11/2004
Emerson Nascimento
a estrutura seria mais ou menos assim:
- tbproduto
ID_Produto
Codigo
Descricao
etc....
- tbestoque
ID_Produto
ID_Filial
SaldoEmEstoque
assim você consegue saber qual a quantidade em cada filial da empresa.
imagine uma casas bahia da vida com o saldo no cadastro de produtos: você vai lá e compra uma geladeira e quer levá-la naquele momento. o vendedor consulta o saldo e vê que há 230 geladeiras. mas na hora que ele vai ao estoque esta vazio!!!! porque essas 230 geladeiras estão espalhadas por outras filiais. assim, esse tipo de cadastro se torna ineficiente.
se o cadastro do saldo estivesse separado, o vendedor saberia em qual(is) filiais o produto estaria disponível.
01/12/2004
Rômulo Barros
Agora sim ficou bem explicado. Valeu, Emenson !!! :wink:
Mas, por outro lado, se não formos desenvolver para uma ´Casas Bahia´ da vida, continuo trabalhando com a filosofia de guardar a quantidade em estoque na tabela de produtos. Mesmo assim, foi bom e de bastante importância o post do Emerson.en. Está aí mais uma que eu não sabia, e aprendi agora aqui no fórum.
Espero que a dúvida do nosso colega ´Luciohc´ tenha sido sanada.
Valwss...
01/12/2004
Luciohc
With qgeral Do
Begin
Close();
QGeral.CommandText:= ´UPDATE PRODUTOS SET ESTOQUE_ATUAL = ESTOQUE_ATUAL - :Qtd_Vendida´ +
´ WHERE COD_PROD = :COD_PROD´;
Params[0].value := QUANT;
Params[1].Value := PRODUTO;
qgeral.Execute;
End;
dá o erro list index of bounds(0)
alguém sabe como resolve isso
01/12/2004
Hard.disk
mas como eu tb nunca desenvolvi pra casas bahia.. vou continuar trabalhando com a estrutura de gravar qtd em estoque na tabela de produtos.... hehehe
mas valew... concordo com vc...
Qto ao erro.. naum sei direito qual eh..
mas experimenta usar
parambyname(´QUANT´).value
em vez de params[0]
Abraços,
Fabio
01/12/2004
Rômulo Barros
Assim seja !!! :roll: :roll: :roll:
With qgeral Do Begin Close(); TSqlQuery.Sql.Clear(); CommandText:= ´UPDATE PRODUTOS SET ESTOQUE_ATUAL = ESTOQUE_ATUAL - ´ + IntToStr(QUANT) + ´ WHERE COD_PROD = ´ + IntToStr(PRODUTO)´; qgeral.Execute; End;
01/12/2004
Emerson Nascimento
eu trabalho desenvolvendo sistemas de gestão empresarial e também sistemas para gestão de transportadoras e sempre (SEMPRE) há necessidade de controlar mais de uma filial para esses tipos de sistema. por isso o meu esquema de estoque/produção e vendas/faturamento segue sempre esse modelo, mesmo que seja para sistemas menores, pois se a empresa abre uma nova filial, o sistema estará totalmente preparado para trabalhar com esses novos dados, dando informações corretas nesse sentido. e eu sempre fico torcendo pra esses clientes abrirem novas filiais... assim eu vou na carona deles... :D
01/12/2004
Hard.disk
os outros clientes q eu tenho saum na sua grande maioria fabricas... q tem pelo menos 10 anos e funcionamento.. e nem pensam em abrir filial.. mas com certeza o dia q eu tiver esse problema vou usar a sua solução...
valew...
Ja que agente esta falando sobre esse assunto...
Outra coisa q eu costumo fazer eh ter uma tabela de movimento de estoque para eu ter um controle do estoque em qualquer dia..
a tabela eh assim
Id Int
Tpmov FK para uma tabela de tipos de movimento onde ja diz se eh de entrada ou saida
Prod Fk para produto
Qtd (quantidade movimentada)
Valor (valor referente a quantidade movimentada na data que ela foi movimentada)
Vc tb faz assim??
o q vc axa disso??
Abraços
01/12/2004
Hard.disk
nessa tabela tb tem
Data e Hora do movimento..
Abraços de novo
Clique aqui para fazer login e interagir na Comunidade :)