diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index 832d3c44e..17e401ead 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -43,7 +43,10 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState ActualizaPrePoliza(context) Case "getpersonal" getpersonal(context) - + Case "GettingCURP" + context.Response.Write(GettingCURP(context.Request("Curp").ToString(), context.Request("year").ToString().ToEntero())) + Case "ValidaCURP" + context.Response.Write(ValidaCURP(context.Request("Curp").ToString())) End Select Catch ex As Exception ex.GuardaLog(ex.Message) @@ -181,6 +184,225 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState End Sub #End Region + + Private Shared Function sendURL(ByVal URL As String, Optional Methodo As String = "POST", Optional Cookie As String = "", Optional maxTimeMilliseconds As Integer = 120000) As String + Dim resultado As String = "" + + Try + Dim request As Net.HttpWebRequest = CType(Net.HttpWebRequest.Create(URL), Net.HttpWebRequest) + request.Timeout = maxTimeMilliseconds + request.Method = Methodo + request.ContentType = "text/html; charset=utf-8" '"text/xml; charset=utf-8" + + If Not String.IsNullOrEmpty(Cookie) Then + request.Headers.Add("Cookie", Cookie) + End If + + 'Using stream As IO.Stream = request.GetRequestStream() + + ' Using stmw As IO.StreamWriter = New IO.StreamWriter(stream) + ' stmw.Write("") + ' End Using + 'End Using + + Dim response As Net.WebResponse = CType(request.GetResponse(), Net.WebResponse) + Dim sr As IO.StreamReader = New IO.StreamReader(response.GetResponseStream()) + resultado = sr.ReadToEnd() + sr.Close() + Catch ex As Exception + ex.ToString().GuardaLog() + 'Extenciones.ApplicationParameter.GuardaLogEx(ex, $"SOAPAction : {SOAPAction} XML : {xml}") + End Try + + Return resultado + End Function + + Public Shared Function GettingCURP(ByVal Curp As String, year As Integer) As String + Dim abc As String() = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"} + Dim numeric01 As String() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} + Dim rule1 As String() = If(year < 2000, numeric01, abc) + Dim curpresult As String = "" + Dim i As Integer = 0 + While curpresult.Length = 0 AndAlso i < rule1.Length + Dim z As Integer = 0 + While curpresult.Length = 0 AndAlso z < numeric01.Length + curpresult = String.Format("{0}{1}{2}", Curp, rule1(i), numeric01(z)) + Dim respuesta As String = sendURL(String.Format("http://www.renapo.sep.gob.mx/wsrenapo/MainControllerParam?curp={0}", curpresult), "GET") + + Dim trlines As New List(Of String) + Dim keydict As New System.Collections.Concurrent.ConcurrentDictionary(Of String, String) + + Dim indexttr As Integer = 0 + Dim indexttrB As Integer = 0 + Dim indexttd As Integer = 0 + Dim indextdiv As Integer = 0 + Dim indexinittext As Integer = 0 + While Not IsNothing(respuesta) AndAlso respuesta.Length > 0 + indexttr = respuesta.IndexOf("= 0 Then + indexttrB = respuesta.Substring(indexttr + 3).IndexOf("= 0 Then + trlines.Add(respuesta.Substring(indexttr, indexttrB)) + Else + trlines.Add(respuesta.Substring(indexttr)) + + End If + respuesta = respuesta.Substring(indexttr + 3) + Else + respuesta = "" + End If + + End While + + Dim key As String = "" + Dim keyvalue As String = "" + For Each item As String In trlines + key = "" + keyvalue = "" + indexttd = item.IndexOf("= 0 Then + indexttr = indextdiv + indexttrB = item.IndexOf("= 0 Then + indexinittext = item.Substring(indexttr + 3).IndexOf(">") + key = item.Substring(indexinittext + indexttr + 4, (indexttrB - (indexinittext + indexttr + 4))) + + item = item.Substring(indexttrB + 3) + Else + item = "" + End If + + If item.Length > 0 Then + + indexttd = item.IndexOf("= 0 Then + indexttr = indextdiv + indexttrB = item.IndexOf("= 0 Then + indexinittext = item.Substring(indexttr + 3).IndexOf(">") + keyvalue = item.Substring(indexinittext + indexttr + 4, (indexttrB - (indexinittext + indexttr + 4))) + + item = item.Substring(indexttr + 3) + Else + item = "" + End If + + End If + If key.Length > 0 Then + keydict.TryAdd(key.Replace(":", "").Trim(), keyvalue.Trim().ToLower()) + End If + Next + Dim Apellido1 As String = "" : keydict.TryGetValue("Apellido1", Apellido1) + Dim Apellido2 As String = "" : keydict.TryGetValue("Apellido1", Apellido1) + Dim Nombres As String = "" : keydict.TryGetValue("Nombres", Nombres) + If Nombres Is Nothing OrElse Nombres.Length = 0 Then + curpresult = "" + End If + System.Threading.Thread.Sleep(100) + z = z + 1 + End While + i = i + 1 + End While + Return curpresult + End Function + + + Public Shared Function ValidaCURP(ByVal Curp As String) As String + + Dim respuesta As String = sendURL(String.Format("http://www.renapo.sep.gob.mx/wsrenapo/MainControllerParam?curp={0}", Curp), "GET") + + Dim trlines As New List(Of String) + Dim keydict As New System.Collections.Concurrent.ConcurrentDictionary(Of String, String) + + Dim indexttr As Integer = 0 + Dim indexttrB As Integer = 0 + Dim indexttd As Integer = 0 + Dim indextdiv As Integer = 0 + Dim indexinittext As Integer = 0 + While Not IsNothing(respuesta) AndAlso respuesta.Length > 0 + indexttr = respuesta.IndexOf("= 0 Then + indexttrB = respuesta.Substring(indexttr + 3).IndexOf("= 0 Then + trlines.Add(respuesta.Substring(indexttr, indexttrB)) + Else + trlines.Add(respuesta.Substring(indexttr)) + + End If + respuesta = respuesta.Substring(indexttr + 3) + Else + respuesta = "" + End If + + End While + + Dim key As String = "" + Dim keyvalue As String = "" + For Each item As String In trlines + key = "" + keyvalue = "" + indexttd = item.IndexOf("= 0 Then + indexttr = indextdiv + indexttrB = item.IndexOf("= 0 Then + indexinittext = item.Substring(indexttr + 3).IndexOf(">") + key = item.Substring(indexinittext + indexttr + 4, (indexttrB - (indexinittext + indexttr + 4))) + + item = item.Substring(indexttrB + 3) + Else + item = "" + End If + + If item.Length > 0 Then + + indexttd = item.IndexOf("= 0 Then + indexttr = indextdiv + indexttrB = item.IndexOf("= 0 Then + indexinittext = item.Substring(indexttr + 3).IndexOf(">") + keyvalue = item.Substring(indexinittext + indexttr + 4, (indexttrB - (indexinittext + indexttr + 4))) + + item = item.Substring(indexttr + 3) + Else + item = "" + End If + + End If + If key.Length > 0 Then + keydict.TryAdd(key.Replace(":", "").Trim(), keyvalue.Trim().ToLower()) + End If + Next + Dim Apellido1 As String = "" : keydict.TryGetValue("Apellido1", Apellido1) + Dim Apellido2 As String = "" : keydict.TryGetValue("Apellido1", Apellido1) + Dim Nombres As String = "" : keydict.TryGetValue("Nombres", Nombres) + If Nombres Is Nothing OrElse Nombres.Length = 0 Then + Curp = "" + End If + + Return Curp + End Function #Region "Get Cliente" Private Function GetClientes(ByVal context As HttpContext) As String Dim retorno As String = "" diff --git a/Contabilidad/RegPoliza.aspx.vb b/Contabilidad/RegPoliza.aspx.vb index ecd4b6116..9b2e4f077 100644 --- a/Contabilidad/RegPoliza.aspx.vb +++ b/Contabilidad/RegPoliza.aspx.vb @@ -1759,7 +1759,7 @@ Partial Class RegPoliza End Sub Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String) Dim dt As New DataTable - Dim Conexion As Odbc.OdbcConnection = Nothing + 'Dim Conexion As Odbc.OdbcConnection = Nothing Dim ErrorArchivo = False Dim n As Integer = 0 Try @@ -1772,7 +1772,7 @@ Partial Class RegPoliza 'cmd.CommandText = "Select * FROM [Hoja1$]" 'Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) 'DataAdapter.Fill(dt) - dt = Extensiones.ModExtensiones.ReadExcelFile(String.Format("{0}{1}", Ruta, FileName), True) + dt = Extensiones.ModExtensiones.ReadExcelFile(String.Format("{1}", Ruta, FileName), True) Case Else Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError) Exit Sub @@ -1781,7 +1781,7 @@ Partial Class RegPoliza ErrorArchivo = True OnError("Ocurrio un Error al leer el archivo
" & ex.Message, ex) End Try - Conexion.Close() + 'Conexion.Close() If Not ErrorArchivo Then If Not dt.Columns(0).ColumnName = "Referencia" Then Alert("El nombre de la primera columna debe ser 'Referencia'.Favor de corregirlo", TipoMensaje.MsgError) @@ -1881,7 +1881,7 @@ Partial Class RegPoliza Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb", "xls"), "EXCEL", "CSV") - CargarArchivo(Directorio, file.filename, Tipo) + CargarArchivo(Directorio, file.FileUrl, Tipo) Else Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError) End If diff --git a/RH/Personal.aspx b/RH/Personal.aspx index be93c4900..f79e77d4d 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -174,15 +174,31 @@ -
- - - +
+
+
+ + + +
+
+
+ + +
-
- - - +
+
+
+ + + +
+
+
+ + +
@@ -916,14 +932,13 @@   - - BBVA Alias + BBVA Alias   - Comandos + Comandos @@ -971,7 +986,7 @@ - + @@ -982,7 +997,7 @@ <%----%> - +      @@ -992,7 +1007,7 @@ - <%----%> @@ -1089,12 +1104,12 @@ - +   - + @@ -1304,13 +1319,13 @@ - + - +
@@ -1661,51 +1676,51 @@
- +
<%----%> - - + - - - - + + + + - + - + - + - + - + - - + + + <%----%>
- +
+ - - - - - - - - - - - + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - Comandos
Comandos
@@ -1760,9 +1775,9 @@
- @@ -1837,7 +1852,7 @@ - +


@@ -4502,5 +4517,1479 @@ $("#BtnCargarArchivo").click(); } } + + var estados = ["aguascalientes", "baja california", "baja california sur", "campeche", "chiapas", "chihuahua", "coahuila", "colima", "ciudad de mexico", "distrito federal", "durango", "guanajuato", "guerrero", "hidalgo", "jalisco", "estado de mexico", "michoacan", "morelos", "nayarit", "nuevo leon", "oaxaca", "puebla", "queretaro", "quintana roo", "san luis potosi", "sinaloa", "sonora", "tabasco", "tamaulipas", "tlaxcala", "veracruz", "yucatan", "zacatecas"]; + var abreviacion = ["AS", "BC", "BS", "CC", "CS", "CH", "CL", "CM", "CX", "DF", "DG", "GT", "GR", "HG", "JC", "MC", "MN", "MS", "NT", "NL", "OC", "PL", "QT", "QR", "SP", "SL", "SR", "TC", "TS", "TL", "VZ", "YN", "ZS"]; + var abc = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] + let numeric01 = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + + let iscalculandocurp = false + function generarCURP() { + let strcurp = ""; + if (!iscalculandocurp) { + + alertatoast(6, "Se esta calculando la CURP favor de esperar un momento!","",7); + iscalculandocurp = true + + let paterno; + <%= String.Format("paterno=$('#{0}').val();", TxtAPaterno.ClientID) %> + let materno; + <%= String.Format("materno=$('#{0}').val();", TxtAMaterno.ClientID) %> + let nombre; + <%= String.Format("nombre=$('#{0}').val();", TxtNombres.ClientID) %> + let FechaNacimiento; + <%= String.Format("FechaNacimiento=$('#{0}').val();", TxtFechaNacimiento.ClientID) %> + let genero; + <%= String.Format("genero=($('#{0} option:selected').val()==1?'H':'M');", DdlGenero.ClientID) %> + let estado; + <%= String.Format("estado=$('#{0} option:selected').text();", DdlEstados.ClientID) %> + + estado= abreviacion[estados.indexOf(estado.toLowerCase())] + //abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + //random09a = Math.floor(Math.random() * (9 - 1 + 1)) + 1; + //random09b = Math.floor(Math.random() * (9 - 1 + 1)) + 1; + //randomAZ = Math.floor(Math.random() * (26 - 0 + 1)) + 0; + ano = Number(FechaNacimiento.slice(6, 10)); + let dteNacimiento =ano.toString().slice(2) + FechaNacimiento.slice(3, 5) + FechaNacimiento.slice(0, 2) + strcurp =fnCalculaCURP(nombre.toUpperCase(), paterno.toUpperCase(), materno.toUpperCase(), dteNacimiento, genero, estado) + /*old*//* + let codve1array = (ano < 2000 ? numeric01 : abc); + + var CURP = []; + CURP[0] = paterno.charAt(0).toUpperCase(); + CURP[1] = paterno.slice(1).replace(/\a\e\i\o\u/gi, "").charAt(0).toUpperCase(); + CURP[2] = materno.charAt(0).toUpperCase(); + CURP[3] = nombre.charAt(0).toUpperCase(); + CURP[4] = ano.toString().slice(2); + CURP[5] = FechaNacimiento.slice(3, 5); + CURP[6] = FechaNacimiento.slice(0, 2); + CURP[7] = genero.toUpperCase(); + CURP[8] = abreviacion[estados.indexOf(estado.toLowerCase())]; + CURP[9] = paterno.slice(1).replace(/[aeiou]/gi, "").charAt(0).toUpperCase(); + CURP[10] = materno.slice(1).replace(/[aeiou]/gi, "").charAt(0).toUpperCase(); + CURP[11] = nombre.slice(1).replace(/[aeiou]/gi, "").charAt(0).toUpperCase(); + for (var i = 0; i < codve1array.length; i++) { + for (var z = 0; z < numeric01.length; z++) { + + CURP[12] = codve1array[i]; + CURP[13] = numeric01[z]; + strcurp = CURP.join(""); + if (curpValidajs(strcurp)) { + i = 1000000; + z = 1000000; + } + console.log(strcurp); + } + }*/ + $.ajax({ + type: "POST", + timeout: 0, + //url: "/ashx/sigweb.ashx?metodo=GettingCURP&Curp=" + CURP.join("") + "&year=" + ano.toString(), + url: "/ashx/sigweb.ashx?metodo=ValidaCURP&Curp=" + strcurp + "&year=" + ano.toString(), + success: function (msg) { + console.log(msg) + if (msg.length > 0) { + <%= String.Format(" $('#{0}').val(msg);", TxtCURP.ClientID) %> + } else { + alertatoast(8, "No se pudo obtener la CURP","",7) + } + iscalculandocurp = false; + }, + error: function (msg) { + console.log("error:" + JSON.stringify(msg)); + alertatoast(7, "No se pudo obtener la CURP","",7); + iscalculandocurp = false; + } + }); + } + return strcurp; + } + function curpValidajs(curp) { + var re = /^([A-Z][AEIOUX][A-Z]{2}\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])[HM](?:AS|B[CS]|C[CLMSH]|D[FG]|G[TR]|HG|JC|M[CNS]|N[ETL]|OC|PL|Q[TR]|S[PLR]|T[CSL]|VZ|YN|ZS)[B-DF-HJ-NP-TV-Z]{3}[A-Z\d])(\d)$/, + validado = curp.match(re); + + if (!validado) //Coincide con el formato general? + return false; + + //Validar que coincida el dígito verificador + function digitoVerificador(curp17) { + //Fuente https://consultas.curp.gob.mx/CurpSP/ + var diccionario = "0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ", + lngSuma = 0.0, + lngDigito = 0.0; + for (var i = 0; i < 17; i++) + lngSuma = lngSuma + diccionario.indexOf(curp17.charAt(i)) * (18 - i); + lngDigito = 10 - lngSuma % 10; + if (lngDigito == 10) return 0; + return lngDigito; + } + + if (validado[2] != digitoVerificador(validado[1])) + return false; + + return true; //Validado + } + + function generarRFC() { + + alertatoast(6, "Se esta calculando el RFC favor de esperar un momento!","",7); + + let ap_paterno; <%= String.Format("ap_paterno=$('#{0}').val();", TxtAPaterno.ClientID) %> + let ap_materno; <%= String.Format("ap_materno=$('#{0}').val();", TxtAMaterno.ClientID) %> + let nombre; <%= String.Format("nombre=$('#{0}').val();", TxtNombres.ClientID) %> + let FechaNacimiento; <%= String.Format("FechaNacimiento=$('#{0}').val();", TxtFechaNacimiento.ClientID) %> + ano = Number(FechaNacimiento.slice(6, 10)); + var rfc = ano.toString().slice(2) + FechaNacimiento.slice(3, 5) + FechaNacimiento.slice(0, 2); + + var dteNacimiento = rfc; + //FILTRA ACENTOS + var ap_pat_f = RFCFiltraAcentos(ap_paterno.toLowerCase()); + var ap_mat_f = RFCFiltraAcentos(ap_materno.toLowerCase()); + var nombre_f = RFCFiltraAcentos(nombre.toLowerCase()); + //GUARDA NOMBRE ORIGINAL PARA GENERAR HOMOCLAVE + var ap_pat_orig = ap_pat_f; + var ap_mat_orig = ap_mat_f; + var nombre_orig = nombre_f; + //ELIMINA PALABRAS SOBRANTES DE LOS NOMBRES + ap_pat_f = RFCFiltraNombres(ap_pat_f); + ap_mat_f = RFCFiltraNombres(ap_mat_f); + nombre_f = RFCFiltraNombres(nombre_f); + + if (ap_pat_f.length > 0 && ap_mat_f.length > 0) { + if (ap_pat_f.length < 3) { + rfc = RFCApellidoCorto(ap_pat_f, ap_mat_f, nombre_f); + } else { + rfc = RFCArmalo(ap_pat_f, ap_mat_f, nombre_f); + } + } + + if (ap_pat_f.length == 0 && ap_mat_f.length > 0) { + rfc = RFCUnApellido(nombre_f, ap_mat_f); + } + if (ap_pat_f.length > 0 && ap_mat_f.length == 0) { + rfc = RFCUnApellido(nombre_f, ap_pat_f); + } + + rfc = RFCQuitaProhibidas(rfc); + + rfc = rfc.toUpperCase() + dteNacimiento + homonimia(ap_pat_orig, ap_mat_orig, nombre_orig); + + rfc = RFCDigitoVerificador(rfc); + <%= String.Format(" $('#{0}').val(rfc);", TxtRFC.ClientID) %> + + return rfc; + } + + function ValidaRFC() { + + if (rfcValidoJS(<%= String.Format("$('#{0}').val()", TxtRFC.ClientID) %>)) { + alertatoast(5, "RFC valido!","",7); + } else { + alertatoast(8, "RFC invalido!","",7) + } + } + function rfcValidoJS(rfc, aceptarGenerico = true) { + const re = /^([A-ZÑ&]{3,4}) ?(?:- ?)?(\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])) ?(?:- ?)?([A-Z\d]{2})([A\d])$/; + var validado = rfc.match(re); + + if (!validado) //Coincide con el formato general del regex? + return false; + + //Separar el dígito verificador del resto del RFC + const digitoVerificador = validado.pop(), + rfcSinDigito = validado.slice(1).join(''), + len = rfcSinDigito.length, + + //Obtener el digito esperado + diccionario = "0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ Ñ", + indice = len + 1; + var suma, + digitoEsperado; + + if (len == 12) suma = 0 + else suma = 481; //Ajuste para persona moral + + for (var i = 0; i < len; i++) + suma += diccionario.indexOf(rfcSinDigito.charAt(i)) * (indice - i); + digitoEsperado = 11 - suma % 11; + if (digitoEsperado == 11) digitoEsperado = 0; + else if (digitoEsperado == 10) digitoEsperado = "A"; + + //El dígito verificador coincide con el esperado? + // o es un RFC Genérico (ventas a público general)? + if ((digitoVerificador != digitoEsperado) + && (!aceptarGenerico || rfcSinDigito + digitoVerificador != "XAXX010101000")) + return false; + else if (!aceptarGenerico && rfcSinDigito + digitoVerificador == "XEXX010101000") + return false; + return rfcSinDigito + digitoVerificador; + } + + function ValidaCURP() { + + $.ajax({ + type: "POST", + timeout: 0, + url: "/ashx/sigweb.ashx?metodo=ValidaCURP&Curp=" + <%= String.Format("$('#{0}').val()", TxtCURP.ClientID) %> , + success: function (msg) { + console.log(msg) + if (msg.length > 0) { + alertatoast(5, "CURP valida!","",7); + } else { + alertatoast(8, "CURP invalida!","",7) + } + iscalculandocurp = false; + }, + error: function (msg) { + console.log("error:" + JSON.stringify(msg)); + alertatoast(7, "No se pudo validar la CURP","",7); + iscalculandocurp = false; + } + }); + } + + + function RFCDigitoVerificador(rfc) { + var rfcsuma = []; + var nv = 0; + var y = 0; + for (i = 0; i <= rfc.length; i++) { + var letra = rfc.substr(i, 1); + switch (letra) { + case '0': + rfcsuma.push('00') + break; + case '1': + rfcsuma.push('01') + break; + case '2': + rfcsuma.push('02') + break; + case '3': + rfcsuma.push('03') + break; + case '4': + rfcsuma.push('04') + break; + case '5': + rfcsuma.push('05') + break; + case '6': + rfcsuma.push('06') + break; + case '7': + rfcsuma.push('07') + break; + case '8': + rfcsuma.push('08') + break; + case '9': + rfcsuma.push('09') + break; + case 'A': + rfcsuma.push('10') + break; + case 'B': + rfcsuma.push('11') + break; + case 'C': + rfcsuma.push('12') + break; + case 'D': + rfcsuma.push('13') + break; + case 'E': + rfcsuma.push('14') + break; + case 'F': + rfcsuma.push('15') + break; + case 'G': + rfcsuma.push('16') + break; + case 'H': + rfcsuma.push('17') + break; + case 'I': + rfcsuma.push('18') + break; + case 'J': + rfcsuma.push('19') + break; + case 'K': + rfcsuma.push('20') + break; + case 'L': + rfcsuma.push('21') + break; + case 'M': + rfcsuma.push('22') + break; + case 'N': + rfcsuma.push('23') + break; + case '&': + rfcsuma.push('24') + break; + case 'O': + rfcsuma.push('25') + break; + case 'P': + rfcsuma.push('26') + break; + case 'Q': + rfcsuma.push('27') + break; + case 'R': + rfcsuma.push('28') + break; + case 'S': + rfcsuma.push('29') + break; + case 'T': + rfcsuma.push('30') + break; + case 'U': + rfcsuma.push('31') + break; + case 'V': + rfcsuma.push('32') + break; + case 'W': + rfcsuma.push('33') + break; + case 'X': + rfcsuma.push('34') + break; + case 'Y': + rfcsuma.push('35') + break; + case 'Z': + rfcsuma.push('36') + break; + case ' ': + rfcsuma.push('37') + break; + case 'Ñ': + rfcsuma.push('38') + break; + default: + rfcsuma.push('00'); + } + } + + for (i = 13; i > 1; i--) { + nv = nv + (rfcsuma[y] * i); + y++; + } + nv = nv % 11; + //alert(nv); + if (nv == 0) { + rfc = rfc + nv; + } else if (nv <= 10) { + nv = 11 - nv; + if (nv == '10') { + nv = 'A'; + } + rfc = rfc + nv; + } else if (nv == '10') { + nv = 'A'; + rfc = rfc + nv; + } + return rfc + } + + function RFCQuitaProhibidas(rfc) { + var res; + rfc = rfc.toUpperCase(); + var strPalabras = "BUEI*BUEY*CACA*CACO*CAGA*CAGO*CAKA*CAKO*COGE*COJA*"; + strPalabras = strPalabras + "KOGE*KOJO*KAKA*KULO*MAME*MAMO*MEAR*"; + strPalabras = strPalabras + "MEAS*MEON*MION*COJE*COJI*COJO*CULO*"; + strPalabras = strPalabras + "FETO*GUEY*JOTO*KACA*KACO*KAGA*KAGO*"; + strPalabras = strPalabras + "MOCO*MULA*PEDA*PEDO*PENE*PUTA*PUTO*"; + strPalabras = strPalabras + "QULO*RATA*RUIN*"; + + res = strPalabras.match(rfc); + + if (res != null) { + rfc = rfc.substr(0, 3) + 'X'; + return rfc; + } else { + return rfc; + } + } + + function RFCUnApellido(nombre, apellido) { + var rfc = apellido.substr(0, 2) + nombre.substr(0, 2); + return rfc + } + + function RFCArmalo(ap_paterno, ap_materno, nombre) { + + var strVocales = 'aeiou'; + var strPrimeraVocal = ''; + var i = 0; + var x = 0; + var y = 0; + for (i = 1; i <= ap_paterno.length; i++) { + //alert(ap_paterno.substr(i,1)); + if (y == 0) { + for (x = 0; x <= strVocales.length; x++) { + //alert(strVocales.substr(x,1)); + if (ap_paterno.substr(i, 1) == strVocales.substr(x, 1)) { + y = 1; + strPrimeraVocal = ap_paterno.substr(i, 1); + } + + } + } + //break; + } + var rfc = ap_paterno.substr(0, 1) + strPrimeraVocal + ap_materno.substr(0, 1) + nombre.substr(0, 1); + return rfc; + } + + function RFCApellidoCorto(ap_paterno, ap_materno, nombre) { + var rfc = ap_paterno.substr(0, 1) + ap_materno.substr(0, 1) + nombre.substr(0, 2); + return rfc; + } + + function RFCFiltraNombres(strTexto) { + var i = 0; + var strArPalabras = [".", ",", "de ", "del ", "la ", "los ", "las ", "y ", "mc ", "mac ", "von ", "van "]; + for (i = 0; i <= strArPalabras.length; i++) { + //alert(strArPalabras[i]); + strTexto = strTexto.replace(strArPalabras[i], ""); + } + + strArPalabras = ["jose ", "maria ", "j ", "ma "]; + for (i = 0; i <= strArPalabras.length; i++) { + //alert(strArPalabras[i]); + strTexto = strTexto.replace(strArPalabras[i], ""); + } + + switch (strTexto.substr(0, 2)) { + case 'ch': + strTexto = strTexto.replace('ch', 'c') + break; + case 'll': + strTexto = strTexto.replace('ll', 'l') + break; + } + + return strTexto + } + + function RFCFiltraAcentos(strTexto) { + strTexto = strTexto.replace('á', 'a'); + strTexto = strTexto.replace('é', 'e'); + strTexto = strTexto.replace('í', 'i'); + strTexto = strTexto.replace('ó', 'o'); + strTexto = strTexto.replace('ú', 'u'); + return strTexto; + } + + function homonimia(ap_paterno, ap_materno, nombre) { + + var nombre_completo = ap_paterno.trim() + ' ' + ap_materno.trim() + ' ' + nombre.trim(); + var numero = '0'; + var letra; + var numero1; + var numero2; + var numeroSuma = 0; + //alert(nombre_completo); + //alert(nombre_completo.length); + for (i = 0; i <= nombre_completo.length; i++) { + letra = nombre_completo.substr(i, 1); + switch (letra) { + case 'ñ': + numero = numero + '10' + break; + case 'ü': + numero = numero + '10' + break; + case 'a': + numero = numero + '11' + break; + case 'b': + numero = numero + '12' + break; + case 'c': + numero = numero + '13' + break; + case 'd': + numero = numero + '14' + break; + case 'e': + numero = numero + '15' + break; + case 'f': + numero = numero + '16' + break; + case 'g': + numero = numero + '17' + break; + case 'h': + numero = numero + '18' + break; + case 'i': + numero = numero + '19' + break; + case 'j': + numero = numero + '21' + break; + case 'k': + numero = numero + '22' + break; + case 'l': + numero = numero + '23' + break; + case 'm': + numero = numero + '24' + break; + case 'n': + numero = numero + '25' + break; + case 'ñ': + numero = numero + '40' + break; + case 'o': + numero = numero + '26' + break; + case 'p': + numero = numero + '27' + break; + case 'q': + numero = numero + '28' + break; + case 'r': + numero = numero + '29' + break; + case 's': + numero = numero + '32' + break; + case 't': + numero = numero + '33' + break; + case 'u': + numero = numero + '34' + break; + case 'v': + numero = numero + '35' + break; + case 'w': + numero = numero + '36' + break; + case 'x': + numero = numero + '37' + break; + case 'y': + numero = numero + '38' + break; + case 'z': + numero = numero + '39' + break; + case ' ': + numero = numero + '00' + break; + } + } + //alert(numero); + for (i = 0; i <= numero.length + 1; i++) { + numero1 = numero.substr(i, 2); + numero2 = numero.substr(i + 1, 1); + numeroSuma = numeroSuma + (numero1 * numero2); + + } + //alert(numeroSuma); + var numero3 = numeroSuma % 1000; + //alert(numero3); + var numero4 = numero3 / 34; + var numero5 = numero4.toString().split(".")[0]; + //alert(numero5); + var numero6 = numero3 % 34; + //alert(numero6); + var homonimio = ''; + switch (numero5) { + case '0': + homonimio = '1' + break; + case '1': + homonimio = '2' + break; + case '2': + homonimio = '3' + break; + case '3': + homonimio = '4' + break; + case '4': + homonimio = '5' + break; + case '5': + homonimio = '6' + break; + case '6': + homonimio = '7' + break; + case '7': + homonimio = '8' + break; + case '8': + homonimio = '9' + break; + case '9': + homonimio = 'A' + break; + case '10': + homonimio = 'B' + break; + case '11': + homonimio = 'C' + break; + case '12': + homonimio = 'D' + break; + case '13': + homonimio = 'E' + break; + case '14': + homonimio = 'F' + break; + case '15': + homonimio = 'G' + break; + case '16': + homonimio = 'H' + break; + case '17': + homonimio = 'I' + break; + case '18': + homonimio = 'J' + break; + case '19': + homonimio = 'K' + break; + case '20': + homonimio = 'L' + break; + case '21': + homonimio = 'M' + break; + case '22': + homonimio = 'N' + break; + case '23': + homonimio = 'P' + break; + case '24': + homonimio = 'Q' + break; + case '25': + homonimio = 'R' + break; + case '26': + homonimio = 'S' + break; + case '27': + homonimio = 'T' + break; + case '28': + homonimio = 'U' + break; + case '29': + homonimio = 'V' + break; + case '30': + homonimio = 'W' + break; + case '31': + homonimio = 'X' + break; + case '32': + homonimio = 'Y' + break; + case '33': + homonimio = 'Z' + break; + + } + switch (numero6.toString()) { + case '0': + homonimio = homonimio + '1' + break; + case '1': + homonimio = homonimio + '2' + break; + case '2': + homonimio = homonimio + '3' + break; + case '3': + homonimio = homonimio + '4' + break; + case '4': + homonimio = homonimio + '5' + break; + case '5': + homonimio = homonimio + '6' + break; + case '6': + homonimio = homonimio + '7' + break; + case '7': + homonimio = homonimio + '8' + break; + case '8': + homonimio = homonimio + '9' + break; + case '9': + homonimio = homonimio + 'A' + break; + case '10': + homonimio = homonimio + 'B' + break; + case '11': + homonimio = homonimio + 'C' + break; + case '12': + homonimio = homonimio + 'D' + break; + case '13': + homonimio = homonimio + 'E' + break; + case '14': + homonimio = homonimio + 'F' + break; + case '15': + homonimio = homonimio + 'G' + break; + case '16': + homonimio = homonimio + 'H' + break; + case '17': + homonimio = homonimio + 'I' + break; + case '18': + homonimio = homonimio + 'J' + break; + case '19': + homonimio = homonimio + 'K' + break; + case '20': + homonimio = homonimio + 'L' + break; + case '21': + homonimio = homonimio + 'M' + break; + case '22': + homonimio = homonimio + 'N' + break; + case '23': + homonimio = homonimio + 'P' + break; + case '24': + homonimio = homonimio + 'Q' + break; + case '25': + homonimio = homonimio + 'R' + break; + case '26': + homonimio = homonimio + 'S' + break; + case '27': + homonimio = homonimio + 'T' + break; + case '28': + homonimio = homonimio + 'U' + break; + case '29': + homonimio = homonimio + 'V' + break; + case '30': + homonimio = homonimio + 'W' + break; + case '31': + homonimio = homonimio + 'X' + break; + case '32': + homonimio = homonimio + 'Y' + break; + case '33': + homonimio = homonimio + 'Z' + break; + + } + return homonimio; + } + + + + function fnCalculaCURP(pstNombre, pstPaterno, pstMaterno, dfecha, pstSexo, pnuCveEntidad) { + + 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) { + + APATERNO_LONGITUD = APATERNO.length; + + var splitPaterno = APATERNO.split(" "); + var splitPaterno1 = splitPaterno[0]; + APATERNO1_LONGITUD = splitPaterno1.length; + + if (APATERNO1_LONGITUD = 0) { + APATERNO1_LONGITUD = APATERNO_LONGITUD; + } + + APATERNO1 = APATERNO.substring(0, splitPaterno1.length); + APATERNO2 = APATERNO.substring(splitPaterno1.length + 1, APATERNO.length); + // Se quitan los sufijos + + + 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 (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); + + + + pstCURP = pstCURP + dfecha + 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 = dfecha.substr(2, 2); + + + if (numVer == 10) { + numVer = 0; + } + + + if (anio < 2000) { + pstDigVer = '0' + '' + numVer; + } + if (anio >= 2000) { + pstDigVer = 'A' + '' + numVer; + } + + pstCURP = pstCURP + pstDigVer; + + // document.getElementById("curp").value = pstCURP; + + console.log('curp:', pstCURP) + + return pstCURP + } diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index ad953a315..866555610 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -8,6 +8,8 @@ Imports System.IO Imports System.Data Imports Microsoft.Reporting.WebForms Imports System.Globalization +Imports System.Xml +Imports System.Web.Script.Services Partial Class RH_Personal Inherits ClsPaginas @@ -615,6 +617,136 @@ Partial Class RH_Personal #End Region + Private Shared Function sendURL(ByVal URL As String, Optional Methodo As String = "POST", Optional Cookie As String = "", Optional maxTimeMilliseconds As Integer = 120000) As String + Dim resultado As String = "" + + Try + Dim request As Net.HttpWebRequest = CType(Net.HttpWebRequest.Create(URL), Net.HttpWebRequest) + request.Timeout = maxTimeMilliseconds + request.Method = Methodo + request.ContentType = "text/html; charset=utf-8" '"text/xml; charset=utf-8" + + If Not String.IsNullOrEmpty(Cookie) Then + request.Headers.Add("Cookie", Cookie) + End If + + 'Using stream As IO.Stream = request.GetRequestStream() + + ' Using stmw As IO.StreamWriter = New IO.StreamWriter(stream) + ' stmw.Write("") + ' End Using + 'End Using + + Dim response As Net.WebResponse = CType(request.GetResponse(), Net.WebResponse) + Dim sr As IO.StreamReader = New IO.StreamReader(response.GetResponseStream()) + resultado = sr.ReadToEnd() + sr.Close() + Catch ex As Exception + ex.ToString().GuardaLog() + 'Extenciones.ApplicationParameter.GuardaLogEx(ex, $"SOAPAction : {SOAPAction} XML : {xml}") + End Try + + Return resultado + End Function + ' + + Public Shared Function gettingCURP(ByVal Curp As String, year As Integer) As String + Dim abc As String() = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"} + Dim numeric01 As String() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} + Dim rule1 As String() = If(year < 2000, numeric01, abc) + Dim curpresult As String = "" + Dim i As Integer = 0 + While Curp.Length = 0 AndAlso i < rule1.Length + Dim z As Integer = 0 + While Curp.Length = 0 AndAlso z < numeric01.Length + curpresult = String.Format("{0}{1}{2}", Curp, rule1(i), numeric01(z)) + Dim respuesta As String = sendURL(String.Format("http://www.renapo.sep.gob.mx/wsrenapo/MainControllerParam?curp={0}", curpresult), "GET") + + Dim trlines As New List(Of String) + Dim keydict As New System.Collections.Concurrent.ConcurrentDictionary(Of String, String) + + Dim indexttr As Integer = 0 + Dim indexttrB As Integer = 0 + Dim indexttd As Integer = 0 + Dim indextdiv As Integer = 0 + Dim indexinittext As Integer = 0 + While Not IsNothing(respuesta) AndAlso respuesta.Length > 0 + indexttr = respuesta.IndexOf("= 0 Then + indexttrB = respuesta.Substring(indexttr + 3).IndexOf("= 0 Then + trlines.Add(respuesta.Substring(indexttr, indexttrB)) + Else + trlines.Add(respuesta.Substring(indexttr)) + + End If + respuesta = respuesta.Substring(indexttr + 3) + Else + respuesta = "" + End If + + End While + + Dim key As String = "" + Dim keyvalue As String = "" + For Each item As String In trlines + key = "" + keyvalue = "" + indexttd = item.IndexOf("= 0 Then + indexttr = indextdiv + indexttrB = item.IndexOf("= 0 Then + indexinittext = item.Substring(indexttr + 3).IndexOf(">") + key = item.Substring(indexinittext + indexttr + 4, (indexttrB - (indexinittext + indexttr + 4))) + + item = item.Substring(indexttrB + 3) + Else + item = "" + End If + + If item.Length > 0 Then + + indexttd = item.IndexOf("= 0 Then + indexttr = indextdiv + indexttrB = item.IndexOf("= 0 Then + indexinittext = item.Substring(indexttr + 3).IndexOf(">") + keyvalue = item.Substring(indexinittext + indexttr + 4, (indexttrB - (indexinittext + indexttr + 4))) + + item = item.Substring(indexttr + 3) + Else + item = "" + End If + + End If + If key.Length > 0 Then + keydict.TryAdd(key.Replace(":", "").Trim(), keyvalue.Trim().ToLower()) + End If + Next + Dim Apellido1 As String = "" : keydict.TryGetValue("Apellido1", Apellido1) + Dim Apellido2 As String = "" : keydict.TryGetValue("Apellido1", Apellido1) + Dim Nombres As String = "" : keydict.TryGetValue("Nombres", Nombres) + If Nombres Is Nothing OrElse Nombres.Length = 0 Then + curpresult = "" + End If + z = z + 1 + End While + i = i + 1 + End While + Return curpresult + End Function Const wdPageBreak As Integer = 7 Const wdCharacter As Integer = 1 @@ -624,6 +756,8 @@ Partial Class RH_Personal If UsuarioActual.CveEmpresa = 72 OrElse UsuarioActual.CveEmpresa = 80 Then pnlSalarioIMSS.Visible = False End If + ' + ViewState("Orden") = "" ViewState("Orden1") = ""