Validar un número de la Seguridad Social
Artículo por Club Developers · 31 diciembre 2005
6424 vistas
Se trata de una cifra de 11 dígitos para el caso de las cuentas de cotización de empresas, y de 12 dígitos en el caso del número de un trabajador.
Los dos últimos dígitos constituyen los dígitos de control.
Estas dos ultimas cifras del número completo, debe ser el resto de dividir todo el número exceptuando los dos ultimos digitos, que son los de control entre 97.
Ejemplo:
Si tenemos el número de Seguridad Social 28/1234567/42
HarÃamos 281234567 mod 97 = 42
Veamos una función que realiza este cálculo
Y un ejemplo de llamada podrÃa ser
Nota: StrToInt64 se añadió en la versión 4 de Delphi
Los dos últimos dígitos constituyen los dígitos de control.
Estas dos ultimas cifras del número completo, debe ser el resto de dividir todo el número exceptuando los dos ultimos digitos, que son los de control entre 97.
Ejemplo:
Si tenemos el número de Seguridad Social 28/1234567/42
HarÃamos 281234567 mod 97 = 42
Veamos una función que realiza este cálculo
delphi
function ValidaDCSS(Numero: string): boolean; var  Limpio: string;  i: integer;  uno, dos: integer; begin  {El numero de la seguridad social debe entrarse con este  formato:      28/1234567/40  o bien:      28/12345678/40  En función de que se trate del numero de una empresa  o del numero de un trabajador.  }  Limpio := '';  for i := 1 to Length(Numero) do   if Numero[i] in ['0'..'9'] then Limpio := Limpio + Numero[i];  {Si no tiene 11 ó 12 digitos, no es válido}  if (Length(Limpio) = 11) or (Length(Limpio) = 12) then  begin    Result:= StrToInt64( copy(Limpio, 1, Length(Limpio) - 2) )         mod 97 =         StrToInt( copy(Limpio, Length(Limpio) - 1, 2) );  end   else Result := false; end;
Y un ejemplo de llamada podrÃa ser
delphi
begin  if ValidaDCSS('28/1234567/42') then   ShowMessage('Válido')  else   ShowMessage('No Válido');
Nota: StrToInt64 se añadió en la versión 4 de Delphi