NUMERO DO CUPOM

RODRIGOMARCHESE 02/03/2010 17:35:56
#335810
Se for um cupom fiscal o número será fornecido pela impressora fiscal...
MOREIRA 02/03/2010 18:41:24
#335818
nao é cupom fiscal, é só um numero de cada venda...
FILMAN 02/03/2010 19:17:41
#335823
Só para entender, você esta utilizando os 3 ponto de venda os 3 buscara a sequência um do outro ??

Se for não seria mais fácil cada um por si.


Trabalho em SuperMercado e cada PDV emite o seu numero de vendas!!!

Faça a FUNÇÃO que foi passada a você que dara certo não duplicará execute-a no inicio da venda, ela tera que ser reconhecida no inicio da venda.

Crie uma Tabela para cada PDV assim não tera o duplicamento enquanto a venda não foi encerrada!!!

Espero ter ajudado
MOREIRA 02/03/2010 20:04:38
#335829
então nesse caso, o problema esta na minha estrutura de dados.....

estou usando somente uma tabela pra armazenar o numero da venda, q esta em uma maquina (SERVIDOR).... onde os 3 pdv[ô]s fazem essa tarefa...



FILMAN 02/03/2010 20:15:00
#335832
No caso sim!

Cada PDV deve ter sua venda para indicar até mesmo quantos clientes passaram pelo mesmo.

Cada numero de venda deve ser gravado na tabela somente após a compra ser encerrada caso contrario o numero da venda vai ser o mesmo
Ex.
iniciei a venda 1, mas não encerrei ela, foi cancelada porque esqueci o dinheiro!
A próxima venda vai 1 porque a minha não foi encerrada.

Entende ?

Então no caso a forma correta é criar uma tabela para cada PDV com as mesmas informações.

Ai na instalação do programa no PDV você colocara qual é o Nº do PDV e o programa tera que reconhecer e encaminhar os dados para a tabela
correspondente
MOREIRA 02/03/2010 21:32:34
#335842
Só nao entendi uma coisa, pra poder gerar o numero tive q informar a variavel Num como inteiro, sendo q ele já está como apelido na sql....
isso procede.....

Function NumCupom()
--->>>> Dim Num As Integer
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Max(Num_Cupom) As Num From Tbl_Vendas[Ô]
Rst.Open Sql, Conexao, 3
If Rst![Num] > 0 Then
Num = Rst![Num] + 1
Else
Num = 1
End If
Rst.Close
LblNumCupom.Caption = Format(Num, [Ô]000000[Ô]) [ô]Mostra na Tela
End Function
DAVERSON 02/03/2010 21:38:36
#335843
e de onde vc tirou isso???
Citação:

:
Só nao entendi uma coisa, pra poder gerar o numero tive q informar a variavel Num como inteiro, sendo q ele já está como apelido na sql....
isso procede.....

Function NumCupom()
--->>>> Dim Num As Integer
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Max(Num_Cupom) As Num From Tbl_Vendas[Ô]
Rst.Open Sql, Conexao, 3
If Rst![Num] > 0 Then
Num = Rst![Num] + 1
Else
Num = 1
End If
Rst.Close
LblNumCupom.Caption = Format(Num, [Ô]000000[Ô]) [ô]Mostra na Tela
End Function



a que postei nao tem isso

Function autoSalesNo()
RS.Open [Ô]SELECT max(NroVenda) as numero FROM vendas[Ô], Con
If RS![numero] > 0 Then
numero = RS![numero] + 1
Else
numero = 1
End If
RS.Close
txtInvoiceNo.Text = Format(numero, [Ô]000000[Ô]) [ô]mostra na tela
End Function
MOREIRA 02/03/2010 21:43:29
#335845
esta dando erro, variavel nao definida... (Numero)

ja dessa forma, funcionou sem erro...

Function NumCupom()
Dim Num As Integer
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Max(Num_Cupom) As Num From Tbl_Vendas[Ô]
Rst.Open Sql, Conexao, 3
If Rst![Num] > 0 Then
Num = Rst![Num] + 1
Else
Num = 1
End If
Rst.Close
LblNumCupom.Caption = Format(Num, [Ô]000000[Ô]) [ô]Mostra na Tela
End Function
FOXMAN 02/03/2010 22:17:20
#335846
Resposta escolhida
Vamos lá....vamos tentar ajudar.
SE FOR MYSQL tenta ae.

Tenho uma função (iniciaVenda) com o seguinte código.
Resumi a função e peguei apenas a parte que realmente vc utilizará.
Ao clicar em nova venda ou seja lá como o que for.....

Dim rsNumeraVenda As ADODB.Recordset
[ô]Faço um update na tabela e atualizo o campo idvendas com o ultimo registro inserido + 1
sqlid = [Ô]UPDATE sequencia SET idVendas=LAST_INSERT_ID(idVendas+1);[Ô]
BD.Execute (sqlid)
[ô]Logo em seguida já pego o numero gerado e jogo ele em um textbox
sqlid = [Ô]SELECT IDVendas FROM SEQUENCIA[Ô]
Set rs = New ADODB.Recordset
rs.Open sqlid, BD, 3, 3
ID = rs!idVendas
txttransid.Text = [Ô]PDV[Ô] & ID

Fiz o seguinte teste quando desenvolvi esse método.

Coloquei dois teclados de dois caixas próximo e tentei gerar uma duplicidade apertando simultaneamente o ENTER os dois teclados.
Não houve duplicidade.

NO SERVIDOR

No servidor crie uma tabela (aqui a minha chama sequencia) essa tabela teria a seguinte estrutura :
Citação:


CREATE TABLE 'sequencia' (
'id' INTEGER(11) DEFAULT NULL,
'IdAbertura' INTEGER(11) DEFAULT NULL,
'IdVendas' INTEGER(11) DEFAULT NULL,
'IdCompras' INTEGER(11) DEFAULT NULL,
'idImporta' INTEGER(11) DEFAULT NULL,
'idBalanco' INTEGER(11) DEFAULT NULL,
'IdProdutos' VARCHAR(13) COLLATE latin1_swedish_ci DEFAULT NULL,
'IdCliente' INTEGER(11) DEFAULT NULL,
'idCheques' INTEGER(10) UNSIGNED DEFAULT NULL,
'idNf' INTEGER(11) DEFAULT NULL,
'idVendedor' INTEGER(11) DEFAULT NULL,
'idCodInterno' INTEGER(10) UNSIGNED DEFAULT NULL,
'idCodigoRapido' VARCHAR(10) COLLATE latin1_swedish_ci DEFAULT NULL,
'idTransportador' INTEGER(11) DEFAULT NULL,
'idCadastros' INTEGER(10) UNSIGNED DEFAULT NULL,
'idNossoNumero' INTEGER(10) UNSIGNED DEFAULT NULL,
bla...bla...
bla...bla...
idOquevcquiser.......

)ENGINE=MyISAM COMMENT=[ô][ô] CHECKSUM=0 DELAY_KEY_WRITE=0 PACK_KEYS=0 MIN_ROWS=0 MAX_ROWS=0 ROW_FORMAT=DEFAULT INSERT_METHOD=NO;



Todos os valores inicias dessa tabela deve ser = 0.

Não é uma tabela para inserção(insert) de dados e sim atualização(update).

Tenta adaptar ao seu código.


DAVERSON 02/03/2010 22:24:36
#335848
rapaz tenho um cliente que usa a mais de tres anos.....
exatamente assim como postei... confira as referencias do projeto


me envie o projeto pra que possa dar uma olhada... jdaverson @ gmail.com

Página 2 de 3 [28 registro(s)]
Tópico encerrado , respostas não são mais permitidas