Foros del Web » Programando para Internet » Javascript »

validar nass(numero afiliacion seguridad social)

Estas en el tema de validar nass(numero afiliacion seguridad social) en el foro de Javascript en Foros del Web. hola a todos me gustaria hacer un escript que valide el numero de afiliacion a la seguridad social en españa el algoritmo es el siguiente: ...
  #1 (permalink)  
Antiguo 16/06/2009, 03:56
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
validar nass(numero afiliacion seguridad social)

hola a todos me gustaria hacer un escript que valide el numero de afiliacion a la seguridad social en españa el algoritmo es el siguiente:

El número de afiliación a la Seguridad Social en españa, lleva asociados un par de dígitos de control que sirven para evitar errores de transcripción.
El número de afiliación a la seguridad social consta de tres partes:

aa/bbbbbbbb/cc

Los primeros dígitos (a) son un indicativo de la provincia. Los dígitos centrales (b) son el nº del asegurado dentro de cada provincia. Los dígitos finales son dígitos de control.

A menudo, el número de la seguridad social se escribe sin barras, siendo la parte a los dos primeros dígitos, la parte c los dos últimos y la parte b los dígitos centrales que queden:

aabbbbbbbbcc

Los dígitos de control (c) se obtienen a partir de las otras dos partes (a) y (b) de la siguiente forma:

si (b<10000000)
entonces d=b+a*10000000
si no d=valor de ( a concatenado con b ) //con b sin ceros a la izquierda
c=d mod 97 //resto de la división entera


yo tengo este script:

function comprobar_nass(nass_java)
{ var d=0,a1;
var resto=0; var rest =0;
var nass=document.getElementById('nass_java').value
var a = nass.substring(0,2); //a coge el valor de los 2 primeros digitos ok!!!
var b = nass.substring(2,10); //b tiene el valor de -> aa/bbbbbbbb/cc
var c = nass.substring(10,12); //c vale los dos ultimos digitos.
var e = nass.substring(2,10);
var incr = 2;
var digito = nass.substr(incr,incr-1); //se le asigna a digito el valor del numero que se escuentra en 3 posicio(el primer digito de b)
alert("a=" +a);//muestro en pantalla la partes a/b/c
alert("b=" +b);
alert("c=" +c);
alert("Digito= " +digito);
if( b < 10000000 ) //si es menor de 8 digitos b
{
//a1= a*10000000; //a1 le asigno el valor de a x 10000000
d = b+ a*10000000; // d coge el valor de a1(a x 10000000)
resto = d % 97 ;
if(resto==c) // el resto si es igual que la parte c(2 ultimas cifras) del nass es correcto
{alert("El nass es correcto " +resto);}
else
{alert("El nass no es correcto " +resto);} // sino no.
}
else
{ // si b no es menor de 8 digitos...
while (digito == 0) //compruebo que digito sea igual q 0 si es asi....
{
digito = nass.substr(incr+1,1);//cogemos el digito siguiente y lo comprobamos que sea igual a cero.
e = nass.substring(incr+1,nass.length-incr-3);//asignamos a e la cadena sin el digito anteriormente comprobado
incr++; //incrementamos la variable para para comprobar el siguente digito
alert(digito)
}
d = a+ e;//asignamos a e el valor de a concatenado con b sin cero
rest = d % 97;
if(rest==c)
{alert("El nas es correcto");}
else{alert("el nass no es correcto " +rest);}

}
}

si alguien sabe como validarlo corectamente haber si entre los dos podemos porque ya llevo tiempo con ello.
saludos y gracias.
  #2 (permalink)  
Antiguo 16/06/2009, 05:34
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: validar nass(numero afiliacion seguridad social)

Hola

Sabía que lo había visto por algún lado

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 16/06/2009, 06:44
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: validar nass(numero afiliacion seguridad social)

ok gracias ya lo habia visto per no es lo que necesito.
  #4 (permalink)  
Antiguo 16/06/2009, 06:51
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: validar nass(numero afiliacion seguridad social)

ok gracias ya lo habia visto per no es lo que necesito.
  #5 (permalink)  
Antiguo 16/06/2009, 07:23
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: validar nass(numero afiliacion seguridad social)

Hola carlosyosoyyo. Cuando dices que se debe ingresar de la forma aa/bbbbbbbb/cc ó aa/bbbbbbbb/cc, ¿es estrictamente necesario que se haga así o hay variaciones en la cantidad de dígitos?, es decir, ¿no todos constan de 2a/8b/2c?. Otra cosa, ¿el usuario debe digitar las 2c o esas siempre se deben calcular? ¿Cuando dices que si (b<10000000) te refieres a que su longitud (número de números que lo conforman) debe ser mayor a 8 o que debe ser mayor que ese número (porque incluso puede que digiten un número de más de 8 dígitos, y eso creo que no es correcto, ¿cierto?) ?

He intentado hacerlo, pero me he encontrado con esos problemillas, indica cual es el algortimo a seguir y las condiciones que existen en el mismo, pero con un lenguaje natural. Saludos.

PD: Ya tengo parte del código en algo parecido.
  #6 (permalink)  
Antiguo 16/06/2009, 07:24
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: validar nass(numero afiliacion seguridad social)

// Post repetido

Última edición por gioramies; 16/06/2009 a las 07:28 Razón: Se envió dos veces el post al servidor
  #7 (permalink)  
Antiguo 18/06/2009, 02:25
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: validar nass(numero afiliacion seguridad social)

Hola gioramies mira este enlace si te sirve de ayuda.
gracias por tu tiempo haber si entre los dos podemos.
tp://latecladeescape.com/w0/recetas-algoritmicas/validar-un-numero-de-la-seguridad-social-espana.html
no se puede digitar un numero mayor de 8 digitos.
y los digitos cc los introduce el usuario y se comprueba con el resto,si son iguales esta bien introducido.
  #8 (permalink)  
Antiguo 18/06/2009, 08:30
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: validar nass(numero afiliacion seguridad social)

Hola carlosyosoyyo tengo una pregunta: ¿Siempre el usuario debe digitar 2a/8b/2c o 2a8b2b? ¿Hay algún número mínimo de digitos que debe ingresar? El algoritmo que me diste no es suficiente.........tu eres el que conoce como son las validaciones, así que escríbelas por favor.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:56.