Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] validar digito verificador

Tengo la función de validar el digito verificador, pero siempre me devuelve false, aunque el Cuil ingresado sea correcto,

function validarDigitoVerificador(cuil){
    let acumulado = 0;
    const factores = [5,4,3,2,7,6,5,4,3,2];
    
    for(let i=0; i<10; i++){
        acumulado += parseInt(cuil[i],10) * factores[i];
    }

    let validadorTeorico = 11 - (acumulado % 11);
    
    if(validadorTeorico == 11){
        validadorTeorico =0;
    }else if(validadorTeorico == 10){
        validadorTeorico = 9;
    }

    const digitoVerificador = parseInt(cuil[10],10);

    return digitoVerificador === validadorTeorico;
}
1 respuesta
solución!

¡Hola Cesar!

Puede haber un problema en la forma en que estás pasando el CUIL a la función. Asegúrate de que estás pasando el CUIL como una cadena de texto de 11 dígitos, de lo contrario, la función podría no estar calculando el dígito verificador de manera correcta.

Por ejemplo, si estás pasando el CUIL como un número en lugar de una cadena de texto, podrías estar perdiendo los ceros a la izquierda, lo cual afectaría el cálculo del dígito verificador.

Intenta llamar a la función de la siguiente manera:

let cuil = "20345678901"; // Ejemplo de CUIL
let esValido = validarDigitoVerificador(cuil);
console.log(esValido); // Debería imprimir true o false

Asegúrate de que estás pasando el CUIL como una cadena de texto y que tiene 11 dígitos. Si sigues teniendo problemas, revisa cómo estás obteniendo el CUIL antes de pasarlo a la función.

¡Saludos!

Si este post te ayudó, por favor marca como solucionado ✓. ¡Continúa con tus estudios!