Velneo: plataforma de desarrollo de aplicaciones empreariales

Inicio Foros Velneo V7 Como calcular el NIF , NIE y CIF

Etiquetado: , , , ,

Este debate contiene 8 respuestas, tiene 3 voces y lo actualizo  [N1] jovefer.gmail hace 3 años, 5 meses.

Viendo 9 publicaciones - del 1 al 9 (de un total de 9)
  • Autor
    Mensajes
  • #5704

    [N1] jovefer.gmail
    Participante

    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

     

     

     

     

    #5705

    [N1] jovefer.gmail
    Participante

    function letraDni(dni) {

    var letradni=dni.charAt( 8 );

    var lockup='TRWAGMYFPDXBNJZSQVHLCKE';

    return lockup.charAt(dni.substring(8,0) % 23);

    }

    letraDni(dni);

     

    #5706

    [N1] jovefer.gmail
    Participante

    function validarCIF(cif){

     

    var pares = 0;

     

    var impares = 0;

     

    var suma;

     

    var ultima;

     

    var unumero;

     

    var uletra = new Array('J' , 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I') ;

    var xxx;

    ultima = cif.substr( 8,1 );

     

    for (var cont = 1 ; cont < 7 ; cont ++)

    {

     

    xxx = (2 * parseInt(cif.substr(cont++,1))).toString() + '0';

     

    impares += parseInt(xxx.substr( 0,1 )) + parseInt(xxx.substr( 1,1 ));

     

    pares += parseInt(cif.substr(cont,1));

     

    }

     

    xxx = (2 * parseInt(cif.substr(cont,1))).toString() + '0';

     

    impares += parseInt(xxx.substr( 0,1 )) + parseInt(xxx.substr( 1,1 ));

     

    suma = (pares + impares).toString();

     

    unumero = parseInt(suma.substr(suma.length – 1, 1));

     

    unumero = (10 – unumero).toString();

     

    if(unumero == 10) unumero = 0;

     

    return unumero;

    }

     

    validarCIF(cif);

     

     

     

    #5707

    [N4] eic.eurosistemas
    Participante

    Uau!

    Muchas gracias!

    Saludos,

    Fran Varona

     

    Saludos, Fran Varona Eurosistemas Inf. y Com., S.L.
    #5708

    [N1] jovefer.gmail
    Participante

    Buenas

    Espero que se haya entendido.

    No pude subir imágenes y no se si habrá quedado muy claro.

    El que necesite mas explicaciones que lo diga.

    Un saludo Fran.

    #5709

     

     

     

    Buenos dias,

     

     

    Quiero verificar los dni, nie,nif que se introduzca en un campo. El codigo javascript que poneis mas arriba, copiandolo directamente en el editor de formulas lo reconoce v7? o hay que hacer algo mas?

    #5710

    [N1] jovefer.gmail
    Participante

    Buenas.

    Lo que debes hacer es una función o proceso en donde metas estos códigos en javascript pero controlando, como digo en el primer post, si son nif, nie o cif.

    Para saber como meter código javascript en un proceso mírate este post: http://velneo.es/foros/topic/funcion-iban-espanol-en-javascript

    Un saludo.

     

     

     

    Jorge Velasco Fernández

    THE SEED SOFTWARE COMPANY

    jvelasco@theseedsc.com

    #5711

    Ok, entonces hago un proceso con:

     

     

    -Obtengo el primer digito de la cadena

    - Variable que almacene el primer digito de la cadena

    -If digito=0,1,2

    Proceso java del dni

    -If digito diferente a 0,1,2

    Proceso NIF

     

     

    correcto??

     

    #5712

    [N1] jovefer.gmail
    Participante

    Buenas

    “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 CIF 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”

    No es exactamente como tu dices. Para el NIF, NIE la función javascript es la misma sólo que debes sustituir las letras de los NIE's por números.

    El resto son CIF.

    Un saludo.

     

     


    Jorge Velasco Fernández

    THE SEED SOFTWARE COMPANY

    jvelasco@theseedsc.com

Viendo 9 publicaciones - del 1 al 9 (de un total de 9)

Debes estar registrado para responder a este debate.

© 2013, Velneo S.A. Todos los derechos reservados      Empresa | Contacto | Aviso legal
Life is soft - Evento de software de gestion