El serial ingresado debe tener 16 caracteres
Este serial se dividirá en dos partes:
cvd = último número del serial y es como un número de verificación
cod = es el serial que se analizará en el codigo
Aquí se recorre cod número por número
si el número es par, se lo adiciona en la variable chk,
si es impar, se lo multiplica por dos, si el resultado es mayor o igual a 10,
se suman los dos primeros dígitos del resultado y se lo adiciona en la variable chk.
Cuando digo adiciona, no quiero decir que se lo suma, si no que se lo concatena.
Aquí se suman número por número cada uno de los dígitos de la variable chk previamente obtenida y se guarda el resultado en tmp
Aquí viene lo interesante:
Se suman los dos primeros caracteres de tmp y lo guardamos en chk,
luego lo multiplicamos x 10
y restamos chk menos tmp.
Luego obtenemos cvs del módulo de chk por 10.
Si cvs y chk son iguales, wala!
Este serial se dividirá en dos partes:
cvd = último número del serial y es como un número de verificación
cod = es el serial que se analizará en el codigo
Aquí se recorre cod número por número
si el número es par, se lo adiciona en la variable chk,
si es impar, se lo multiplica por dos, si el resultado es mayor o igual a 10,
se suman los dos primeros dígitos del resultado y se lo adiciona en la variable chk.
Cuando digo adiciona, no quiero decir que se lo suma, si no que se lo concatena.
Código [Seleccionar]
for (i=0;i<cod.length;i++){
if (i%2 == 0){
tmp = cod.substring(i,i+1) * 1;
}
else{
tmp = cod.substring(i,i+1) * 2;
}
if (tmp >= 10){
tmp = tmp.toString();
tmp = tmp.substr(0,1) + tmp.substr(1,1);
}
chk = chk.concat(tmp);
}
Aquí se suman número por número cada uno de los dígitos de la variable chk previamente obtenida y se guarda el resultado en tmp
Código [Seleccionar]
tmp = '';
for (i=0;i<chk.length;i++){
tmp = (tmp*1) + (chk.charAt(i)*1);
}
Aquí viene lo interesante:
Se suman los dos primeros caracteres de tmp y lo guardamos en chk,
luego lo multiplicamos x 10
y restamos chk menos tmp.
Luego obtenemos cvs del módulo de chk por 10.
Código [Seleccionar]
tmp = tmp.toString();
chk = (tmp.substr(0,1)*1) + (tmp.substr(1,1)*1);
chk = chk * 10;
chk = (chk*1) - (tmp*1);
cvs = chk % 10;
Si cvs y chk son iguales, wala!