04/11/2009, 12:50
|
| | | Fecha de Ingreso: septiembre-2000 Ubicación: Frente a la compu
Mensajes: 660
Antigüedad: 24 años, 2 meses Puntos: 2 | |
les dejo código para Calcular CURP y RFC mucho tiempo busqué incluso aun me llegan notificaciones de un viejo post sobre como calcular la CURP
aquí les dejo el código en Javascript que me encontré y he podido verificar que funciona! no es mio, yo no lo escribí sólo se los comparto.
saludos.
(les dejo el código en dos partes porque al parecer no cabe :P)
Código:
function obtieneRFC(forma, pstRFC){
with (forma) {
var fecha = dsFechaNac.value;
var sexo = idSexo.value;
var estado = idEstadoNac.value;
var nombre = dsNombre.value;
var paterno = dsPaterno.value;
var materno = dsMaterno.value;
}
fecha = fecha.substring(6)+"-"+fecha.substring(3,5)+"-"+fecha.substring(0,2);
if (sexo == 1){
sexo = "H";
}
if (sexo == 2){
sexo = "M";
}
switch (estado){
case "1":
estado = "AS";
break;
case "2":
estado = "BC";
break;
case "3":
estado = "BS";
break;
case "4":
estado = "CC";
break;
case "5":
estado = "CS";
break;
case "6":
estado = "CH";
break;
case "7":
estado = "CL";
break;
case "8":
estado = "CM";
break;
case "9":
estado = "DF";
break;
case "10":
estado = "DG";
break;
case "11":
estado = "GT";
break;
case "12":
estado = "GR";
break;
case "13":
estado = "HG";
break;
case "14":
estado = "JC";
break;
case "15":
estado = "MC";
break;
case "16":
estado = "MN";
break;
case "17":
estado = "MS";
break;
case "18":
estado = "NT";
break;
case "19":
estado = "NL";
break;
case "20":
estado = "OC";
break;
case "21":
estado = "PL";
break;
case "22":
estado = "QT";
break;
case "23":
estado = "QR";
break;
case "24":
estado = "SP";
break;
case "25":
estado = "SL";
break;
case "26":
estado = "SR";
break;
case "27":
estado = "TC";
break;
case "28":
estado = "TS";
break;
case "29":
estado = "TL";
break;
case "30":
estado = "VZ";
break;
}
pstRFC.value = fnCalculaCURP( nombre, paterno, materno, fecha, sexo, estado ).substring(0,10);
}
function obtieneCURP(forma, pstCURP){
with (forma) {
var fecha = dsFechaNac.value;
var sexo = idSexo.value;
var estado = idEstadoNac.value;
var nombre = dsNombre.value;
var paterno = dsPaterno.value;
var materno = dsMaterno.value;
}
fecha = fecha.substring(6)+"-"+fecha.substring(3,5)+"-"+fecha.substring(0,2);
if (sexo == 1){
sexo = "H";
}
if (sexo == 2){
sexo = "M";
}
switch (estado){
case "1":
estado = "AS";
break;
case "2":
estado = "BC";
break;
case "3":
estado = "BS";
break;
case "4":
estado = "CC";
break;
case "5":
estado = "CS";
break;
case "6":
estado = "CH";
break;
case "7":
estado = "CL";
break;
case "8":
estado = "CM";
break;
case "9":
estado = "DF";
break;
case "10":
estado = "DG";
break;
case "11":
estado = "GT";
break;
case "12":
estado = "GR";
break;
case "13":
estado = "HG";
break;
case "14":
estado = "JC";
break;
case "15":
estado = "MC";
break;
case "16":
estado = "MN";
break;
case "17":
estado = "MS";
break;
case "18":
estado = "NT";
break;
case "19":
estado = "NL";
break;
case "20":
estado = "OC";
break;
case "21":
estado = "PL";
break;
case "22":
estado = "QT";
break;
case "23":
estado = "QR";
break;
case "24":
estado = "SP";
break;
case "25":
estado = "SL";
break;
case "26":
estado = "SR";
break;
case "27":
estado = "TC";
break;
case "28":
estado = "TS";
break;
case "29":
estado = "TL";
break;
case "30":
estado = "VZ";
break;
}
pstCURP.value = fnCalculaCURP( nombre, paterno, materno, fecha, sexo, estado );
}
function fnCalculaCURP( pstNombre, pstPaterno, pstMaterno, dfecha, pstSexo, pnuCveEntidad ) {
/*
pstNombre="MARIA TERESITA DEL NIÑO JESUS";
pstPaterno="AGUERREBERE";
pstMaterno="BARROSO";
dfecha="1937-11-22";
pstSexo = "M";
pnuCveEntidad ="DF";
pstNombre="ROCIO";
pstPaterno="URIBARREN";
pstMaterno="AGUERREBERE";
dfecha="1969-02-03";
pstSexo = "M";
pnuCveEntidad ="DF";
pstNombre="AINHOA";
pstPaterno="ESTURAU";
pstMaterno="URIBARREN";
dfecha="2003-03-05";
pstSexo = "M";
pnuCveEntidad ="QR";
pstNombre="MARIO";
pstPaterno="PIÑA";
pstMaterno="FLORES";
dfecha="1968-03-30";
pstSexo = "H";
pnuCveEntidad ="DF";
*/
pstCURP ="";
pstDigVer ="";
contador =0;
contador1 =0;
pstCom ="";
numVer =0.00;
valor =0;
sumatoria =0;
// se declaran las varibale que se van a utilizar para ontener la CURP
NOMBRES ="";
APATERNO ="";
AMATERNO ="";
T_NOMTOT ="";
NOMBRE1 =""; //PRIMER NOMBRE
NOMBRE2 =""; //DEMAS NOMBRES
NOMBRES_LONGITUD =0; //LONGITUD DE TODOS @NOMBRES
var NOMBRE1_LONGITUD =0; //LONGITUD DEL PRIMER NOMBRE(MAS UNO,EL QUE SOBRA ES UN ESPACIO EN BLANCO)
APATERNO1 =""; //PRIMER NOMBRE
APATERNO2 =""; //DEMAS NOMBRES
APATERNO_LONGITUD =0; //LONGITUD DE TODOS @NOMBRES
APATERNO1_LONGITUD =0; //LONGITUD DEL PRIMER NOMBRE(MAS UNO,EL QUE SOBRA ES UN ESPACIO EN BLANCO)
AMATERNO1 =""; //PRIMER NOMBRE
AMATERNO2 =""; //DEMAS NOMBRES
AMATERNO_LONGITUD =0; //LONGITUD DE TODOS @NOMBRES
AMATERNO1_LONGITUD =0; //LONGITUD DEL PRIMER NOMBRE(MAS UNO,EL QUE SOBRA ES UN ESPACIO EN BLANCO)
VARLOOPS =0; //VARIABLE PARA LOS LOOPS, SE INICIALIZA AL INICIR UN LOOP
// Se inicializan las variables para obtener la primera parte de la CURP
NOMBRES = pstNombre.replace(/^\s+|\s+$/g,"");
APATERNO = pstPaterno.replace(/^\s+|\s+$/g,"");
AMATERNO = pstMaterno.replace(/^\s+|\s+$/g,"");
T_NOMTOT = APATERNO + ' '+ AMATERNO + ' '+ NOMBRES;
// Se procesan los nombres de pila
VARLOOPS = 0;
while (VARLOOPS != 1)
{
NOMBRES_LONGITUD = NOMBRES.length
var splitNombres = NOMBRES.split(" ");
var splitNombre1 = splitNombres[0];
NOMBRE1_LONGITUD = splitNombre1.length;
// NOMBRE1_LONGITUD = PATINDEX('% %',@NOMBRES)
if (NOMBRE1_LONGITUD = 0)
{
NOMBRE1_LONGITUD = NOMBRES_LONGITUD;
}
NOMBRE1 = NOMBRES.substring(0,splitNombre1.length);
NOMBRE2 = NOMBRES.substring(splitNombre1.length + 1, NOMBRES.length);
// Se quitan los nombres de JOSE, MARIA,MA,MA.
/*
if (NOMBRE1 IN ('JOSE','MARIA','MA.','MA','DE','LA','LAS','MC','VON','DEL','LOS','Y','MAC','VAN') && NOMBRE2 != '')
{
NOMBRES = NOMBRE2
}
else
{
VARLOOPS = 1
}
*/
if (NOMBRE1 == 'JOSE' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'MARIA' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'MA.' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'MA' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'DE' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'LA' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'LAS' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'MC' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'VON' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'DEL' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'LOS' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'Y' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'MAC' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
if (NOMBRE1 == 'VAN' && NOMBRE2 != '')
{
NOMBRES = NOMBRE2;
}
else
{
VARLOOPS = 1;
}
} // fin varloops <> 1
// Se procesan los APELLIDOS, PATERNO EN UN LOOP
VARLOOPS = 0;
while (VARLOOPS != 1)
{
//SET @APATERNO_LONGITUD = LEN(@APATERNO)
APATERNO_LONGITUD = APATERNO.length;
//SET @APATERNO1_LONGITUD = PATINDEX('% %',@APATERNO)
var splitPaterno = APATERNO.split(" ");
var splitPaterno1 = splitPaterno[0];
APATERNO1_LONGITUD = splitPaterno1.length;
if (APATERNO1_LONGITUD = 0)
{
APATERNO1_LONGITUD = APATERNO_LONGITUD;
}
// APATERNO1 = RTRIM(LEFT(@APATERNO,@APATERNO1_LONGITUD))
// APATERNO2 = LTRIM(RIGHT(@APATERNO,@APATERNO_LONGITUD - @APATERNO1_LONGITUD))
APATERNO1 = APATERNO.substring(0,splitPaterno1.length);
APATERNO2 = APATERNO.substring(splitPaterno1.length + 1, APATERNO.length);
__________________ Si quieres que las cosas sucédan
provocalas! |