diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb
index fcb9f0653..4261e7144 100644
--- a/App_Code/ClsNominas.vb
+++ b/App_Code/ClsNominas.vb
@@ -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
diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 277b6fbf5..022a7f354 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -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
diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb
index 259de04bf..10d97f41f 100644
--- a/App_Code/ClsRH.vb
+++ b/App_Code/ClsRH.vb
@@ -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
diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb
index 494091251..4f113db72 100644
--- a/General/SaldosIniciales.aspx.vb
+++ b/General/SaldosIniciales.aspx.vb
@@ -3967,7 +3967,7 @@ Partial Class General_SaldosIniciales
TxtExcel.Text = ""
UpDatos.Update()
Else
- Alert(String.Format("Se agregaron: {0} Empleados correctamente.", NumRows), TipoMensaje.MsgInformacion)
+ Alert(String.Format("Se agregaron: {0} Empleados correctamente.", ContadorAgregados), TipoMensaje.MsgInformacion)
ObjRH.Commit()
TxtExcel.Text = ""
UpDatos.Update()
diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs
index 0d1a67388..159550188 100644
--- a/Nomina/Nomina.aspx.cs
+++ b/Nomina/Nomina.aspx.cs
@@ -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;
diff --git a/Nomina/ReportePTU.aspx b/Nomina/ReportePTU.aspx
index d20134520..c48800e94 100644
--- a/Nomina/ReportePTU.aspx
+++ b/Nomina/ReportePTU.aspx
@@ -82,17 +82,26 @@
+