movimeintos permanentes

This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2024-05-30 07:17:28 -07:00
parent df430960d5
commit 886c69c8d2
11 changed files with 417 additions and 291 deletions

View File

@@ -3812,6 +3812,27 @@ Public Class ClsNominas
End Function
Public Function MovimientosSaldosGet(cvePersonal As Int32, cvePeriodo As Int32, cveUsuario As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_Nom_MovimientosSaldosGet", CommandType.StoredProcedure)
addParameters("@CvePersonal", SqlDbType.Int, cvePersonal)
addParameters("@CvePeriodo", SqlDbType.Int, cvePeriodo)
addParameters("@CveUsuario", SqlDbType.Int, cveUsuario)
addParameters("@CveEmpresa", SqlDbType.Int, cveEmpresa)
retorno = RunQuery("Ocurrió un error al obtener el MovimientosSaldosGet.")
Return retorno
End Function
Public Function NomMovimientosShow(cvePersonal As Int32, cvePeriodo As Int32, cveUsuario As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_Nom_MovimientosShow", CommandType.StoredProcedure)
addParameters("@CvePersonal", SqlDbType.Int, cvePersonal)
addParameters("@CvePeriodo", SqlDbType.Int, cvePeriodo)
addParameters("@CveUsuario", SqlDbType.Int, cveUsuario)
addParameters("@CveEmpresa", SqlDbType.Int, cveEmpresa)
retorno = RunQuery("Ocurrió un error al obtener el NomMovimientosShow.")
Return retorno
End Function
Public Sub addParameters(varsql As String, sqltipe As SqlDbType, valor As Object)
SqlAdapter.SelectCommand.Parameters.Add(varsql, sqltipe).Value = valor

View File

@@ -8150,299 +8150,315 @@ Public Class ClsPaginas
#End Region
#Region "PDF NOMINA"
Public Function GeneraPDFNomina(CvePersonal As Integer, CvePeriodo As Integer, CveEmpresa As Integer, RutaEmpresa As String, Optional indemnizacion As Boolean = False) As Byte()
Dim ObjNomina As New ClsNominas
Dim ObjPersonal As New ClsRH
Dim TieneError As Boolean = False
Dim Retorno As Byte() = Nothing
If Not ObjNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodo, -1, CveEmpresa) Then
Alert("Ocurrio un erro al obtener datos de la nomina", TipoMensaje.MsgError)
ObjPersonal.Dispose()
ObjNomina.Dispose()
Return Nothing
End If
Dim CveNomina As Integer = ObjNomina.CveNomina
Dim DTPercepciones As Data.DataTable
Dim DTDeducciones As Data.DataTable
Dim DTDeducciones2 As New Data.DataTable
Dim Ruta As String = UsuarioActual.Empresa.Ruta
Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.Serie }{If(indemnizacion, "F", "")}-{ObjNomina.Folio}.xml"
Dim FechaEmision, FechaCertificacion As DateTime
Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String
FolioFiscal = ""
NoSerieCertificado = ""
SelloCFDi = ""
SelloSAT = ""
NoSerieCertificadoContribuyente = ""
Dim RutaCBB As String = String.Format("{0}CBB\Nomina\{1}.jpg", RutaEmpresa, ObjNomina.SerieFolio)
Dim ImagenCBB As New System.IO.FileInfo(RutaCBB)
Dim ImgCBB As String
Dim RutaFormato As String = String.Format("{0}Formatos\Nomina.rdlc", RutaEmpresa)
Dim RutaFormatoDefault As String = String.Format("Empresas\Grales\Formatos\Nomina.rdlc")
Dim CFDIVersion As String = ""
Dim UsoCFDI As String = "ND"
'SI ESTA TIMBRADA - CON XML
If System.IO.File.Exists(PathXML) Then
Dim XmlDoc As New System.Xml.XmlDocument
'XmlDoc.Load(Ruta & "XML\\Nomina\NOM A-3845.xml")
XmlDoc.Load(PathXML)
If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then
FechaEmision = XmlDoc.DocumentElement.Attributes("Fecha").InnerText.ToDate
NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("NoCertificado").InnerText
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then
FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText
NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("NoCertificadoSAT").InnerText
FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate
SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloCFD").InnerText
SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloSAT").InnerText
End If
Next
Else
FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate
NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:timbreFiscalDigital" Then
FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText
NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText
FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("fechaTimbrado").InnerText.ToDate
SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText
SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText
End If
Next
End If
Try
CFDIVersion = ValorNodoXML(XmlDoc.DocumentElement, "version")
Dim nsManager As New XmlNamespaceManager(XmlDoc.NameTable)
nsManager.AddNamespace("cfdi", If(CFDIVersion = "4.0", "http://www.sat.gob.mx/cfd/4", "http://www.sat.gob.mx/cfd/3"))
Dim receptorNode As XmlNode = XmlDoc.SelectSingleNode("/cfdi:comprobante/cfdi:emisor/cfdi:receptor", nsManager)
If receptorNode IsNot Nothing Then
UsoCFDI = ValorNodoXML(receptorNode, "usocfdi")
Dim UsoCFDIImprimir As String = GlobalDTSATUsosCFDI(-1, "-1").FiltroPrimeroValor("UsoCFDIDescripcion", $" UsoCFDI = '{UsoCFDI}' ")
If UsoCFDIImprimir.Trim.Length > 0 Then
UsoCFDI = UsoCFDIImprimir
End If
Using ObjNomina As New ClsNominas
Using ObjPersonal As New ClsRH
Dim TieneError As Boolean = False
If Not ObjNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodo, -1, CveEmpresa) Then
Alert("Ocurrio un erro al obtener datos de la nomina", TipoMensaje.MsgError)
ObjPersonal.Dispose()
ObjNomina.Dispose()
Return Nothing
End If
Dim CveNomina As Integer = ObjNomina.CveNomina
Dim DTPercepciones As Data.DataTable
Dim DTDeducciones As Data.DataTable
Dim DTDeducciones2 As New Data.DataTable
Dim Ruta As String = UsuarioActual.Empresa.Ruta
Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.Serie }{If(indemnizacion, "F", "")}-{ObjNomina.Folio}.xml"
Dim FechaEmision, FechaCertificacion As DateTime
Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String
FolioFiscal = ""
NoSerieCertificado = ""
SelloCFDi = ""
SelloSAT = ""
NoSerieCertificadoContribuyente = ""
Dim RutaCBBDir As String = String.Format("{0}CBB\Nomina\", RutaEmpresa)
If Not (System.IO.Directory.Exists(RutaCBBDir)) Then
System.IO.Directory.CreateDirectory(RutaCBBDir)
End If
Dim RutaCBB As String = String.Format("{0}{1}.jpg", RutaCBBDir, ObjNomina.SerieFolio)
Dim ImagenCBB As New System.IO.FileInfo(RutaCBB)
Dim ImgCBB As String
Dim RutaFormato As String = String.Format("{0}Formatos\Nomina.rdlc", RutaEmpresa)
Dim RutaFormatoDefault As String = String.Format("Empresas\Grales\Formatos\Nomina.rdlc")
Dim CFDIVersion As String = ""
Dim UsoCFDI As String = "ND"
If UsoCFDI = "ND" Or UsoCFDI = "" Then
If CFDIVersion = "4.0" Then
UsoCFDI = "CN01 - Nómina"
'SI ESTA TIMBRADA - CON XML
If System.IO.File.Exists(PathXML) Then
Dim XmlDoc As New System.Xml.XmlDocument
'XmlDoc.Load(Ruta & "XML\\Nomina\NOM A-3845.xml")
XmlDoc.Load(PathXML)
If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then
FechaEmision = XmlDoc.DocumentElement.Attributes("Fecha").InnerText.ToDate
NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("NoCertificado").InnerText
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then
FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText
NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("NoCertificadoSAT").InnerText
FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate
SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloCFD").InnerText
SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloSAT").InnerText
End If
Next
Else
UsoCFDI = "P01 - Por definir"
FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate
NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:timbreFiscalDigital" Then
FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText
NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText
FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("fechaTimbrado").InnerText.ToDate
SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText
SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText
End If
Next
End If
Try
CFDIVersion = ValorNodoXML(XmlDoc.DocumentElement, "version")
Dim nsManager As New XmlNamespaceManager(XmlDoc.NameTable)
nsManager.AddNamespace("cfdi", If(CFDIVersion = "4.0", "http://www.sat.gob.mx/cfd/4", "http://www.sat.gob.mx/cfd/3"))
Dim receptorNode As XmlNode = XmlDoc.SelectSingleNode("/cfdi:comprobante/cfdi:emisor/cfdi:receptor", nsManager)
If receptorNode IsNot Nothing Then
UsoCFDI = ValorNodoXML(receptorNode, "usocfdi")
Dim UsoCFDIImprimir As String = GlobalDTSATUsosCFDI(-1, "-1").FiltroPrimeroValor("UsoCFDIDescripcion", $" UsoCFDI = '{UsoCFDI}' ")
If UsoCFDIImprimir.Trim.Length > 0 Then
UsoCFDI = UsoCFDIImprimir
End If
End If
If UsoCFDI = "ND" Or UsoCFDI = "" Then
If CFDIVersion = "4.0" Then
UsoCFDI = "CN01 - Nómina"
Else
UsoCFDI = "P01 - Por definir"
End If
End If
Catch ex As Exception
End Try
'SIN TIMBRAR - SIN XML
Else
FolioFiscal = "Sin Timbrar"
NoSerieCertificado = "Sin Timbrar"
SelloCFDi = "Sin Timbrar"
SelloSAT = "Sin Timbrar"
End If
Catch ex As Exception
End Try
'SIN TIMBRAR - SIN XML
Else
FolioFiscal = "Sin Timbrar"
NoSerieCertificado = "Sin Timbrar"
SelloCFDi = "Sin Timbrar"
SelloSAT = "Sin Timbrar"
End If
'Si no tiene CBB, SE GENERA
If Not ImagenCBB.Exists Then
If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then
GeneraQRSAT(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaGuardado:=RutaCBB)
End If
End If
ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/Nomina/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjNomina.SerieFolio)
Dim cQr As Byte() = Nothing
Try
Dim CadenaOriginalCFD As String = "||1.0|" + FolioFiscal + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|" + SelloCFDi + "|" + NoSerieCertificado + "||"
Dim RptParametro As New List(Of ReportParameter)
'Datos Empresa
RptParametro.Add(New ReportParameter("RegistroPatronal", ObjNomina.RegistroPatronal))
Dim ajusteindemnizacion As Double = 0
'PERCECIONES - DEDUCCIONES
If ObjNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then
Dim filtrop As String = " AND CveSistema NOT IN(10,11,32)"
Dim friltrod As String = " AND CveSistema <>47"
If indemnizacion Then
filtrop = "AND CveSistema IN(10,11,32)"
friltrod = " AND CveSistema =47"
'Si no tiene CBB, SE GENERA
If Not ImagenCBB.Exists Then
If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then
GeneraQRSAT(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaGuardado:=RutaCBB)
End If
End If
DTPercepciones = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND ((Importe <>0 AND EsPadre = 1 AND SoloVisible =0) OR Imprimir =1)) {filtrop}")
DTDeducciones = ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND ((Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR Imprimir =1) ) {friltrod}")
DTDeducciones2 = ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND (( Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR Imprimir =1) ){friltrod}")
ajusteindemnizacion = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema IN(10,11,32)").SUM("Importe") -
ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/Nomina/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjNomina.SerieFolio)
Dim cQr As Byte() = Nothing
Try
Dim CadenaOriginalCFD As String = "||1.0|" + FolioFiscal + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|" + SelloCFDi + "|" + NoSerieCertificado + "||"
Dim RptParametro As New List(Of ReportParameter)
'Datos Empresa
RptParametro.Add(New ReportParameter("RegistroPatronal", ObjNomina.RegistroPatronal))
Dim ajusteindemnizacion As Double = 0
'PERCECIONES - DEDUCCIONES
If ObjNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then
Dim filtrop As String = " AND CveSistema NOT IN(10,11,32)"
Dim friltrod As String = " AND CveSistema <>47"
If indemnizacion Then
filtrop = "AND CveSistema IN(10,11,32)"
friltrod = " AND CveSistema =47"
End If
DTPercepciones = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND ((Importe <>0 AND EsPadre = 1 AND SoloVisible =0) OR Imprimir =1)) {filtrop}")
DTDeducciones = ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND ((Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR Imprimir =1) ) {friltrod}")
DTDeducciones2 = ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND (( Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR Imprimir =1) ){friltrod}")
ajusteindemnizacion = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema IN(10,11,32)").SUM("Importe") -
ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema =47").SUM("Importe")
For Each row As DataRow In DTPercepciones.Rows
If row("Tipo").ToString() = "D" Then
row("Codigo") = row("Codigo").ToString().Replace("D", "OP")
row("Importe") = row("Importe").ToString().ToDecimal() * -1
For Each row As DataRow In DTPercepciones.Rows
If row("Tipo").ToString() = "D" Then
row("Codigo") = row("Codigo").ToString().Replace("D", "OP")
row("Importe") = row("Importe").ToString().ToDecimal() * -1
End If
Next
Else
DTPercepciones = Nothing
DTDeducciones = Nothing
End If
Next
Else
DTPercepciones = Nothing
DTDeducciones = Nothing
End If
Dim SalarioDiario As String
Dim SDI As String
Dim Departamento As String
Dim Puesto As String
'DATOS DEL EMPLEADO
If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then
RptParametro.Add(New ReportParameter("NoEmpleado", ObjPersonal.Codigo))
RptParametro.Add(New ReportParameter("RFC", ObjPersonal.RFC))
RptParametro.Add(New ReportParameter("CURP", ObjPersonal.CURP))
RptParametro.Add(New ReportParameter("NombreCompleto", String.Format("{0} {1} {2}", ObjPersonal.Nombres, ObjPersonal.APaterno, ObjPersonal.AMaterno).Trim()))
RptParametro.Add(New ReportParameter("Regimen", ObjPersonal.RegimenContratacion))
RptParametro.Add(New ReportParameter("RiesgoPuesto", ObjPersonal.RiesgoPuesto))
RptParametro.Add(New ReportParameter("NSS", ObjPersonal.NumeroSS))
Departamento = ObjPersonal.Departamento
Puesto = ObjPersonal.Puesto.ToString()
RptParametro.Add(New ReportParameter("FechaIngreso", ObjPersonal.FechaIngreso.ToString("dd/MM/yyyy")))
RptParametro.Add(New ReportParameter("Contrato", ObjPersonal.TipoContrato.ToString))
RptParametro.Add(New ReportParameter("Jornada", ObjPersonal.Jornada))
RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo))
RptParametro.Add(New ReportParameter("Banco", ObjPersonal.Banco))
RptParametro.Add(New ReportParameter("CLABE", ObjPersonal.CLABE))
SalarioDiario = ObjPersonal.SalarioDiario.ToString
SDI = ObjPersonal.SDI.ToString
If ObjNomina.GetNom_NominasDataXML(CveNomina, CvePersonal, CvePeriodo, 1, CveEmpresa) AndAlso ObjNomina.DtResultados.Rows.Count > 0 Then
Dim drow As DataRow = ObjNomina.DtResultados.Rows(0)
SalarioDiario = drow("SalarioDiario").ToString()
SDI = drow("NomRSalarioDiarioIntegrado").ToString()
Departamento = drow("NomRDepartamento").ToString()
Puesto = drow("NomRPuesto").ToString()
End If
RptParametro.Add(New ReportParameter("SalarioBase", SalarioDiario))
RptParametro.Add(New ReportParameter("SalarioDiarioInt", SDI))
RptParametro.Add(New ReportParameter("Departamento", Departamento))
RptParametro.Add(New ReportParameter("Puesto", Puesto))
'DATOS NOMINA
If ObjNomina.GetNom_Nominas(CveNomina, CvePersonal, CvePeriodo, 1, CveEmpresa) Then
RptParametro.Add(New ReportParameter("ReciboNomina", ObjNomina.Folio.ToString))
RptParametro.Add(New ReportParameter("Serie", ObjNomina.Serie))
RptParametro.Add(New ReportParameter("Fecha", ObjNomina.Fecha.ToString))
RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo))
RptParametro.Add(New ReportParameter("DiasPagados", ObjNomina.DiasPagados.ToString))
RptParametro.Add(New ReportParameter("MetodoPago", ObjNomina.MetodoPago)) '"""PUE"" (Pago en una sola exhibición)"
RptParametro.Add(New ReportParameter("FormaPago", """99"" (Por definir)"))
RptParametro.Add(New ReportParameter("Cantidad", "1"))
RptParametro.Add(New ReportParameter("Unidad", "ACT"))
RptParametro.Add(New ReportParameter("Descripcion", "PAGO DE NÓMINA"))
RptParametro.Add(New ReportParameter("Total", If(indemnizacion, ajusteindemnizacion, ObjNomina.Total - ajusteindemnizacion).ToString()))
RptParametro.Add(New ReportParameter("ImporteLetra", ObjNomina.Total.ToString.ToDecimal.Texto2Letras))
RptParametro.Add(New ReportParameter("Clave", "84111505"))
cQr = GeneraQRSAT(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal)
Else
TieneError = True
End If
Else
TieneError = True
End If
If Not TieneError Then
If ObjNomina.GetPeriodos(-1, CveEmpresa, -1, -1, CvePeriodo) Then
RptParametro.Add(New ReportParameter("FechaInicio", ObjNomina.FechaInicio.ToString("dd/MM/yyyy")))
RptParametro.Add(New ReportParameter("FechaFin", ObjNomina.FechaFin.ToString("dd/MM/yyyy")))
Else
TieneError = True
End If
End If
RptParametro.Add(New ReportParameter("PU", DTPercepciones.SUM("Importe").ToString()))
RptParametro.Add(New ReportParameter("Importe", DTPercepciones.SUM("Importe").ToString()))
RptParametro.Add(New ReportParameter("ImporteDeducciones", DTDeducciones.SUM("Importe").ToString()))
RptParametro.Add(New ReportParameter("SubTotal", DTPercepciones.SUM("Importe").ToString()))
RptParametro.Add(New ReportParameter("Descuentos", DTDeducciones.SUM("Importe", "SATCveConcepto <> '002'").ToString()))
RptParametro.Add(New ReportParameter("ISR", DTDeducciones.SUM("Importe", "SATCveConcepto = '002'").ToString()))
'Timbrado
RptParametro.Add(New ReportParameter("FolioFiscal", FolioFiscal))
RptParametro.Add(New ReportParameter("CertificadoSAT", NoSerieCertificado))
RptParametro.Add(New ReportParameter("FechaCertificacion", FechaCertificacion.ToString))
RptParametro.Add(New ReportParameter("SelloDigitalEmisor", SelloCFDi))
RptParametro.Add(New ReportParameter("SelloDigitalSAT", SelloSAT))
RptParametro.Add(New ReportParameter("CadenaOriginal", CadenaOriginalCFD))
RptParametro.Add(New ReportParameter("QR", ImgCBB.ToString))
RptParametro.Add(New ReportParameter("CFDIVersion", CFDIVersion))
RptParametro.Add(New ReportParameter("UsoCFDI", UsoCFDI))
Dim LSRds As New List(Of ReportDataSource)
Dim rds2 As ReportDataSource = New ReportDataSource()
Dim dtqr As New DataTable
Dim column As DataColumn = New DataColumn("ImagenByte")
column.DataType = System.Type.[GetType]("System.Byte[]")
column.AllowDBNull = True
column.Caption = "ImagenByte"
dtqr.Columns.Add(column)
Dim rowqr As DataRow = dtqr.NewRow()
rowqr("ImagenByte") = cQr
dtqr.Rows.Add(rowqr)
rds2.Name = "dsImagenes"
rds2.Value = dtqr
LSRds.Add(rds2)
Dim numnewfiles As Integer = 0
If DTPercepciones.Rows.Count > DTDeducciones2.Rows.Count Then
numnewfiles = DTPercepciones.Rows.Count - DTDeducciones2.Rows.Count
For index As Integer = 1 To numnewfiles
DTDeducciones2.Rows.Add(DTDeducciones2.NewRow)
Next
Else
If DTDeducciones2.Rows.Count > DTPercepciones.Rows.Count Then
numnewfiles = DTDeducciones2.Rows.Count - DTPercepciones.Rows.Count
For index As Integer = 1 To numnewfiles
DTPercepciones.Rows.Add(DTPercepciones.NewRow)
Next
End If
End If
Dim RptDS As New ReportDataSource
RptDS.Name = "DsOC"
RptDS.Value = DTPercepciones
LSRds.Add(RptDS)
Dim RDS As New ReportDataSource
RDS.Name = "DataSet1"
RDS.Value = DTDeducciones2
LSRds.Add(RDS)
Dim Archivo As New System.IO.FileInfo(RutaFormato)
If Not TieneError Then
If Archivo.Exists Then
Retorno = StreamPDF(RutaFormato, LSRds, RptParametro, ObjNomina.SerieFolio, "PDF", MR:=Nothing)
Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio))
If Not ArchivoPDF.Exists Then
Try
DirectoryExistsCreate(String.Format("{0}PDF", RutaEmpresa))
DirectoryExistsCreate(String.Format("{0}PDF\{1}", RutaEmpresa, "Nomina"))
File.WriteAllBytes(String.Format("{0}PDF\Nomina\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio), Retorno)
Catch ex As Exception
Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia)
GuardaLog(String.Format("Ocurrió un error al generar el PDF {0}", ex))
End Try
Dim SalarioDiario As String
Dim SDI As String
Dim Departamento As String
Dim Puesto As String
'DATOS DEL EMPLEADO
If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then
RptParametro.Add(New ReportParameter("NoEmpleado", ObjPersonal.Codigo))
RptParametro.Add(New ReportParameter("RFC", ObjPersonal.RFC))
RptParametro.Add(New ReportParameter("CURP", ObjPersonal.CURP))
RptParametro.Add(New ReportParameter("NombreCompleto", String.Format("{0} {1} {2}", ObjPersonal.Nombres, ObjPersonal.APaterno, ObjPersonal.AMaterno).Trim()))
RptParametro.Add(New ReportParameter("Regimen", ObjPersonal.RegimenContratacion))
RptParametro.Add(New ReportParameter("RiesgoPuesto", ObjPersonal.RiesgoPuesto))
RptParametro.Add(New ReportParameter("NSS", ObjPersonal.NumeroSS))
Departamento = ObjPersonal.Departamento
Puesto = ObjPersonal.Puesto.ToString()
RptParametro.Add(New ReportParameter("FechaIngreso", ObjPersonal.FechaIngreso.ToString("dd/MM/yyyy")))
RptParametro.Add(New ReportParameter("Contrato", ObjPersonal.TipoContrato.ToString))
RptParametro.Add(New ReportParameter("Jornada", ObjPersonal.Jornada))
RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo))
RptParametro.Add(New ReportParameter("Banco", ObjPersonal.Banco))
RptParametro.Add(New ReportParameter("CLABE", ObjPersonal.CLABE))
SalarioDiario = ObjPersonal.SalarioDiario.ToString
SDI = ObjPersonal.SDI.ToString
If ObjNomina.GetNom_NominasDataXML(CveNomina, CvePersonal, CvePeriodo, 1, CveEmpresa) AndAlso ObjNomina.DtResultados.Rows.Count > 0 Then
Dim drow As DataRow = ObjNomina.DtResultados.Rows(0)
SalarioDiario = drow("SalarioDiario").ToString()
SDI = drow("NomRSalarioDiarioIntegrado").ToString()
Departamento = drow("NomRDepartamento").ToString()
Puesto = drow("NomRPuesto").ToString()
End If
RptParametro.Add(New ReportParameter("SalarioBase", SalarioDiario))
RptParametro.Add(New ReportParameter("SalarioDiarioInt", SDI))
RptParametro.Add(New ReportParameter("Departamento", Departamento))
RptParametro.Add(New ReportParameter("Puesto", Puesto))
'DATOS NOMINA
If ObjNomina.GetNom_Nominas(CveNomina, CvePersonal, CvePeriodo, 1, CveEmpresa) Then
RptParametro.Add(New ReportParameter("ReciboNomina", ObjNomina.Folio.ToString))
RptParametro.Add(New ReportParameter("Serie", ObjNomina.Serie))
RptParametro.Add(New ReportParameter("Fecha", ObjNomina.Fecha.ToString))
RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo))
RptParametro.Add(New ReportParameter("DiasPagados", ObjNomina.DiasPagados.ToString))
RptParametro.Add(New ReportParameter("MetodoPago", ObjNomina.MetodoPago)) '"""PUE"" (Pago en una sola exhibición)"
RptParametro.Add(New ReportParameter("FormaPago", """99"" (Por definir)"))
RptParametro.Add(New ReportParameter("Cantidad", "1"))
RptParametro.Add(New ReportParameter("Unidad", "ACT"))
RptParametro.Add(New ReportParameter("Descripcion", "PAGO DE NÓMINA"))
RptParametro.Add(New ReportParameter("Total", If(indemnizacion, ajusteindemnizacion, ObjNomina.Total - ajusteindemnizacion).ToString()))
RptParametro.Add(New ReportParameter("ImporteLetra", ObjNomina.Total.ToString.ToDecimal.Texto2Letras))
RptParametro.Add(New ReportParameter("Clave", "84111505"))
cQr = GeneraQRSAT(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal)
Else
TieneError = True
End If
Else
TieneError = True
End If
If Not TieneError Then
If ObjNomina.GetPeriodos(-1, CveEmpresa, -1, -1, CvePeriodo) Then
RptParametro.Add(New ReportParameter("FechaInicio", ObjNomina.FechaInicio.ToString("dd/MM/yyyy")))
RptParametro.Add(New ReportParameter("FechaFin", ObjNomina.FechaFin.ToString("dd/MM/yyyy")))
Else
TieneError = True
End If
End If
Else
'ImprimirPDF(String.Format("{0}\Formatos\Nomina.rdlc", RutaEmpresa), LSRds, RptParametro, ObjNomina.SerieFolio)
End If
Else
Alert("Ocurrio un error al obtener los datos de la Nomina")
End If
Catch ex As Exception
GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
End Try
ObjNomina.Dispose()
ObjPersonal.Dispose()
RptParametro.Add(New ReportParameter("PU", DTPercepciones.SUM("Importe").ToString()))
RptParametro.Add(New ReportParameter("Importe", DTPercepciones.SUM("Importe").ToString()))
RptParametro.Add(New ReportParameter("ImporteDeducciones", DTDeducciones.SUM("Importe").ToString()))
RptParametro.Add(New ReportParameter("SubTotal", DTPercepciones.SUM("Importe").ToString()))
RptParametro.Add(New ReportParameter("Descuentos", DTDeducciones.SUM("Importe", "SATCveConcepto <> '002'").ToString()))
RptParametro.Add(New ReportParameter("ISR", DTDeducciones.SUM("Importe", "SATCveConcepto = '002'").ToString()))
'Timbrado
RptParametro.Add(New ReportParameter("FolioFiscal", FolioFiscal))
RptParametro.Add(New ReportParameter("CertificadoSAT", NoSerieCertificado))
RptParametro.Add(New ReportParameter("FechaCertificacion", FechaCertificacion.ToString))
RptParametro.Add(New ReportParameter("SelloDigitalEmisor", SelloCFDi))
RptParametro.Add(New ReportParameter("SelloDigitalSAT", SelloSAT))
RptParametro.Add(New ReportParameter("CadenaOriginal", CadenaOriginalCFD))
RptParametro.Add(New ReportParameter("QR", ImgCBB.ToString))
RptParametro.Add(New ReportParameter("CFDIVersion", CFDIVersion))
RptParametro.Add(New ReportParameter("UsoCFDI", UsoCFDI))
Dim LSRds As New List(Of ReportDataSource)
Dim rds2 As ReportDataSource = New ReportDataSource()
Dim dtqr As New DataTable
Dim column As DataColumn = New DataColumn("ImagenByte")
column.DataType = System.Type.[GetType]("System.Byte[]")
column.AllowDBNull = True
column.Caption = "ImagenByte"
dtqr.Columns.Add(column)
Dim rowqr As DataRow = dtqr.NewRow()
rowqr("ImagenByte") = cQr
dtqr.Rows.Add(rowqr)
rds2.Name = "dsImagenes"
rds2.Value = dtqr
LSRds.Add(rds2)
Dim numnewfiles As Integer = 0
If DTPercepciones.Rows.Count > DTDeducciones2.Rows.Count Then
numnewfiles = DTPercepciones.Rows.Count - DTDeducciones2.Rows.Count
For index As Integer = 1 To numnewfiles
DTDeducciones2.Rows.Add(DTDeducciones2.NewRow)
Next
Else
If DTDeducciones2.Rows.Count > DTPercepciones.Rows.Count Then
numnewfiles = DTDeducciones2.Rows.Count - DTPercepciones.Rows.Count
For index As Integer = 1 To numnewfiles
DTPercepciones.Rows.Add(DTPercepciones.NewRow)
Next
End If
End If
If ObjNomina.NomMovimientosShow(CvePersonal, CvePeriodo, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
If Not IsNothing(ObjNomina.DtResultados) And ObjNomina.DtResultados.Rows.Count > 0 And ObjNomina.DtResultados.Rows(0)("ShowMovtosPermanentes").ToString() = "1" Then
If ObjNomina.MovimientosSaldosGet(CvePersonal, CvePeriodo, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Dim RptDSMP As New ReportDataSource
RptDSMP.Name = "DsMovtosPermanentes"
RptDSMP.Value = ObjNomina.DtResultados
LSRds.Add(RptDSMP)
End If
End If
End If
Dim RptDS As New ReportDataSource
RptDS.Name = "DsOC"
RptDS.Value = DTPercepciones
LSRds.Add(RptDS)
Dim RDS As New ReportDataSource
RDS.Name = "DataSet1"
RDS.Value = DTDeducciones2
LSRds.Add(RDS)
Dim Archivo As New System.IO.FileInfo(RutaFormato)
If Not TieneError Then
If Archivo.Exists Then
Retorno = StreamPDF(RutaFormato, LSRds, RptParametro, ObjNomina.SerieFolio, "PDF", MR:=Nothing)
Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio))
If Not ArchivoPDF.Exists Then
Try
DirectoryExistsCreate(String.Format("{0}PDF", RutaEmpresa))
DirectoryExistsCreate(String.Format("{0}PDF\{1}", RutaEmpresa, "Nomina"))
File.WriteAllBytes(String.Format("{0}PDF\Nomina\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio), Retorno)
Catch ex As Exception
Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia)
GuardaLog(String.Format("Ocurrió un error al generar el PDF {0}", ex))
End Try
End If
Else
'ImprimirPDF(String.Format("{0}\Formatos\Nomina.rdlc", RutaEmpresa), LSRds, RptParametro, ObjNomina.SerieFolio)
End If
Else
Alert("Ocurrio un error al obtener los datos de la Nomina")
End If
Catch ex As Exception
GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
End Try
End Using
End Using
Return Retorno
End Function
#End Region

View File

@@ -321,6 +321,21 @@ Public Class ClsRH
#End Region
#Region "ClsRHAsistenciasInasistencias"
Public Function CargaInicialAsistenciaInasistencia(cveEmpresa As Int32, cveUsuario As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_RH_CargaInicialAsistenciaInasistencia", CommandType.StoredProcedure)
addParameters("@CveEmpresa", SqlDbType.Int, cveEmpresa)
addParameters("@CveUsuario", SqlDbType.Int, cveUsuario)
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al realizar la carga inicial de asistencia inasistencia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function GetAsistenciasInasistencias(CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False

View File

@@ -3967,7 +3967,7 @@ Partial Class General_SaldosIniciales
TxtExcel.Text = ""
UpDatos.Update()
Else
Alert(String.Format("Se agregaron: <b>{0}</b> Empleados correctamente.", NumRows), TipoMensaje.MsgInformacion)
Alert(String.Format("Se agregaron: <b>{0}</b> Empleados correctamente.", ContadorAgregados), TipoMensaje.MsgInformacion)
ObjRH.Commit()
TxtExcel.Text = ""
UpDatos.Update()

View File

@@ -325,7 +325,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
if (!IsPostBack)
{
{
cargarutaempresa();
{
DtNomOrden = new DataTable();
@@ -474,6 +475,15 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
}
}
private void cargarutaempresa()
{
string rutaCBBDir = String.Format("{0}CBB\\Nomina\\", UsuarioActual.Empresa.Ruta);
if (!Directory.Exists(rutaCBBDir))
{
Directory.CreateDirectory(rutaCBBDir);
}
}
#region Filtros
private void cargaEjercicios()
{
@@ -2109,7 +2119,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
column++;
libro.Cell(1, column).Value = row["CveConcepto"].ToString();
libro.Cell(FilaConceptos, column).Value = "N";
libro.Cell(FilaConceptos, column).Value = "S";
libro.Cell(3, column).Value = row["Concepto"].ToString();
libro.Cell(4, column).Value = row["Codigo"].ToString();
libro.Column(column).Width = 15;
@@ -2124,7 +2134,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
column++;
libro.Cell(1, column).Value = row["CveConcepto"].ToString();
libro.Cell(FilaConceptos, column).Value = "N";
libro.Cell(FilaConceptos, column).Value = "S";
libro.Cell(3, column).Value = row["Concepto"].ToString();
libro.Cell(4, column).Value = row["Codigo"].ToString();
libro.Column(column).Width = 15;
@@ -2139,7 +2149,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
column++;
libro.Cell(1, column).Value = row["CveConcepto"].ToString();
libro.Cell(FilaConceptos, column).Value = "N";
libro.Cell(FilaConceptos, column).Value = "S";
libro.Cell(3, column).Value = row["Concepto"].ToString();
libro.Cell(4, column).Value = row["Codigo"].ToString();
libro.Column(column).Width = 15;

View File

@@ -82,17 +82,26 @@
</div>
</asp:Panel>
<br />
<div style=" text-align: right" ">
<div >
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVCalcularUtilidades.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVCalcularUtilidades.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<asp:GridView ID="GVCalcularUtilidades" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall GVCalcularUtilidades" AutoGenerateColumns="False"
DataKeyNames="Nombre,CvePersonal,DiasLaborados,SueldoTotal,Importe">
DataKeyNames="Nombre,CvePersonal,DiasLaborados,SueldoTotal,Importe" >
<Columns>
<asp:TemplateField HeaderText="Código ">
<ItemTemplate>
<asp:Label ID="lblC" runat="server" Text='<%# Eval("Codigo")%>'> </asp:Label>
<%--<asp:Literal ID="lblC" runat="server" > </asp:Literal>--%>
<asp:HyperLink ID="lblC" runat="server" Text='<%# Eval("Codigo") %>' NavigateUrl='<%# Eval("CvePersonal", "~/RH/Personal.aspx?CvePersonal={0}") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Nombre ">
<ItemTemplate>
<asp:Label ID="lblnombreCompleto" runat="server" Text='<%# Eval("Nombre")%>'> </asp:Label>
<asp:HyperLink ID="lblnombreCompleto" runat="server" Text='<%# Eval("Nombre") %>' NavigateUrl='<%# Eval("CvePersonal", "~/RH/Personal.aspx?CvePersonal={0}") %>'></asp:HyperLink>
<%--<asp:Literal ID="lblnombreCompleto" runat="server" > </asp:Literal>--%>
</ItemTemplate>
</asp:TemplateField>

View File

@@ -241,4 +241,18 @@ Partial Class Nomina_ReportePTU
End If
End If
End Sub
'Protected Sub GVCalcularUtilidades_RowDataBound(sender As Object, e As GridViewRowEventArgs)
' If e.Row.RowType = DataControlRowType.DataRow Then
' Dim dataItem As DataRowView = CType(e.Row.DataItem, DataRowView)
' Dim cvePersonal As String = e.Row.DataKey("CvePersonal").ToString()
' Dim codigo As String = e.Row.DataKey("Codigo").ToString()
' Dim nombre As String = e.Row.DataKey("Nombre").ToString()
' Dim lblC As Label = CType(e.Row.FindControl("lblC"), Label)
' lblC.Text = String.Format("<a class='Texto sline' href='/RH/Personal.aspx?CvePersonal={0}'>{1}</a>", cvePersonal, codigo)
' Dim lblnombreCompleto As Label = CType(e.Row.FindControl("lblnombreCompleto"), Label)
' lblnombreCompleto.Text = String.Format("<a class='Texto sline' href='/RH/Personal.aspx?CvePersonal={0}'>{1}</a>", cvePersonal, nombre)
' End If
'End Sub
End Class

View File

@@ -16,6 +16,9 @@
<li>
<asp:LinkButton runat="server" ID="BtnAgregarMotivoD" data-toggle="tooltip" data-placement="left" title="Agregar un Defecto" Text="<i class='fa fa-plus'></i>Agregar Asistencia/Inacistencia"></asp:LinkButton>
</li>
<li>
<asp:LinkButton runat="server" ID="LnkCargapredefinidos" OnClick="LnkCargapredefinidos_Click" Text="<i class='fa fa-plus'></i>Agregar Predefinidos" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>

View File

@@ -48,6 +48,7 @@ Partial Class RH_CatAsistenciasInasistencias
Dim ObjAsistenciasInasistencias As New ClsRH
If ObjAsistenciasInasistencias.GetAsistenciasInasistencias(UsuarioActual.CveEmpresa) Then
ViewState("DTAsistenciasInasistencias") = ObjAsistenciasInasistencias.DtResultados
LnkCargapredefinidos.Visible = ObjAsistenciasInasistencias.DtResultados.Rows.Count = 0
Else
Me.GvDatos.DataSource = Nothing
End If
@@ -258,4 +259,17 @@ Partial Class RH_CatAsistenciasInasistencias
#End Region
Protected Sub LnkCargapredefinidos_Click(sender As Object, e As EventArgs)
Using objrh As New ClsRH()
'objrh.IniciaTransacSQL()
If objrh.CargaInicialAsistenciaInasistencia(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then
'objrh.Commit()
Else
'objrh.RollBack()
End If
End Using
CargaDatos()
End Sub
End Class

View File

@@ -201,13 +201,13 @@
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtCiudadOrigen" runat="server" MaxLength="30"></asp:TextBox>
<label for="<%= TxtCiudadOrigen.ClientID.ToString()%>">Ciudad Nacimiento: </label>
<asp:DropDownList ID="DdlEstados" runat="server" DataTextField="NombreEstado" DataValueField="CveEstado" Width="100%" Class="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlEstados.ClientID.ToString()%>">Estado de nacimiento: </label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlEstados" runat="server" DataTextField="NombreEstado" DataValueField="CveEstado" Width="100%" Class="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlEstados.ClientID.ToString()%>">Lugar de nacimiento: </label>
<asp:TextBox CssClass="form-control" ID="TxtCiudadOrigen" runat="server" MaxLength="30"></asp:TextBox>
<label for="<%= TxtCiudadOrigen.ClientID.ToString()%>">Ciudad Nacimiento: </label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
@@ -315,6 +315,13 @@
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtCP" runat="server" MaxLength="5"></asp:TextBox>
<asp:CustomValidator ID="cvCadena" runat="server" ControlToValidate="TxtCP" Enabled="true"
OnServerValidate="cvCadena_ServerValidate" ValidationGroup="GrpGuardar"
ErrorMessage="La cadena debe ser numérica y de 5 dígitos."></asp:CustomValidator>
<asp:RequiredFieldValidator ID="rfvTxtCP" runat="server" ControlToValidate="TxtCP"
CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Código Postal''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<label for="<%= TxtCP.ClientID.ToString()%>">Código Postal: </label>
<i></i>
</div>

View File

@@ -8103,5 +8103,22 @@ Partial Class RH_Personal
UpDatos.Update()
End Sub
Protected Sub cvCadena_ServerValidate(source As Object, args As ServerValidateEventArgs)
Dim retorno As Boolean = True
' Verifica que la longitud de la cadena sea 5
If Len(args.Value) <> 5 Then
retorno = False
End If
' Verifica que la cadena sea numérica
If Not IsNumeric(args.Value) Then
retorno = False
End If
args.IsValid = retorno
End Sub
End Class