Buenas.
Os voy a explicar como calcular la letra /número de control de los NIF, NIE y CIF usando javascript.
Buscando por ahí he encontrado dos ejemplos de javascript para calcular el NIF, NIE (es el mismo) y otro para calcular el CIF. Yo de javascript lo justo, seguro que hay funciones mejores, pero a mi estas me funcionan perfectamente.
1.- NIF y NIE (primera imagen) El cálculo es el mismo. Lo único que debemos hacer con los NIE es sustituir la primera letra de éstos (X,Y,Z) por (0,1,2) respectivamente. Y esa cadena pasársela a la función javascript.
2.- CIF (segunda imagen) Los CIF desde julio de 2008 se componen de una letra (A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W), de una numeración aleatoria de 7 dígitos y de un carácter de control. La función javascript nos devolverá un número. Si el CIF empieza por:C,K,L,M,N,P,Q,R,S,W en vez de devolver un número se deberá devolver una letra siguiendo esta correspondencia 1=A , 2=B, 3=C, 4=D, 5=E, 6=F, 7=G, 8=H, 9=I, 0=J.
Como idea, en mi función lo tengo de la siguiente manera:
- Lo primero me quedo con la primera posición por la izquierda de la cadena.
- Si es una X, Y, Z o un número es un NIF, NIE. Si es un NIE debo sustituir la letra como dije antes por un 0,1 o un 2 y ejecuto la función javascript tal como comenté el otro día con la función para el IBAN
- Si es una A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W entonces es un NIF así que lo paso como parámetro a la segunda función javascript
Cuando tengo el número de control que devuelve la función javascript debo comprobar por que letra empezaba el CIF para saber si tengo que cambiar el número por una letra.
- Si no empieza por ninguno de los casos anteriores devuelvo un error
Un saludo.
Jorge Velasco
SISTEMA BINARIO