VENDAS AO MESMO TEMPO NFCE - 3 TERMINAIS
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
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.
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 .
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.
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..
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
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.
Isso resolveu meu caso a uns dez anos atras quando tive esse tipo de problema e utilizo esse método até hoje.