Ir para conteúdo
Fórum Script Brasil
  • 0

compra de produtos


anccj

Pergunta

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

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

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

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.

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.

Editado por Eder Moraes
Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...