MODULO FRENTE CAIXA - VENDA

MOREIRA 13/08/2007 13:47:56
#230709
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....







MOREIRA 13/08/2007 14:38:14
#230724
alguem tem alguma sugestão ?
LCSD 13/08/2007 16:55:21
#230762
Resposta escolhida
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.

MOREIRA 14/08/2007 12:54:05
#230837
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.....

LCSD 14/08/2007 13:33:24
#230848
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.
LCSD 14/08/2007 16:01:52
#230876
qual eh a estrura de tabelas q vc tem ?

Para Podermos ajudá-lo eh necessario saber em q ponto vc esta no seu sistema.....




MOREIRA 15/08/2007 13:30:57
#231020
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
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







MOREIRA 15/08/2007 15:02:12
#231045
as tabelas estao relacionadas assim:

LCSD 15/08/2007 15:09:24
#231048
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.
Tópico encerrado , respostas não são mais permitidas