ipti/br.tag

app\views\student\_form.php(478)

Closed this issue · 0 comments

Gerar automaticamente digito verificador da certidão de nascimento nova

Campo: StudentDocumentsAndAddress[civil_register_enrollment_number]
* Referência:* http://ghiorzi.org/DVnew.htm#zc
Observações: O Número de Matrícula tem a configuração XXXXXX.XX.XX.XXXX.X.XXXXX.XXX.XXXXXXX-XX, onde o 1º grupo de 6 dígitos identifica o Cartório, o 2º grupo de 2 dígitos identifica o acervo, o 3º grupo de 2 dígitos identifica o serviço do registro civil das pessoas naturais, o 4º grupo de 4 dígitos identifica o ano do registro, o 5º grupo de 1 dígito identifica o tipo do livro de registro, o 6º grupo de 5 dígitos identifica o número do livro, o 7º grupo de 3 dígitos identifica o número da folha do livro e o 8º grupo de 7 dígitos identifica o Número de Registro. Finalmente o 9º grupo de 2 dígitos corresponde ao DV (Dígito de Verificação), cujo cálculo obedece ao seguinte esquema, dentro do critério de DV MÓDULO 11 já conhecido:
1 0 4 5 3 9 0 1 5 5 2 0 1 3 1 0 0 0 1 2 0 2 1 0 0 0 0 1 2 3 = 2
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x

2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9

2+ 0+16+25+18+63+ 0+ 9+50+ 0+ 2+ 0+ 3+12+ 5+ 0+ 0+ 0+ 9+20+ 0+ 2+ 2+ 0+ 0+ 0+ 0+ 7+16+27 = 288

288÷11=26, com resto 2 (este é o 1º dígito do DV) - Nota: se o resto for "10", o DV será "1"

1 0 4 5 3 9 0 1 5 5 2 0 1 3 1 0 0 0 1 2 0 2 1 0 0 0 0 1 2 3 2 = 1
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x

1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9

1+ 0+12+20+15+54+ 0+ 8+45+50+ 0+ 0+ 2+ 9+ 4+ 0+ 0+ 0+ 8+18+ 0+ 0+ 1+ 0+ 0+ 0+ 0+ 6+14+24+18 = 309

309÷11=28, com resto 1 (este é o 2º dígito do DV) - Nota: se o resto for "10", o DV será "1"

Portanto, o Número de Matrícula+DV = 104539.01.55.2013.1.00012.021.0000123-21

function cert(form)
{
certNum=(form.certNum.value);

if(certNum.length!=30){alert("Você deve introduzir os TRINTA dígitos \nda Matrícula.");}

certDig1=certNum.slice(29);    b1=eval(certDig1);
certDig2=certNum.slice(28,29); b2=eval(certDig2);
certDig3=certNum.slice(27,28); b3=eval(certDig3);
certDig4=certNum.slice(26,27); b4=eval(certDig4);
certDig5=certNum.slice(25,26); b5=eval(certDig5);
certDig6=certNum.slice(24,25); b6=eval(certDig6);
certDig7=certNum.slice(23,24); b7=eval(certDig7);
certDig8=certNum.slice(22,23); b8=eval(certDig8);
certDig9=certNum.slice(21,22); b9=eval(certDig9);
certDig10=certNum.slice(20,21);b10=eval(certDig10);
certDig11=certNum.slice(19,20);b11=eval(certDig11);
certDig12=certNum.slice(18,19);b12=eval(certDig12);
certDig13=certNum.slice(17,18);b13=eval(certDig13);
certDig14=certNum.slice(16,17);b14=eval(certDig14);
certDig15=certNum.slice(15,16);b15=eval(certDig15);
certDig16=certNum.slice(14,15);b16=eval(certDig16);
certDig17=certNum.slice(13,14);b17=eval(certDig17);
certDig18=certNum.slice(12,13);b18=eval(certDig18);
certDig19=certNum.slice(11,12);b19=eval(certDig19);
certDig20=certNum.slice(10,11);b20=eval(certDig20);
certDig21=certNum.slice(9,10); b21=eval(certDig21);
certDig22=certNum.slice(8,9);  b22=eval(certDig22);
certDig23=certNum.slice(7,8);  b23=eval(certDig23);
certDig24=certNum.slice(6,7);  b24=eval(certDig24);
certDig25=certNum.slice(5,6);  b25=eval(certDig25);
certDig26=certNum.slice(4,5);  b26=eval(certDig26);
certDig27=certNum.slice(3,4);  b27=eval(certDig27);
certDig28=certNum.slice(2,3);  b28=eval(certDig28);
certDig29=certNum.slice(1,2);  b29=eval(certDig29);
certDig30=certNum.slice(0,1);  b30=eval(certDig30);

certPriDig=(b1*9+b2*8+b3*7+b4*6+b5*5+b6*4+b7*3+b8*2+b9*1+b10*0+b11*10+b12*9+b13*8+b14*7+b15*6+b16*5+b17*4+b18*3+b19*2+b20*1+b21*0+b22*10+b23*9+b24*8+b25*7+b26*6+b27*5+b28*4+b29*3+b30*2)%11;
if(certPriDig==10){certPriDig=1;}
certSegDig=(certPriDig*9+b1*8+b2*7+b3*6+b4*5+b5*4+b6*3+b7*2+b8*1+b9*0+b10*10+b11*9+b12*8+b13*7+b14*6+b15*5+b16*4+b17*3+b18*2+b19*1+b20*0+b21*10+b22*9+b23*8+b24*7+b25*6+b26*5+b27*4+b28*3+b29*2+b30*1)%11;
if(certSegDig==10){certSegDig=1;}
certDV=certPriDig*10+certSegDig;
if(certDV==0){certDV="00";}
if(certDV>0&&certDV<10){certDV="0"+certDV;}
trap=Math.random();
if(trap<.2){alert("© Telmo  Ghiorzi\nwww.ghiorzi.org");}

form.certDV.value=certDV;
}