From f56bdba4034df33c19d79e8c7d20aea7c38b220e Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Tue, 6 Oct 2020 13:35:49 -0700 Subject: [PATCH] --- App_Code/CFDITimbre.vb | 3 +- App_Code/LogicNominas.vb | 332 +++++--------------------- App_Code/Timbrado.vb | 6 +- Ashx/SIGWeb.ashx | 2 +- Empresas/1/Formatos/ResguardoAF.rdlc | 69 +----- Empresas/1/Formatos/ResguardoAF2.rdlc | 45 ---- Nomina/Nomina2.aspx | 6 +- Nomina/Nomina2.aspx.cs | 282 +++++++++++++++------- Scripts/custom.js | 26 +- vwd.webinfo | 4 + 10 files changed, 306 insertions(+), 469 deletions(-) diff --git a/App_Code/CFDITimbre.vb b/App_Code/CFDITimbre.vb index ccccd30a6..a9509a624 100644 --- a/App_Code/CFDITimbre.vb +++ b/App_Code/CFDITimbre.vb @@ -363,7 +363,8 @@ Public Class CFDINominaOtrosPagos Public Property TipoOtroPago As String Public Property Clave As String Public Property Concepto As String - Public Property Importe As Double + Public Property Importe As Decimal + Public Property Subsidiocausado As Decimal End Class diff --git a/App_Code/LogicNominas.vb b/App_Code/LogicNominas.vb index 542714a52..9e99e3c97 100644 --- a/App_Code/LogicNominas.vb +++ b/App_Code/LogicNominas.vb @@ -107,7 +107,7 @@ Public Class LogicNominas 'Conexiones a la Base de Datos Using objNomina As ClsNominas = New ClsNominas() Using objPersonal As ClsRH = New ClsRH() - If objNomina.GetNom_Nominas(CveNomina, CvePersonal, CvePeriodo, -1, UsuarioActual.CveEmpresa) AndAlso objNomina.DtResultados.Rows.Count > 0 Then + If objNomina.GetNom_Nominas(CveNomina, -1, -1, -1, UsuarioActual.CveEmpresa) AndAlso objNomina.DtResultados.Rows.Count > 0 Then CvePersonal = objNomina.DtResultados.Rows(0)("CvePersonal").ToString().ToEntero() CvePeriodo = objNomina.DtResultados.Rows(0)("CvePeriodo").ToString().ToEntero() Serie = objNomina.Serie @@ -116,7 +116,6 @@ Public Class LogicNominas If continuar Then GetError = "No se pudo obtener la información de la nomina" 'si continuar= true el error se origino en este nodo y se le asigno el error continuar = False End If - If continuar AndAlso objPersonal.GetPersonal(CvePersonal, UsuarioActual.CveEmpresa) AndAlso objPersonal.DtResultados.Rows.Count > 0 Then RFC = objPersonal.RFC NombreCompleto = objPersonal.NombreCompleto @@ -143,11 +142,11 @@ Public Class LogicNominas If continuar Then GetError = "No se pudo obtener la información del empleado" 'si continuar= true el error se origino en este nodo y le asigno el error continuar = False End If - If continuar AndAlso objNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then If objNomina.DtResultados.Rows.Count > 0 Then - DtPercepciones = objNomina.DtResultados.FiltraParametros("Tipo = 'P' AND EsPadre = 1 ") - DtDeducciones = objNomina.DtResultados.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ") + DtPercepciones = objNomina.DtResultados.FiltraParametros("Tipo = 'P' AND EsPadre = 1 AND SoloVisible =0") + DtDeducciones = objNomina.DtResultados.FiltraParametros("Tipo = 'D' AND EsPadre = 1 AND SoloVisible =0") + DtOtrosPagos = objNomina.DtResultados.FiltraParametros(" TipoConceptoSAT='O'") TotalPercepciones = DtPercepciones.SUM("Importe").ToString().ToDecimal() TotalDeducciones = DtDeducciones.SUM("Importe").ToString().ToDecimal() Total = CType((Total + DtPercepciones.SUM("Importe")), Decimal) @@ -161,7 +160,6 @@ Public Class LogicNominas Else continuar = False End If - If continuar AndAlso objNomina.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, CvePeriodo) AndAlso objNomina.DtResultados.Rows().Count > 0 Then Dim DrPeriodo As DataRow = objNomina.DtResultados.Rows(0) @@ -183,8 +181,6 @@ Public Class LogicNominas Else continuar = False End If - - If DiasIncapacitados > 0 Then If objNomina.GetIncapacidades(CvePersonal, CvePeriodo, UsuarioActual.CveEmpresa) Then If objNomina.DtResultados IsNot Nothing AndAlso objNomina.DtResultados.Rows.Count > 0 Then @@ -222,10 +218,11 @@ Public Class LogicNominas cfdi.Receptor.RFC = RFC cfdi.Receptor.Nombre = NombreCompleto + Dim ObjPercepciones As New List(Of CFDINominaPercepciones) + Dim ObjDeducciones As New List(Of CFDINominaDeducciones) + Dim ObjHorasExtras As New List(Of CFDINominaHorasExtras) + Dim ObjOtrosPagos As New List(Of CFDINominaOtrosPagos) If DtPercepciones IsNot Nothing AndAlso DtPercepciones.Rows.Count > 0 Then - Dim ObjPercepciones As New List(Of CFDINominaPercepciones) - Dim ObjHorasExtras As New List(Of CFDINominaHorasExtras) - Dim ObjOtrosPagos As New List(Of CFDINominaOtrosPagos) For Each Row As DataRow In DtPercepciones.Rows If Row("Importe").ToString().ToDecimal > 0 AndAlso Row("SATCveConcepto").ToString().ToEntero() <> 17 Then If Row("CveSATConcepto").ToString() = "" Then cfdi.AddMsg(String.Format("Concepto No registrado ({0})", Row("Concepto").ToString())) : Exit For @@ -248,11 +245,62 @@ Public Class LogicNominas .Clave = Row("Codigo").ToString(), .Concepto = Row("Concepto").ToString(), .Importe = Row("Importe").ToString().ToDecimal}) End If Next - If ObjPercepciones IsNot Nothing AndAlso ObjPercepciones.Count > 0 Then cfdi.Nomina.Percepciones = ObjPercepciones - If ObjHorasExtras IsNot Nothing AndAlso ObjHorasExtras.Count > 0 Then cfdi.Nomina.HorasExtras = ObjHorasExtras - If ObjOtrosPagos IsNot Nothing AndAlso ObjOtrosPagos.Count > 0 Then cfdi.Nomina.OtrosPagos = ObjOtrosPagos End If + + If DtDeducciones IsNot Nothing AndAlso DtDeducciones.Rows.Count > 0 Then + For Each Row As DataRow In DtDeducciones.Rows + If Row("Importe").ToString().ToDecimal > 0 Then + + If Row("CveSATConcepto").ToString() = "" Then cfdi.AddMsg(String.Format("Concepto No registrado ({0})", Row("Concepto").ToString())) : Exit For + If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 17 Then + + ObjPercepciones.Add(New CFDINominaPercepciones With {.TipoPercepcion = Row("SATCveConcepto").ToString(), .Clave = Row("Codigo").ToString(), .Concepto = Row("Concepto").ToString(), + .ImporteGravado = Row("ImporteGravado").ToString().ToDecimal(), .ImporteExento = Row("ImporteExento").ToString().ToDecimal()}) + Else + ObjDeducciones.Add(New CFDINominaDeducciones With {.TipoDeduccion = Row("SATCveConcepto").ToString(), + .Clave = Row("Codigo").ToString(), + .Concepto = Row("Concepto").ToString(), + .Importe = Row("Importe").ToString().ToDecimal()} + ) + End If + + End If + + 'subsidio al empleo + 'If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 17 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio + ' ObjOtrosPagos.Add(New CFDINominaOtrosPagos With {.TipoOtroPago = "002", ' codigo fijo, por ser referente a subsidio al empleo + ' .Clave = Row("Codigo").ToString(), .Concepto = Row("Concepto").ToString(), .Importe = Row("Importe").ToString().ToDecimal}) + 'End If + Next + End If + + If DtOtrosPagos IsNot Nothing AndAlso DtOtrosPagos.Rows.Count > 0 Then + For Each Row As DataRow In DtOtrosPagos.Rows + If (Row("Importe").ToString().ToDecimal() > 0) OrElse (Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 2 AndAlso Row("Importe").ToString().ToDecimal() < 0) Then + + If Row("CveSATConcepto").ToString() = "" Then cfdi.AddMsg(String.Format("Concepto No registrado ({0})", Row("Concepto").ToString())) : Exit For + + ObjOtrosPagos.Add(New CFDINominaOtrosPagos With {.TipoOtroPago = Row("SATCveConcepto").ToString(), .Clave = Row("Codigo").ToString(), .Concepto = Row("Concepto").ToString(), + .Importe = Row("Importe").ToString().ToDecimal().Abs(), .Subsidiocausado = Row("ImporteGravado").ToString().ToDecimal().Abs()}) + + + If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 7 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio + ObjDeducciones.Add(New CFDINominaDeducciones With {.TipoDeduccion = "002", ' codigo fijo + .Clave = Row("Codigo").ToString(), .Concepto = "ISR", .Importe = Row("Importe").ToString().ToDecimal}) + End If + If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 8 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio + ObjDeducciones.Add(New CFDINominaDeducciones With {.TipoDeduccion = "071", ' codigo fijo + .Clave = Row("Codigo").ToString(), .Concepto = "(Ajuste en Subsidio para el empleo (efectivamente entregado al trabajador)", .Importe = Row("Importe").ToString().ToDecimal}) + End If + End If + + Next + End If + If ObjPercepciones IsNot Nothing AndAlso ObjPercepciones.Count > 0 Then cfdi.Nomina.Percepciones = ObjPercepciones + If ObjHorasExtras IsNot Nothing AndAlso ObjHorasExtras.Count > 0 Then cfdi.Nomina.HorasExtras = ObjHorasExtras + If ObjOtrosPagos IsNot Nothing AndAlso ObjOtrosPagos.Count > 0 Then cfdi.Nomina.OtrosPagos = ObjOtrosPagos If ObjIncapacidades IsNot Nothing AndAlso ObjIncapacidades.Count > 0 Then cfdi.Nomina.Incapacidades = ObjIncapacidades + If ObjDeducciones IsNot Nothing AndAlso ObjDeducciones.Count > 0 Then cfdi.Nomina.Deducciones = ObjDeducciones cfdi.Comprobante.Version = "3.3" @@ -301,260 +349,4 @@ Public Class LogicNominas End If End Function - Private Function PreTimbrar(CveNomina As Integer, CvePersonal As Integer, CvePeriodo As Integer, UsuarioActual As Usuario) As CFDITimbre - - Dim cfdi As New CFDITimbre - Dim objPersonal As New ClsRH - Dim objNomina As New ClsNominas - objPersonal.GetPersonal(CvePersonal, UsuarioActual.CveEmpresa) - objNomina.GetNom_Nominas(CveNomina, CvePersonal, CvePeriodo, -1, UsuarioActual.CveEmpresa) - Dim DtPercepciones As Data.DataTable = Nothing - Dim DtDeducciones As Data.DataTable = Nothing - Dim DtOtrosPagos As Data.DataTable = Nothing - Dim TotalPercepciones As Decimal = 0 - Dim TotalDeducciones As Decimal = 0 - Dim TotalOtrosPagos As Decimal = 0 - Dim Total As Decimal = 0 - If objNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then - If objNomina.DtResultados.Rows.Count > 0 Then - DtPercepciones = objNomina.DtResultados.FiltraParametros("Tipo = 'P' AND EsPadre = 1 ") - DtDeducciones = objNomina.DtResultados.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ") - TotalPercepciones = DtPercepciones.SUM("Importe").ToString().ToDecimal() - TotalDeducciones = DtDeducciones.SUM("Importe").ToString().ToDecimal() - Total = CType((Total + DtPercepciones.SUM("Importe")), Decimal) - End If - End If - 'nota. siempre y cuando halla concepto 19 - Dim DtHorasExtras As Data.DataTable = Nothing - If objNomina.GetHorasExtras(CvePersonal, CvePeriodo, UsuarioActual.CveEmpresa) Then - DtHorasExtras = objNomina.DtResultados - End If - - Dim TotalExcento As Decimal = 0 - Dim TotalGravado As Decimal = 0 - - Dim AntiguedadSemanas As Integer = DateDiff(DateInterval.Weekday, objPersonal.FechaIngreso, Now).ToEntero() - Dim FormatoReciboCFDi As String = objPersonal.FormatoReciboCFDi - - Dim FechaInicio, FechaFin, FechaPago As Date - Dim DiasPagados As Integer = 0 - Dim Msg As String = String.Empty - Dim DiasIncapacitados As Integer = 0 - Dim DrPeriodo As DataRow = Nothing - If objNomina.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, CvePeriodo) Then - If objNomina.DtResultados.Rows().Count > 0 Then - DrPeriodo = objNomina.DtResultados.Rows(0) - End If - End If - - 'Dim DrPeriodo As DataRow = GlobalDTNominasPeriodos(-1, CvePeriodo, -1).FiltroPrimero("") - If DrPeriodo IsNot Nothing Then - FechaInicio = DrPeriodo("FechaInicio").ToString().ToDate - FechaFin = DrPeriodo("FechaFin").ToString().ToDate - FechaPago = DrPeriodo("FechaPago").ToString().ToDate - If objPersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, FechaInicio, FechaFin, UsuarioActual.CveEmpresa) Then - - Dim Asistencias As Integer = objPersonal.DtResultados.SUM("AplicaAsistencia").ToEntero() - Dim Vacaciones As Integer = objPersonal.DtResultados.SUM("AplicaVacacion").ToEntero() - DiasIncapacitados = objPersonal.DtResultados.SUM("AplicaIncapacidad").ToEntero() - DiasPagados = Asistencias - Vacaciones - If DiasPagados < 0 Then DiasPagados = 0 - - End If - - End If - - 'Tipo Nomina O de Ordinaria o E de extraordinaria - 'Dim FechaPago As Date = Now - Dim TotalSueldos As Decimal = 0 - Dim TotalIndemnizacion As Decimal = 0 - Dim TotalJubilacion As Decimal = 0 - - cfdi.Nomina = New CFDINomina - cfdi.Nomina.Version = "1.2" - cfdi.Nomina.TipoNomina = If(objNomina.CveTipoPeriodo = 6, "E", "O") - cfdi.Nomina.FechaPago = FechaPago - cfdi.Nomina.FechaInicio = FechaInicio.ToString() - cfdi.Nomina.FechaFin = FechaFin.ToString() - cfdi.Nomina.NumDiasPagados = DiasPagados - cfdi.Emisor.Nombre = UsuarioActual.Empresa.Empresa - cfdi.Emisor.RFC = UsuarioActual.Empresa.RFC - cfdi.Emisor.RegistroPatronal = UsuarioActual.Empresa.RegistroPatronal - cfdi.Emisor.RegimenFiscal = UsuarioActual.Empresa.CodigoRegimenFiscal - 'aplica persona fisica debe de tener CURP - If cfdi.Emisor.RegimenFiscal.Contiene("605", "606", "608", "611", "612", "614", "616", "621", "622", "629", "630", "615") Then - cfdi.Emisor.CURP = UsuarioActual.Empresa.CURP - End If - cfdi.Nomina.CveNomina = CveNomina - - cfdi.Receptor.UsoCFDI = "P01" - cfdi.Receptor.RFC = objPersonal.RFC - cfdi.Receptor.Nombre = objPersonal.NombreCompleto - - If DtPercepciones IsNot Nothing Then - If DtPercepciones.Rows.Count > 0 Then - Dim ObjPercepciones As New List(Of CFDINominaPercepciones) - Dim ObjHorasExtras As New List(Of CFDINominaHorasExtras) - Dim ObjOtrosPagos As New List(Of CFDINominaOtrosPagos) - - For Each Row As DataRow In DtPercepciones.Rows - If Row("Importe").ToString().ToDecimal > 0 AndAlso Row("SATCveConcepto").ToString().ToEntero() <> 17 Then - If Row("CveSATConcepto").ToString() = "" Then cfdi.AddMsg(String.Format("Concepto No registrado ({0})", Row("Concepto").ToString())) : Exit For - - ObjPercepciones.Add(New CFDINominaPercepciones With {.TipoPercepcion = Row("SATCveConcepto").ToString(), - .Clave = Row("Codigo").ToString(), - .Concepto = Row("Concepto").ToString(), - .ImporteGravado = Row("ImporteGravado").ToString().ToDecimal, - .ImporteExento = Row("ImporteExento").ToString().ToDecimal} - ) - - End If - 'RMF, falta poner el numero de horas pagadas - If Row("CveSATConcepto").ToString().ToEntero() = 19 Then 'cuando son horas extras - - 'Obtengo el desglose de horas extras - - If DtHorasExtras IsNot Nothing Then - - Dim dr As DataRow = DtHorasExtras.FiltroPrimero("") - If dr IsNot Nothing Then - - If dr("HorasDobles").ToString().ToDouble > 0 Then ObjHorasExtras.Add(New CFDINominaHorasExtras With {.Dias = dr("DiasHorasDobles").ToString().ToEntero().ToString(), .TipoHoras = "01", .HorasExtra = dr("HorasDobles").ToString().ToEntero(), .ImportePagado = Row("Importe").ToString().ToDecimal}) - If dr("HorasTriples").ToString().ToDouble > 0 Then ObjHorasExtras.Add(New CFDINominaHorasExtras With {.Dias = dr("DiasHorasTriples").ToString().ToEntero().ToString(), .TipoHoras = "02", .HorasExtra = dr("HorasTriples").ToString().ToEntero(), .ImportePagado = Row("Importe").ToString().ToDecimal}) - - End If - - End If - End If - 'subsidio al empleo - If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 17 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio - - ObjOtrosPagos.Add(New CFDINominaOtrosPagos With {.TipoOtroPago = "002", ' codigo fijo, por ser refernte a subsidio al empleo - .Clave = Row("Codigo").ToString(), - .Concepto = Row("Concepto").ToString(), - .Importe = Row("Importe").ToString().ToDecimal} - ) - - End If - - Next - If ObjPercepciones IsNot Nothing AndAlso ObjPercepciones.Count > 0 Then cfdi.Nomina.Percepciones = ObjPercepciones - If ObjHorasExtras IsNot Nothing AndAlso ObjHorasExtras.Count > 0 Then cfdi.Nomina.HorasExtras = ObjHorasExtras - If ObjOtrosPagos IsNot Nothing AndAlso ObjOtrosPagos.Count > 0 Then cfdi.Nomina.OtrosPagos = ObjOtrosPagos - - End If - - End If - - 'cargo las incapacidades - If DiasIncapacitados > 0 Then - - If objNomina.GetIncapacidades(CvePersonal, CvePeriodo, UsuarioActual.CveEmpresa) Then - - If objNomina.DtResultados IsNot Nothing AndAlso objNomina.DtResultados.Rows.Count > 0 Then - Dim ObjIncapacidades As New List(Of CFDINominaIncapacidades) - For Each dr As DataRow In objNomina.DtResultados.Rows - ObjIncapacidades.Add(New CFDINominaIncapacidades With {.DiasIncapacidad = dr("Dias").ToString().ToEntero().ToString(), .TipoIncapacidad = dr("ClaveTipoIncapacidad").ToString(), .Importe = dr("Descuento").ToString().ToDecimal}) - Next - If ObjIncapacidades IsNot Nothing AndAlso ObjIncapacidades.Count > 0 Then cfdi.Nomina.Incapacidades = ObjIncapacidades - End If - End If - End If - - TotalExcento = 0 - TotalGravado = 0 - - If DtDeducciones IsNot Nothing Then - If DtDeducciones.Rows.Count > 0 Then - - Dim ObjDeducciones As New List(Of CFDINominaDeducciones) - For Each Row As DataRow In DtDeducciones.Rows - - If Row("Importe").ToString().ToDecimal > 0 Then - - If Row("CveSATConcepto").ToString() = "" Then cfdi.AddMsg(String.Format("Concepto No registrado ({0})", Row("Concepto").ToString())) : Exit For - - ObjDeducciones.Add(New CFDINominaDeducciones With {.TipoDeduccion = Row("SATCveConcepto").ToString(), - .Clave = Row("Codigo").ToString(), - .Concepto = Row("Concepto").ToString(), - .Importe = Row("Importe").ToString().ToDecimal} - ) - - End If - Next - If ObjDeducciones IsNot Nothing AndAlso ObjDeducciones.Count > 0 Then cfdi.Nomina.Deducciones = ObjDeducciones - End If - - End If - - - 'If DtOtrosPagos IsNot Nothing Then - ' If DtOtrosPagos.Rows.Count > 0 Then - ' ' Total = CType((Total - DtOtrosPagos.SUM("Importe")), Decimal) - ' Dim ObjOtrosPagos As New List(Of CFDINominaOtrosPagos) - ' ' End If - - ' ' For Each Row As DataRow In DtOtrosPagos.Rows - ' ' If Row("Importe").ToString().ToDecimal > 0 Then - ' ' If Row("CveSATConcepto").ToString() = "" Then - ' ' Msg = String.Format("Concepto No registrado ({0})", Row("Concepto").ToString()) - ' ' Else - ' ' Msg = cfdi.ObjCompNomina12.AgregarOtroPago(Row("SATCveConcepto").ToString(), Row("Codigo").ToString(), Row("Concepto").ToString(), 0) - ' ' 'Msg = CFDi.ObjCompNomina12.CargarSubsidioAlEmpleo(0) - ' ' 'Msg = CFDi.ObjCompNomina12.CargarCompensacionSaldosAFavor(0, 0, 0) - ' ' End If - - ' ' If Msg <> String.Empty Then - ' ' Me.OnError("El SAT regresó el siguiente mensaje: " & Msg & ". Objeto: Otros Pagos", New Exception) - ' ' Exit For - ' ' End If - ' ' End If - ' ' Next - ' If ObjOtrosPagos IsNot Nothing AndAlso ObjOtrosPagos.Count > 0 Then cfdi.Nomina.OtrosPagos = ObjOtrosPagos - ' End If - 'End If - - cfdi.Comprobante.Version = "3.3" - cfdi.Comprobante.Serie = objNomina.Serie - cfdi.Comprobante.Folio = objNomina.Folio.ToString() - cfdi.Comprobante.Fecha = Now - cfdi.Comprobante.Subtotal = cfdi.Nomina.TotalPercepciones.ToString().ToDecimal() + cfdi.Nomina.TotalOtrosPagos.ToString().ToDecimal() - cfdi.Comprobante.Descuentos = cfdi.Nomina.TotalDeducciones.ToString().ToDecimal() - cfdi.Comprobante.Total = cfdi.Comprobante.Subtotal - cfdi.Comprobante.Descuentos 'cfdi.Nomina.TotalPercepciones + cfdi.Nomina.TotalOtrosPagos - cfdi.Nomina.TotalDeducciones - cfdi.Comprobante.MotivoDescuento = "" '"Deducciones nómina" - cfdi.Comprobante.Moneda = "MXN" - cfdi.Comprobante.TipoComprobante = "N" - cfdi.Comprobante.TipoDocto = "Egs" - cfdi.Comprobante.MetodoPago = "PUE" - cfdi.Comprobante.CondicionesdePago = "" '"CONTADO" - cfdi.Comprobante.FormadePago = "99" - cfdi.Comprobante.LugarExpedicion = UsuarioActual.Empresa.CP.ToString() ' AHORITA SOLO SE REQUIERE ESPECIFICAR EL CODIGO POSTAL - cfdi.Comprobante.NumCuentaPago = "" 'objPersonal.BancoNumCuenta - - cfdi.Nomina.Receptor.CURP = objPersonal.CURP - cfdi.Nomina.Receptor.NSS = objPersonal.NumeroSS - cfdi.Nomina.Receptor.FechaInicioContrato = objPersonal.FechaInicioContrato.ToString() - cfdi.Nomina.Receptor.Antiguedad = $"P{AntiguedadSemanas}W" - cfdi.Nomina.Receptor.TipoContrato = objPersonal.CodigoTipoContrato - cfdi.Nomina.Receptor.CodigoTipoJornada = objPersonal.ClaveTipoJornada - cfdi.Nomina.Receptor.CodigoRegimenContratacion = objPersonal.CveRegimenContratacion - cfdi.Nomina.Receptor.CodigoEmpleado = objPersonal.Codigo - cfdi.Nomina.Receptor.Departamento = objPersonal.Departamento - cfdi.Nomina.Receptor.Puesto = objPersonal.Puesto - cfdi.Nomina.Receptor.CodigoRiesgoPuesto = objPersonal.CveSATRiesgoPuesto.ToString() - cfdi.Nomina.Receptor.TipoPeriodo = objPersonal.TipoPeriodoPago - cfdi.Nomina.Receptor.CodigoBanco = objPersonal.ClaveBanco - cfdi.Nomina.Receptor.NumeroCuenta = objPersonal.BancoNumCuenta - cfdi.Nomina.Receptor.SDI = objPersonal.SDI - cfdi.Nomina.Receptor.SBC = objPersonal.SDI - cfdi.Nomina.Receptor.Sindicalizado = "" - cfdi.Nomina.Receptor.CodigoEntidadFederativa = objPersonal.ClaveEstado - - cfdi.Conceptos.Add(New CFDIConceptos With {.Cantidad = 1, .ClaveUnidad = "ACT", .ClaveProdServ = "84111505", .Descripcion = "Pago de nómina", .ValorUnitario = cfdi.Comprobante.Subtotal, .Importe = cfdi.Comprobante.Subtotal, .Descuento = cfdi.Nomina.TotalDeducciones.ToString().ToDecimal()}) - - objPersonal.Dispose() - objNomina.Dispose() - - Return cfdi - End Function End Class diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 520ae6bce..31bb637fa 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -2048,7 +2048,7 @@ Public Class Timbrado For Each otpag As CFDINominaOtrosPagos In ObjCFDITimbre.Nomina.OtrosPagos cfdi.Nomina12OtroPago(otpag.TipoOtroPago, otpag.Clave, otpag.Concepto, otpag.Importe) If otpag.TipoOtroPago = "002" Then - cfdi.Nomina12SubsidioAlEmpleo(otpag.Importe) + cfdi.Nomina12SubsidioAlEmpleo(otpag.Subsidiocausado) End If Next @@ -2895,10 +2895,10 @@ Public Class Timbrado Nom.OtrosPagos(i).TipoOtroPago = otpag.TipoOtroPago Nom.OtrosPagos(i).Clave = otpag.Clave Nom.OtrosPagos(i).Concepto = otpag.Concepto - Nom.OtrosPagos(i).Importe = otpag.Importe.ToDecimal + Nom.OtrosPagos(i).Importe = otpag.Importe If otpag.TipoOtroPago = "002" Then Nom.OtrosPagos(i).SubsidioAlEmpleo = New Profact.TimbraCFDI33.Complementos.Nomina12.NominaOtroPagoSubsidioAlEmpleo() - Nom.OtrosPagos(i).SubsidioAlEmpleo.SubsidioCausado = otpag.Importe.ToDecimal + Nom.OtrosPagos(i).SubsidioAlEmpleo.SubsidioCausado = otpag.Importe End If i += 1 Next diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index fe81513fa..88ad21772 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -52,7 +52,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState Case "sendMail" context.Response.Write(sendMail(context)) Case "sendMailLPM" - context.Response.Write(sendMail(context)) + context.Response.Write(sendMailLPM(context)) End Select Catch ex As Exception diff --git a/Empresas/1/Formatos/ResguardoAF.rdlc b/Empresas/1/Formatos/ResguardoAF.rdlc index 93ec0fd17..b6ae1303e 100644 --- a/Empresas/1/Formatos/ResguardoAF.rdlc +++ b/Empresas/1/Formatos/ResguardoAF.rdlc @@ -535,7 +535,7 @@ - 7.37187cm + 7.35216cm true true @@ -557,7 +557,7 @@ Textbox31 - 0.07053cm + 0.07054cm 0.11166cm 0.6cm 2.77516cm @@ -588,7 +588,7 @@ Textbox31 - 0.1058cm + 0.10581cm 2.9221cm 1.2cm 13.85147cm @@ -604,7 +604,7 @@ - 0.10581cm + 0.10582cm 0.05604cm 0cm 16.76689cm @@ -616,7 +616,7 @@ - 1.3058cm + 1.30581cm 0.11166cm 0cm 16.71127cm @@ -646,7 +646,7 @@ Textbox21 - 1.65886cm + 1.65887cm 0.55741cm 0.63528cm 7.11779cm @@ -692,7 +692,7 @@ Textbox21 - 2.85337cm + 2.85338cm 0.55115cm 0.90367cm 7.11779cm @@ -726,7 +726,7 @@ Textbox22 - 1.3058cm + 1.30581cm 0.56367cm 0.6cm 7.11153cm @@ -760,7 +760,7 @@ Textbox21 - 1.62358cm + 1.62359cm 9.66204cm 0.63528cm 7.11779cm @@ -806,7 +806,7 @@ Textbox21 - 2.85337cm + 2.85338cm 9.65578cm 0.90367cm 7.11779cm @@ -840,7 +840,7 @@ Textbox22 - 1.3058cm + 1.30581cm 9.66204cm 0.6cm 7.11779cm @@ -873,7 +873,7 @@ Textbox17 - 3.82759cm + 3.8276cm 0.00042cm 1.36498cm 16.77315cm @@ -888,51 +888,6 @@ 2pt - - true - true - - - - - Fecha Impresión: - - - - - - - - =Today - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha Impresión: - - - - - - - - =Today - - - - - - 2pt - 2pt - 2pt - 2pt - -