validarCNPJ static method
bool
validarCNPJ( - dynamic numero
)
Implementation
static bool validarCNPJ(dynamic numero) {
try {
var text = "$numero".removeAny(["-", "/", "."]);
if (numero is num) {
text = numero.floor().toString().padLeft(14, "0");
}
if (text.isNotNumber || text.length != 14) {
return false;
}
// Calcula o primeiro dígito verificador do CNPJ
List<int> multiplicadores = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
int soma = 0;
for (int i = 0; i < 12; i++) {
soma += int.parse(text[i]) * multiplicadores[i];
}
int primeiroDigito = (soma % 11 < 2) ? 0 : 11 - (soma % 11);
if (primeiroDigito != int.parse(text[12])) {
return false;
}
// Calcula o segundo dígito verificador do CNPJ
multiplicadores = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
soma = 0;
for (int i = 0; i < 13; i++) {
soma += int.parse(text[i]) * multiplicadores[i];
}
int segundoDigito = (soma % 11 < 2) ? 0 : 11 - (soma % 11);
return segundoDigito == int.parse(text[13]);
} catch (e) {
return false;
}
}