Foros del Web » Programando para Internet » PHP »

Como Validar un CIF

Estas en el tema de Como Validar un CIF en el foro de PHP en Foros del Web. Lo que quiero es poder validar (comprobar si es correcto) un CIF introducido en una caja de texto. Si alguien sabe el código de como ...
  #1 (permalink)  
Antiguo 08/01/2007, 15:25
toz
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Como Validar un CIF

Lo que quiero es poder validar (comprobar si es correcto) un CIF introducido en una caja de texto.

Si alguien sabe el código de como hacerlo, le agradecería que me ayudara.

Gracias de antemano
  #2 (permalink)  
Antiguo 08/01/2007, 21:22
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años
Puntos: 15
Re: Como Validar un CIF

que es un CIF?
__________________
Pablo Reyes

Compra/venta saldos PayPal, Skrill, Neteller, Bitcoins, etc.
  #3 (permalink)  
Antiguo 09/01/2007, 02:37
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Como Validar un CIF

Un cif es esto (Fuente: wikipedia)
El Código de identificación fiscal (CIF) es el sistema de identificación tributaria utilizada en España para las personas jurídicas o entidades del artículo 35.4 de la Ley General Tributaria (Ley 58/2003, BOE 18/12/2003) asignado por la Administración tributaria. La disposición adicional sexta de dicha ley establece su obligatoriedad

EL CIF consta de 9 caracteres. El primero (posición 1) es una letra que sigue los siguientes criterios:

A. Sociedades anónimas.
B. Sociedades de responsabilidad limitada.
C. Sociedades colectivas.
D. Sociedades comanditarias.
E. Comunidades de bienes.
F. Sociedades cooperativas.
G. Asociaciones y otros tipos de sociedades civiles.
H. Comunidades de propietarios en régimen de propiedad horizontal.
N. Entidades no residentes.
P. Corporaciones locales.
Q. Organismos autónomos, estatales o no, y asimilados, y congregaciones e instituciones religiosas.
S. Órganos de la Administración del Estado y comunidades autónomas
A continuación se insertan otros siete dígitos con las siguientes posiciones: las dos primeras indican la provincia, donde los identificadores o claves provinciales son:

* 01 - Alava.
* 02 - Albacete.
* 03, 53, 54 - Alicante.
* 04 - Almería.
* 05 - Ávila.
* 06 - Badajoz.
* 07, 57 - Islas Baleares.
* 08, 58, 59, 60, 61, 62, 63, 64 - Barcelona.
* 09 - Burgos.
* 10 - Cáceres.
* 11, 72 - Cádiz.
* 12 - Castellón.
* 13 - Ciudad Real.
* 14, 56 - Córdoba.
* 15, 70 - A Coruña.
* 16 - Cuenca.
* 17, 55 - Girona.
* 18 - Granada.
* 19 - Guadalajara.
* 20, 71 - Guipúzcoa.
* 21 - Huelva.
* 22 - Huesca.
* 23 - Jaén.
* 24 - León.
* 25 - Lleida.
* 26 - La Rioja.
* 27 - Lugo.
* 28, 78, 79, 80, 81, 82, 83, 84 - Madrid.
* 29, 92, 93 - Málaga.
* 30, 73 - Murcia.
* 31 - Navarra.
* 32 - Ourense.
* 33, 74 - Oviedo.
* 34 - Palencia.
* 35, 76 - Las Palmas.
* 36, 94 - Pontevedra.
* 37 - Salamanca.
* 38, 75 - Santa Cruz de Tenerife.
* 39 - Cantabria.
* 40 - Segovia.
* 41, 91 - Sevilla.
* 42 - Soria.
* 43, 77 - Tarragona.
* 44 - Teruel.
* 45 - Toledo.
* 46, 96, 97, 98 - Valencia.
* 47 - Valladolid.
* 48, 95 - Vizcaya.
* 49 - Zamora.
* 50, 99 - Zaragoza.
* 51 - Ceuta.
* 52 - Melilla.
Los cinco siguiente dígitos (posiciones 3 a 8) constituyen un número correlativo de inscripción de la organización en el registro provincial, y el último dígito (posición 9) es un número de control que puede ser un número ó una letra :

* - Será una LETRA si la clave de entidad es K, P, Q ó S.
* - Será un NUMERO si la entidad es A, B, E ó H.
* - Para otras claves de entidad: el dígito podrá ser tanto número como letra.
Las operaciones para calcular el dígito de control se realizan sobre los siete dígitos centrales y son las siguientes:

- Sumar los dígitos de la posiciones pares. Suma = A

- Para cada uno de los dígitos de la posiciones impares, multiplicarlo por 2

y sumar los dígitos del resultado.
Ej.: ( 8 * 2 = 16 --> 1 + 6 = 7 )
Acumular el resultado. Suma = B
- Sumar A + B = C

- Tomar sólo el dígito de las unidades de C y restárselo a 10.

Esta resta nos da D.
- A partir de D ya se obtiene el dígito de control.

Si ha de ser numérico es directamente D y si se trata
de una letra se corresponde con la relación:
A = 1, B = 2, C= 3, D = 4, E = 5, F = 6, G = 7, H = 8, I = 9, J = 0
Ejemplo para el CIF: A58818501

- Utilizamos los siete dígitos centrales = 5881850

- Sumamos los dígitos pares: A = 8 + 1 + 5 = 14

- Posiciones impares:

5 * 2 = 10 -> 1 + 0 = 1
8 * 2 = 16 -> 1 + 6 = 7
8 * 2 = 16 -> 1 + 6 = 7
0 * 2 = 0 -> = 0
Sumamos los resultados: B = 1 + 7 + 7 + 0 = 15
- Suma parcial: C = A + B = 14 + 15 = 29

- El dígito de las unidades de C es 9.

Se lo restamos a 10 y nos da: D = 10 - 9 = 1
- Si el dígito de control ha de ser un número es 1

y si ha de ser una letra es la "A"
El CIF debe de coincidir con la abreviación final del nombre de la empresa según la siguiente relación: ( listado parcial de Sociedades Civiles y Mercantiles en España )

SL .... Sociedad Limitada SLU ... Sdad Limitada Unipersonal SLL ... Sociedad Limitada Laboral SLNE .. Sdad Limitada Nueva Empresa SA .... Sociedad Anónima SAL ... Sociedad Anónima Laboral SAU ... Sociedad Anónima Unipersonal SAE ... Sociedad Anónima Española CB .... Comunidad de Bienes SC .... Sociedad Civil SRL ... Sdad de Responsabi. Limitada SCP ... Sdad Civil Particular/Priva. UTE ... Unión Temporal de Empresas COOP .. Sociedad Cooperativa SCA ... Sociedad Cooperativa Andaluza AEIE .. Agrup. Eur. de Interés Econ. SCI ... Sdad Cooperativa Industrial AIE ... Agrupa. de Interés Económico SCL ... Sdad Cooperativa Limitada SGR ... Sdad de Garantía Recíproca SAT ... Sdad Agraria de Transformac. SI .... Sociedad Irregular SAD ... Sociedad Anónima Deportiva SRC ... Sociedad Regular Colectiva SEE ... Sucursal en España SENC .. Sociedad en Comandita
  #4 (permalink)  
Antiguo 09/01/2007, 02:44
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Como Validar un CIF

Despues de todo el royo de antes aqui te dejo un codigo pero no es en PHP pero es lo unico que he encontrado que te puede servir. Haz la conversion adecuada a PHP,ok??

Código HTML:
<html> 
<head> 
<title>Validar CIF</title> 
</head> 
<body bgcolor="#FFFFFF" text="#000000"> 
<script language="javascript"> // Comprueba la entrada de datos  function CompruebaDatos(elCIF)  
{ var resul = false; // pasar a mayúsculas   var temp = elCIF.value.toUpperCase();   
if (!/^[A-Za-z0-9]{9}$/.test(temp)) // Son 9 dígitos?    
alert ("Longitud incorrecta, un CIF consta de 9 dígitos");  
 else if (!/^[ABCDEFGHKLMNPQS]/.test(temp)) // Es una letra de las admitidas?    
alert("El primer dígito es incorrecto, debe ser una letra de
      las siguientes: A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S ");
  else
  resul = true;
   return resul;
 }
  // La función recibe el CIF completo: A58818501
  function ValidaCIF(F)
  {
   var v1 = new Array(0,2,4,6,8,1,3,5,7,9);
   var temp = 0;
   for( i = 2; i <= 6; i += 2 ) 
   {
    temp = temp + v1[ parseInt(F.elCIF.value.substr(i-1,1))];
    temp = temp + parseInt(F.elCIF.value.substr(i,1));
   };
   temp = temp + v1[ parseInt(F.elCIF.value.substr(7,1))];
   temp = (10 - ( temp % 10));
   if( temp == 10 )
    alert( "El dígito de control es: J ó 0" );
   else
    alert( "El dígito de control es: "+temp );
   return true;
  }
</script>
<form name="Validar CIF" action="" method="post">
<p><font face="Arial, Helvetica, sans-serif" size="3">
<b>Validar CIF</b></font></p>
<p><font face="Arial, Helvetica, sans-serif" size="2">
Número de CIF ? 
<input type="text" name="elCIF" onChange="CompruebaDatos(this)">
<input type="button" value="Validar" onClick="ValidaCIF(this.form)">
</font></p>
</form>
</body>
</html> 
  #5 (permalink)  
Antiguo 09/01/2007, 07:07
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años
Puntos: 15
Re: Como Validar un CIF

Ahh! mil disculpas, lo que pasa es que soy Argentino.

Saludos y éxitos...
__________________
Pablo Reyes

Compra/venta saldos PayPal, Skrill, Neteller, Bitcoins, etc.
  #6 (permalink)  
Antiguo 10/01/2007, 07:14
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Re: Como Validar un CIF

Cerrado por duplicado. Continua en http://www.forosdelweb.com/f13/validar-cif-454983/

Políticas de Foros del Web
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:47.