Pesquisar na Comunidade
Showing results for tags 'ndraw'.
Encontrado 1 registro
-
Olá gostaria de sugerir uma correção na validação do Drawback da NFe, me deparei essa semana com uma nota de importação de um cliente, o qual tem seu registro de Drawback iniciando com 2016, sua concessão do Drawback é valido por 2 anos, conforme anexo abaixo destaquei data de registro e validade, acontece que o ACBR NFe existe uma validação que estava retornando Falso o qual impedia a emissão da NFe, ajustei o método ValidaDrawback do fonte ACBrDFeUtil.pas, anexei nesse post tanto o fonte completo como o patch de correção do ACBr como for mais fácil para comparar com minha alteração. Também aproveito para postar aqui o código de como estava: 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 - 1) and (StrToInt(copy(Avalue, 1, 2)) <= ano + 1)) then Result := False else Result := copy(AValue, 9, 1) = Modulo11(copy(AValue, 1, 8)); end; E como ficou depois da minha alteração: 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; Qualquer dúvida estou a disposição e agradeço caso a sugestão de alteração seja aceita. ACBrDFeUtil.pas.patch ACBrDFeUtil.pas