Ir para conteúdo
  • Cadastre-se

dev botao

Função ValidaDrawback e o novo formato após a NT 2020/005 da NFe


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

Recommended Posts

Postado

A atual função ValidaDrawback não está, na revisão atual do SVN (22620), contemplando a Nota Técnica 2020/005 da NFe que diz:

Citar

O número do ato concessório de Drawback agora pode ser alfanumérico, e seu tamanho máximo 
foi aumentado.

*Esse novo tamanho é de 20 caracteres.

Como pode ser observado no código abaixo, apenas número são aceitos, apesar do argumento ser String, e apenas códigos de tamanho 11 e 9 são aceitos.

function ValidaDrawback(AValue: String): Boolean;
var
  ano: integer;
begin
  // AValue = AAAANNNNNND
  // Onde: AAAA Ano corrente do registro
  //       NNNNNN Número sequencial dentro do Ano ( 6 dígitos )
  //       D Dígito Verificador, Módulo 11, Pesos de 2 a 9
  AValue := OnlyNumber(AValue);
  ano := StrToInt(Copy(IntToStr(YearOf(Date)), 3, 2));
  if length(AValue) = 11 then
    AValue := copy(AValue, 3, 9);

  if length(AValue) <> 9 then
    Result := False
  else if not ((StrToInt(copy(Avalue, 1, 2)) >= ano - 2) and
    (StrToInt(copy(Avalue, 1, 2)) <= ano + 2)) then
    Result := False
  else
    Result := copy(AValue, 9, 1) = Modulo11(copy(AValue, 1, 8));
end;

 

Ainda não encontrei nenhum novo formato e o próprio arquivo de leiaute da SEFAZ informa o mesmo formato de antes para drawback.

Como uso essa função no meu aplicativo para realizar a validação do código conforme o usuário edita as informações, no momento não consigo acompanhar essa mudança.

 

Alguém sabe se há alguma iniciativa para alguma correção ou se alguém já descobriu esse novo formato?

 

Obrigado.

  • Consultores
  • Solution
Postado

Boa tarde Fábio,

Na Nota Técnica 2020/005 diz que o tipo da tag passou a ser "C", ou seja, Caractere e o seu tamanho máximo para 20.

Mas veja o que esta escrito na coluna de observação dessa tag:

O número do Ato Concessório de Suspensão deve ser preenchido com 11 dígitos (AAAANNNNNND) e o 
número do Ato Concessório de Drawback Isenção deve ser preenchido com 9 dígitos (AANNNNNND). 
(Observação incluída na NT 2013/005 v. 1.10)

Note que tanto o numero do Ato Concessório de Suspensão quanto o de Isenção são compostos por dígitos.

O que eu não entendi é o fato do tamanho agora ser de 20 caracteres.

Existe a possibilidade de informar ambos os números, ou seja, na mesma tag informar o número do Ato Concessório de Suspensão e o de Isenção?

Se sim, então explica o tamanho 20, pois um tem 11 e o outro tem 9, informando os dois teríamos um numero com 20 dígitos.

Se existe essa possibilidade, então devemos realmente fazer um ajuste nessa função.

Ou para informar que o numero é de Suspensão ou Isenção devemos informar da seguinte forma:

SUSPENSAOAAAANNNNNND - quantidade de caracteres 20

ISENCAOAANNNNNND - quantidade de caracteres 16

Isso explica a mensagem no inicio da NT que diz que a tag agora passa a ser alfa-numérico.

Se for dessa forma que devemos agora informar no XML, não vejo necessidade de alterar a função, pois ela elimina os caracteres que não são dígitos.

  • Obrigado 1
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

  • Este tópico foi criado há 1200 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.