Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • 1 mês depois ...
Postado
Em 17/06/2019 at 21:25, Italo Jurisato Junior disse:

O Manual deixa claro que o numero atribuído a cNF tem que ser um numero aleatório.

Bom dia,

gostaria de trocar mais uma ideia sobre o assunto, e também fazer uma sugestão/alternativa para preencher o campo cNF, baseado na hora atual, considerando minuto(nn), segundo(ss) e milisegundo(zzz):

Ide.cNF := StrToInt('7' + FormatDateTime('nnsszzz',Now()));
Ide.cNF := QRYDOCUMENTONUMERO.AsInteger;

Considerando que minuto(nn) e segundo(ss) só retornarão entre 00 e 59, essa máscara 'nnsszzz' nunca retornará '7777777', '8888888', '8901234' ou '9012345'...

Sim, ainda tem um "porém", existe a possibilidade de que este código gerado (entre 70000000 e 79999999) seja exatamente igual a nNF, assim seria necessário mais um teste:

if(Ide.cNF = Ide.nNF) then
begin
  Ide.cNF := StrToInt('8' + FormatDateTime('nnsszzz',Now()));
end;

Att

Ricardo

  • Consultores
Postado

Bom dia Ricardo,

A geração do código (cNF) recomendado pela SEFAZ é de que ele seja um numero aleatório.

Essa recomendação vem de longa data, não é de agora.

Lhe pergunto:

Qual é a dificuldade de gerar esse código usando a função GerarCodigoDFe que nós implementamos, que por sinal além de gerar o código já valida o mesmo?

Qual é a dificuldade de após gerar o mesmo salvar juntamente com os demais dados da nota?

Agora, quem desejar criar a sua própria rotina de geração de código, seja através de data, hora, data de aniversário fique a vontade.

  • Curtir 8
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

×
×
  • 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...
The popup will be closed in 10 segundos...