MODULO FRENTE CAIXA - VENDA
olá amigos, mais uma vez venho pedir uma ajuda dÃÂ' seis..
ha várias semanas estou batendo a cabeça com o modulo vendas (frente Caixa)... preciso entender como funciona as tabelas do modulo Vendas: tenho as TBlCupom, TblItensVendas, Elas estão ralacionadas. mas pintou uma dificuldade, fechar venda, como eu faço para armazenar as informações do fechamento das vendas... ValorTotal,Troco,Desconto,TipoVenda(Cartão,Cheque,Dinheiro Etc..) Referente ao Nº da Venda (IDCupom)....
agradeco a colaboração de todos...
uso access 2003
Conx ADO....
ha várias semanas estou batendo a cabeça com o modulo vendas (frente Caixa)... preciso entender como funciona as tabelas do modulo Vendas: tenho as TBlCupom, TblItensVendas, Elas estão ralacionadas. mas pintou uma dificuldade, fechar venda, como eu faço para armazenar as informações do fechamento das vendas... ValorTotal,Troco,Desconto,TipoVenda(Cartão,Cheque,Dinheiro Etc..) Referente ao Nº da Venda (IDCupom)....
agradeco a colaboração de todos...
uso access 2003
Conx ADO....
alguem tem alguma sugestão ?
Estruturalmente, a sua tabela deveria estar da seguinte forma:
->TAB. VENDA (ID_VENDA, VALOR_TOTAL_VENDA)
->TAB. VINC. PROD(ID_VENDA, ID_PROD, VAL_UNIT, QTDE)
->TAB. PAGTO VENDA (ID_VENDA, VALOR_PAGO, TIPO_PAGTO)
E a rotina deveria funcionar da seguinte forma mais ou menos:
Na hora que VC for efetuar uma venda, VC gera um número na ID_VENDA, com o VALOR_TOTAL_VENDA = 0
Conforme VC vai adicionando produtos, VC usa este mesmo ID_VENDA na tab. VINC. PROD, grava este ID_VENDA, ID_PROD, VAL_UNIT e QTDE.
Atualiza a tabela VENDA com o valor total (VALOR_TOTAL_VENDA = VALOR_TOTAL_VENDA + (VAL_UNIT * QTDE)
E vai gravando os dados nesta tabela vinc. Prod.
Na hora de fechar, VC grava na tabela PAGTO_VENDA, a este ID_VENDA, o valor PAGO e com o que foi pago (CHEQUE, $$, CARTÃO, BOLETO, TICKET, VALE, MÃE, PAI, TIA, FILHA....)
Não existe segredo.
->TAB. VENDA (ID_VENDA, VALOR_TOTAL_VENDA)
->TAB. VINC. PROD(ID_VENDA, ID_PROD, VAL_UNIT, QTDE)
->TAB. PAGTO VENDA (ID_VENDA, VALOR_PAGO, TIPO_PAGTO)
E a rotina deveria funcionar da seguinte forma mais ou menos:
Na hora que VC for efetuar uma venda, VC gera um número na ID_VENDA, com o VALOR_TOTAL_VENDA = 0
Conforme VC vai adicionando produtos, VC usa este mesmo ID_VENDA na tab. VINC. PROD, grava este ID_VENDA, ID_PROD, VAL_UNIT e QTDE.
Atualiza a tabela VENDA com o valor total (VALOR_TOTAL_VENDA = VALOR_TOTAL_VENDA + (VAL_UNIT * QTDE)
E vai gravando os dados nesta tabela vinc. Prod.
Na hora de fechar, VC grava na tabela PAGTO_VENDA, a este ID_VENDA, o valor PAGO e com o que foi pago (CHEQUE, $$, CARTÃO, BOLETO, TICKET, VALE, MÃE, PAI, TIA, FILHA....)
Não existe segredo.
olá amigos, a colaboração do amigo Luis Cesar foi muito interessante, mas se nao for pedir muito, alguem pode exemplificar a rotina q o amigo Luis Censar mencionou .. ? desde já agradeço.....
Como já respondido pra tàvia MP, informe qual é a sua real dificuldade, pois está bem exemplificado acima, conforme o que disse.
Infelizmente, se VC quiser um "código fonte" explicando isso, eu estarei desenvolvendo um "sistema", onde VC poderia alterar poucas coisas e já oferecer para o seu cliente, pra mim, isso eu não faço mesmo.
Posso te ajudar dando LUZ pra ser feito, mas fazer um exemplo e te mandar, desculpe, mas isso não farei mesmo.
Se ainda têm dúvidas, por favor, nos informe que vou te explicando aos poucos como prosseguir.
Infelizmente, se VC quiser um "código fonte" explicando isso, eu estarei desenvolvendo um "sistema", onde VC poderia alterar poucas coisas e já oferecer para o seu cliente, pra mim, isso eu não faço mesmo.
Posso te ajudar dando LUZ pra ser feito, mas fazer um exemplo e te mandar, desculpe, mas isso não farei mesmo.
Se ainda têm dúvidas, por favor, nos informe que vou te explicando aos poucos como prosseguir.
qual eh a estrura de tabelas q vc tem ?
Para Podermos ajudá-lo eh necessario saber em q ponto vc esta no seu sistema.....
Para Podermos ajudá-lo eh necessario saber em q ponto vc esta no seu sistema.....
seguindo orientações do Amigo LCSD, crie a estrutura das Tbl da seguinte forma :
TBLVenda
Id_Venda
Valor_Total_Venda
-----------------
-----------------
TBLVendProd
Id_Venda
Nome_Produto
Val_Unitario
Quantidade
-----------------
-----------------
TBLPagtoVenda
Id_Venda
Valor_Venda
Tipo_Pagto
Valor_Troco
Valo_Desconto
CRIEI A ROTINA Q LOCALIZA O PRODUTO E ADICIONA NA LISTVIEW.... A DUVIDA é:
GRAVAR OS PRODUTOS LISTADOS NO LISTVIEW na tabVendProd, e apos adicionar os produtos desejados fecha venda.... como esta na imagem anexada....
axo q fui claro na pergunta!!!!!!!!!
SEGUE ANEXO DA TELA E A ROTINA A BAIXO
Dim LP As ListItem
TBLVenda
Id_Venda
Valor_Total_Venda
-----------------
-----------------
TBLVendProd
Id_Venda
Nome_Produto
Val_Unitario
Quantidade
-----------------
-----------------
TBLPagtoVenda
Id_Venda
Valor_Venda
Tipo_Pagto
Valor_Troco
Valo_Desconto
CRIEI A ROTINA Q LOCALIZA O PRODUTO E ADICIONA NA LISTVIEW.... A DUVIDA é:
GRAVAR OS PRODUTOS LISTADOS NO LISTVIEW na tabVendProd, e apos adicionar os produtos desejados fecha venda.... como esta na imagem anexada....
axo q fui claro na pergunta!!!!!!!!!
SEGUE ANEXO DA TELA E A ROTINA A BAIXO
Dim LP As ListItem
Private Sub CmdFechar_Click()
Unload Me
End Sub
Private Sub CmdFecharVenda_Click()
Frm_FechaVenda.Show
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then KeyAscii = 0: SendKeys "{tab}"
End Sub
Private Sub Form_Load()
Centraliza Me
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Private Sub txtCodigo_LostFocus()
On Error GoTo erro
Dim SSQL As String
Dim Rs As New ADODB.Recordset
Set Rs = New ADODB.Recordset
SSQL = "Select * From TblProdutos "
If Trim(txtCodigo.Text) <> "" Then
SSQL = SSQL & " Where Codigo Like '%" & txtCodigo.Text & "%'" 'Campo TEXTO
Rs.Open SSQL, Conexao, 3
If Rs.EOF() Then
MsgBox "Este Produto nao Está Cadastrado no Sistema", vbExclamation, "ATENÇÃO"
Else
lblProdutos.Caption = "" & Rs!Descricao
txtPreco.Text = "" & Rs!ValorVenda
txtQuantidade.Text = "1"
EnviarVenda
End If
End If
Exit Sub
erro:
MsgBox "Código de item inválido", vbCritical
End Sub
Function EnviarVenda()
Set LP = ListaVenda.ListItems.Add(, , txtCodigo.Text, , 0)
With LP
.SubItems(1) = lblProdutos.Caption
.SubItems(2) = txtPreco.Text
.SubItems(3) = txtQuantidade.Text
.SubItems(4) = (CCur(.SubItems(3)) * CCur(.SubItems(2)))
End With
Call CalculaTotal
End Function
Function CalculaTotal()
Dim X As Long
Dim Total As Double
For X = 1 To ListaVenda.ListItems.Count
Total = (Total) + ListaVenda.ListItems(X).SubItems(4)
Next X
CalculaTotal = CStr(Total)
txtTotalVenda.Text = Format(CalculaTotal, "###,##0.00")
End Function
as tabelas estao relacionadas assim:
Se eu entendàa dúvida....
VC pode gravar os dados na tabela TBLPagtoVenda na hora que for ser confirmada a venda realmente (no seu caso, na tela de fechamento da venda).
Só tome o cuidado, pra que se o cara abrir a tela de fechamento de venda, e depois fechar esta tela não confirmando a compra, que VC "limpe" das outras tabelas os dados que lá estavam.
VC pode gravar os dados na tabela TBLPagtoVenda na hora que for ser confirmada a venda realmente (no seu caso, na tela de fechamento da venda).
Só tome o cuidado, pra que se o cara abrir a tela de fechamento de venda, e depois fechar esta tela não confirmando a compra, que VC "limpe" das outras tabelas os dados que lá estavam.
Tópico encerrado , respostas não são mais permitidas