Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

Lote do evento


Go to solution Solved by Renato Rubinho,
  • Este tópico foi criado há 132 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

9 minutos atrás, Renato Rubinho disse:

De acordo com a NT2012_002 v1.02, o campo HP03 idLote é de responsabilidade do autor e "O Web Service não faz qualquer uso ou controle deste identificador."

https://svn.code.sf.net/p/acbr/code/tools/DFe/NFeNFCe/NT/2012/NFe_NT2012_002 v1.02 Manifestacao do Destinatario.pdf

 

Teria algum problema de ir sempre o mesmo numero de Lote?

Link to comment
Share on other sites

  • 1 month later...
Em 09/11/2021 at 16:58, Renato Rubinho disse:

De acordo com a NT, não teria problema pois não validam.

Eu mando yymmddhhnn + um random por via das dúvidas.

Boa tarde @Renato Rubinho,

 

Utilizamos aqui na empresa quase o mesmo esquema seu, para gerar o número do lote fazemos yymmddhhmm. A única diferença é que não acrescentamos esse random ao final. Porém hoje 03/01/2022, começamos a ter problemas com a conversão para inteiro no ACBr em Delphi. A assinatura da função é Integer, porém ao converter de manhã após virar o ano, gerou o número 2201031127 (2.201.031.127). Porém o limite máximo do Inteiro é 2.147.483.647, sendo assim apresentou o erro:

 

image.png.982e794f9359d513f36981c0ef3462f8.png 

 

Você não chegou a ter esse problema no seu sistema ?

 

Se sim, qual estratégia utilizou para solucionar ? Estamos verificando o manual da NF-e, etc, mas não conseguimos encontrar um lugar onde pudéssemos ter a certeza que não haveria problema nesse número repetir. 

 

Att,

Link to comment
Share on other sites

  • Moderadores

Boa noite,

Seguem considerações.

1. Costumo usar StrToIntDef, com isso o sistema não parou com o estouro de valor.

2. O texto que citei neste tópico foi extraído da NT e nos dá segurança de que não há problema em repetir o número por enquanto.

Em 09/11/2021 at 16:45, Renato Rubinho disse:

 

 

 

Em 09/11/2021 at 16:45, Renato Rubinho disse:

De acordo com a NT2012_002 v1.02, o campo HP03 idLote é de responsabilidade do autor e "O Web Service não faz qualquer uso ou controle deste identificador."

https://svn.code.sf.net/p/acbr/code/tools/DFe/NFeNFCe/NT/2012/NFe_NT2012_002 v1.02 Manifestacao do Destinatario.pdf

 

3. Uma solução para não repetir o lote, caso ainda não tenham, é colocar um contador sequencial autoinc gerenciado pelo seu sistema, iniciado em zero.

Se eu pensar em algo quando for ver isso, posto aqui.

  • Like 1
Link to comment
Share on other sites

Bom dia a todos,

 

Para corrigir o problema. Adotamos a seguinte estratégia aqui na empresa. Antes usavamos a seguinte formatação: yymmddhhmm.

Esse formatação gerava um número de 10 posições que começou a apresentar o problema em questão pelo estouro do inteiro. Então fizemos a substituição mmdd (mês e dia) que ocupava 4 posições, pelo número do dia real no ano, que irá variar de 001 a 365, tendo somente 3 posições. Sendo assim não irá mais atingir a casa do bilhão.

Pegando como exemplo hoje 04/01/2022 às 09:44:

Antes:  2201040944

Depois:  220040944

Att,

Edited by danielznt
  • Like 3
Link to comment
Share on other sites

1 minuto atrás, Dfox disse:

uma outra solução  

NumeroLote := StrToInt64(FormatDateTime('yymmddhhmm', NOW));

Tentamos essa solução, porém na variável fica correto, mas hora de atribuir ao componente, o mesmo é do tipo Integer e ai o problema também foi apresentando (não sei o motivo mas em alguns casos até funcionou, porém gerando lote negativo). 

Link to comment
Share on other sites

acho que por se tratar de um lote fica mais viavel fazer assim 

 // vamos iniciar o gerador de números randômicos
  Randomize;

  // vamos gerar um número aleatório entre 0 e 999999
  NumeroLote := Random(999999);

 

Link to comment
Share on other sites

  • Moderadores
3 horas atrás, danielznt disse:

Bom dia a todos,

 

Para corrigir o problema. Adotamos a seguinte estratégia aqui na empresa. Antes usavamos a seguinte formatação: yymmddhhmm.

Esse formatação gerava um número de 10 posições que começou a apresentar o problema em questão pelo estouro do inteiro. Então fizemos a substituição mmdd (mês e dia) que ocupava 4 posições, pelo número do dia real no ano, que irá variar de 001 a 365, tendo somente 3 posições. Sendo assim não irá mais atingir a casa do bilhão.

Pegando como exemplo hoje 04/01/2022 às 09:44:

Antes:  2201040944

Depois:  220040944

Att,

Boa opção, só o "n" para minutos ao invés de "m", tenho visto muitas pessoas utilizando o "m", que repetiria o mês.

Outras duas alternativas para quem quiser:

1. Trunc( now * 10000 )

vai pegar o datetime em ponto flutante até os 9 dígitos sem chegar no bilhão também

2. mmyyddhhnn

com o Mês no início, o primeiro dígito sempre será 1, não estourando o limite do integer.

Link to comment
Share on other sites

  • Consultores

Por favor atualize seus fontes, pelo SVN do ACBr... 

Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico...

Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido...

Dúvidas, sobre o uso do SVN ?  Clique aqui e veja um vídeo

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link to comment
Share on other sites

1 hora atrás, Victor H. Gonzales - Panda disse:

Por favor atualize seus fontes, pelo SVN do ACBr... 

Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico...

Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido...

Dúvidas, sobre o uso do SVN ?  Clique aqui e veja um vídeo

faltou mudar no parâmetro ACBrMDFe1.Enviar() esta tipo integer ainda

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.