Validação de CNPJ em Flash AS2

Dando continuidade a série de validação, agora é a vez de validarmos o Cadastro Nacional da Pessoa Jurídica – CNPJ.
O script segue a mesma lógica do post anterior de validação CPF, usando operadores aritméticos, lógicos, de comparação, … para fazer o cálculo.

O CNPJ é composto por quatorze algarismos, divididos em três blocos: 12.345.678/0001-95

- o primeiro bloco representa o número da inscrição propriamente dito;
- o segundo, localizado após a barra, representa um código único para a matrix ou filial;
- o terceiro, representados pelos dois últimos valores chamados de dígitos verificadores (DV) e são calculados a partir dos algarismos dos dois primeiros blocos conforme determinado pelo Ministério da Fazenda.

O cálculo é feito em duas etapas utilizando o módulo de divisão por 11.

Vamos ao código, mas dessa vez vamos incorporar algumas condições para orientar o usuário.

Crie um campo texto Input e instancie como cnpj_txt.

Crie também um campo texto Dynamic e instancie como retorno_txt.

Crie um movieclip para servir como botão e instancie como enviar_btn.

Agora vamos colocar a ação na timeline.

// Iniciamos o script já com o cursor no campo
Selection.setFocus ("cnpj_txt");
//e restringindo a digitação a apenas números
cnpj_txt.restrict = "0-9";

envia_btn.onRelease = function() {
validaCNPJ();
};

//a função de validação do CNPJ
function validaCNPJ() {
CNPJ = new String();
CNPJ = cnpj_txt.text;
// Primeiro verificamos se o CNPJ foi preenchido
if (CNPJ.length == 0) {
retono_txt.text = "Por favor, digite o CNPJ!";
// ou se satifaz a condição de tamanho de ter no máximo 14 algarismos
} else if (CNPJ.length>0 && CNPJ.length>14) {
retono_txt.text = "É necessarios preencher corretamente o CNPJ!";
// se as condições acima foram cumpridas
} else {
var a:Array = new Array;
var b:Number = new Number();
var c:Array = new Array (6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2);
for (i=0; i<12; i++) {
a[i] = CNPJ.charAt(i);
b += a[i]*c[i+1];
}
if ((x=b%11)<2) {
a[12] = 0;
} else {
a[12] = 11-x;
}
b = 0;
for (y=0; y<13; y++) {
b += (a[y]*c[y]);
}
if ((x=b%11)<2) {
a[13] = 0;
} else {
a[13] = 11-x;
}
if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])) {
retono_txt.text = "Dígito verificador com problema! CNPJ inválido";
trace ( "O primeiro dígito deveria ser "+a[12]+"\n"+"E o segundo "+a[13]);
} else {
retono_txt.text = "CNPJ válido";
// coloque aqui suas outras ações
}
}
}

É isso.
No próximo post vamos ver como funciona a validação da Inscrição Estadual que possui um cálculo diferente por estado.


4 Comentários »

  1. bobfernandes Disse:

    Olá Marco, tudo bem?
    Cara eu to precisando criar uma validação de inscrição estadual em AS eu tentei pegar uma em javascript e transforma-la em AS mas são 6 páginas de código, então comecei a procurar na web e cheguei ao seu blog, será que vc poderia me mandar por e-mail o código que você fez?
    Abraço.

  2. Eduardo Nascimento Disse:

    Não estou conseguindo fazer a validação. Quanto você cobra pra mandar o arquivo .flash ?
    Aguardo seu contato,
    Obrigado

    Eduardo Nascimento

  3. OLÁ MARCO
    BOM ESTOU TENDO PROBLEMAS COM O TEU CÓDIGO, ARRUMEI ALGUMAS VARIÁVEIS QUE ENCONTRAVAM-SE INCORRETAS, DEI MA GERAL E AINDA SEM SUCESSO, NÃO FUNCIONA NADA, COLOQUEI VÁRIOS CNPJ E TUDO SEM SUCESSO, POR FAVOR TERIA COMO ME ENVIAR O ARQUIVO .FLA OU O .SWF DESTE TUTORIAL.

    AGUARDO SEU RETORNO

    SEM MAIS PARA O MOMENTO

    Jader Bueno de Oliveira

  4. Paula Disse:

    Valeu demais, precisava muito deste código e deu tudo certinho !


{ RSS feed para comentários neste post} · { URI do TrackBack }

Deixe um comentário