viernes, 31 de octubre de 2014

[JAVA] Dígito verificador de la cédula ecuatoriana

Hola a todos,

Hoy he vuelto comparto con ustedes un método para comprobar el último dígito de la cédula de identidad ecuatoriana.

 public boolean verificarCedula(String cedula) {  
     int total = 0;  
     int tamanoLongitudCedula = 10;  
     int[] coeficientes = {2, 1, 2, 1, 2, 1, 2, 1, 2};  
     int numeroProviancias = 24;  
     int tercerdigito = 6;  
     if (cedula.matches("[0-9]*") && cedula.length() == tamanoLongitudCedula) {  
       int provincia = Integer.parseInt(cedula.charAt(0) + "" + cedula.charAt(1));  
       int digitoTres = Integer.parseInt(cedula.charAt(2) + "");  
       if ((provincia > 0 && provincia <= numeroProviancias) && digitoTres < tercerdigito) {  
         int digitoVerificadorRecibido = Integer.parseInt(cedula.charAt(9) + "");  
         for (int i = 0; i < coeficientes.length; i++) {  
           int valor = Integer.parseInt(coeficientes[i] + "") * Integer.parseInt(cedula.charAt(i) + "");  
           total = valor >= 10 ? total + (valor - 9) : total + valor;  
         }  
         int digitoVerificadorObtenido = total >= 10 ? (total % 10) != 0 ? 10 - (total % 10) : (total % 10) : total;  
         if (digitoVerificadorObtenido == digitoVerificadorRecibido) {  
           return true;  
         }  
       }  
       return false;  
     }  
     return false;  
   } 


Número de RUC: 0801895186001

Estructura: El número del RUC es un número de 13 dígitos, sin letras ni caracteres especiales, de los cuales los 10 primeros dígitos corresponden a la cédula de identidad

  • 08 Los dos primeros dígitos corresponden al código de provincia siempre está entre 01 al 22
  • 0 El tercer dígito es siempre menor a 6: 0, 1, 2, 3, 4, 5.
  • 189518 Del cuarto al noveno dígito es un número consecutivo de 6 dígitos
  • 6 El décimo dígito es el dígito verificador
  • 001 Del décimo primer dígito al décimo tercer dígito, identifican en forma consecutiva el número de establecimientos. Empieza siempre con el 001

El número de RUC es: 0801895186001 independientemente del número de establecimientos que tenga el contribuyente, no existe un número de RUC tal como 0801895186002

La validación de la cédula de Identidad pasa un algoritmo "Módulo 10". Al número se lo divide en 13 partes, las 9 primeras son el número mismo, la 10 es el dígito auto verificador, y las 3 restantes indican si es principal o establecimiento adicional. Los coeficientes usados para verificar el décimo dígito de la cédula, mediante el algoritmo "Módulo 10" son: 2.1.2.1.2.1.2.1.2.

Para realizar la validación solo tomamos los 9 primeros dígitos del RUC y procedemos a realizar la multiplicación de la siguiente manera:

080189518
212121212
080116910116

El resultado de esta multiplicación sumamos por dígito no por resultado:


0+8+0+1+1+6+9+1+0+1+1+634

El Resultado de ésta suma que es 34 restamos de la decena más próxima, o sea 40.

40 - 34 = 6


Si resultado que nos da en esta resta "6" es igual al décimo número del RUC, este esta correcto caso contrario incorrecto.

Si el resultado de la resta es 0, y el décimo número del RUC también es 0, este esta correcto caso contrario incorrecto.


0 comentarios:

Publicar un comentario