![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
04/11/2009, 12:51
|
![Avatar de akela](http://static.forosdelweb.com/customavatars/avatar13_2.gif) | | | Fecha de Ingreso: septiembre-2000 Ubicación: Frente a la compu
Mensajes: 660
Antigüedad: 24 años, 4 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! |