Ajuda - Busca - Membros - Calendário
Versão Completa: compra de produtos
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
anccj
galera estou fazendo um programinha usando delphi/firebird, mas não estou conseguindo fazer a unit de compra de produtos, como faço para uma unica compra ter varios produtos?? eu tenho essas tabelas
CODE
itempedido
idpedido PK
idproduto FK
nome
quantidade
valortota
etc

tbl_compra
idcompra PK
itempedido FK
idproduto FK


como resolver esse problema? já estou desistindo, fiz varias pesquisas na net e não encontrei nada q pudesse me ajudar, minha unica esperanca são vocês.

muito obrigado
Eder Moraes
Utilize uma tabela para armazenar dados da compra como incremento, cliente, funcionario, datasaida, valortotal;
e outra para armazenar os produtos da compra como incremento, i_compra, i_produto ou descricao, quantidade, valorunit.

Explicanto melhor incremento é um indice automático não repetido em uma tabela PK.
i_compra pode ser o indice da tabela principal "compra" ou pode-se usar um codigo para identificar-lo de que compra ele pertence é o FK.

no final faça com que ele calcule o valor total e armazene na tabela principal.

CODE
procedure fechaCompra.....;
var soma:real; //ou float
begin
with tbl_itens do begin
  first; soma := 0.00; DisableControls;
  while not Eof do begin
    soma := soma + (fieldByname('quantidade').asfloat * fieldByname('valorunt').asfloat); //não esqueca de multiplicar pela quantidade do produto use asFloat para valores fracionados na quantidade se não use asInteger.
    next;
  end;
  EnableControls;
  tbl_compra.fieldbyname('valortotal').asfloat := soma;
end;
end;


depois salve com o post ou applyUpdates e commitRet.... dependendo do banco que estais usando.
paulobergo
Programinha?????????????
Não desvaloriza o seu trabalho... programinha, softerzinho, sisteminha... é um "bom" mau-começo...
Bem... a resposta do nosso colega aí está correta...
Eu sugiro (além da sugestão de nunca chamar um programa seu de programinha), que você procure dar uma olhada na documentação do Sintegra.
Tenho observado que todo sistema de controle de compras, vendas, estoque, fatalmente tem o destino líquido e certo de gerar as informações que as fiscalizações estaduais exigem sobre movimentação de mercadorias...
Lendo sobre as exigências do Sintegra, você terá a base da formação de suas tabelas...
Exemplo:
- a tabela de produtos vendidos ou comprados deve ser única, contendo campos que determinam o tipo de operação (entrada ou saía), e outros...
Se quiser saber mais, pesquise Sintegra
Mesmo que o seu "sisteminha" não tenha pretensões de ser uma aplicação fiscal, a receita está toda ali...
Para que você tenha uma idéia, através das informações do Sintegra, a fiscalização consegue levantar em segundos a movimentação completa de produtos de uma empresa, de quem ela comprou, para quem ela vendeu, a quantidade dos itens, compara a venda da empresa com outras empresas concorrentes no mercado, verifica se sela está recolhendo impostos de acordo com o mercado e a época, etc, etc, etc...
Ok?
Espero ter ajudado!
anccj
amigos muito obrigado pelas respostas, quanto ao codigo pelo q eu entendi (sou novato em delphi) esse codigo faz o soma dos valores dos produtos, certo? mas eu quero é poder colocar mais de um produto numa mesma compra, pois quando compro um produto ele gera uma valor no campo de PK, se eu comprar um outro ele vai gerar um outro valor.
exemplo o cliente FULANO comprou o PRODUTO1, PRODUTO2 e PRODUTO3. ai nesse caso ele geraria 3 registros no meu bd, e como faço para uma unica PK sabe quais produtos foi comprado.
fui claro? rsrs

há quanto ao sintegra, valeu mesmo pela dica eu não conhecia e vou dar uma olhada nele.

obrigado
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.