Olá pessoal,
Estamos nos preparando para a mudança do CNPJ alfanumérico da RFB e ao analisar o ACBrValidador.pas do trunk atual identificamos que a mensagem de erro do ValidarCNPJ já foi atualizada para "Apenas letras e números", o que indica que o time já está ciente da mudança. Porém, o algoritmo de cálculo do dígito verificador em TACBrCalcDigito.Calcular ainda usa:
N := Ord( fsDocto[ Tamanho - A + 1 ] ) - 48; // Ord('0')
Pelo novo algoritmo da RFB, a conversão de caractere para valor numérico deve ser:
Dígito 0–9: Ord(c) - 48 (já correto)
Letra A–Z: Ord(c) - 55 (ainda não implementado)
Com o código atual, um CNPJ alfanumérico válido como 12ABC34501DE35 terá seu dígito verificador calculado errado e será rejeitado como inválido.
Perguntas:
Há uma branch ou PR com a correção do algoritmo para o novo formato alfanumérico?
A correção está prevista para entrar no trunk em alguma data?
Enquanto a atualização não sai, qual a recomendação — aplicar um patch local no TACBrCalcDigito.Calcular ou reimplementar a validação fora do ACBr?
Obrigado!