TELA DE PEDIDO DE VENDA DE PRODUTO NO DELPHI 7
07/11/2024
0
Estou criando uma tela de pedido de venda no delphi7. Já desenvolvi o formulário, nele já consigo buscar o cliente e já tenho os botões funcionando de incluir, alterar, cancelar e excluir.
Inclui uma DBgrid para inserir os produtos do pedido, mas o problema que esta parte nunca mexi então não sei por onde começar.
No ibconsole, criei duas tabelas:
PRODUTOS - > COD, NOME, ESTOQUE, CUSTO, VENDA
ITEM_PEDIDO -> COD_ITEM, COD_PEDIDO, COD_PRODUTO, QUANTIDADE, VALOR_UNI, VALOR_TOTAL_ITEM
Pensei nesta duas tabelas na ideia de a tabela item armazenar os itens de cada pedido, mas não sei como interligar as duas tabelas a DBgrid. Pois na grid terá que mostrar o nome do produto e UN buscado da tabela produto através do código do item armazenado na tabela item_pedido.
A ideia seria esta mesmo ou seria melhor eu criar todos os campos na minha tabela item pedido?
a ideia é criar um formulário de pedido de venda simples, onde seleciona o cliente com seus dados, cada item do pedido, informe o valor total de cada item e o valor total geral em baixo.
estando pronto, criarei um relatório para imprimir o pedido.
Inclui uma DBgrid para inserir os produtos do pedido, mas o problema que esta parte nunca mexi então não sei por onde começar.
No ibconsole, criei duas tabelas:
PRODUTOS - > COD, NOME, ESTOQUE, CUSTO, VENDA
ITEM_PEDIDO -> COD_ITEM, COD_PEDIDO, COD_PRODUTO, QUANTIDADE, VALOR_UNI, VALOR_TOTAL_ITEM
Pensei nesta duas tabelas na ideia de a tabela item armazenar os itens de cada pedido, mas não sei como interligar as duas tabelas a DBgrid. Pois na grid terá que mostrar o nome do produto e UN buscado da tabela produto através do código do item armazenado na tabela item_pedido.
A ideia seria esta mesmo ou seria melhor eu criar todos os campos na minha tabela item pedido?
a ideia é criar um formulário de pedido de venda simples, onde seleciona o cliente com seus dados, cada item do pedido, informe o valor total de cada item e o valor total geral em baixo.
estando pronto, criarei um relatório para imprimir o pedido.
Fabio Palagar
Curtir tópico
+ 0
Responder
Posts
11/11/2024
Arthur Heinrich
Para retornar dados simultaneamente de múltiplas tabelas, você precisa escrever uma query com joins entre as tabelas.
Porém, em uma tela de cadastro de pedidos, o pedido ainda não existe. O cliente vai digitar o código do pedido, e os dados precisam ser preenchidos dinamicamente. Talvez seja necessário até criar uma tela de busca de produtos, pelo nome, fabricante ou o que quer que seja, para auxiliar no preenchimento.
Se eu fosse fazer algo parecido, eu criaria uma série de rotinas para retornar dados de produtos, clientes, pedidos, etc., em classes do Delphi, para poder manipular os dados em memória.
Na tela de cadastro, eu utilizaria um StringGrid comum, formatando as colunas através do evento OnDrawCell e utilizando o evento OnSetText (ou coisa parecida) para carregar os dados do produto, quando o código for preenchido.
Para que fique responsivo, precisa de muito mais coisas do que um DBGrid. Precisa garantir que o pedido não venda mais do que existe do produto em estoque, por exemplo. E, caso o pedido seja aceito, os produtos precisam ficar reservados, para evitar que outro pedido venda o mesmo produto, múltiplas vezes. Além disso, caso o pedido não seja pago, precisa haver um período limite, no qual, caso o pedido não seja pago, o mesmo precisa ser cancelado, liberando os produtos para outra venda.
Porém, em uma tela de cadastro de pedidos, o pedido ainda não existe. O cliente vai digitar o código do pedido, e os dados precisam ser preenchidos dinamicamente. Talvez seja necessário até criar uma tela de busca de produtos, pelo nome, fabricante ou o que quer que seja, para auxiliar no preenchimento.
Se eu fosse fazer algo parecido, eu criaria uma série de rotinas para retornar dados de produtos, clientes, pedidos, etc., em classes do Delphi, para poder manipular os dados em memória.
Na tela de cadastro, eu utilizaria um StringGrid comum, formatando as colunas através do evento OnDrawCell e utilizando o evento OnSetText (ou coisa parecida) para carregar os dados do produto, quando o código for preenchido.
Para que fique responsivo, precisa de muito mais coisas do que um DBGrid. Precisa garantir que o pedido não venda mais do que existe do produto em estoque, por exemplo. E, caso o pedido seja aceito, os produtos precisam ficar reservados, para evitar que outro pedido venda o mesmo produto, múltiplas vezes. Além disso, caso o pedido não seja pago, precisa haver um período limite, no qual, caso o pedido não seja pago, o mesmo precisa ser cancelado, liberando os produtos para outra venda.
Responder
Clique aqui para fazer login e interagir na Comunidade :)