NUMERO DO CUPOM

MOREIRA 02/03/2010 22:58:40
#335857
FOXMAM, Olha só como fiz, e como ficou na tabela..........
ao execultar a rotina......
Gera o normal o código.. mas veja o q aconteceu na tabela.. atualiza mais de registro.. o q fiz de errado AGORO....rsrsrs


Function NumCupom()
Dim Rst As ADODB.Recordset
Dim Id As Integer
[ô]Faço um update na tabela e atualizo o campo idvendas com o ultimo registro inserido + 1
Sql = [Ô]UpDate Tbl_Vendas Set Num_Cupom=LAST_INSERT_ID(Num_Cupom + 1);[Ô]
Conexao.Execute (Sql)

[ô]Logo em seguida já pego o numero gerado e jogo ele em um textbox
Sql = [Ô]Select Num_Cupom From Tbl_Vendas[Ô]
Set Rst = New ADODB.Recordset
Rst.Open Sql, Conexao, 3, 3
Id = Rst!Num_Cupom
LblNumCupom.Caption = Format(Id, [Ô]000000[Ô])
End Function





([Ô]ôxi.. q coisa do balacobaco[Ô]) mas num desisto!!!!!!!!!!!!
MICROSCHEME 02/03/2010 23:21:48
#335859

Seguinte.

Eu tentaria assim:

Vi aqui no forum outro dia uma dica a respeito de bloqueio de registro que faz uma estação aguardar o termino da operação da outra estação, isso pode ajudar.

Alguem pode indicar o link.

Mas, como leigo que sou, posso estar errado, mas deixaria para abrir a tabela e gravar só na última hora, fechando ela em seguida, tipo abre - grava e fecha.

Se abrir quando começa a venda, fatalmente outra estação também estará iniciando uma nova venda, dai estarão utilizando um mesmo número de cupom
para duas ou mais vendas.

Outra coisa, já que a tabela tem um id que não se repete, porque não utilizar o próprio id para gerar o numero do cupom?

Daria muito menos trabalho e satisfaria o problema.

. . .

DAVERSON 02/03/2010 23:53:41
#335861


ta ai curioso e que eu mesmo tentei usar a função, e repito uso ela a mais de 03 anos num cliente, e nao deu certo, rsrssssss vai entender

http://www.macoratti.net/adomulti.htm

http://www.macoratti.net/redes.htm
MOREIRA 03/03/2010 00:09:51
#335862
O legal é q estou ficando doido e deixando os outros tambem... confesso q não sei mais q qual santo pedi ajuda.... rsrsrsrs .. mas vai parecer uma luz no final do túnel....
FOXMAN 03/03/2010 00:55:24
#335865
Citação:

:
FOXMAM, Olha só como fiz, e como ficou na tabela..........
ao execultar a rotina......
Gera o normal o código.. mas veja o q aconteceu na tabela.. atualiza mais de registro.. o q fiz de errado AGORO....rsrsrs


Function NumCupom()
Dim Rst As ADODB.Recordset
Dim Id As Integer
[ô]Faço um update na tabela e atualizo o campo idvendas com o ultimo registro inserido + 1
Sql = [Ô]UpDate Tbl_Vendas Set Num_Cupom=LAST_INSERT_ID(Num_Cupom + 1);[Ô]
Conexao.Execute (Sql)

[ô]Logo em seguida já pego o numero gerado e jogo ele em um textbox
Sql = [Ô]Select Num_Cupom From Tbl_Vendas[Ô]
Set Rst = New ADODB.Recordset
Rst.Open Sql, Conexao, 3, 3
Id = Rst!Num_Cupom
LblNumCupom.Caption = Format(Id, [Ô]000000[Ô])
End Function





([Ô]ôxi.. q coisa do balacobaco[Ô]) mas num desisto!!!!!!!!!!!!



Moreira, vc tem que criar uma tabela apenas para gerenciar os codigos(no seu caso do cupom, NO MEU CASO de todos os cadastros).

No Update q vc esta fazendo vc esta fazendo na tabela de vendas(tbl_vendas) quando na verdade tem q ser feito em uma nova tabela. Crie um seu banco uma tabela (pode chama-la tblsequencia) a estrutura eu passei anteriormente.

é soh isso que esta errado, ou seja , vc esta fazendo todo o procedimento correto porém na tabela de vendas.

Depois de jogar o codigo do cupom no txtbox ae na finalização do cupom que vc vai inserrir na tbl_vendas.





FOXMAN 03/03/2010 02:20:14
#335868
DAVERSON 03/03/2010 08:47:44
#335881
la vamos nos... faça como te falei... leia o nro do ultimo cupon novamente na hora de gravar...
nao sei como e sua rotina de salvar os dados da venda a minha e esta vou deixar na integra pra vc

LBLCAIXALIVRE.Visible = True

Dim AdoOrders As New ADODB.Recordset
Dim AdoInvoice As New ADODB.Recordset

If lvprod.ListItems.Count <= 0 Then Exit Sub

If Option2.Value = True Then
[ô][ô][ô]Chama Venda a prazo... para contas a receber
Call VendaPrazo
[ô]verifica se o clinte esta bloqueado por debito e cancela a venda...
If Bloqueio = True Then
MsgBox [Ô]O cliente bloqueado, venda não autorizada![Ô] & Chr(10) + Chr(10) & [Ô]Consulte a gerência![Ô], vbCritical
Call btnCancel_Click
[ô]Call Cleartext
Exit Sub
End If


If AdoOrders.State = 1 Then Set AdoOrders = Nothing

[ô][ô][ô][ô][ô] Aqui esta começando o lançamento dos dados entao bastaria vc chamar denovo a rotina de verificação do numero do cupon
[ô]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
call NumCupom [ô]aqui

[ô][ô][ô][ô][ô]pra ver se mudou mostre um
msgbox [Ô]Numero do Cupon [Ô] & numcupon

[ô]atualiza o txtNumCupom
textNumCUpom.text=NumCupom [ô]se nao der certo vamos prescisar ver sua secreta rotina pois vc nao postou ela até agora ...rsssssssssss
[ô]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AdoOrders.Open [Ô]SELECT * from [Vendas] where [NroVenda] =[Ô] & CInt(txtInvoiceNo), Con, adOpenDynamic, adLockPessimistic

With AdoOrders
If .EOF Then
Timer2 = True
Con.BeginTrans
.AddNew
.Fields(0) = txtInvoiceNo.Text
.Fields(1) = txtAmount.Text
.Fields(2) = [Ô]0[Ô]
.Fields(3) = [Ô]0[Ô]
.Fields(4) = [Ô]0[Ô]
.Fields(5) = Date
.Fields(6) = 2 [ô](Mid(txtcaixa, 8, 2))
.Fields(7) = [Ô]0[Ô]
.Update
.Requery
Con.CommitTrans
.Close
End If
End With



For i = 1 To lvprod.ListItems.Count

If AdoInvoice.State = 1 Then Set AdoInvoice = Nothing

AdoInvoice.Open [Ô]SELECT * from Itens[Ô], Con, adOpenDynamic, adLockPessimistic

With AdoInvoice

Con.BeginTrans
.AddNew
.Fields(0) = txtInvoiceNo.Text
.Fields(1) = lvprod.ListItems(i).Text
.Fields(2) = lvprod.ListItems(i).SubItems(2)
.Fields(3) = lvprod.ListItems(i).SubItems(1)
.Fields(4) = lvprod.ListItems(i).SubItems(3)
.Fields(5) = lvprod.ListItems(i).SubItems(4)

.Update
.Requery
Con.CommitTrans
.Close

End With
calther = [Ô]update Produtos set Estoque = Estoque - [ô][Ô] & lvprod.ListItems(i).SubItems(1) & [Ô][ô] where [idProduto] =[ô][Ô] & lvprod.ListItems(i).Text & [Ô][ô][Ô]
Con.Execute calther
Next i
PicLogoG.Visible = True
btnStart.Enabled = True
btnPrint.Enabled = True
btnCancel.Enabled = False
btnSave.Enabled = False
[ô] End If
Call Cleartext
lvprod.Refresh
Sales.Refresh
Option1.Value = 1
[ô]Exit Sub


Else

If txtPayments.Text = [Ô][Ô] Then
MsgBox [Ô]Por favor digite o total![Ô], vbInformation
txtPayments.Locked = False
txtPayments.Enabled = True
txtPayments.SetFocus
Exit Sub
Else
LblStatus.Caption = [Ô][Ô]
If AdoOrders.State = 1 Then Set AdoOrders = Nothing

AdoOrders.Open [Ô]SELECT * from [Vendas] where [NroVenda] =[Ô] & CInt(txtInvoiceNo), Con, adOpenDynamic, adLockPessimistic

With AdoOrders


If .EOF Then

Timer2 = True

Con.BeginTrans
.AddNew
.Fields(0) = txtInvoiceNo.Text
.Fields(1) = txtAmount.Text
.Fields(2) = txtDiscount.Text
.Fields(3) = txtPayments.Text
.Fields(4) = txtChange.Text
.Fields(5) = Date
.Fields(6) = 2 [ô](Mid(txtcaixa, 8, 2))
.Fields(7) = 1
.Update
.Requery
Con.CommitTrans
.Close
End If
End With

For i = 1 To lvprod.ListItems.Count

If AdoInvoice.State = 1 Then Set AdoInvoice = Nothing

AdoInvoice.Open [Ô]SELECT * from Itens[Ô], Con, adOpenDynamic, adLockPessimistic

With AdoInvoice

Con.BeginTrans
.AddNew
.Fields(0) = txtInvoiceNo.Text
.Fields(1) = lvprod.ListItems(i).Text
.Fields(2) = lvprod.ListItems(i).SubItems(2)
.Fields(3) = lvprod.ListItems(i).SubItems(1)
.Fields(4) = lvprod.ListItems(i).SubItems(3)
.Fields(5) = lvprod.ListItems(i).SubItems(4)


.Update
.Requery
Con.CommitTrans
.Close

End With
calther = [Ô]update Produtos set Estoque = Estoque - [ô][Ô] & lvprod.ListItems(i).SubItems(1) & [Ô][ô] where [idProduto] =[ô][Ô] & lvprod.ListItems(i).Text & [Ô][ô][Ô]
Con.Execute calther
Next i
PicLogoG.Visible = True
btnStart.Enabled = True
btnSave.Enabled = True
btnPrint.Enabled = True

End If
lvprod.Refresh
Sales.Refresh
End If
End Sub


MOREIRA 03/03/2010 20:08:34
#335970
FOXMAN, coloquei Tico e Teco pra Funcionar, e Bingo.... rsrsrs.. Pelo menos até agora funcionou ....
mas agradeço a todos aqueles q tiveram boa vontade de compartilhar suas idéias...
até a próxima......rsrs...
Página 3 de 3 [28 registro(s)]
Tópico encerrado , respostas não são mais permitidas