Tipo de Documento
Cadastro de Documento
1. Campos do Cadastro
1.1. Nome
Nome do tipo de documento.
1.2. Pattern
Máscara para formatar o tipo de documento. ex:
CNPJ: 00.000.000/000-00
CPF: 000.000.000-00
Documentação técnica: jQuery-Mask-Plugin Doc
1.3. Código de Validação
Código em JavaScript para validar o tipo de documento.
A variável key deverá ser usada na validação.
O retorno deve ser null em caso de sucesso ou uma string em caso de erro.
Exemplo simples de validação, onde o correto é o número 125:
if(key === 125){
return null;
} else {
return "Erro na validação. Deveria ser 125!"
}
- Exemplo de validação de CPF:
var cpf = key; // Essa variável key, é o valor a ser validado, enviado pelo sistema
var soma = 0;
var resto;
var mensagemErro = `O CPF ${cpf} é inválido!`;
if (cpf == "00000000000"){
return mensagemErro;
}
for (var i=1; i<=9; i++) {
soma = soma + parseInt(cpf.substring(i-1, i)) * (11 - i);
resto = (soma * 10) % 11;
}
if ((resto == 10) || (resto == 11)){
resto = 0;
}
if (resto != parseInt(cpf.substring(9, 10)) ) {
return mensagemErro;
}
soma = 0;
for (var i = 1; i <= 10; i++) {
soma = soma + parseInt(cpf.substring(i-1, i)) * (12 - i);
}
resto = (soma * 10) % 11;
if ((resto == 10) || (resto == 11)) {
resto = 0;
}
if (resto != parseInt(cpf.substring(10, 11) ) ){
return mensagemErro;
}
return null;
- Exemplo de validação de CNPJ:
var cnpj = key;
var mensagemErro = `O CNPJ ${cnpj} é inválido!`;
if (cnpj.length != 14){
return mensagemErro;
}
// Elimina CNPJs invalidos conhecidos
if (cnpj == "00000000000000" ||
cnpj == "11111111111111" ||
cnpj == "22222222222222" ||
cnpj == "33333333333333" ||
cnpj == "44444444444444" ||
cnpj == "55555555555555" ||
cnpj == "66666666666666" ||
cnpj == "77777777777777" ||
cnpj == "88888888888888" ||
cnpj == "99999999999999"){
return mensagemErro;
}
// Valida DVs
var tamanho = cnpj.length - 2;
var numeros = cnpj.substring(0,tamanho);
var digitos = cnpj.substring(tamanho);
var soma = 0;
var pos = tamanho - 7;
for (var i = tamanho; i >= 1; i--) {
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2){
pos = 9;
}
}
var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado != digitos.charAt(0)){
return mensagemErro;
}
tamanho = tamanho + 1;
numeros = cnpj.substring(0,tamanho);
soma = 0;
pos = tamanho - 7;
for (var i = tamanho; i >= 1; i--) {
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2){
pos = 9;
}
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado != digitos.charAt(1)){
return mensagemErro;
}
return null;
1.4. Descrição
Descrição do tipo de documento.