lmsbxt 0 Denunciar post Postado Novembro 29, 2006 fala galera, to querendo um código pra validação de cnpj...num achei nada funcional na busca..só algumas dicas..daí peguei esse código que tá em js, tentei mudar pra as mas num consegui, será que alguém consegue? function checaCnpj(cnpj) { //Verifica se o cnpj é válido var i, x, a = [], b = 0, c = []; cnpj = valInt(cnpj); c = [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])) { //return false; trace("errado"); } else { //return true; trace("certo"); }}valeew abraço Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 29, 2006 Aí, troquei as declarações de variáveis, o nome delas também (x e y poderia confundir com propriedades de posição), e mais umas funções que não tem no AS. function checaCnpj(cnpj:String) { //Verifica se o cnpj é válido var a = Array(); var b = 0; var c = Array(6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2); for (i = 0; i < 12; i++) { a[i] = Number(cnpj.charAt(i)); b += a[i] * c[i + 1]; } if ((d = b % 11) < 2) { a[12] = 0; } else { a[12] = 11 - d; } var b = 0; for (e = 0; e < 13; e++) { b += (a[e] * c[e]); } if ((d = b % 11) < 2) { a[13] = 0; } else { a[13] = 11 - d; } if ((cnpj.charAt(12) != a[12]) || (cnpj.charAt(13) != a[13])) { //return false; trace("errado"); } else { //return true; trace("certo"); }} Gostei da função, hehe. Flw Compartilhar este post Link para o post Compartilhar em outros sites
lmsbxt 0 Denunciar post Postado Novembro 29, 2006 grande antoniosp...mas então cara, ta com problema ainda, quando chamo a função ele só me retorna "errado" mesmo com o cnpj estando certo...será que esse codigo está errado eu é problema de sintaxe ainda?abraço.. Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 29, 2006 Testa com um zero a menos no início do cnpj. Aqui deu. Compartilhar este post Link para o post Compartilhar em outros sites
lmsbxt 0 Denunciar post Postado Novembro 29, 2006 putz..num deu não...onde será que to fazendo cagada, criei um campo de texto com o nome de "cnpj" e um botão pra chamar a funçao..checaCnpj(); Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 29, 2006 A função checaCnpj necessita de um parâmetro, o cnpj em string. Quando você chama ela, está fazendo assim: checaCnpj(); e só! Falta o número do cnpj alí. Então acho melhor você instanciar o campo de cnpj_txt e chamar a função assim: checaCnpj(cnpj_txt.text);Ok? Flw Compartilhar este post Link para o post Compartilhar em outros sites