Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/11/2009, 12:51
Avatar de akela
akela
 
Fecha de Ingreso: septiembre-2000
Ubicación: Frente a la compu
Mensajes: 660
Antigüedad: 23 años, 7 meses
Puntos: 2
Respuesta: les dejo código para Calcular CURP y RFC

Continuación del código

Código:
// Se quitan los sufijos

/*
IF @APATERNO1 IN ('DE','LA','LAS','MC','VON','DEL','LOS','Y','MAC','VAN') AND @APATERNO2 <> ''
	BEGIN
		SET @APATERNO = @APATERNO2
	END 
ELSE
	BEGIN
		SET @VARLOOPS = 1
	END
}
*/

if ( APATERNO1 == 'DE' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}


if ( APATERNO1 == 'LA' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}



if ( APATERNO1 == 'LAS' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( APATERNO1 == 'MC' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( APATERNO1 == 'VON' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( APATERNO1 == 'DEL' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}


if ( APATERNO1 == 'LOS' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( APATERNO1 == 'Y' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( APATERNO1 == 'MAC' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( APATERNO1 == 'VAN' && APATERNO2 != '')
	{
		APATERNO = APATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

} // fin varloops


// Faltan: )


// Se procesan los APELLIDOS, MATERNO EN UN LOOP

VARLOOPS = 0;

while (VARLOOPS != 1)
{

		//SET @APATERNO_LONGITUD = LEN(@APATERNO)
		AMATERNO_LONGITUD = AMATERNO.length;		
		
		//SET @APATERNO1_LONGITUD = PATINDEX('% %',@APATERNO)
		var splitMaterno = AMATERNO.split(" ");
		var splitMaterno1 = splitMaterno[0];
		AMATERNO1_LONGITUD = splitMaterno1.length;

		if (AMATERNO1_LONGITUD = 0)
		   {
		     AMATERNO1_LONGITUD = AMATERNO_LONGITUD;
		   }

		AMATERNO1 =  AMATERNO.substring(0,splitMaterno1.length);
		AMATERNO2 =  AMATERNO.substring(splitMaterno1.length + 1, AMATERNO.length);

// Se quitan los sufijos


/*
IF @APATERNO1 IN ('DE','LA','LAS','MC','VON','DEL','LOS','Y','MAC','VAN') AND @APATERNO2 <> ''
	BEGIN
		SET @APATERNO = @APATERNO2
	END 
ELSE
	BEGIN
		SET @VARLOOPS = 1
	END
}
*/

if ( AMATERNO1 == 'DE' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}


if ( AMATERNO1 == 'LA' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}


if ( AMATERNO1 == 'LAS' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( AMATERNO1 == 'MC' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( AMATERNO1 == 'VON' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( AMATERNO1 == 'DEL' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( AMATERNO1 == 'LOS' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( AMATERNO1 == 'Y' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( AMATERNO1 == 'MAC' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}

if ( AMATERNO1 == 'VAN' && AMATERNO2 != '')
	{
		AMATERNO = AMATERNO2;
	}
else
	{
		VARLOOPS = 1;
	}



} // fin varloops




// Se obtiene del primer apellido la primer letra y la primer vocal interna

pstCURP = APATERNO1.substring(0,1);

APATERNO1_LONGITUD= APATERNO1.length;
VARLOOPS = 0 // EMPIEZA EN UNO POR LA PRIMERA LETRA SE LA VA A SALTAR

while (APATERNO1_LONGITUD > VARLOOPS)
	{
		VARLOOPS = VARLOOPS + 1;

		// if SUBSTRING(@APATERNO1,@VARLOOPS,1) IN ('A','E','I','O','U')
		var compara = APATERNO1.substr(parseInt(VARLOOPS),1);

		if (compara == 'A')
		   {
			pstCURP = pstCURP + compara;
			VARLOOPS = APATERNO1_LONGITUD;
		   }
		if (compara == 'E')
		   {
			pstCURP = pstCURP + compara;
			VARLOOPS = APATERNO1_LONGITUD;
		   }
		if (compara == 'I')
		   {
			pstCURP = pstCURP + compara;
			VARLOOPS = APATERNO1_LONGITUD;
		   }
		if (compara == 'O')
		   {
			pstCURP = pstCURP + compara;
			VARLOOPS = APATERNO1_LONGITUD;
		   }
		if (compara == 'U')
		   {
		   
			pstCURP = pstCURP + compara;
			VARLOOPS = APATERNO1_LONGITUD;
		   }

	}




// Se obtiene la primer letra del apellido materno 

pstCURP = pstCURP + AMATERNO1.substring(0,1);

// Se le agrega la primer letra del nombre

pstCURP = pstCURP + NOMBRES.substring(0,1);



// Se agrega la fecha de nacimiento, clave del sexo y clave de la entidad

var splitFecha = dfecha.split("-");
var splitAnio  = splitFecha[0].substr(2,2);
var splitMes   = splitFecha[1];
var splitDia   = splitFecha[2];


pstCURP = pstCURP + splitAnio + splitMes + splitDia + pstSexo + pnuCveEntidad



// Se obtiene la primera consonante interna del apellido paterno


VARLOOPS = 0;

while (splitPaterno1.length > VARLOOPS)
      {
	VARLOOPS = VARLOOPS + 1
	var compara = APATERNO1.substr(parseInt(VARLOOPS),1);

	if (compara != 'A' && compara != 'E' && compara != 'I' && compara != 'O' && compara != 'U')
	   {
	    if ( compara == 'Ñ')
		{
	    	 pstCURP = pstCURP + 'X';
		}
	    else
		{
		 pstCURP = pstCURP + compara;
		}

	    VARLOOPS = splitPaterno1.length;
	   }
      }


// Se obtiene la primera consonante interna del apellido materno

VARLOOPS = 0;

while (splitMaterno1.length > VARLOOPS)
      {

	VARLOOPS = VARLOOPS + 1;
	var compara = AMATERNO1.substr(parseInt(VARLOOPS),1);

	if (compara != 'A' && compara != 'E' && compara != 'I' && compara != 'O' && compara != 'U')
	   {
	    if ( compara == 'Ñ')
		{	    
		 pstCURP = pstCURP + 'X';
		}
            else
		{
		 pstCURP = pstCURP + compara;
		}
		
	    VARLOOPS = splitMaterno1.length;
	   }
      }


// Se obtiene la primera consonante interna del nombre

VARLOOPS = 0;

while (splitNombre1.length > VARLOOPS)
      {

	VARLOOPS = VARLOOPS + 1;
	var compara = NOMBRE1.substr(parseInt(VARLOOPS),1);

	if (compara != 'A' && compara != 'E' && compara != 'I' && compara != 'O' && compara != 'U')
	   {
	    if (compara=='Ñ')	    
		{
		 pstCURP = pstCURP + 'X';
		}
	    else
		{
		 pstCURP = pstCURP + compara;
		}

	    VARLOOPS = splitNombre1.length;
	   }
      }


// Se obtiene el digito verificador



var contador = 18;
var contador1 = 0;
var valor = 0;
var sumatoria = 0;


while (contador1 <= 15)
	{

        //pstCom = SUBSTRING(@pstCURP,@contador1,1)
	var pstCom = pstCURP.substr(parseInt(contador1),1);
     
		if (pstCom == '0') 
			{
			 valor = 0 * contador ;
			}
		if (pstCom == '1') 
			{
			 valor = 1 * contador;
			}
		if (pstCom == '2') 
			{
			 valor = 2 * contador;
			}
		if (pstCom == '3') 
			{
			 valor = 3 * contador;
			}
		if (pstCom == '4') 
			{
			 valor = 4 * contador;
			}
		if (pstCom == '5') 
			{
			 valor = 5 * contador;
			}
		if (pstCom == '6') 
			{
			 valor = 6 * contador;
			}
		if (pstCom == '7') 
			{
			 valor = 7 * contador;
			}
		if (pstCom == '8') 
			{
			 valor = 8 * contador;
			}
		if (pstCom == '9') 
			{
			 valor = 9 * contador;
			}
		if (pstCom == 'A') 
			{
			 valor = 10 * contador;
			}
		if (pstCom == 'B') 
			{
			 valor = 11 * contador;
			}
		if (pstCom == 'C') 
			{
			 valor = 12 * contador;
			}
		if (pstCom == 'D') 
			{
			 valor = 13 * contador;
			}
		if (pstCom == 'E') 
			{
			 valor = 14 * contador;
			}
		if (pstCom == 'F') 
			{
			 valor = 15 * contador;
			}
		if (pstCom == 'G') 
			{
			 valor = 16 * contador;
			}
		if (pstCom == 'H') 
			{
			 valor = 17 * contador;
			}
		if (pstCom == 'I') 
			{
			 valor = 18 * contador;
			}
		if (pstCom == 'J') 
			{
			 valor = 19 * contador;
			}
		if (pstCom == 'K') 
			{
			 valor = 20 * contador;
			}
		if (pstCom == 'L') 
			{
			 valor = 21 * contador;
			}
		if (pstCom == 'M') 
			{
			 valor = 22 * contador;
			}
		if (pstCom == 'N') 
			{
			 valor = 23 * contador;
			}
		if (pstCom == 'Ñ') 
			{
			 valor = 24 * contador;
			}
		if (pstCom == 'O') 
			{
			 valor = 25 * contador;
			}
		if (pstCom == 'P') 
			{
			 valor = 26 * contador;
			}
		if (pstCom == 'Q') 
			{
			 valor = 27 * contador;
			}
		if (pstCom == 'R') 
			{
			 valor = 28 * contador;
			}
		if (pstCom == 'S') 
			{
			 valor = 29 * contador;
			}
		if (pstCom == 'T') 
			{
			 valor = 30 * contador;
			}
		if (pstCom == 'U') 
			{
			 valor = 31 * contador;
			}
		if (pstCom == 'V') 
			{
			 valor = 32 * contador;
			}
		if (pstCom == 'W') 
			{
			 valor = 33 * contador;
			}
		if (pstCom == 'X') 
			{
			 valor = 34 * contador;
			}
		if (pstCom == 'Y') 
			{
			 valor = 35 * contador;
			}

		if (pstCom == 'Z') 
			{
 			 valor = 36 * contador;
			}

		contador  = contador - 1;
		contador1 = contador1 + 1;
		sumatoria = sumatoria + valor;

	}

numVer  = sumatoria % 10;
numVer  = Math.abs(10 - numVer);
anio = splitFecha[0];


if (numVer == 10)
	{
	 numVer = 0;
	}


if (anio < 2000)
	{
	 pstDigVer = '0' + '' + numVer;
	}
if (anio >= 2000)
	{
	 pstDigVer = 'A' + '' + numVer;
	}

pstCURP = pstCURP + pstDigVer;


	return pstCURP
} // End if
__________________
Si quieres que las cosas sucédan

provocalas!