Validar un número de la Seguridad Social
Artículo por Club Developers · 31 diciembre 2005
7589 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


