FECHAMENTO DE VENDA GRAVAR PEDIDO E ITENS

SYSX 28/10/2012 11:48:48
#413008
Fala galera... tenho um sistema, atualmente funciona tudo certinho quando faço o fechamento do pedido eu tenho uma estrutura assim

- GRAVA PEDIDO (DATA, HORA, VALOR TOTAL, DESCONTOS) - vai gerar um numero do Pedido [Ô]CodPedido[Ô] autonumeração

- GRAVA ITENS ( DOU UM SELECT NO ULTIMO REGISTRO DO CodPedido E GRAVO OS ITENS COM AS INFORMAÇÕES DO ULTIMO REGISTRO DO PEDIDO)

- BAIXA ESTOQUE ( FUNÇÃO QUE BAIXA ESTOQUE)

- GRAVA PAGTO ( GRAVA AS FORMAS DE PAGAMENTO)

FINALIZA

Bem meu problema mesmo é na hora que o cliente fecha a venda ao mesmo tempo em um terminal diferente... oq acontece é que na hora q o cliente manda gravar o pedido, os 2 computador gera um codpedido, porém um acaba ignorando e grava no ultimo registro.

tipo um

Terminal 1 - CodPedido 10
Terminal 2 - CodPeiddo 11

Terminal 1 - Grava itens 11
Terminal 2 - Grava itens 11

acaba saindo produtos de um pedido em outro, da uma confusão isso... alguem ja passou por isso?

abraço
ADHEL 28/10/2012 12:00:21
#413009
Antes da rotina de gravação você chama a autonumeração?

SYSX 28/10/2012 12:02:46
#413010
Sim, na hora de gravar o pedido ele grava na autonumeração

depois só dou um select no ultimo registro da tabela Pedido e gravo o codigo (Autonumeração) que gerou no campo CodPedido na tabela ITENS
ADHEL 28/10/2012 12:12:06
#413011
Posta toda a rotina de gravação para apreciação do pessoal por favor
SYSX 28/10/2012 12:50:32
#413013
+ tarde eu posto, como não estou em casa agora nem dá, porém tenho q resumir tbm, pq tem mtas coisas e vou tentar resumir um pouco
mas o problema mesmo é na hora da venda q os 2 dão insert ao mesmo tempo na tabela de pedido e depois select para pegar o ultimo pedido

no sistema de vcs o numero do pedido é autonumeração ?
JESUEL.OLIVEIRA 28/10/2012 14:05:48
#413015
Resposta escolhida
Amigo, qual banco de bados,

Quando você dar o select ele vai pegar o ultimo registro não importando quem o fez, você pode usar o comando.

no SQL
@@IDENTITY

  
INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ([ô]Accountant[ô],12,125)
SELECT @@IDENTITY AS [ô]Identity[ô]


no mysql funciona o @@IDENTITY mas o mais indicado é o

  
SELECT LAST_INSERT_ID()


Quando você gerar o pedido salva em uma váriavel pedido, quando for fechar use esta váriavel, em cada terminal ela vai ter o valor do seu respectivo terminal.
SYSX 29/10/2012 18:39:57
#413092
Citação:

:
Amigo, qual banco de bados,

Quando você dar o select ele vai pegar o ultimo registro não importando quem o fez, você pode usar o comando.

no SQL
@@IDENTITY

  
INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ([ô]Accountant[ô],12,125)
SELECT @@IDENTITY AS [ô]Identity[ô]


no mysql funciona o @@IDENTITY mas o mais indicado é o

  
SELECT LAST_INSERT_ID()


Quando você gerar o pedido salva em uma váriavel pedido, quando for fechar use esta váriavel, em cada terminal ela vai ter o valor do seu respectivo terminal.



Cara provavelmente é isso mesmo, hj a noite irei efetuar os testes e volto pra fechar o topico, por enquanto agradeço amigo :)
Tópico encerrado , respostas não são mais permitidas