VENDAS AO MESMO TEMPO NFCE - 3 TERMINAIS

JOHNSTEVE 05/10/2016 09:14:00
#467883
Bom dia galera, preciso de uma ajuda de vcs de logica..
hj atualmente tenho 4 clientes.. utilizando meu sistema com PDV frente de caixa NFCe. e NFe.
só q esses 4 clientes . ele usam apenas em 1 terminal. para emitir as vendas.. [txt-color=#0000f0] Dai o ID da venda eu deixei Numeração automatica. [/txt-color]

dai consegui um novo cliente q quer utilizar em 3 terminais emitindo Vendas ao mesmo tempo.. 3 caixas..
queria saber como faço para nao ter NFCe duplicada, pois se os 3 terminais emitirem ao mesmo tempo.. vai da zebra.

queria saber como é o funcionamento para esse tipo de Vendas. ao mesmo tempo.. e aleatorio por exemplo terminal 1 acabou de efetuar a venda.. dai na sequencia o terminal 2 vai fazer a venda. e na sequencia o terminal 3 vai efetuar a venda.

queria saber esse funcionamento na programação e na logica.

como eu deixei NUmeração Automatica vai da zebra para esse tipo.

Agradeço desde de já meus amigos
RONEBRITO 05/10/2016 10:15:09
#467888

O contribuinte poderá adotar séries distintas para a emissão da NFC-e que serão designadas por algarismos arábicos, em ordem crescente, vedada a utilização do algarismo zero e de subsérie, por checkout ou caixa conforme a necessidade do contribuinte.

JOHNSTEVE 05/10/2016 21:28:32
#467898
Citação:

:

O contribuinte poderá adotar séries distintas para a emissão da NFC-e que serão designadas por algarismos arábicos, em ordem crescente, vedada a utilização do algarismo zero e de subsérie, por checkout ou caixa conforme a necessidade do contribuinte.



Amigo, acho q v se confundiu. ou eu nao soube explicar direito..
vamos la


eu queria saber como é o funcionamento da Logica. qnd 2 ou mais caixas forem emitir as Vendas no mesmo tempo.. sem ter duplicidade de ID numero da NFCe.

eu faço assim. no Lood do form. eu pego meu SELECT pego o Ultimo ID q seria o Numero da NFCe. q foi autorizada... dae pego e somo +. 1 q no caso ja seria a proxima NFCe a ser Lançada. tipooo . ultimo ID NFCe Autorizada q esta no Banco.. 20 - proximo ID NFCe q vai ser lançado 21

dae atraves desse ID. é q jogo no XMl para enviar para sefaz autorizar ... sempre seguindo a Sequencia.. sem ter quebra de sequencia...

ate hj esta rodando de boa assim .. mais só com 1 caixa.... 1 terminal emitindo...
dai um cliente quer instalar outro Caixa.. outro Terminal.. Ficando 2 Terminais.... e um Servidor

pensei nesse caso poxa se os dois Caixas - Terminais Emitirem ao mesmo tempo as NFCE.. a Venda. ne .. vai da Zebra.. pois iria da Duplicidade..

era isso q queria saber oq fazer para nao acontecer isso.
q os 2 Terminais trabalhem ao mesmo tempo .. ou em sequencia... sem ter Duplicidade. de numero .
KERPLUNK 06/10/2016 02:16:24
#467900
A nota é basicamente cabeçalho e ítens, certo? Você está usando OOP?
SINCLAIR 06/10/2016 08:02:50
#467901
Resposta escolhida
JOHNSTEVE,

O identificador do cabaçalho da NFCe é o número da nota (ou codigo empresa e número da nota em caso de sistemas multiempresas) e para os itens o identificador é o número da nota o número do item (ou codigo da empresa, número da nota e número do item, no caso de sistemas multi empresas).

Apenas no final, quando estiver gravando os dados, é que você deve atribuir o número da nota. Não sei qual o formato e qual o banco de dados que você usa, mas partindo do mais básico seria select max(num_nota) + 1 as proximo_numero from cabecalho_nfce. Então, desta query você usa o proximo_numero que deverá ser o número da nota sendo gravada.

Basicamente é isto. Será indiferente se houver 1 terminal ou 1.000 terminais.
JOHNSTEVE 06/10/2016 08:05:45
#467902
Citação:

:
A nota é basicamente cabeçalho e ítens, certo? Você está usando OOP?



KERPLUNK, oq eu preciso saber eu andei pesquisando é o seguinte

[txt-color=#e80000] Trabalhar com Transação em REDE [/txt-color]
varios usarios gravando, alterando.. ao mesmo tempo..


DS2T 06/10/2016 08:17:26
#467903
A não ser que você faça uma cagada muito grande, o SQL Server já cuida disso pra você...
FUTURA 06/10/2016 09:18:14
#467905
Desta forma que vc esta querendo fazer, pode duplicar sim, ou seja, estações diferentes usar o mesmo ID, o que eu faço, é ter uma tabela exclusiva com o campo da numeração (ID), e toda vez que pego o número, eu bloqueio a tabela, caso esteja bloqueada é pq outra estação esta pegando o número, mas o processamento é tão rápido, que será muito dificil o usuário receber o aviso de bloqueio, ou seja, fica seguro, e roda muito bem... eu tenho clientes que são lojas de varejo, e ao salvar a venda e pegar o ID, as vezes tem concorrência de até 8 ou 10 estações.. com o sql server fica muito liso isso.. A lógica é: Bloqueia - pega id - libera.
JOHNSTEVE 06/10/2016 10:41:15
#467910
Citação:

:
Desta forma que vc esta querendo fazer, pode duplicar sim, ou seja, estações diferentes usar o mesmo ID, o que eu faço, é ter uma tabela exclusiva com o campo da numeração (ID), e toda vez que pego o número, eu bloqueio a tabela, caso esteja bloqueada é pq outra estação esta pegando o número, mas o processamento é tão rápido, que será muito dificil o usuário receber o aviso de bloqueio, ou seja, fica seguro, e roda muito bem... eu tenho clientes que são lojas de varejo, e ao salvar a venda e pegar o ID, as vezes tem concorrência de até 8 ou 10 estações.. com o sql server fica muito liso isso.. A lógica é: Bloqueia - pega id - libera.



SHow futura. isso memso que precisava :D
eu tava fazendo assim pegava o ID logo no Load do FOrm. kkkkk
boa ideia.. eu vou fazer o seguinte
qnd for finalizar no botao gerar.. eu chamo o SQL SELECT do ID.. + 1 e depois salvo..
dai bloqueio qnd pegar o ID.. e qnd salvar liberar para o proximo terminal :D
RONEBRITO 06/10/2016 10:49:22
#467911
Desculpe se nao expliquei direito.
Cada PDV, pode ter o mesmo numero de nota fiscal mas serie diferentes.

Exemplo:
Caixa 1: serie 1;
Caixa 2: serie 2;
...

Obs 1.: nas suas tabelas a serie deve ser chave tambem junto com o numero da nf;
Obs 2.: tem que configurar em cada caixa/pdv a serie;
Obs 3.: a serie faz parte da chave de acesso, entao nao vai haver duplicidade;
Obs 4.: va a algum supermercado que emite NFC-e e vera que cada caixa tem uma serie. Imagine um com 20, 30 caixas.

NILSONTRES 06/10/2016 11:53:40
#467912
A Melhor maneira é vc criar o campo ID por exemplo e definir como chave primaria, se alguém tentar gravar o mesmo id vai gerar o erro de duplicidade, então vc faz um loop aumentando 1, até que libere,ai sim vc edita sua tabela de Ids com esse 1 acrescido. fora isso frações de segundos podem fazer a diferença, assim não bloqueia nenhuma tabela também.
Isso resolveu meu caso a uns dez anos atras quando tive esse tipo de problema e utilizo esse método até hoje.
Página 1 de 2 [17 registro(s)]
Tópico encerrado , respostas não são mais permitidas