Ir para conteúdo
  • Cadastre-se

dev botao

Número Do Drawback (Ndraw) Inválido


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

Recommended Posts

Boa tarde,

 

Estou alterando os fontes da empresa que trabalho para suportar a nf-e 3.10 e um dessas mudanças é quando a nota fiscal é de exportação e quando utiliza determinado CFOP exige o detExport, onde o mesmo pede o nDraw (número do drawback) ao informar este número a validação do ACBr me diz que este número é inválido, porém posso afirmar que não é. Então fui verificar a validação e encontrei este código:

class function DFeUtil.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 := LimpaNumero(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 -1) and (StrToInt(copy(Avalue, 1, 2)) <= ano +1)) then
        Result := False
      else
        Result := copy(AValue, 9, 1) = Modulo11(AValue);
end;

E percebir que que tem um erro nesta linha:

Result := copy(AValue, 9, 1) = Modulo11(AValue);

Pois ele compara o ultimo carácter (digito verificador) do nDraw com o módulo 11 do mesmo nDraw, porém que ao calcular o módulo 11 o digito verificador vai junto, então tomei a liberdade de alterar o código e no lugar do código acima coloquei este:

Result := copy(AValue, 9, 1) = Modulo11(copy(AValue, 1, 8));

Quando ele for calcular o módulo 11 não irá calcular com o nDraw completo e sim com o nDraw faltando digito verificador, não sei se isto realmente esta correto, mas com esta alteração a nota foi enviada com sucesso.

Editado por Valério Bezerra
Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...

Somando com o que o Valério Bezerra disse, o número de Drawback pode ter validade de até 03 anos (conforme prorrogação) e a função válida com apenas 01.

Lembrando que o número não muda quando prorrogado.

Links utilizados para consulta:

 

 
Editado por FlávioDelesposte
Link para o comentário
Compartilhar em outros sites

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