Ir para conteúdo
  • Cadastre-se

dev botao

Numeração Sequencial Da Nfc-E


Ver Solução Respondido por Rafael Dias,
  • Este tópico foi criado há 3476 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Colegas estou com uma certa dificuldade para gerar a numeração da NFC

 

Criei no bco de Dados do Servidor  uma tabela Numero_NFC

 

a cada emissão eu incremento esta tabela com +1

 

Isso funciona correto somente quando é usado um caixa,

quando mais de um caixa corre o risco de usarem o mesmo numero para NFc, lógico que no envio

vai acontecer a recusa por duplicidade, mas fica chato acontecer isso.

 

Como é que os colegas fazem este tipo de controle ?

 

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Consultores

Depende do BD. Você pode usar uma Sequence (também conhecido como Generator).

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Uso Firebird

 

porem ma sua dica não funciona

 

Caixa 1 pega o generator e envia uma NFC

 

no intervalo entre pegar o generator e enviar o segundo caixa pega o mesmo generator

 

o que pensei foi somente incremetar mo numero da NFc no momento do envio,  até funciona porem caso haja uma rejeição ou qualquer motivo que não efetive o envio vou ficar com numeração pulado e sem uso.

Link para o comentário
Compartilhar em outros sites

Arnaldo,

1) quando usados corretamente, generators jamais geram valores duplicados. No caso específico do Firebird GEN_ID(generator,1) lhe devolve um valor único e automaticamente incrementa a sequência em 1.

2) tabelas de controle, para evitar duplicidade, devem ser acessadas por meio de stored procedures, cujo esqueleto seria

 

update "TabelaControladora"
set "UltimoUsado" = "UltimoUsado" + 1
where "TabelaControlada" = :TabelaControlada

select "UltimoUsado"
from "TabelaControladora"
where "TabelaControlada" = :TabelaControlada

Certifique-se de que esta stored procedure seja invocada em uma transação independente, configurada para repetir a tentativa em caso de deadlock. O "update" faz com que nenhuma outra transação possa gravar em "TabelaControladora" até que haja um commit ou rollback, garantindo assim a unicidade do "UltimoUsado".

 

Cordilamente,

Carlos

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Bom dia.

Sequence (generator) no firebird NUNCA é repetido.

 

A função gen_ID(XX, 1) roda numa transação  independente da atual, impossibilitando a numeração repetida.

 

O sequence também pode te dar problema se você tiver mais de uma série de NF. Terá que criar um sequence para cada serie.

 

Outro detalhe, ao incrementar um sequence, se houver algum erro de gravação no banco, você perde a numeração.

 

Passei por isso no começo, de qual forma seria a melhor maneira para não ter problemas com "pulos" nem números repetidos

 

Eu tratei a numeração de NF-e com trigger e exception no banco.

 

Essa trigger verifica se não houve "pulo" de numeração ou número repetido. Caso haja alguma violação, o banco levanta a exception e o usuário tem que enviar o comando de gravar novamente,

 

Atenciosamente.

  • Curtir 2

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Arnaldo,

 

Só vejo um problema nesse cenário:

 

Servidor: Numero da ultima NFC-e emitida = 10

 

PDV 1: ao consultar o servidor para gravar pega o valor 10 e grava o novo registro como sendo 11

PDV 2: se consultar o servidor antes do PDV 1 ter gravado, também terá como resposta o valor 10.

 

Ainda acho que a melhor solução é adotar um numero de série para cada PDV.

  • Curtir 2
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

So para complementar e pensando numa solução offline do servidor a melhor e usar uma série para cada terminal de pdv.

 

abraços

Atenciosamente

Sérgio Guedes

LSI Sistemas

Email: [email protected]

Skype: sergio.lsisistemas

www.lsisistemas.com.br

Precisando de Integração com PDV NFC-e?

Conheça ClickPDVOEM

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3476 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...