-- mejora en timbrado de nómina en PAC 3

This commit is contained in:
2023-07-15 10:29:53 -07:00
parent 5197f2a1db
commit df2442e0e3
9 changed files with 84 additions and 99 deletions

View File

@@ -308,8 +308,8 @@ Public Class CFDINominaReceptor
Public Property TipoPeriodo As String = ""
Public Property CodigoBanco As String = ""
Public Property NumeroCuenta As String = ""
Public Property SDI As Double = 0
Public Property SBC As Double = 0
Public Property SDI As Decimal = 0
Public Property SBC As Decimal = 0
Public Property CodigoEntidadFederativa As String = ""
End Class
@@ -486,7 +486,7 @@ Public Class CFDIComplementoPagos20
Get
Dim Ret As Decimal = 0
For Each cfd As CFDIComplementoPago In ComplementoPagos
Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.0 Select c.BaseMN).Sum() * cfd.TipoCambioP)
Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.0 Select c.BaseMN).Sum() * cfd.TipoCambioP.RoundSQL(4)) 'temporal redondeo a 4, 2023.07.07
Next
Return Ret.RoundSQL()
End Get

View File

@@ -1972,6 +1972,23 @@ Public Class ClsPaginas
End Set
End Property
Property GlobalDTTipoPeriodos(CveEmpresa As Integer) As DataTable
Get
Dim AppNombre As String = $"GlobalDTTipoPeriodo-{CveEmpresa}"
If HttpContext.Current.Application(AppNombre) Is Nothing Then
Dim dtt As DataTable = GlobalDTNominasPeriodos(-1, -1, CveEmpresa)
If dtt IsNot Nothing Then
Application(AppNombre) = dtt.FiltraParametros("", DistinctColumns:={"CveTipoPeriodo", "TipoPeriodo"})
End If
End If
GlobalDTTipoPeriodos = DirectCast(HttpContext.Current.Application(AppNombre), DataTable)
End Get
Set(value As DataTable)
Dim AppNombre As String = $"GlobalDTTipoPeriodo-{CveEmpresa}"
HttpContext.Current.Application(AppNombre) = value
End Set
End Property
'Fin TipoPeriodo
'Periodos
Property GlobalDTNominasPeriodos(CveTipoPeriodo As Integer, CvePeriodo As Integer, CveEmpresa As Integer) As DataTable

View File

@@ -1523,16 +1523,14 @@ Public Class ClsRH
Public Property TipoPeriodoPago As String
Public Property NumeroSS As String
Public Property SeInscribioSS As Boolean
Public Property SalarioDiarioPago As Double
Public Property NetoPeriodo As Double
Public Property SalarioDiario As Double
Public Property SDI As Double
Public Property SalarioDiarioSS As Double
Public Property SalarioDiarioPago As Decimal
Public Property NetoPeriodo As Decimal
Public Property SalarioDiario As Decimal
Public Property SDI As Decimal
Public Property SalarioDiarioSS As Decimal
Public Property NumDiasAguinaldo As Integer
Public Property PorPrimaVacacional As Double
Public Property Bono As Double
Public Property PorPrimaVacacional As Decimal
'Public Property Bono As Double
Public Property CveMetodoPago As Integer
Public Property MetodoPago As String
Public Property MetodoPagoSAT As String
@@ -1644,14 +1642,14 @@ Public Class ClsRH
TipoPeriodoPago = Data.Rows(0)("TipoPerioricidadPago").ToString
Me.NumeroSS = Data.Rows(0)("NumeroSS").ToString
Me.SeInscribioSS = CBool(Data.Rows(0)("SeInscribioSS").ToString)
Me.SalarioDiarioPago = Data.Rows(0)("SalarioDiarioPago").ToString.ToDouble
Me.SalarioDiarioPago = Data.Rows(0)("SalarioDiarioPago").ToString.ToDecimal
Me.NetoPeriodo = Data.Rows(0)("NetoPeriodo").ToString.ToDecimal
Me.SalarioDiario = Data.Rows(0)("SalarioDiario").ToString.ToDouble
Me.SDI = Data.Rows(0)("SDI").ToString.ToDouble
Me.Bono = Data.Rows(0)("Bono").ToString.ToDouble
Me.SalarioDiarioSS = Data.Rows(0)("SalarioDiarioSS").ToString.ToDouble
Me.SalarioDiario = Data.Rows(0)("SalarioDiario").ToString.ToDecimal
Me.SDI = Data.Rows(0)("SDI").ToString.ToDecimal
'Me.Bono = Data.Rows(0)("Bono").ToString.ToDouble
Me.SalarioDiarioSS = Data.Rows(0)("SalarioDiarioSS").ToString.ToDecimal
Me.NumDiasAguinaldo = Data.Rows(0)("NumDiasAguinaldo").ToString.ToEntero
Me.PorPrimaVacacional = Data.Rows(0)("PorPrimaVacacional").ToString.ToDouble
Me.PorPrimaVacacional = Data.Rows(0)("PorPrimaVacacional").ToString.ToDecimal
Me.CveMetodoPago = Data.Rows(0)("CveMetodoPago").ToString.ToEntero
Me.MetodoPago = Data.Rows(0)("MetodoPago").ToString
Me.MetodoPagoSAT = Data.Rows(0)("MetodoPagoSAT").ToString
@@ -1824,13 +1822,13 @@ Public Class ClsRH
Me.TipoPeriodo = Data.Rows(0)("TipoPeriodo").ToString
Me.NumeroSS = Data.Rows(0)("NumeroSS").ToString
Me.SeInscribioSS = CBool(Data.Rows(0)("SeInscribioSS").ToString)
Me.SalarioDiarioPago = Data.Rows(0)("SalarioDiarioPago").ToString.ToDouble
Me.SalarioDiario = Data.Rows(0)("SalarioDiario").ToString.ToDouble
Me.SDI = Data.Rows(0)("SDI").ToString.ToDouble
Me.Bono = Data.Rows(0)("Bono").ToString.ToDouble
Me.SalarioDiarioSS = Data.Rows(0)("SalarioDiarioSS").ToString.ToDouble
Me.SalarioDiarioPago = Data.Rows(0)("SalarioDiarioPago").ToString.ToDecimal
Me.SalarioDiario = Data.Rows(0)("SalarioDiario").ToString.ToDecimal
Me.SDI = Data.Rows(0)("SDI").ToString.ToDecimal
'Me.Bono = Data.Rows(0)("Bono").ToString.ToDouble
Me.SalarioDiarioSS = Data.Rows(0)("SalarioDiarioSS").ToString.ToDecimal
Me.NumDiasAguinaldo = Data.Rows(0)("NumDiasAguinaldo").ToString.ToEntero
Me.PorPrimaVacacional = Data.Rows(0)("PorPrimaVacacional").ToString.ToDouble
Me.PorPrimaVacacional = Data.Rows(0)("PorPrimaVacacional").ToString.ToDecimal
Me.CveMetodoPago = Data.Rows(0)("CveMetodoPago").ToString.ToEntero
Me.MetodoPago = Data.Rows(0)("MetodoPago").ToString
Me.MetodoPagoSAT = Data.Rows(0)("MetodoPagoSAT").ToString

View File

@@ -1845,7 +1845,7 @@ Public Class ClsSisUsuarios
#Region " CLONAR USUARIOS "
Public Function ClonarUsuario(CveUsuario As Integer, CveUsuarioClonado As Integer, UsuariosEmpresas As Boolean, UsuariosModulos As Boolean, UsuariosProcesos As Boolean, UsuariosSubProyectos As Boolean, UsuariosAlmacenes As Boolean, UsuariosOC As Boolean, UsuariosOS As Boolean) As Boolean
Public Function ClonarUsuario(CveUsuario As Integer, CveUsuarioClonado As Integer, UsuariosEmpresas As Boolean, UsuariosModulos As Boolean, UsuariosProcesos As Boolean, UsuariosSubProyectos As Boolean, UsuariosAlmacenes As Boolean, UsuariosOC As Boolean, UsuariosOS As Boolean, CveUsuarioModifico As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Sis_ClonarUsuario")
@@ -1860,6 +1860,7 @@ Public Class ClsSisUsuarios
.Add("@UsuariosAlmacenes", SqlDbType.Bit).Value = UsuariosAlmacenes
.Add("@UsuariosOC", SqlDbType.Bit).Value = UsuariosOC
.Add("@UsuariosOS", SqlDbType.Bit).Value = UsuariosOS
.Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico
End With
Try

View File

@@ -140,8 +140,8 @@ Public Class LogicNominas
Dim TipoPeriodoPago As String = ""
Dim ClaveBanco As String = ""
Dim BancoNumCuenta As String = ""
Dim SDI As Double = 0
Dim SalarioDiarioSS As Double = 0
Dim SDI As Decimal = 0
Dim SalarioDiarioSS As Decimal = 0
Dim ClaveEstado As String = ""
Dim MetodoPagoFijo As Boolean
Dim totalDb As Decimal

View File

@@ -1403,7 +1403,7 @@ Public Class Timbrado
comprobante.Version = "4.0"
comprobante.Fecha = ObjCFDITimbre.Comprobante.Fecha
comprobante.FormaPago = ObjCFDITimbre.Comprobante.FormadePago
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E", "N") Then comprobante.CondicionesDePago = ObjCFDITimbre.Comprobante.CondicionesdePago
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E") Then comprobante.CondicionesDePago = ObjCFDITimbre.Comprobante.CondicionesdePago
comprobante.SubTotal = ObjCFDITimbre.Comprobante.SubTotal.RoundSQL(NumDecimalesImporte)
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E", "N") AndAlso ObjCFDITimbre.Comprobante.Descuentos > 0 Then
@@ -2224,8 +2224,8 @@ Public Class Timbrado
Nom.Percepciones.Percepcion(i).TipoPercepcion = percep.TipoPercepcion
Nom.Percepciones.Percepcion(i).Clave = percep.Clave
Nom.Percepciones.Percepcion(i).Concepto = percep.Concepto
Nom.Percepciones.Percepcion(i).ImporteGravado = Math.Round(percep.ImporteGravado, 2).ToString.ToDecimal
Nom.Percepciones.Percepcion(i).ImporteExento = Math.Round(percep.ImporteExento, 2).ToString.ToDecimal
Nom.Percepciones.Percepcion(i).ImporteGravado = percep.ImporteGravado.RoundSQL
Nom.Percepciones.Percepcion(i).ImporteExento = percep.ImporteExento.RoundSQL
If ObjCFDITimbre.Nomina.HorasExtras IsNot Nothing AndAlso ObjCFDITimbre.Nomina.HorasExtras.Count > 0 Then
Nom.Percepciones.Percepcion(i).HorasExtra = New Profact.TimbraCFDI33.Complementos.Nomina12.NominaPercepcionesPercepcionHorasExtra(ObjCFDITimbre.Nomina.HorasExtras.Count - 1) {}
@@ -2265,10 +2265,15 @@ Public Class Timbrado
If ObjCFDITimbre.Nomina.Deducciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Deducciones.Count > 0 Then
Nom.Deducciones = New Profact.TimbraCFDI33.Complementos.Nomina12.NominaDeducciones()
Nom.Deducciones.TotalOtrasDeduccionesSpecified = True
Nom.Deducciones.TotalOtrasDeducciones = Math.Round(ObjCFDITimbre.Nomina.TotalDeduccionesOtras, 2)
Nom.Deducciones.TotalImpuestosRetenidosSpecified = True
Nom.Deducciones.TotalImpuestosRetenidos = Math.Round(ObjCFDITimbre.Nomina.TotalDeduccionesImpuestosRetenidos, 2)
If ObjCFDITimbre.Nomina.TotalDeduccionesOtras > 0 Then
Nom.Deducciones.TotalOtrasDeduccionesSpecified = True
Nom.Deducciones.TotalOtrasDeducciones = ObjCFDITimbre.Nomina.TotalDeduccionesOtras.RoundSQL
End If
If ObjCFDITimbre.Nomina.TotalDeduccionesImpuestosRetenidos > 0 Then
Nom.Deducciones.TotalImpuestosRetenidosSpecified = True
Nom.Deducciones.TotalImpuestosRetenidos = ObjCFDITimbre.Nomina.TotalDeduccionesImpuestosRetenidos.RoundSQL
End If
Nom.Deducciones.Deduccion = New Profact.TimbraCFDI33.Complementos.Nomina12.NominaDeduccionesDeduccion(ObjCFDITimbre.Nomina.Deducciones.Count - 1) {}
Dim i As Integer = 0
For Each deduc As CFDINominaDeducciones In ObjCFDITimbre.Nomina.Deducciones
@@ -2276,7 +2281,7 @@ Public Class Timbrado
Nom.Deducciones.Deduccion(i).TipoDeduccion = deduc.TipoDeduccion
Nom.Deducciones.Deduccion(i).Clave = deduc.Clave
Nom.Deducciones.Deduccion(i).Concepto = deduc.Concepto
Nom.Deducciones.Deduccion(i).Importe = Math.Round(deduc.Importe, 2)
Nom.Deducciones.Deduccion(i).Importe = deduc.Importe.RoundSQL
i += 1
Next
End If
@@ -2292,10 +2297,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
Nom.OtrosPagos(i).Importe = otpag.Importe.RoundSQL
If otpag.TipoOtroPago = "002" Then
Nom.OtrosPagos(i).SubsidioAlEmpleo = New Profact.TimbraCFDI33.Complementos.Nomina12.NominaOtroPagoSubsidioAlEmpleo()
Nom.OtrosPagos(i).SubsidioAlEmpleo.SubsidioCausado = otpag.Importe
Nom.OtrosPagos(i).SubsidioAlEmpleo.SubsidioCausado = otpag.Importe.RoundSQL
End If
i += 1
Next
@@ -2322,13 +2327,15 @@ Public Class Timbrado
Nom.Receptor.RiesgoPuestoSpecified = True
Nom.Receptor.RiesgoPuesto = ObjCFDITimbre.Nomina.Receptor.CodigoRiesgoPuesto
Nom.Receptor.PeriodicidadPago = ObjCFDITimbre.Nomina.Receptor.TipoPeriodo
Nom.Receptor.BancoSpecified = True
Nom.Receptor.Banco = ObjCFDITimbre.Nomina.Receptor.CodigoBanco
Nom.Receptor.CuentaBancaria = ObjCFDITimbre.Nomina.Receptor.NumeroCuenta
If ObjCFDITimbre.Nomina.Receptor.CodigoBanco <> "" Then
Nom.Receptor.BancoSpecified = True
Nom.Receptor.Banco = ObjCFDITimbre.Nomina.Receptor.CodigoBanco
Nom.Receptor.CuentaBancaria = ObjCFDITimbre.Nomina.Receptor.NumeroCuenta
End If
Nom.Receptor.SalarioBaseCotAporSpecified = True
Nom.Receptor.SalarioBaseCotApor = Decimal.Round(ObjCFDITimbre.Nomina.Receptor.SBC.ToDecimal(), 2)
Nom.Receptor.SalarioBaseCotApor = ObjCFDITimbre.Nomina.Receptor.SBC.RoundSQL
Nom.Receptor.SalarioDiarioIntegradoSpecified = True
Nom.Receptor.SalarioDiarioIntegrado = Decimal.Round(ObjCFDITimbre.Nomina.Receptor.SDI.ToDecimal(), 2)
Nom.Receptor.SalarioDiarioIntegrado = ObjCFDITimbre.Nomina.Receptor.SDI.RoundSQL
Nom.Receptor.ClaveEntFed = ObjCFDITimbre.Nomina.Receptor.CodigoEntidadFederativa
Dim nsNom As New System.Xml.Serialization.XmlSerializerNamespaces()

View File

@@ -1128,8 +1128,8 @@ namespace ADSistemaLibrary3.SatXml
case "TIPOJORNADA": xmlCFDI.complemento.nomina12.Receptor.CodigoTipoJornada = xtr.Value; break;
case "PUESTO": xmlCFDI.complemento.nomina12.Receptor.Puesto = xtr.Value; break;
case "RIESGOPUESTO": xmlCFDI.complemento.nomina12.Receptor.CodigoRiesgoPuesto = xtr.Value; break;
case "SALARIOBASECOTAPOR": xmlCFDI.complemento.nomina12.Receptor.SBC = xtr.Value.ToDouble(); break;
case "SALARIODIARIOINTEGRADO": xmlCFDI.complemento.nomina12.Receptor.SDI = xtr.Value.ToDouble(); break;
case "SALARIOBASECOTAPOR": xmlCFDI.complemento.nomina12.Receptor.SBC = xtr.Value.ToDecimal(); break;
case "SALARIODIARIOINTEGRADO": xmlCFDI.complemento.nomina12.Receptor.SDI = xtr.Value.ToDecimal(); break;
case "CLAVEENTFED": xmlCFDI.complemento.nomina12.Receptor.CodigoEntidadFederativa = xtr.Value; break;
case "PERIODICIDADPAGO": xmlCFDI.complemento.nomina12.Receptor.TipoPeriodo = xtr.Value; break;
case "CUENTABANCARIA": xmlCFDI.complemento.nomina12.Receptor.NumeroCuenta = xtr.Value; break;

View File

@@ -1047,8 +1047,8 @@ namespace ADSistemaLibrary43.SatXml
case "TIPOJORNADA": xmlCFDI.complemento.nomina12.Receptor.CodigoTipoJornada = xtr.Value; break;
case "PUESTO": xmlCFDI.complemento.nomina12.Receptor.Puesto = xtr.Value; break;
case "RIESGOPUESTO": xmlCFDI.complemento.nomina12.Receptor.CodigoRiesgoPuesto = xtr.Value; break;
case "SALARIOBASECOTAPOR": xmlCFDI.complemento.nomina12.Receptor.SBC = xtr.Value.ToDouble(); break;
case "SALARIODIARIOINTEGRADO": xmlCFDI.complemento.nomina12.Receptor.SDI = xtr.Value.ToDouble(); break;
case "SALARIOBASECOTAPOR": xmlCFDI.complemento.nomina12.Receptor.SBC = xtr.Value.ToDecimal(); break;
case "SALARIODIARIOINTEGRADO": xmlCFDI.complemento.nomina12.Receptor.SDI = xtr.Value.ToDecimal(); break;
case "CLAVEENTFED": xmlCFDI.complemento.nomina12.Receptor.CodigoEntidadFederativa = xtr.Value; break;
case "PERIODICIDADPAGO": xmlCFDI.complemento.nomina12.Receptor.TipoPeriodo = xtr.Value; break;
case "CUENTABANCARIA": xmlCFDI.complemento.nomina12.Receptor.NumeroCuenta = xtr.Value; break;

View File

@@ -1,12 +1,7 @@

using AjaxControlToolkit.HtmlEditor.ToolbarButtons;
using ClbNegBICFDv3_3;
using Extensiones;
using Extensiones;
using iTextSharp.text.pdf;
using Profact.TimbraCFDI40;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.Drawing;
using System.IO;
@@ -328,11 +323,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
DdlTipoTrabajador.SelectedValueExist("-1");
}
}
if (UsuarioActual.CveUsuario == 100)
{
Alert("recuerda que solo la empresa (119) tiene activado el timbrado 4.0", TipoMensaje.ToastAdventencia);
}
//CreaObjetoEmpresa(UsuarioActual);
DataTable dtperinc = null;
using (ClsNominas objnom = new ClsNominas())
{
@@ -490,7 +481,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
private void CargaTiposPeriodo()
{
DdlTipoPeriodo.DataSource = GlobalDTTipoPeriodo.FiltraParametros("Estatus = 'Activo'");
DdlTipoPeriodo.DataSource = get_GlobalDTTipoPeriodos(UsuarioActual.CveEmpresa) ;
DdlTipoPeriodoCM.DataSource = DdlTipoPeriodo.DataSource;
DdlTipoPeriodoSim.DataSource = DdlTipoPeriodo.DataSource;
DdlTipoPeriodoSim.DataBind();
@@ -1442,7 +1433,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
LogicNominas lognom = new LogicNominas();
string Msg = "";
Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual, versionTimbre: VersionTimbradoEnum.Version4_0);
Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual, UsuarioActual.Empresa.CvePAC);
if (Msg != null && Msg.Length > 0)
{
@@ -8947,12 +8938,20 @@ public partial class Nomina_Nomina2 : ClsPaginas
if (CvePrePolizaasmilidos > 0)
{
mensaje = string.Format("{0} <a href=\"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={1}&Tipo=NOMPROV\"> Asimilados</a><br/>", mensaje, CvePrePolizaasmilidos);
}
if (CvePrePolizaProrrateo > 0)
{
mensaje = string.Format("{0} <a href=\"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={1}&Tipo=NOMPROV\"> Prorrateo</a><br/>", mensaje, CvePrePolizaProrrateo);
}
if (CvePrePolizaProvision > 0)
{
using (ClsContabilidad objconta = new ClsContabilidad())
{
var objUsuario = UsuarioActual;
if (objconta.ValidacionesPrePoliza(CvePrePolizaProvision, ref objUsuario))
{
}
}
}
Alert(mensaje);
}
@@ -8966,9 +8965,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
if (ObjContaz.GetConta_ConceptosContables())
{
ContaConceptossource = ObjContaz.DtResultados;
}
}
if (UsuarioActual.Empresa.TipoContabilidad == 1)
@@ -9003,42 +9000,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
GVProvision.DataBind();
RegistraScript("$('#ModalRegistraProvision').modal();");
UpRegistroProvision.Update();
/*
StringBuilder str = new StringBuilder();
str.Append("<table>");
str.Append("<tbody>");
//ConceptoContable ConceptoNomina CodigoNombreCompleto
str.Append("<tr>");
str.Append("<th>");
str.Append("Concepto Contable");
str.Append("</th>");
str.Append("<th>");
str.Append("Concepto Nomina");
str.Append("</th>");
str.Append("<th>");
str.Append("Personal");
str.Append("</th>");
str.Append("</tr>");
foreach (DataRow item in objnom.DTSetResultados.Tables[1].Rows)
{
str.Append("<tr>");
str.Append("<td>");
str.Append(item["ConceptoContable"]);
str.Append("</td>");
str.Append("<td>");
str.Append(item["ConceptoNomina"]);
str.Append("</td>");
str.Append("<td>");
str.Append(item["CodigoNombreCompleto"]);
str.Append("</td>");
str.Append("</tr>");
}
str.Append("</tbody>");
str.Append("</table>");
Alert(string.Format("<div>no se pudo registrar la provisión, existen cuentas sin vincular.</div> {0}", str));
*/
}
}
}