From 0b5a72863dfb8edecf8919acae4effb6e8a96999 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 18 May 2023 15:15:09 -0700 Subject: [PATCH 01/27] -- cambio por rendimiento para el procesamento de ps adiconales --- Ventas/CatPS.aspx.vb | 76 +++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/Ventas/CatPS.aspx.vb b/Ventas/CatPS.aspx.vb index eb24c6069..8a5b17b99 100644 --- a/Ventas/CatPS.aspx.vb +++ b/Ventas/CatPS.aspx.vb @@ -290,40 +290,39 @@ Partial Class CatPS #Region "P R O D U C T O S A D I C I O N A L E S" - Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, CodigoPS As String, PSAdicional As String, Cantidad As Decimal, Opcion As Integer) As Boolean + Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, CodigoPS As String, PSAdicional As String, Cantidad As Decimal, Opcion As Integer) As String + Dim Retorno As String = "" If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) & "," & UsuarioActual.CveEmpresa ' agregamos la empresa actual Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) For Each Franquicia As Integer In EmpresasFranquicia - Dim CvePSPagina As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", CodigoPS)).ToEntero + Dim CvePSPagina As Integer = GlobalDTPS(Franquicia, Codigo:=CodigoPS).FiltroPrimeroValor("CvePS", "").ToEntero Dim CvePSAdicional As Integer - If Opcion = 1 Then CvePSAdicional = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", PSAdicional)).ToEntero + If Opcion = 1 Then CvePSAdicional = GlobalDTPS(Franquicia,, Codigo:=PSAdicional).FiltroPrimeroValor("CvePS", "").ToEntero If CvePSPagina <= 0 Then - Alert(String.Format("El producto de la página no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) - Return False + Return String.Format("El producto:{0} no existe en la franquicia: '{1}'", CodigoPS, GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")) End If If CvePSAdicional <= 0 AndAlso Opcion = 1 Then - Alert(String.Format("El producto adicional no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) - Return False + Return String.Format("El producto adicional:{0} no existe en la franquicia: '{1}'", CodigoPS, GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")) End If If Opcion = 1 Then If Not ObjPS.AddPSAdicionales(CvePSPagina, CvePSAdicional, Cantidad) Then - Return False + Return "no se pudo registrar" End If End If If Opcion = 2 Then If Not ObjPS.RemovePSAdicionales(CvePSPagina, -1) Then - Return False + Return "No se pudo eliminar" End If End If Next End If - Return True + Return "" End Function Private Sub LnkExcelPSAdicional_Click(sender As Object, e As EventArgs) Handles LnkExcelPSAdicional.Click @@ -391,44 +390,49 @@ Partial Class CatPS Try Dim ContadorRegistros As Integer = 0 - Dim ObjPS As New ClsProductosServicios - ObjPS.IniciaTransacSQL() + Dim ObjPS As ClsProductosServicios + Dim dtPS As DataTable = dt.FiltraParametros("", DistinctColumns:={"CodigoProducto"}) + Dim strNoCargados As New StringBuilder 'antes de iniciar la carga se limpiarán los asignados, se filtran por codigops - For Each Row As DataRow In dt.FiltraParametros("", DistinctColumns:={"CodigoProducto"}).Rows - If Not GuardarProductosEquivalenteEnFranquicia(ObjPS, Row("CodigoProducto").ToString.Trim, "", 0, 2) Then + For Each Row As DataRow In dtPS.Rows + ObjPS = New ClsProductosServicios + ObjPS.IniciaTransacSQL() + ErrorExcel = False + Dim msgg As String = GuardarProductosEquivalenteEnFranquicia(ObjPS, Row("CodigoProducto").ToString.Trim, "", 0, 2) + If msgg = "" Then ''eliminar los ps + For Each dr As DataRow In dt.FiltraParametros($"CodigoProducto='{ Row("CodigoProducto").ToString.Trim}'").Rows + Dim CodigoPS As String = dr("CodigoProducto").ToString + Dim CodigoPSAdicional As String = dr("CodigoProductoAdicional").ToString + Dim Cantidad As Integer = dr("CantidadFija").ToString.ToEntero + If GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) <> "" Then + ErrorExcel = True + strNoCargados.AppendFormat("código:{0} Adicional:{1}", dr("CodigoProducto").ToString, dr("CodigoProductoAdicional").ToString) + Exit For + End If + ContadorRegistros = ContadorRegistros + 1 + Next + Else ErrorExcel = True - Exit For + strNoCargados.AppendFormat(" {0}
", msgg) End If + If Not ErrorExcel Then + ObjPS.Commit() + Else + ObjPS.RollBack() + End If + ObjPS.Dispose() Next - If Not ErrorExcel Then - For Each Row As DataRow In dt.Rows - Dim CodigoPS As String = Row("CodigoProducto").ToString - Dim CodigoPSAdicional As String = Row("CodigoProductoAdicional").ToString - Dim Cantidad As Integer = Row("CantidadFija").ToString.ToEntero - If Not GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) Then - ErrorExcel = True - Exit For - End If - ContadorRegistros = ContadorRegistros + 1 - Next - End If - If Not ErrorExcel Then - ObjPS.Commit() + + If ContadorRegistros > 1 Then Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) & "," & UsuarioActual.CveEmpresa ' agregamos la empresa actual Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) 'regenerar el global de cada empresa For Each Franquicia As Integer In EmpresasFranquicia GlobalDTPSAdicionales(-1, Franquicia) = Nothing Next - - Alert($"{ContadorRegistros} Registros aplicados.") - Else - ObjPS.RollBack() - Alert($"Ocurrió un error al cargar los productos.", TipoMensaje.MsgAdvertencia) End If - - + Alert($"{ContadorRegistros} Registros aplicados.
{If(strNoCargados.Length > 0, strNoCargados.ToString, "")}") Catch ex As Exception Alert("No se pudo cargar el excel", TipoMensaje.MsgAdvertencia) GuardaLog(ex.Message) From 171f49c76bcc943abd8a743ffa0d1995de937d86 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 18 May 2023 16:04:10 -0700 Subject: [PATCH 02/27] -- cambio de uso a globaldtsimp... --- Ventas/CatPS.aspx.vb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ventas/CatPS.aspx.vb b/Ventas/CatPS.aspx.vb index 8a5b17b99..dbf73e938 100644 --- a/Ventas/CatPS.aspx.vb +++ b/Ventas/CatPS.aspx.vb @@ -297,10 +297,10 @@ Partial Class CatPS Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) & "," & UsuarioActual.CveEmpresa ' agregamos la empresa actual Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) For Each Franquicia As Integer In EmpresasFranquicia - Dim CvePSPagina As Integer = GlobalDTPS(Franquicia, Codigo:=CodigoPS).FiltroPrimeroValor("CvePS", "").ToEntero + Dim CvePSPagina As Integer = GlobalDTPSSimplificado(Franquicia, Codigo:=CodigoPS.ToUpper).FiltroPrimeroValor("CvePS", "").ToEntero Dim CvePSAdicional As Integer - If Opcion = 1 Then CvePSAdicional = GlobalDTPS(Franquicia,, Codigo:=PSAdicional).FiltroPrimeroValor("CvePS", "").ToEntero + If Opcion = 1 Then CvePSAdicional = GlobalDTPSSimplificado(Franquicia, Codigo:=PSAdicional.ToUpper).FiltroPrimeroValor("CvePS", "").ToEntero If CvePSPagina <= 0 Then Return String.Format("El producto:{0} no existe en la franquicia: '{1}'", CodigoPS, GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")) @@ -402,8 +402,8 @@ Partial Class CatPS Dim msgg As String = GuardarProductosEquivalenteEnFranquicia(ObjPS, Row("CodigoProducto").ToString.Trim, "", 0, 2) If msgg = "" Then ''eliminar los ps For Each dr As DataRow In dt.FiltraParametros($"CodigoProducto='{ Row("CodigoProducto").ToString.Trim}'").Rows - Dim CodigoPS As String = dr("CodigoProducto").ToString - Dim CodigoPSAdicional As String = dr("CodigoProductoAdicional").ToString + Dim CodigoPS As String = dr("CodigoProducto").ToString.Trim + Dim CodigoPSAdicional As String = dr("CodigoProductoAdicional").ToString.Trim Dim Cantidad As Integer = dr("CantidadFija").ToString.ToEntero If GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) <> "" Then ErrorExcel = True From 1bb94d4c2f5a184b1aa3b2d43e62089c1e29edda Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 18 May 2023 16:52:15 -0700 Subject: [PATCH 03/27] =?UTF-8?q?--=20mejorar=20msg=20no=20contabilizaci?= =?UTF-8?q?=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsContabilidad.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index e90f21cf2..ddca79238 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -1430,7 +1430,7 @@ Public Class ClsContabilidad End If Else OcurrioError = True - StrLog.AppendFormat(" Error 1.3 - ") + StrLog.AppendFormat(" Error 1.3 - La cuenta contable {0} es invalida ", dr("ConceptoContable")) Mensaje.Append(String.Format("
La cuenta contable {0} es invalida", dr("ConceptoContable"))) Exit For End If From 7c93916e71a90d8d0bb5428550f8e70a80002aa6 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 19 May 2023 07:51:11 -0700 Subject: [PATCH 04/27] -- parametro de tiponomina en asistencias --- Ventas/Clientes.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index dcd7ee0ba..390ec8992 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -3081,7 +3081,7 @@ Partial Class Clientes Protected Sub BtnConsultarAsistencia_Click(sender As Object, e As System.EventArgs) Handles BtnConsultarAsistencia.Click Dim objpersonal As New ClsRH - If objpersonal.GetAsistencias(-1, CveCliente, -1, -1, -1, 1, txtFechaI.Text.Trim.ToDate(), txtFechaF.Text.Trim.ToDate(), UsuarioActual.CveEmpresa) Then + If objpersonal.GetAsistencias(-1, CveCliente, -1, -1, -1, 1, -1, txtFechaI.Text.Trim.ToDate(), txtFechaF.Text.Trim.ToDate(), UsuarioActual.CveEmpresa) Then GVAsistencia.DataSource = objpersonal.DtResultados.FiltraParametros("Fecha IS NOT NULL") Else GVAsistencia.DataSource = Nothing From ea2517eb2d0d78be14af12824e6464004c7852ce Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 19 May 2023 08:57:01 -0700 Subject: [PATCH 05/27] -- parametro adicional. asistencias --- Nomina/ChecadorAsistencia.aspx.cs | 2 +- Nomina/Nomina.aspx.cs | 4 ++-- RH/Personal.aspx.vb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Nomina/ChecadorAsistencia.aspx.cs b/Nomina/ChecadorAsistencia.aspx.cs index 99ef7acc4..ce151927c 100644 --- a/Nomina/ChecadorAsistencia.aspx.cs +++ b/Nomina/ChecadorAsistencia.aspx.cs @@ -369,7 +369,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas GvDetalleDias.DataBind(); } DdlTipoAsistencias.Enabled = GvDetalleDias.Rows.Count > 0; - if (objRH.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, fechai, fechai, UsuarioActual.CveEmpresa)) + if (objRH.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1,-1, fechai, fechai, UsuarioActual.CveEmpresa)) { if (objRH.DtResultados.Rows.Count > 0) { diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 934c63223..2cfdd6e2c 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -2837,7 +2837,7 @@ public partial class Nomina_Nomina2 : ClsPaginas using (ClsRH objpersonal = new ClsRH()) { - if (objpersonal.GetAsistencias(SRCvePersonal, -1, -1, -1, -1, -1, FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa)) + if (objpersonal.GetAsistencias(SRCvePersonal, -1, -1, -1, -1, -1,-1, FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa)) { GVAsistencia.DataSource = objpersonal.DtResultados.FiltraParametros("Fecha IS NOT NULL"); } else { @@ -7111,7 +7111,7 @@ public partial class Nomina_Nomina2 : ClsPaginas } using (ClsRH objpersonal = new ClsRH()) { - if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, fecha, fecha, UsuarioActual.CveEmpresa)) + if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, -1, fecha, fecha, UsuarioActual.CveEmpresa)) { if (objpersonal.DtResultados.Rows.Count > 0) { diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index 5a40a2a5c..8f3eda23e 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -1512,7 +1512,7 @@ Partial Class RH_Personal If CveCliente <= 0 Then CveCliente = -1 End If - If objpersonal.GetAsistencias(CvePersonal, CveCliente, -1, DdlSubProyectoAsistenciasC.SelectedValue.ToEntero(), DdlTurno.SelectedValue.ToEntero(), -1, txtFechaI.Text.Trim.ToDate, txtFechaF.Text.Trim.ToDate, UsuarioActual.CveEmpresa) Then + If objpersonal.GetAsistencias(CvePersonal, CveCliente, -1, DdlSubProyectoAsistenciasC.SelectedValue.ToEntero(), DdlTurno.SelectedValue.ToEntero(), -1, -1, txtFechaI.Text.Trim.ToDate, txtFechaF.Text.Trim.ToDate, UsuarioActual.CveEmpresa) Then GVAsistencia.DataSource = objpersonal.DtResultados.FiltraParametros("Fecha IS NOT NULL") Else GVAsistencia.DataSource = Nothing From 8ee53b9dca433c239583bccf861f17792c2ae0d1 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 19 May 2023 08:57:34 -0700 Subject: [PATCH 06/27] - autoconta parametro adicional --- App_Code/ClsContabilidad.vb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index ddca79238..e6e877f15 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -6386,14 +6386,16 @@ Public Class ClsContabilidad #End Region #Region "VALIDACION POLIZA DESCUADRADA" - Public Function ValidacionPrePolizaCuadre(CvePrePoliza As Integer, Opcion As Integer, Optional CveVenta As Integer = -1) As Boolean + Public Function ValidacionPrePolizaCuadre(CvePrePoliza As Integer, Opcion As Integer, Optional CveVenta As Integer = -1, Optional AutoConta As Boolean = True) As Boolean Dim Retorno = False - DataAdapter("PA_Conta_PrePoliza_Validacion") + DataAdapter("PA_Conta_PrePolizasValidacion") With SqlAdapter.SelectCommand.Parameters .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza - .Add("@CveVenta", SqlDbType.Int).Value = CveVenta .Add("@Opcion", SqlDbType.Int).Value = Opcion + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + .Add("@AutoConta", SqlDbType.Int).Value = If(AutoConta, 1, 0) .Add("@Valor", SqlDbType.Int).Direction = ParameterDirection.Output .Add("@MsgSalida", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output .Add("@MsgPrePolizaSalida", SqlDbType.VarChar, 8000).Direction = ParameterDirection.Output From a78fd7c8316ae154eece28e7e7e78edb54c812d0 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 19 May 2023 12:29:14 -0700 Subject: [PATCH 07/27] -- cambio visual --- Inventarios/EntradasSalidas.aspx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Inventarios/EntradasSalidas.aspx b/Inventarios/EntradasSalidas.aspx index 48eebe541..774a35263 100644 --- a/Inventarios/EntradasSalidas.aspx +++ b/Inventarios/EntradasSalidas.aspx @@ -400,7 +400,7 @@
-
+
"> @@ -848,8 +848,8 @@ - - + + <%----%> From fe9d5dc7228d77190062b55d6a8b73ccf5b5f5cb Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 19 May 2023 12:32:54 -0700 Subject: [PATCH 08/27] -- mejora carga ps adicionales --- Ventas/CatPS.aspx.vb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Ventas/CatPS.aspx.vb b/Ventas/CatPS.aspx.vb index dbf73e938..8ec3004dd 100644 --- a/Ventas/CatPS.aspx.vb +++ b/Ventas/CatPS.aspx.vb @@ -294,7 +294,7 @@ Partial Class CatPS Dim Retorno As String = "" If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then - Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) & "," & UsuarioActual.CveEmpresa ' agregamos la empresa actual + Dim StrEmpresas As String = UsuarioActual.CveEmpresa & "," & UsuarioActual.Empresa.Funcionalidad(563) ' agregamos la empresa actual Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) For Each Franquicia As Integer In EmpresasFranquicia Dim CvePSPagina As Integer = GlobalDTPSSimplificado(Franquicia, Codigo:=CodigoPS.ToUpper).FiltroPrimeroValor("CvePS", "").ToEntero @@ -307,12 +307,12 @@ Partial Class CatPS End If If CvePSAdicional <= 0 AndAlso Opcion = 1 Then - Return String.Format("El producto adicional:{0} no existe en la franquicia: '{1}'", CodigoPS, GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")) + Return String.Format("El producto adicional: {0} no existe en la franquicia: '{1}'", PSAdicional, GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")) End If If Opcion = 1 Then If Not ObjPS.AddPSAdicionales(CvePSPagina, CvePSAdicional, Cantidad) Then - Return "no se pudo registrar" + Return String.Format("No se registró el producto adicional:{0} no existe en la franquicia: '{1}'", CodigoPS, GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")) End If End If If Opcion = 2 Then @@ -405,9 +405,10 @@ Partial Class CatPS Dim CodigoPS As String = dr("CodigoProducto").ToString.Trim Dim CodigoPSAdicional As String = dr("CodigoProductoAdicional").ToString.Trim Dim Cantidad As Integer = dr("CantidadFija").ToString.ToEntero + msgg = GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) If GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) <> "" Then ErrorExcel = True - strNoCargados.AppendFormat("código:{0} Adicional:{1}", dr("CodigoProducto").ToString, dr("CodigoProductoAdicional").ToString) + strNoCargados.AppendFormat(" {0}
", msgg) Exit For End If ContadorRegistros = ContadorRegistros + 1 From 1b2e0860921a89c9aaf69544afd67a6ef3d498e7 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 19 May 2023 20:41:51 -0700 Subject: [PATCH 09/27] --Aplicacion de pago de NC desde funcion de ClsPaginas --- App_Code/ClsPaginas.vb | 126 ++++-- App_Code/Modelos.vb | 358 +++++---------- Bancos/PopIECompras.aspx.vb | 2 +- Ventas/ClientesAbonar.aspx.vb | 3 +- Ventas/Ventas.aspx.vb | 792 ++++++++++++++-------------------- 5 files changed, 513 insertions(+), 768 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 7cfe359f7..b2a40abfb 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -7732,7 +7732,7 @@ Public Class ClsPaginas #End Region #Region "P A G O D E V E N T A S " - Public Function AplicaPrePolizaPagoVenta(VentaActual As Venta, Pago As VentaPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean + Public Shared Function AplicaPrePolizaPagoVenta(VentaActual As Venta, Pago As VentaPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean Dim ErrorMovtos As Boolean = False Dim PorcentajePago As Decimal = Pago.ImportePagoVenta / VentaActual.Total Dim ImporteMovimiento As Decimal = 0 @@ -7751,9 +7751,9 @@ Public Class ClsPaginas If Pago.TipoPago = "NC" Then Pago.CveConceptoPago = 301 Else Pago.CveConceptoPago = 292 End If Dim Concepto As String = String.Format("{0} F:{1}", VentaActual.ClienteNombre, VentaActual.SerieFolio) - Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) + Dim FuncionalidadFluctuacionImpuestos As Boolean = If(VentaActual.UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) Dim tFecha As Date = Pago.Fecha - If VentaActual.CveMoneda > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then + If VentaActual.CveMoneda > 1 AndAlso VentaActual.UsuarioActual.Empresa.Funcionalidad(703) = "1" Then Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) If UltimaFluctuacion IsNot Nothing Then If UltimaFluctuacion.FechaFluctuacion < tFecha Then @@ -7777,7 +7777,7 @@ Public Class ClsPaginas End If If VentaActual.CveMoneda > 1 Then ImporteME = Pago.ImportePagoVenta 'CONDICION ESPECIAL, PARA ANTICIPOS ESPECIALES, QUE SE EMITE LA VENTA, PERO NO SE CONTABILIZA, EL TRATAMIENTO SE LLEVA POR EL ANTICIPO - If VentaActual.TipoDocto = "Ant" AndAlso UsuarioActual.CveEmpresa.Contiene(1, 119, 158) Then + If VentaActual.TipoDocto = "Ant" AndAlso VentaActual.UsuarioActual.CveEmpresa.Contiene(1, 119, 158) Then Pago.AplicaTraslado = False Dim IdCtaContable As Integer = VentaActual.IdCtaContableClienteAnticipo If VentaActual.CveMoneda = 2 Then IdCtaContable = VentaActual.IdCtaContableClienteAnticipoExtranjera @@ -7805,6 +7805,7 @@ Public Class ClsPaginas If Not ErrorMovtos AndAlso VentaActual.CveMoneda > 1 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, (ImporteME * TCValuacionVenta - ImporteME).RoundSQL, CveConceptoContableComplementaria, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada, Contabilizable:=Contabilizable) Then ErrorMovtos = True End If + If Pago.AplicaTraslado Then 'si tiene iva y su proporcion If Not ErrorMovtos AndAlso VentaActual.IVA <> 0 Then @@ -7816,42 +7817,43 @@ Public Class ClsPaginas If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 61, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, PorcentajeImpuesto:=VentaActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True End If - End If - 'si tiene RET IVA y su proporcion - If Not ErrorMovtos AndAlso VentaActual.RetIVA > 0 Then - ImporteMovimiento = (PorcentajePago * VentaActual.RetIVA).RoundSQL - ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL - If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 8, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 62, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True - End If - 'si tiene Ret ISR y su proporcion - If Not ErrorMovtos AndAlso VentaActual.RetISR > 0 Then - ImporteMovimiento = (PorcentajePago * VentaActual.RetISR).RoundSQL - ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL - If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 9, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 63, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True - End If - 'si tiene IEPS y su proporcion - If Not ErrorMovtos AndAlso VentaActual.IEPS > 0 Then - ImporteMovimiento = (PorcentajePago * VentaActual.IEPS).RoundSQL - ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL - If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - Dim Ret As New ConceptosRetenciones - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If ObjConta.GetRetCuenta(38, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString.ToEntero - If ObjConta.GetRetCuenta(39, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSTrasladado").ToString.ToEntero + 'si tiene RET IVA y su proporcion + If Not ErrorMovtos AndAlso VentaActual.RetIVA > 0 Then + ImporteMovimiento = (PorcentajePago * VentaActual.RetIVA).RoundSQL + ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL + If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 8, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 62, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True + End If + 'si tiene Ret ISR y su proporcion + If Not ErrorMovtos AndAlso VentaActual.RetISR > 0 Then + ImporteMovimiento = (PorcentajePago * VentaActual.RetISR).RoundSQL + ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL + If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 9, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 63, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True + End If + 'si tiene IEPS y su proporcion + If Not ErrorMovtos AndAlso VentaActual.IEPS > 0 Then + ImporteMovimiento = (PorcentajePago * VentaActual.IEPS).RoundSQL + ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL + If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As New ConceptosRetenciones + If VentaActual.UsuarioActual.Empresa.TipoContabilidad = 2 Then + If ObjConta.GetRetCuenta(38, VentaActual.UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString.ToEntero + If ObjConta.GetRetCuenta(39, VentaActual.UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSTrasladado").ToString.ToEntero + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 38, VentaActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 39, VentaActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 38, VentaActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 39, VentaActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada) Then ErrorMovtos = True End If + 'concepto pago Concepto = String.Format("{0} NC:{1}", VentaActual.ClienteNombre, Pago.Referencia) If Pago.TipoPago = "A" AndAlso Not ErrorMovtos Then ' A N T I C I P O @@ -7880,13 +7882,13 @@ Public Class ClsPaginas End If If Pago.TipoPago = "I" AndAlso Not ErrorMovtos Then ' I N G R E S O S X C O M P R O B A R Dim Ret As New ConceptosRetenciones - If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If VentaActual.UsuarioActual.Empresa.TipoContabilidad = 2 Then 'If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero 'If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - If UsuarioActual.CveEmpresa.Contiene(119) Then + If VentaActual.UsuarioActual.CveEmpresa.Contiene(119) Then If Pago.FechaDocumentoRelacionado.Year <= 2017 Then Dim ObjCliente As New ClsClientes(ObjConta.IniciaTransacSQL()) - If ObjCliente.GetClientes(VentaActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) AndAlso ObjCliente.DtResultados.Rows.Count > 0 Then + If ObjCliente.GetClientes(VentaActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, VentaActual.UsuarioActual.CveEmpresa) AndAlso ObjCliente.DtResultados.Rows.Count > 0 Then If Pago.CveMonedaPago > 1 Then VentaActual.IdCtaContableClienteAnticipoExtranjera = ObjCliente.IdCtaContMonedaExtranjera Else VentaActual.IdCtaContableClienteAnticipo = ObjCliente.IdCtaContClientes End If End If @@ -7918,17 +7920,22 @@ Public Class ClsPaginas Dim ConceptoContable, IdCtaContable As Integer Dim TipoMovimiento As Boolean Dim Diferencia As Decimal = 0 + + 'tImporteVenta = tImporteVenta.Abs() + 'tImportePago = tImportePago.Abs() + tImportePago += Pago.ImporteFluctuacionAdicional 'para los casos de aplicación de If tImporteVenta <> tImportePago Then - If tImporteVenta < tImportePago Then + If tImporteVenta.Abs() < tImportePago.Abs() Then ConceptoContable = 64 TipoMovimiento = True Else ConceptoContable = 65 TipoMovimiento = False End If - Diferencia = (tImporteVenta - tImportePago).Abs.RoundSQL + Diferencia = ((tImporteVenta - tImportePago).Abs.RoundSQL(2)) * Pago.ValorMultiplicador End If + If FuncionalidadFluctuacionImpuestos Then Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, Pago.TCPago, VentaActual.TC) Diferencia = (Pago.ImportePago * VentaActual.TC) - (Pago.ImportePago * Pago.TCPago) 'Añadimos la diferencia de perdida en la venta @@ -7938,6 +7945,7 @@ Public Class ClsPaginas Diferencia -= ((VentaActual.IEPS * PorcentajePago) * VentaActual.TC) - ((VentaActual.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS Diferencia = Diferencia.Abs.RoundSQL End If + If Diferencia <> 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Diferencia, Diferencia, ConceptoContable, Concepto, Concepto, IdCtaContable, CveVenta:=VentaActual.CveVenta, CveSubProyecto:=VentaActual.CveSubProyecto, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE) Then ErrorMovtos = True @@ -7965,8 +7973,40 @@ Public Class ClsPaginas Public Property AplicaTraslado As Boolean = True Public Property Referencia As String Public Property ImporteFluctuacionAdicional As Decimal = 0 + Public Property ValorMultiplicador As Decimal = 1 End Class Public Class Venta + + Public Sub New(UsuarioActual As Usuario) + Me.UsuarioActual = UsuarioActual + End Sub + Public Sub New(ObjFactura As Modelos.Factura, UsuarioActual As Usuario, Optional ValorMultiplicador As Decimal = 1D) + Me.CveVenta = ObjFactura.CveVenta + Me.CveCliente = ObjFactura.CveCliente + Me.CveMoneda = ObjFactura.CveMoneda + Me.TipoDocto = ObjFactura.TipoDocto + Me.SerieFolio = ObjFactura.SerieFolio + Me.Fecha = ObjFactura.Fecha + + If ObjFactura.Cliente IsNot Nothing AndAlso ObjFactura.CveCliente > 0 Then + Me.ClienteNombre = ObjFactura.Cliente.Nombre + Me.IdCtaContableCliente = If(ObjFactura.CveMoneda = 1, ObjFactura.Cliente.IdCtaContClientes, ObjFactura.Cliente.IdCtaContMonedaExtranjera) + Me.IdCtaContableClienteComplementaria = ObjFactura.Cliente.IdCtaContComplementaria + Me.IdCtaContableClienteAnticipo = ObjFactura.Cliente.IdCtaContAnticipos + Me.IdCtaContableClienteAnticipoExtranjera = ObjFactura.Cliente.IdCtaMonedaExtranjeraAnticipos + Me.IdCtaContableClienteAnticipoComplementaria = ObjFactura.Cliente.IdCtaContCompAnticipos + End If + + Me.TC = ObjFactura.TipoCambio + Me.Total = ObjFactura.Total * ValorMultiplicador + Me.IVA = ObjFactura.IVA * ValorMultiplicador + Me.IEPS = ObjFactura.IEPS * ValorMultiplicador + Me.RetIVA = ObjFactura.RetIVA * ValorMultiplicador + Me.RetISR = ObjFactura.RetISR * ValorMultiplicador + Me.PorcentajeIVA = ObjFactura.PorcentajeIVA.ToString().ToDecimal() + Me.CveSubProyecto = ObjFactura.CveSubProyecto + Me.UsuarioActual = ObjFactura.UsuarioActual + End Sub Public Property CveVenta As Integer = -1 Public Property CveCliente As Integer Public Property CveMoneda As Integer diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index fc71cd0ed..6175f2507 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -2371,7 +2371,7 @@ Namespace Modelos Private Function ProcesoPrepolizas(ObjFactura As Factura, ByRef ObjConta As ClsContabilidad, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi, Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, Optional ByRef DtRemisionesRelacionadas As DataTable = Nothing, Optional SeCancelaRemisionProceso As Boolean = False, Optional CancelarRemisiones As Boolean = False, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, - Optional CveEstatusRefacturacion As Integer = 0, Optional ByRef ObjInventario As ClsInventarios = Nothing) As Boolean + Optional CveEstatusRefacturacion As Integer = 0, Optional ByRef ObjInventario As ClsInventarios = Nothing, Optional FechaCancelacion As DateTime = MinFecha) As Boolean Dim ErrorPrepoliza As Boolean = False Try Dim DT As DataTable @@ -2401,6 +2401,33 @@ Namespace Modelos tipoCambio = 1 End If + If ObjFactura.TipoDocto = "Egs" AndAlso ValorMultiplicador = -1 AndAlso FechaCancelacion > MinFecha AndAlso tipoCambio > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then + ' Obtener el mes y año de la fecha actual + Dim mesActual As Integer = FechaCancelacion.Month + Dim añoActual As Integer = FechaCancelacion.Year + + ' Obtener el mes y año de la fecha a comparar + Dim mesFecha As Integer = ObjFactura.Fecha.Month + Dim añoFecha As Integer = ObjFactura.Fecha.Year + + ' Verificar si la fecha es del mes anterior a la fecha actual + Dim esMesAnterior As Boolean = False + If añoFecha < añoActual Then + esMesAnterior = True + ElseIf añoFecha = añoActual AndAlso mesFecha < mesActual Then + esMesAnterior = True + End If + + If esMesAnterior Then + Dim UltimaFluctuacion As ClsPaginas.MTipoCambioFluctuacion = ClsPaginas.GlobalTipoCambioUltimaFluctuacion(FechaCancelacion) + If UltimaFluctuacion IsNot Nothing Then + If UltimaFluctuacion.FechaFluctuacion < FechaCancelacion Then + tipoCambio = UltimaFluctuacion.TCFluctuacion + End If + End If + End If + End If + Dim ConceptoContable As Integer Dim TipoMovimiento As Boolean Dim importeMovimiento As Decimal @@ -2690,46 +2717,33 @@ Namespace Modelos Case 12 'Nota de Credito If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then + Dim ConPreP As ClsPaginas.ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, ObjFactura.CveMoneda, False, 2) + importeMovimiento = ObjFactura.Total * ValorMultiplicador - importeMX = (importeMovimiento * tipoCambio * Multiplicador).RoundSQL + importeMX = (importeMovimiento * tipoCambio * Multiplicador).RoundSQL(2) FechaMovimiento = ObjFactura.FechaPago - Dim ImporteConcepto12 As Decimal = 0 - Dim ImporteAcumulado91 As Decimal = 0 - Dim CveUltimaVenta As Integer = 0 - If tipoCambio > 1 Then - Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" - ConceptoContable = 293 - End If - IdCtaContable = 0 - If tipoCambio = 1 Then - IdCtaContable = ObjFactura.Cliente.IdCtaContClientes - ElseIf UsaComplementariaClientes Then - IdCtaContable = ObjFactura.Cliente.IdCtaContComplementaria + CveSubProyectoContabilizar = ObjFactura.CveSubProyecto - If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsaComplementariaClientes) Then - importeMX = importeMovimiento - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, 203, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=(importeMovimiento * tipoCambio - importeMovimiento).RoundSQL, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - End If - End If + IdCtaContable = ObjFactura.Cliente.IdCtaContClientes + If ObjFactura.CveMoneda = 2 Then + importeMX = importeMovimiento IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera + Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" End If - CveSubProyectoContabilizar = CveSubProyectoVenta - ImporteConcepto12 = importeMX.RoundSQL - If importeMovimiento <> 0 Then - If IdCtaContable <= 0 Then - CuentasContablesInvalidas.Append("
" & ClsPaginas.GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 - End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConPreP.CveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + End If + + If UsaComplementariaClientes AndAlso ObjFactura.CveMoneda = 2 Then + IdCtaContable = ObjFactura.Cliente.IdCtaContComplementaria + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, ConPreP.CveConceptoComplementario, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=(importeMovimiento * tipoCambio - importeMovimiento).RoundSQL(2), ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=CveSubProyectoContabilizar) Then ErrorPrepoliza = True - Else - ObjFactura.SeGuardoPrePoliza = True End If End If + importeMovimiento = 0 If ValorMultiplicador = 1 Then @@ -2740,109 +2754,41 @@ Namespace Modelos Else TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha).ToDecimal End If + 'APLICA NC SALDOS DIRECTOS If DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then For Each Dr As DataRow In DtVentasNC.Rows - Dim Importe91 As Decimal = 0 - Dim ImporteMN91 As Decimal = 0 - Dim Importe251 As Decimal = 0 + Dim ObjFacturaRef As New Modelos.Factura(UsuarioActual, Dr("CveVenta").ToString().ToEntero(), UsuarioActual.CveEmpresa, CargaDTDetalle:=False, VerificaAlmacen:=False, CargaDatosCliente:=False, CargaDatosRelacionados:=False) - If ObjFactura.CveMoneda = 1 AndAlso Not Dr("TCCambioValuacion").ToString.ToDecimal > 1 Then - Importe251 = Dr("Importe").ToString.ToDecimal - Importe91 = Dr("Importe").ToString.ToDecimal - ImporteMN91 = Dr("Importe").ToString.ToDecimal - TipoCambioNC = 1 - ElseIf ObjFactura.CveMoneda = 2 AndAlso Not Dr("TCCambioValuacion").ToString.ToDecimal > 1 Then - Importe251 = Dr("Importe").ToString.ToDecimal * TipoCambioNC - Importe91 = Dr("Importe").ToString.ToDecimal - ImporteMN91 = Dr("Importe").ToString.ToDecimal * TipoCambioNC - ElseIf ObjFactura.CveMoneda = 2 AndAlso Dr("TCCambioValuacion").ToString.ToDecimal > 1 Then - Importe251 = Dr("Importe").ToString.ToDecimal - Importe91 = Dr("Importe").ToString.ToDecimal - ImporteMN91 = Dr("Importe").ToString.ToDecimal * TipoCambioNC - ElseIf ObjFactura.CveMoneda = 1 AndAlso Dr("TCCambioValuacion").ToString.ToDecimal > 1 Then - Importe251 = Dr("Importe").ToString.ToDecimal / TipoCambioNC - Importe91 = Dr("Importe").ToString.ToDecimal - ImporteMN91 = Dr("Importe").ToString.ToDecimal - End If + Dim ventaRef As New ClsPaginas.Venta(ObjFacturaRef, UsuarioActual, ValorMultiplicador:=ValorMultiplicador) - Importe251 = (Importe251 * Multiplicador).RoundSQL + ObjFacturaRef.Dispose() - Importe91 = (Importe91 * ValorMultiplicador).RoundSQL - ImporteMN91 = (ImporteMN91 * Multiplicador).RoundSQL - If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${Importe91.FormatoNumero(2)}" + ventaRef.ClienteNombre = ObjFactura.Cliente.Nombre + ventaRef.IdCtaContableCliente = If(ventaRef.CveMoneda = 1, ObjFactura.Cliente.IdCtaContClientes, ObjFactura.Cliente.IdCtaContMonedaExtranjera) + ventaRef.IdCtaContableClienteComplementaria = ObjFactura.Cliente.IdCtaContComplementaria ' ViewState("IdCtaContComplementaria").ToString.ToEntero - CveUltimaVenta = Dr("CveVenta").ToString.ToEntero + ventaRef.IdCtaContableClienteAnticipo = ObjFactura.Cliente.IdCtaContAnticipos + ventaRef.IdCtaContableClienteAnticipoExtranjera = ObjFactura.Cliente.IdCtaMonedaExtranjeraAnticipos + ventaRef.IdCtaContableClienteAnticipoComplementaria = ObjFactura.Cliente.IdCtaContCompAnticipos - Dim ImporteComplementarioIngreso As Decimal = 0 - If UsaComplementariaClientes = True AndAlso tipoCambio > 1 Then - ImporteMN91 = Importe91 - ImporteComplementarioIngreso = ((Importe91 * tipoCambio) - Importe91).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe91, Referencia, 203, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=Dr("CveVenta").ToString.ToEntero, ImporteMX:=ImporteComplementarioIngreso, ImporteME:=If(tipoCambio = 1, 0, Importe91), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=Dr("TCCambioValuacion").ToString.ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe91, Referencia, 91, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=Dr("CveVenta").ToString.ToEntero, ImporteMX:=ImporteMN91, ImporteME:=If(tipoCambio = 1, 0, Importe91), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - ImporteAcumulado91 += (ImporteMN91).RoundSQL + Dim Pago As New ClsPaginas.VentaPago + Pago.Fecha = ObjFactura.Fecha + Pago.FechaDocumentoRelacionado = ObjFactura.Fecha + Pago.ImportePagoVenta = Dr("Importe").ToString().ToDecimal() + Pago.ImportePago = Dr("Importe").ToString().ToDecimal() + Pago.CveMonedaPago = ObjFactura.CveMoneda + Pago.TCPago = TipoCambioNC + Pago.TipoPago = "NC" + Pago.CveVentaAmortizacion = ObjFactura.CveVenta 'Dr("CveVenta").ToString().ToEntero() + Pago.AplicaTraslado = False + Pago.Referencia = Concepto + Pago.CveConceptoPago = 251 - Dim tCveConcepto As Integer = 251 - If Dr("TCCambioValuacion").ToString.ToDecimal > 1 Then tCveConcepto = 301 - If UsaComplementariaClientes = True AndAlso Dr("TCCambioValuacion").ToString.ToDecimal > 1 Then - Dim ImporteComplementarioNC As Decimal = ((Importe251 * Dr("TCCambioValuacion").ToString.ToDecimal) - Importe251).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, 207, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteComplementarioNC, ImporteME:=If(Dr("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString.ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, tCveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=Importe251, ImporteME:=If(Dr("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString.ToDecimal, TipoCambioPago:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - - - 'considero fluctuación. - - Dim TCFluctuacion As Decimal = Dr("TCCambioValuacion").ToString.ToDecimal - If TCFluctuacion = 1 AndAlso TipoCambioNC > 1 Then - TCFluctuacion = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha).ToDecimal - End If - If TipoCambioNC <> TCFluctuacion AndAlso TCFluctuacion > 1 AndAlso TipoCambioNC > 1 Then - Dim difFluctuacion As Decimal = TipoCambioNC - TCFluctuacion - Dim CveConceptoFluctua As Integer = 64 '64.ganacia, 65.perdida - Dim TipoMovtoFluctua As Boolean = True - Dim IdCtaContableFluctua As Integer - If difFluctuacion < 0 Then - CveConceptoFluctua = 65 - TipoMovtoFluctua = False - Else - CveConceptoFluctua = 64 - TipoMovtoFluctua = True - End If - Dim ImporteFluctuacion As Decimal = Math.Abs((Importe251 * difFluctuacion).RoundSQL) * ValorMultiplicador - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovtoFluctua, ImporteFluctuacion, Referencia, CveConceptoFluctua, Concepto, FechaMovimiento, IdCtaContableFluctua, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=Dr("CveVenta").ToString.ToEntero, ImporteMX:=ImporteFluctuacion, ImporteME:=ImporteFluctuacion, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=TipoCambioNC, TipoCambioPago:=Dr("TCCambioValuacion").ToString.ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If + ErrorPrepoliza = ClsPaginas.AplicaPrePolizaPagoVenta(ventaRef, Pago, ObjFactura.CvePrePoliza, ObjConta) Next - If ImporteConcepto12 < ImporteAcumulado91 Then - Dim ImporteOtrosIngresos As Decimal = ImporteConcepto12 - ImporteAcumulado91 - If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, ImporteOtrosIngresos, Referencia, 91, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveUltimaVenta, ImporteMX:=ImporteOtrosIngresos, ImporteME:=0, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio) Then - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, ImporteOtrosIngresos, Referencia, 211, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, ImporteME:=0, ImporteMX:=ImporteOtrosIngresos, CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - End If - Else - ErrorPrepoliza = True - End If - End If - If ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 5) Then If ObjConta.ValorPolizaDescuadre > 0 Then ErrorPrepoliza = True @@ -2855,7 +2801,6 @@ Namespace Modelos End If End If - If ErrorPrepoliza Then Exit For End If @@ -3078,6 +3023,16 @@ Namespace Modelos Dim Contabilizable = If(UsuarioActual.CveEmpresa = 119, False, True) If ValorMultiplicador = -1 Then + Dim TipoCambioNC As Decimal = 1 + If tipoCambio > 1 Then + TipoCambioNC = tipoCambio + Else + If UsuarioActual.CveEmpresa.Contiene(13, 83) Then + TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToDecimal + Else + TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha).ToDecimal + End If + End If 'cuando es cancelación If ObjFactura.DtNCVinculadas IsNot Nothing Then For Each row2 As DataRow In ObjFactura.DtNCVinculadas.Rows @@ -3085,134 +3040,43 @@ Namespace Modelos If row2("CveConceptoContable").ToString().ToEntero.Contiene(91, 294) Then importeMovimiento = (row2("Importe").ToString().ToDecimal * ValorMultiplicador) - sumaAmorticaciones += importeMovimiento - Dim CveConceptoAplicacionNC As Integer = 91 - Dim CveConceptoPagoNC As Integer = 251 + Dim ObjFacturaRef As New Modelos.Factura(UsuarioActual, row2("CveVenta").ToString().ToEntero(), UsuarioActual.CveEmpresa, CargaDTDetalle:=False, VerificaAlmacen:=False, CargaDatosCliente:=False, CargaDatosRelacionados:=False) - If tipoCambio > 1 Then - Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" - CveConceptoAplicacionNC = 294 - CveConceptoPagoNC = 301 + Dim ventaRef As New ClsPaginas.Venta(ObjFacturaRef, UsuarioActual, ValorMultiplicador:=-1D) + + ObjFacturaRef.Dispose() + + ventaRef.ClienteNombre = ObjFactura.Cliente.Nombre + ventaRef.IdCtaContableCliente = If(ventaRef.CveMoneda = 1, ObjFactura.Cliente.IdCtaContClientes, ObjFactura.Cliente.IdCtaContMonedaExtranjera) + ventaRef.IdCtaContableClienteComplementaria = ObjFactura.Cliente.IdCtaContComplementaria ' ViewState("IdCtaContComplementaria").ToString.ToEntero + + ventaRef.IdCtaContableClienteAnticipo = ObjFactura.Cliente.IdCtaContAnticipos + ventaRef.IdCtaContableClienteAnticipoExtranjera = ObjFactura.Cliente.IdCtaMonedaExtranjeraAnticipos + ventaRef.IdCtaContableClienteAnticipoComplementaria = ObjFactura.Cliente.IdCtaContCompAnticipos + + Dim Pago As New ClsPaginas.VentaPago + Pago.Fecha = FechaCancelacion + Pago.FechaDocumentoRelacionado = FechaCancelacion + Pago.ImportePagoVenta = importeMovimiento + Pago.ImportePago = importeMovimiento + Pago.CveMonedaPago = ObjFactura.CveMoneda + Pago.TCPago = TipoCambioNC + Pago.TipoPago = "NC" + Pago.CveVentaAmortizacion = ObjFactura.CveVenta 'Dr("CveVenta").ToString().ToEntero() + Pago.AplicaTraslado = False + Pago.Referencia = Concepto + Pago.CveConceptoPago = 251 + Pago.ValorMultiplicador = -1D + + ErrorPrepoliza = ClsPaginas.AplicaPrePolizaPagoVenta(ventaRef, Pago, ObjFactura.CvePrePoliza, ObjConta) + + If ErrorPrepoliza Then + Exit For End If - 'CTACONTABLE - 'IdCtaContable = IdCtaContAnticipos - - If tipoCambio = 1 Then - IdCtaContable = ObjFactura.Cliente.IdCtaContClientes - Else - IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera - End If - - CveSubProyectoContabilizar = CveSubProyectoVenta - - If importeMovimiento <> 0 Then - - Dim Importe91 As Decimal = 0 - Dim ImporteMN91 As Decimal = 0 - Dim Importe251 As Decimal = 0 - Dim ImporteMN251 As Decimal = 0 - - If ObjFactura.CveMoneda = 1 AndAlso Not row2("TCCambioValuacion").ToString.ToDecimal > 1 Then - Importe251 = row2("Importe").ToString.ToDecimal - Importe91 = row2("Importe").ToString.ToDecimal - ImporteMN91 = row2("Importe").ToString.ToDecimal - tipoCambio = 1 - ElseIf ObjFactura.CveMoneda = 2 AndAlso Not row2("TCCambioValuacion").ToString.ToDecimal > 1 Then - Importe251 = row2("Importe").ToString.ToDecimal - Importe91 = row2("Importe").ToString.ToDecimal - ImporteMN91 = row2("Importe").ToString.ToDecimal * tipoCambio - ElseIf ObjFactura.CveMoneda = 2 AndAlso row2("TCCambioValuacion").ToString.ToDecimal > 1 Then - Importe251 = row2("Importe").ToString.ToDecimal - Importe91 = row2("Importe").ToString.ToDecimal - ImporteMN91 = row2("Importe").ToString.ToDecimal * tipoCambio - ElseIf ObjFactura.CveMoneda = 1 AndAlso row2("TCCambioValuacion").ToString.ToDecimal > 1 Then - - Importe91 = row2("Importe").ToString.ToDecimal / tipoCambio - ImporteMN91 = row2("Importe").ToString.ToDecimal - End If - - Dim TCFluctuacion As Decimal = row2("TCCambioValuacion").ToString.ToDecimal - - If TCFluctuacion = 1 AndAlso tipoCambio > 1 Then - TCFluctuacion = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha).ToDecimal - End If - - If ObjFactura.CveMoneda = 2 AndAlso Not row2("TCCambioValuacion").ToString.ToDecimal > 1 Then - ImporteMN251 = row2("Importe").ToString.ToDecimal * TCFluctuacion - ElseIf ObjFactura.CveMoneda = 2 AndAlso row2("TCCambioValuacion").ToString.ToDecimal > 1 Then - ImporteMN251 = row2("Importe").ToString.ToDecimal * TCFluctuacion - ElseIf ObjFactura.CveMoneda = 1 AndAlso row2("TCCambioValuacion").ToString.ToDecimal > 1 Then - Importe251 = row2("Importe").ToString.ToDecimal / TCFluctuacion - ImporteMN251 = row2("Importe").ToString.ToDecimal - Else - ImporteMN251 = row2("Importe").ToString.ToDecimal - End If - - Importe251 = (Importe251 * Multiplicador * ValorMultiplicador).RoundSQL - ImporteMN251 = ImporteMN251 * ValorMultiplicador - Importe91 = (Importe91 * ValorMultiplicador).RoundSQL - ImporteMN91 = (ImporteMN91 * Multiplicador * ValorMultiplicador).RoundSQL - - - If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${Importe91.FormatoNumero(2)}" - - Dim CveUltimaVenta = row2("CveVenta").ToString.ToEntero - - Dim ImporteComplementarioIngreso As Decimal = 0 - If UsaComplementariaClientes = True AndAlso tipoCambio > 1 Then - ImporteMN91 = Importe91 - ImporteComplementarioIngreso = ((Importe91 * tipoCambio) - Importe91).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe91, Referencia, 203, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContComplementaria, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=row2("CveVenta").ToString.ToEntero, ImporteMX:=ImporteComplementarioIngreso, ImporteME:=If(tipoCambio = 1, 0, Importe91), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=row2("TCCambioValuacion").ToString.ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe91, Referencia, CveConceptoAplicacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=row2("CveVenta").ToString.ToEntero, ImporteMX:=ImporteMN91, ImporteME:=If(tipoCambio = 1, 0, Importe91), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - - - If UsaComplementariaClientes = True AndAlso row2("TCCambioValuacion").ToString.ToDecimal > 1 Then - ImporteMN251 = Importe251 - Dim ImporteComplementarioNC As Decimal = ((Importe251 * row2("TCCambioValuacion").ToString.ToDecimal) - Importe251).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, 207, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContComplementaria, -1, CveVenta:=row2("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteComplementarioNC, ImporteME:=If(row2("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=row2("TCCambioValuacion").ToString.ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, CveConceptoPagoNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteMN251, ImporteME:=If(row2("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=row2("TCCambioValuacion").ToString.ToDecimal, TipoCambioPago:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - - 'CONSIDERO FLUCTUACIÓN. - If tipoCambio <> TCFluctuacion AndAlso TCFluctuacion > 1 AndAlso tipoCambio > 1 Then - Dim difFluctuacion As Decimal = tipoCambio - TCFluctuacion - Dim CveConceptoFluctua As Integer = 64 '64.ganacia, 65.perdida - Dim TipoMovtoFluctua As Boolean = True - Dim IdCtaContableFluctua As Integer - If difFluctuacion < 0 Then - CveConceptoFluctua = 65 - TipoMovtoFluctua = False - Else - CveConceptoFluctua = 64 - TipoMovtoFluctua = True - End If - Dim ImporteFluctuacion As Decimal = Math.Abs((Importe251 * difFluctuacion).RoundSQL) * ValorMultiplicador - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovtoFluctua, ImporteFluctuacion, Referencia, CveConceptoFluctua, Concepto, FechaMovimiento, IdCtaContableFluctua, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=row2("CveVenta").ToString.ToEntero, ImporteMX:=ImporteFluctuacion, ImporteME:=ImporteFluctuacion, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=row2("TCCambioValuacion").ToString.ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If - - End If End If + Next End If @@ -5342,7 +5206,7 @@ Namespace Modelos 'CANCELA PREPOLIZA If Not ErrorCancelar Then ErrorCancelar = ProcesoPrepolizas(ObjFactura, ObjConta, -1, ObjFactura.DtDetalle, ObjAC, -1, ObjBancos, ObjVentas, ObjEventos, DtRemisionesRelacionadas:=DtRemisionesRelacionadas, SeCancelaRemisionProceso:=SeCancelaRemisionProceso, - CancelarRemisiones:=CancelarRemisiones, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveEstatusRefacturacion:=CveEstatusRefacturacion, ObjInventario:=ObjInventario) + CancelarRemisiones:=CancelarRemisiones, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveEstatusRefacturacion:=CveEstatusRefacturacion, ObjInventario:=ObjInventario, FechaCancelacion:=CancelacionFecha) MensajeError = "Ocurrió un error al generar la prepoliza de cancelación." End If @@ -7693,6 +7557,8 @@ Namespace Modelos Public Property IdCtaContMonedaExtranjera As Integer Public Property IdCtaContComplementaria As Integer Public Property IdCtaContAnticipos As Integer + Public Property IdCtaMonedaExtranjeraAnticipos As Integer + Public Property IdCtaContCompAnticipos As Integer Public Property IdCtaContRetIVA As Integer Public Property IdCtaContRetISR As Integer Public Property ConvenioCIE As String diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index 866df3a64..ac85150ad 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -1584,7 +1584,7 @@ Partial Class Bancos_PopIECompras End If If MsgError = "" Then - Dim VentaActual As New Venta With {.CveVenta = rw.DataKey("CveVenta").ToEntero, .ClienteNombre = NombreCliente, .SerieFolio = rw.DataKey("SerieFolio"), .CveCliente = rw.DataKey("CveCliente").ToEntero, .IVA = rw.DataKey("IVA").ToDecimal, .IEPS = rw.DataKey("IEPS").ToDecimal, .RetIVA = rw.DataKey("RetIVA").ToDecimal, .RetISR = rw.DataKey("RetISR").ToDecimal, .Total = rw.DataKey("Total").ToDecimal, .PorcentajeIVA = rw.DataKey("PorcentajeIVA").ToDecimal, .CveSubProyecto = rw.DataKey("CveSubProyecto").ToEntero, .CveMoneda = rw.DataKey("CveMoneda").ToEntero} + Dim VentaActual As New Venta(UsuarioActual) With {.CveVenta = rw.DataKey("CveVenta").ToEntero, .ClienteNombre = NombreCliente, .SerieFolio = rw.DataKey("SerieFolio"), .CveCliente = rw.DataKey("CveCliente").ToEntero, .IVA = rw.DataKey("IVA").ToDecimal, .IEPS = rw.DataKey("IEPS").ToDecimal, .RetIVA = rw.DataKey("RetIVA").ToDecimal, .RetISR = rw.DataKey("RetISR").ToDecimal, .Total = rw.DataKey("Total").ToDecimal, .PorcentajeIVA = rw.DataKey("PorcentajeIVA").ToDecimal, .CveSubProyecto = rw.DataKey("CveSubProyecto").ToEntero, .CveMoneda = rw.DataKey("CveMoneda").ToEntero} Dim PagoVenta As New VentaPago PagoVenta.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index 169cb891c..11f51f91d 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -966,7 +966,7 @@ Partial Class Ventas_ClientesAbonar ObjFactura = New Modelos.Factura(UsuarioActual, gvr.DataKey("CveVenta").ToEntero(), UsuarioActual.CveEmpresa) End If - Dim VentaActual As New Venta + Dim VentaActual As New Venta(UsuarioActual) VentaActual.CveVenta = gvr.DataKey("CveVenta").ToEntero VentaActual.Fecha = gvr.DataKey("Fecha").ToDate VentaActual.CveCliente = gvr.DataKey("CveCliente").ToEntero @@ -982,7 +982,6 @@ Partial Class Ventas_ClientesAbonar VentaActual.RetISR = gvr.DataKey("RetISR").ToDecimal VentaActual.PorcentajeIVA = gvr.DataKey("PorcentajeIVA").ToDecimal - VentaActual.UsuarioActual = UsuarioActual VentaActual.CveSubProyecto = gvr.DataKey("CveSubProyecto").ToEntero VentaActual.IdCtaContableCliente = IIf(VentaActual.CveMoneda = 1, IdCuentaCliente, IdCtaContMonedaExtranjera) VentaActual.IdCtaContableClienteComplementaria = IdCtaContComplementaria diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index d7a6ea8a7..b84e0e5ce 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -5277,7 +5277,7 @@ Partial Class Ventas TxtKilometraje.Text = DbRowVenta("Kilometraje").ToString().PadLeft(6, "0"c) - VentaActual = New Venta + VentaActual = New Venta(UsuarioActual) VentaActual.CveVenta = CveVenta VentaActual.Fecha = DbRowVenta("Fecha").ToString.ToDate VentaActual.CveCliente = DbRowVenta("CveCliente").ToString.ToEntero @@ -10079,8 +10079,38 @@ Partial Class Ventas End If End If + 'ContPAQ El movimiento 1 es el de Venta + Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1" + + AutoConta = AutocontaMatriz(AutoConta) + + If DdlTipoComprobante.SelectedValue.Contiene("Rem", "RNC", "Cot", "Ped", "Pd2", "PA") Then + AutoConta = False + End If + + If UsuarioActual.CveEmpresa = 119 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "Egs", "Dev") Then + AutoConta = False + End If + + If UsuarioActual.CveEmpresa = 140 Then + AutoConta = True + idCuentaContabilizacion = 10 + End If + + Try + If AutoConta Then + If Not ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then + ErrorList.Add("Ocurrió un error al contabilizar, pongase en contacto con soporte técnico") + End If + End If + Catch ex As Exception + ErrorList.Add("Ocurrió un error al contabilizar, pongase en contacto con soporte técnico") + OnError("Ocurrió un error al contabilizar la factura", ex) + End Try + If ObjFactura.CveVenta > 0 AndAlso ErrorList.Count = 0 AndAlso (SeGuardoPrePoliza Or ObjFactura.TipoDocto.Contiene("Ped", "Cot", "DPe", "PeC", "PA", "Pd2")) Then ObjVentas.Commit() + If ObjContPaq IsNot Nothing Then ObjContPaq.Commit() 'ENVIAR POLIZA VIRTUAL If ErrorList.Count = 0 Then @@ -10089,42 +10119,6 @@ Partial Class Ventas End If End If - 'ContPAQ El movimiento 1 es el de Venta - Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1" - - AutoConta = AutocontaMatriz(AutoConta) - - If UsuarioActual.CveEmpresa = 119 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "Egs", "Dev") Then - AutoConta = False - End If - - If UsuarioActual.CveEmpresa = 140 Then - AutoConta = True - idCuentaContabilizacion = 10 - End If - - Try - If AutoConta Then - If idCuentaContabilizacion > 0 Or UsuarioActual.CveEmpresa.Contiene(7, 11, 12, 122, 145) Then - If ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then - If ObjContPaq IsNot Nothing Then ObjContPaq.Commit() - Else - Alert("Ocurrió un Error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) - If ObjContPaq IsNot Nothing Then ObjContPaq.RollBack() - End If - Else - Alert(String.Format("Falta asignación de las siguientes cuentas contables: {0}", CuentasContablesInvalidas), TipoMensaje.MsgAdvertencia) - End If - - Else - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso UsuarioActual.Empresa.UsaAC Then - If ObjContPaq IsNot Nothing Then ObjContPaq.Commit() - End If - End If - Catch ex As Exception - OnError("Ocurrió un error al contabilizar la factura", ex) - End Try - Try 'RMF, cuando es pedido, se manda autorización. If ObjFactura.TipoDocto.Contiene("PA") Then @@ -14042,456 +14036,294 @@ Partial Class Ventas Case 12 'Nota de Credito If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then + Dim ConPreP As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(6, ObjFactura.CveMoneda, False, 2) + importeMovimiento = ObjFactura.Total * ValorMultiplicador - importeMX = (importeMovimiento * tipoCambio * Multiplicador).RoundSQL + importeMX = (importeMovimiento * tipoCambio * Multiplicador).RoundSQL(2) FechaMovimiento = ObjFactura.FechaPago - Dim ImporteConcepto12 As Decimal = 0 - Dim ImporteAcumulado91 As Decimal = 0 - Dim CveUltimaVenta As Integer = 0 - If tipoCambio > 1 Then - Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" - ConceptoContable = 293 - End If - If tipoCambio = 1 Then - IdCtaContable = ObjFactura.Cliente.IdCtaContClientes - ElseIf UsaComplementariaClientes Then - IdCtaContable = ObjFactura.Cliente.IdCtaContComplementaria + CveSubProyectoContabilizar = ObjFactura.CveSubProyecto - If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsaComplementariaClientes) Then - importeMX = importeMovimiento - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, 203, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=Math.Round(importeMovimiento * tipoCambio - importeMovimiento, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - End If - End If + IdCtaContable = ObjFactura.Cliente.IdCtaContClientes + If ObjFactura.CveMoneda = 2 Then + importeMX = importeMovimiento IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera - 'CveCuenta = ObjFactura.Cliente.CveCuentaMonedaExtranjera + Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" End If - CveSubProyectoContabilizar = CveSubProyectoVenta - ImporteConcepto12 = importeMX.RoundSQL - If importeMovimiento <> 0 Then - If IdCtaContable <= 0 Then - CuentasContablesInvalidas.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString()) - idCuentaContabilizacion = 0 - End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConPreP.CveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + End If + + If UsaComplementariaClientes AndAlso ObjFactura.CveMoneda = 2 Then + IdCtaContable = ObjFactura.Cliente.IdCtaContComplementaria + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, ConPreP.CveConceptoComplementario, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=(importeMovimiento * tipoCambio - importeMovimiento).RoundSQL(2), ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=CveSubProyectoContabilizar) Then ErrorPrepoliza = True - Else - ViewState("SeGuardoPrePoliza") = True End If End If - importeMovimiento = 0 - If ValorMultiplicador = 1 Then - - Dim IdCtaContableClienteComplementaria As Integer = ObjFactura.Cliente.IdCtaContComplementaria - Dim TipoCambioNC As Decimal = 1 - If tipoCambio > 1 Then - TipoCambioNC = tipoCambio + Dim TipoCambioNC As Decimal = 1 + If tipoCambio > 1 Then + TipoCambioNC = tipoCambio + Else + If UsuarioActual.CveEmpresa.Contiene(13, 83) Then + TipoCambioNC = GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToDecimal Else - - If UsuarioActual.CveEmpresa.Contiene(13, 83) Then - TipoCambioNC = GlobalTipoCambio(TxtFecha.Text.ToDate.AddDays(-1)).ToDecimal - Else - TipoCambioNC = GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal - End If - + TipoCambioNC = GlobalTipoCambio(ObjFactura.Fecha).ToDecimal End If + End If - 'APLICA NC SALDOS DIRECTOS - If DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then - For Each Dr As DataRow In DtVentasNC.Rows + importeMovimiento = 0 + importeMX = 0 + 'APLICA NC SALDOS DIRECTOS + If Not ErrorPrepoliza AndAlso DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then + For Each Dr As DataRow In DtVentasNC.Rows + Dim ObjFacturaRef As New Modelos.Factura(UsuarioActual, Dr("CveVenta").ToString().ToEntero(), UsuarioActual.CveEmpresa, CargaDTDetalle:=False, VerificaAlmacen:=False, CargaDatosCliente:=False, CargaDatosRelacionados:=False) - Dim Importe91 As Decimal = 0 - Dim ImporteMN91 As Decimal = 0 - Dim Importe251 As Decimal = 0 - Dim ImporteMN251 As Decimal = 0 + Dim ventaRef As New Venta(ObjFacturaRef, UsuarioActual) - If DdlMoneda.SelectedValue.ToEntero() = 1 AndAlso Not Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then - Importe251 = Dr("Importe").ToString().ToDecimal - Importe91 = Dr("Importe").ToString().ToDecimal - ImporteMN91 = Dr("Importe").ToString().ToDecimal - TipoCambioNC = 1 - ElseIf DdlMoneda.SelectedValue.ToEntero() = 2 AndAlso Not Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then - Importe251 = Dr("Importe").ToString().ToDecimal - Importe91 = Dr("Importe").ToString().ToDecimal - ImporteMN91 = Dr("Importe").ToString().ToDecimal * TipoCambioNC - ElseIf DdlMoneda.SelectedValue.ToEntero() = 2 AndAlso Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then - Importe251 = Dr("Importe").ToString().ToDecimal - Importe91 = Dr("Importe").ToString().ToDecimal - ImporteMN91 = Dr("Importe").ToString().ToDecimal * TipoCambioNC - ElseIf DdlMoneda.SelectedValue.ToEntero() = 1 AndAlso Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then + ObjFacturaRef.Dispose() - Importe91 = Dr("Importe").ToString().ToDecimal / TipoCambioNC - ImporteMN91 = Dr("Importe").ToString().ToDecimal - End If + ventaRef.ClienteNombre = NombreCliente + ventaRef.IdCtaContableCliente = IIf(ventaRef.CveMoneda = 1, ViewState("IdCtaContClientes"), ViewState("IdCtaContMonedaExtranjera")).ToString.ToEntero + ventaRef.IdCtaContableClienteComplementaria = ViewState("IdCtaContComplementaria").ToString.ToEntero - Dim TCFluctuacion As Decimal = Dr("TCCambioValuacion").ToString().ToDecimal - If TCFluctuacion = 1 AndAlso TipoCambioNC > 1 Then - If UsuarioActual.CveEmpresa.Contiene(13, 83) Then - TCFluctuacion = GlobalTipoCambio(TxtFecha.Text.ToDate.AddDays(-1)).ToDecimal - Else - TCFluctuacion = GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal - End If - End If + ventaRef.IdCtaContableClienteAnticipo = ViewState("IdCtaContAnticipos").ToString.ToEntero + ventaRef.IdCtaContableClienteAnticipoExtranjera = ViewState("IdCtaContAnticiposExtranjera").ToString.ToEntero + ventaRef.IdCtaContableClienteAnticipoComplementaria = ViewState("IdCtaContAnticiposComplementaria").ToString.ToEntero - If DdlMoneda.SelectedValue.ToEntero() = 2 AndAlso Not Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then - ImporteMN251 = Dr("Importe").ToString().ToDecimal * TCFluctuacion - ElseIf DdlMoneda.SelectedValue.ToEntero() = 2 AndAlso Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then - ImporteMN251 = Dr("Importe").ToString().ToDecimal * TCFluctuacion - ElseIf DdlMoneda.SelectedValue.ToEntero() = 1 AndAlso Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then - Importe251 = Dr("Importe").ToString().ToDecimal / TCFluctuacion - ImporteMN251 = Dr("Importe").ToString().ToDecimal - Else - ImporteMN251 = Dr("Importe").ToString().ToDecimal - End If - - Importe251 = Importe251.RoundSQL - - Importe91 = (Importe91).RoundSQL - ImporteMN91 = (ImporteMN91 * Multiplicador).RoundSQL - If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${Importe91.FormatoNumero(2)}" - - CveUltimaVenta = Dr("CveVenta").ToString().ToEntero() - - Dim ImporteComplementarioIngreso As Decimal = 0 - If UsaComplementariaClientes = True AndAlso tipoCambio > 1 Then - ImporteMN91 = Importe91 - ImporteComplementarioIngreso = ((Importe91 * tipoCambio) - Importe91).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe91, Referencia, 203, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=Dr("CveVenta").ToString().ToEntero(), ImporteMX:=ImporteComplementarioIngreso, ImporteME:=If(tipoCambio = 1, 0, Importe91), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=Dr("TCCambioValuacion").ToString().ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If - Dim CveConceptoAplicacionNC As Integer = 91 - 'SI LA NOTA DE CREDITO ES EN MONEDA EXTRANGERA UTILIZAR EL CONCEPTO DE APLICACION ME - If ConceptoContable = 293 Then - CveConceptoAplicacionNC = 294 - End If - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe91, Referencia, CveConceptoAplicacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=Dr("CveVenta").ToString().ToEntero(), ImporteMX:=ImporteMN91, ImporteME:=If(tipoCambio = 1, 0, Importe91), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - ImporteAcumulado91 += (ImporteMN91).RoundSQL - - If UsaComplementariaClientes = True AndAlso Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then - ImporteMN251 = Importe251 - Dim ImporteComplementarioNC As Decimal = ((Importe251 * Dr("TCCambioValuacion").ToString().ToDecimal) - Importe251).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, 207, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteComplementarioNC, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If - - ' Traslado de impuestos cuando es amortizacion de NC - If EsNCAmortizacion Then - '' aqui no se registra el pago como NC, se deja para el registro de la aplicaion del anticipo - '' esto para trasladar los impuestos. - - If Not AplicoNCFacturaActual Then - If DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero() = 2 AndAlso ObjFactura.TipoDocto.Contiene("Egs") Then - - For Each row2 As GridViewRow In GVAnticipos.Rows - If row2.DataKey("CveConceptoContable").ToString().ToEntero() = 3 Then - If row2.FCCheckBox("Chk" & row2.RowIndex).Checked Then - CveIEAnticipo = row2.DataKey("CveIE").ToString().ToEntero() - importeMovimiento = row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal '- ((row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal / row2.DataKey("TotalAnticipo").ToDecimal) * row2.DataKey("IVAAnticipo").ToDecimal) - Dim ImporteAnticipo As Decimal = importeMovimiento - Dim CveMonedaAnticipo As Integer = row2.DataKey("CveMoneda").ToString().ToEntero() - - If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" - - If DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then ImporteAnticipo = row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal / row2.DataKey("TotalAnticipo").ToDecimal * row2.DataKey("SubTotalAnticipo").ToDecimal - - Dim Importe11MX As Decimal = ImporteAnticipo - - IdCtaContable = IdCtaContAnticipos - CveSubProyectoContabilizar = CveSubProyectoVenta - - If importeMovimiento <> 0 Then - - 'SI LA NC ES EN DOLARES Y PERO VIENE DE UN ANTICIPO EN PESOS - If (Not UsuarioActual.CveEmpresa.Contiene(72, 80, 146)) AndAlso ObjFactura.CveMoneda = 2 Then - - Dim tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate).ToDecimal - - If UsuarioActual.CveEmpresa.Contiene(13, 83) Then - tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate.AddDays(-1)).ToDecimal - End If - - - If ObjFactura.CveMoneda = 2 AndAlso CveMonedaAnticipo = 1 Then - Importe11MX = Importe11MX * tipoCambio - End If - - If row2.DataKey("CveMoneda").ToString.ToEntero = 2 Then - IdCtaContable = IdCtaContAnticiposExtranjera - End If - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe11MX, Referencia, 11, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2.DataKey("CveVenta").ToEntero(), CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=Importe11MX, ImporteME:=If(tipoCambioAnticipo = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioAnticipo) Then - ErrorPrepoliza = True - Exit For - End If - - If row2.DataKey("CveMoneda").ToString.ToEntero = 2 Then - IdCtaContable = IdCtaContAnticiposComplementaria - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, ImporteAnticipo * tipoCambioAnticipo - ImporteAnticipo, Referencia, 227, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2.DataKey("CveVenta").ToEntero(), CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=ImporteAnticipo * tipoCambioAnticipo - ImporteAnticipo, ImporteME:=If(tipoCambioAnticipo = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioAnticipo) Then - ErrorPrepoliza = True - Exit For - End If - End If - - Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 292, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 292, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContMonedaExtranjera, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - - Else - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe11MX, Referencia, 11, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2.DataKey("CveVenta").ToEntero(), CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=Importe11MX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For - Else - ViewState("SeGuardoPrePoliza") = True - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 2, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContClientes, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - 'se hace acreditamiento de impuestos - 'IVA X TRASLADAR - Dim EsAnticipoEspecial As Boolean = False - - If UsuarioActual.CveEmpresa.Contiene(1, 119) Then EsAnticipoEspecial = True - If EsAnticipoEspecial Then - Dim PorcentajeImpuestoPago As Decimal = TmpDT.MAX("PorcentajeIVA").ToDecimal - '' si se esta aplicando NC por amortizaion, se trasladan impuestos - If EsNCAmortizacion Then - Dim IngresoIVA As Decimal = TxtIVA.Text.ToDecimal - Dim IngresoIEPS As Decimal = TxtIEPS.Text.ToDecimal - Dim IngresoTotal As Decimal = TxtTotal.Text.ToDecimal - - If IngresoIVA > 0 Then - - Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 13, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, (importeMovimiento * IngresoIVA) / IngresoTotal, Referencia, 13, Concepto, Fecha, IdCtaIVAXTrasladar, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIVA) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuestoPago) Then - ErrorPrepoliza = True - Exit For - End If - 'IVA PAGADO - Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 61, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, (importeMovimiento * IngresoIVA) / IngresoTotal, Referencia, 61, Concepto, Fecha, IdCtaIVATrasladado, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIVA) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuestoPago) Then - ErrorPrepoliza = True - Exit For - End If - End If - - - If IngresoIEPS > 0 Then - 'IEPS X TRASLADAR - Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 38, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) - If IngresoIEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, (importeMovimiento * IngresoIEPS) / IngresoTotal, Referencia, 38, Concepto, Fecha, 0, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIEPS) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - Exit For - End If - - 'IEPS PAGADO - Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 39, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) - If IngresoIEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, (importeMovimiento * IngresoIEPS) / IngresoTotal, Referencia, 39, Concepto, Fecha, 0, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIEPS) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - Exit For - End If - End If - End If - End If - End If - End If - - End If - - End If - End If - Next - - End If - ElseIf AplicoNCFacturaActual AndAlso ChkAplicaNCAnticipo.Checked Then - - Dim CveConceptoPagoNC As Integer = 251 - If ObjFactura.CveMoneda > 1 Then - CveConceptoPagoNC = 301 - End If - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, CveConceptoPagoNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteMN251, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - End If - - Else - - Dim CveConceptoPagoNC As Integer = 251 - If ObjFactura.CveMoneda > 1 Then - CveConceptoPagoNC = 301 - End If - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, CveConceptoPagoNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteMN251, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then - ErrorPrepoliza = True - Exit For - End If - End If - - - - - 'considero fluctuación. - - - If TipoCambioNC <> TCFluctuacion AndAlso TCFluctuacion > 1 AndAlso TipoCambioNC > 1 Then - Dim difFluctuacion As Decimal = TipoCambioNC - TCFluctuacion - Dim CveConceptoFluctua As Integer = 64 '64.ganacia, 65.perdida - Dim TipoMovtoFluctua As Boolean = True - Dim IdCtaContableFluctua As Integer - If difFluctuacion < 0 Then - CveConceptoFluctua = 65 - TipoMovtoFluctua = False - Else - CveConceptoFluctua = 64 - TipoMovtoFluctua = True - End If - Dim ImporteFluctuacion As Decimal = Math.Abs((Importe251 * difFluctuacion).RoundSQL) - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovtoFluctua, ImporteFluctuacion, Referencia, CveConceptoFluctua, Concepto, FechaMovimiento, IdCtaContableFluctua, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=Dr("CveVenta").ToString().ToEntero(), ImporteMX:=ImporteFluctuacion, ImporteME:=ImporteFluctuacion, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=TipoCambioNC, TipoCambioPago:=Dr("TCCambioValuacion").ToString().ToDecimal) Then - ErrorPrepoliza = True - Exit For - End If - End If - - Next - - If ImporteConcepto12 <> ImporteAcumulado91 Then - Dim CveConceptoOtIngresos As Integer = 0 - Dim IdCuentaContableOt As Integer = 0 - Dim TipoMovtoOt As Boolean = False - - If ImporteConcepto12 > ImporteAcumulado91 Then - IdCuentaContableOt = UsuarioActual.Empresa.Funcionalidad(559).ToEntero() - CveConceptoOtIngresos = 211 - TipoMovtoOt = False - Else - IdCuentaContableOt = UsuarioActual.Empresa.IdCuentaOtrosIngresos - CveConceptoOtIngresos = 78 - TipoMovtoOt = True - End If - - - Dim ImporteOtrosIngresos As Decimal = ImporteConcepto12 - ImporteAcumulado91 - ' If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, ImporteOtrosIngresos, Referencia, 91, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveUltimaVenta, ImporteMX:=ImporteOtrosIngresos, ImporteME:=0, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio) Then - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovtoOt, ImporteOtrosIngresos, Referencia, CveConceptoOtIngresos, Concepto, FechaMovimiento, IdCuentaContableOt, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, ImporteME:=0, ImporteMX:=ImporteOtrosIngresos, CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - End If - 'Else - ' ErrorPrepoliza = True - 'End If - End If - - If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 5) Then - If ObjConta.ValorPolizaDescuadre > 0 Then - 'ErrorPrepoliza = True - GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas") - - 'SIRVE PARA VER LA PREPOLIZA QUE SE VALIDA - 'If ObjConta.GetPrePolizasDetalle(ObjFactura.CvePrePoliza) Then - ' Dim DtTest = ObjConta.DtResultados - 'End If - End If - End If + Dim Pago As New VentaPago + Pago.Fecha = ObjFactura.Fecha + Pago.FechaDocumentoRelacionado = ObjFactura.Fecha + Pago.ImportePagoVenta = Dr("Importe").ToString().ToDecimal() + Pago.ImportePago = Dr("Importe").ToString().ToDecimal() + Pago.CveMonedaPago = ObjFactura.CveMoneda + Pago.TCPago = TipoCambioNC + Pago.TipoPago = "NC" + Pago.CveVentaAmortizacion = ObjFactura.CveVenta 'Dr("CveVenta").ToString().ToEntero() + Pago.AplicaTraslado = False + Pago.Referencia = Concepto + Pago.CveConceptoPago = 251 + ErrorPrepoliza = AplicaPrePolizaPagoVenta(ventaRef, Pago, ObjFactura.CvePrePoliza, ObjConta) If ErrorPrepoliza Then Exit For End If - End If - 'APLICA DEVOLUCION SALDOS DIRECTOS - If AplicaDevolucion Then - Dim importeMovimientoDev = TxtTotal.Text.ToDecimal - importeMovimientoDev = If(SaldoVentaDevolucion < importeMovimientoDev, SaldoVentaDevolucion, importeMovimientoDev) - If importeMovimientoDev > 0 Then - Dim importeMXDev = importeMovimientoDev * tipoCambio * Multiplicador - If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimientoDev.FormatoNumero(2)}" + If Not ErrorPrepoliza AndAlso EsNCAmortizacion AndAlso Not AplicoNCFacturaActual AndAlso DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero() = 2 AndAlso ObjFactura.TipoDocto.Contiene("Egs") Then - If UsaComplementariaClientes AndAlso tipoCambio > 1 Then - importeMXDev = importeMovimientoDev - Dim ImporteComplementaria As Decimal = ((importeMovimientoDev * tipoCambio) - importeMovimientoDev).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, importeMovimientoDev, Referencia, 203, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=ImporteComplementaria, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=TipoCambioFactura) Then - ErrorPrepoliza = True - Exit For + For Each row2 As GridViewRow In GVAnticipos.Rows + If row2.DataKey("CveConceptoContable").ToString().ToEntero() = 3 Then + If row2.FCCheckBox("Chk" & row2.RowIndex).Checked Then + CveIEAnticipo = row2.DataKey("CveIE").ToString().ToEntero() + importeMovimiento = row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal '- ((row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal / row2.DataKey("TotalAnticipo").ToDecimal) * row2.DataKey("IVAAnticipo").ToDecimal) + Dim ImporteAnticipo As Decimal = importeMovimiento + Dim CveMonedaAnticipo As Integer = row2.DataKey("CveMoneda").ToString().ToEntero() + + If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" + + If DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then ImporteAnticipo = row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal / row2.DataKey("TotalAnticipo").ToDecimal * row2.DataKey("SubTotalAnticipo").ToDecimal + + Dim Importe11MX As Decimal = ImporteAnticipo + + IdCtaContable = IdCtaContAnticipos + CveSubProyectoContabilizar = CveSubProyectoVenta + + If importeMovimiento <> 0 Then + + 'SI LA NC ES EN DOLARES Y PERO VIENE DE UN ANTICIPO EN PESOS + If (Not UsuarioActual.CveEmpresa.Contiene(72, 80, 146)) AndAlso ObjFactura.CveMoneda = 2 Then + + Dim tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate).ToDecimal + + If UsuarioActual.CveEmpresa.Contiene(13, 83) Then + tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate.AddDays(-1)).ToDecimal + End If + + + If ObjFactura.CveMoneda = 2 AndAlso CveMonedaAnticipo = 1 Then + Importe11MX = Importe11MX * tipoCambio + End If + + If row2.DataKey("CveMoneda").ToString.ToEntero = 2 Then + IdCtaContable = IdCtaContAnticiposExtranjera + End If + + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe11MX, Referencia, 11, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2.DataKey("CveVenta").ToEntero(), CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=Importe11MX, ImporteME:=If(tipoCambioAnticipo = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioAnticipo) Then + ErrorPrepoliza = True + Exit For + End If + + If row2.DataKey("CveMoneda").ToString.ToEntero = 2 Then + IdCtaContable = IdCtaContAnticiposComplementaria + + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, ImporteAnticipo * tipoCambioAnticipo - ImporteAnticipo, Referencia, 227, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2.DataKey("CveVenta").ToEntero(), CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=ImporteAnticipo * tipoCambioAnticipo - ImporteAnticipo, ImporteME:=If(tipoCambioAnticipo = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioAnticipo) Then + ErrorPrepoliza = True + Exit For + End If + End If + + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 292, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) + + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 292, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContMonedaExtranjera, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then + ErrorPrepoliza = True + Exit For + End If + + Else + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe11MX, Referencia, 11, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2.DataKey("CveVenta").ToEntero(), CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=Importe11MX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + Exit For + Else + ViewState("SeGuardoPrePoliza") = True + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 2, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContClientes, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then + ErrorPrepoliza = True + Exit For + End If + 'se hace acreditamiento de impuestos + 'IVA X TRASLADAR + Dim EsAnticipoEspecial As Boolean = False + + If UsuarioActual.CveEmpresa.Contiene(1, 119) Then EsAnticipoEspecial = True + If EsAnticipoEspecial Then + Dim PorcentajeImpuestoPago As Decimal = TmpDT.MAX("PorcentajeIVA").ToDecimal + '' si se esta aplicando NC por amortizaion, se trasladan impuestos + If EsNCAmortizacion Then + Dim IngresoIVA As Decimal = TxtIVA.Text.ToDecimal + Dim IngresoIEPS As Decimal = TxtIEPS.Text.ToDecimal + Dim IngresoTotal As Decimal = TxtTotal.Text.ToDecimal + + If IngresoIVA > 0 Then + + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 13, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, (importeMovimiento * IngresoIVA) / IngresoTotal, Referencia, 13, Concepto, Fecha, IdCtaIVAXTrasladar, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIVA) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuestoPago) Then + ErrorPrepoliza = True + Exit For + End If + 'IVA PAGADO + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 61, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, (importeMovimiento * IngresoIVA) / IngresoTotal, Referencia, 61, Concepto, Fecha, IdCtaIVATrasladado, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIVA) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuestoPago) Then + ErrorPrepoliza = True + Exit For + End If + End If + + + If IngresoIEPS > 0 Then + 'IEPS X TRASLADAR + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 38, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) + If IngresoIEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, (importeMovimiento * IngresoIEPS) / IngresoTotal, Referencia, 38, Concepto, Fecha, 0, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIEPS) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + Exit For + End If + + 'IEPS PAGADO + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 39, NombreCliente, Dr("Folio").ToString, FolioIE.ToString()) + If IngresoIEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, (importeMovimiento * IngresoIEPS) / IngresoTotal, Referencia, 39, Concepto, Fecha, 0, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIEPS) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + Exit For + End If + End If + End If + End If + End If + End If + + End If + + End If End If - End If - - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, importeMovimientoDev, Referencia, 91, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=importeMXDev, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - Exit For - End If - - If UsaComplementariaClientes AndAlso TipoCambioFactura > 1 Then - importeMXDev = importeMovimientoDev - Dim ImporteComplementaria As Decimal = ((importeMovimientoDev * TipoCambioFactura) - importeMovimientoDev).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimientoDev, Referencia, 207, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=CveVentaDevolucion, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteComplementaria, ImporteME:=If(TipoCambioFactura = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=TipoCambioFactura) Then - ErrorPrepoliza = True - Exit For - End If - End If - - Dim CveConceptoPagoNC As Integer = 251 - If ObjFactura.CveMoneda > 1 Then - CveConceptoPagoNC = 301 - End If - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimientoDev, Referencia, CveConceptoPagoNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=CveVentaDevolucion, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=ObjFactura.CveVenta, ImporteMX:=importeMXDev, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar) Then - ErrorPrepoliza = True - Exit For - End If - - If tipoCambio <> TipoCambioFactura Then - Dim difFluctuacion As Decimal = tipoCambio - TipoCambioFactura - Dim CveConceptoFluctua As Integer = 64 '64.ganacia, 65.perdida - Dim TipoMovtoFluctua As Boolean = True - Dim IdCtaContableFluctua As Integer - If difFluctuacion < 0 Then - CveConceptoFluctua = 65 - TipoMovtoFluctua = False - Else - CveConceptoFluctua = 64 - TipoMovtoFluctua = True - End If - Dim ImporteFluctuacion As Decimal = Math.Abs((importeMovimientoDev * difFluctuacion).RoundSQL) - - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovtoFluctua, ImporteFluctuacion, Referencia, CveConceptoFluctua, Concepto, FechaMovimiento, IdCtaContableFluctua, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=ImporteFluctuacion, ImporteME:=ImporteFluctuacion, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=TipoCambioFactura) Then - ErrorPrepoliza = True - Exit For - End If - End If - - If ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 2) Then - If ObjConta.ValorPolizaDescuadre > 0 Then - 'ErrorPrepoliza = True - GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas") - - 'SIRVE PARA VER LA PREPOLIZA QUE SE VALIDA - 'If ObjConta.GetPrePolizasDetalle(ObjFactura.CvePrePoliza) Then - ' Dim DtTest = ObjConta.DtResultados - 'End If - End If - End If + Next End If + Next + + If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 5) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + 'ErrorPrepoliza = True + GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas") + End If + End If + + + If ErrorPrepoliza Then + Exit For + End If + End If + + 'APLICA DEVOLUCION SALDOS DIRECTOS + If AplicaDevolucion Then + IdCtaContable = ObjFactura.Cliente.IdCtaContClientes + Dim IdCtaContableClienteComplementaria As Integer = ObjFactura.Cliente.IdCtaContComplementaria + + Dim importeMovimientoDev = TxtTotal.Text.ToDecimal + importeMovimientoDev = If(SaldoVentaDevolucion < importeMovimientoDev, SaldoVentaDevolucion, importeMovimientoDev) + If importeMovimientoDev > 0 Then + Dim importeMXDev = importeMovimientoDev * tipoCambio * Multiplicador + If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimientoDev.FormatoNumero(2)}" + + If UsaComplementariaClientes AndAlso tipoCambio > 1 Then + importeMXDev = importeMovimientoDev + Dim ImporteComplementaria As Decimal = ((importeMovimientoDev * tipoCambio) - importeMovimientoDev).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, importeMovimientoDev, Referencia, 203, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=ImporteComplementaria, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=TipoCambioFactura) Then + ErrorPrepoliza = True + Exit For + End If + End If + + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, importeMovimientoDev, Referencia, 91, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=importeMXDev, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + Exit For + End If + + If UsaComplementariaClientes AndAlso TipoCambioFactura > 1 Then + importeMXDev = importeMovimientoDev + Dim ImporteComplementaria As Decimal = ((importeMovimientoDev * TipoCambioFactura) - importeMovimientoDev).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimientoDev, Referencia, 207, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=CveVentaDevolucion, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteComplementaria, ImporteME:=If(TipoCambioFactura = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=TipoCambioFactura) Then + ErrorPrepoliza = True + Exit For + End If + End If + + Dim CveConceptoPagoNC As Integer = 251 + If ObjFactura.CveMoneda > 1 Then + CveConceptoPagoNC = 301 + End If + + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimientoDev, Referencia, CveConceptoPagoNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=CveVentaDevolucion, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=ObjFactura.CveVenta, ImporteMX:=importeMXDev, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + Exit For + End If + + If tipoCambio <> TipoCambioFactura Then + Dim difFluctuacion As Decimal = tipoCambio - TipoCambioFactura + Dim CveConceptoFluctua As Integer = 64 '64.ganacia, 65.perdida + Dim TipoMovtoFluctua As Boolean = True + Dim IdCtaContableFluctua As Integer + If difFluctuacion < 0 Then + CveConceptoFluctua = 65 + TipoMovtoFluctua = False + Else + CveConceptoFluctua = 64 + TipoMovtoFluctua = True + End If + Dim ImporteFluctuacion As Decimal = Math.Abs((importeMovimientoDev * difFluctuacion).RoundSQL) + + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovtoFluctua, ImporteFluctuacion, Referencia, CveConceptoFluctua, Concepto, FechaMovimiento, IdCtaContableFluctua, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=ImporteFluctuacion, ImporteME:=ImporteFluctuacion, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=TipoCambioFactura) Then + ErrorPrepoliza = True + Exit For + End If + End If + + If ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 2) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas") + End If + End If + End If End If End If @@ -16575,9 +16407,9 @@ Partial Class Ventas Pago.CveIE = CveIEAnticipo Pago.CveMonedaPago = gvr.DataKey("CveMoneda").ToEntero() Pago.TipoPago = "A" - Pago.Fecha = TxtFechaAnticipoCliente.text.todate 'TCPago = gvr.DataKey("TipoCambio").todecimal + Pago.Fecha = TxtFechaAnticipoCliente.Text.ToDate 'TCPago = gvr.DataKey("TipoCambio").todecimal Pago.CveVentaAmortizacion = gvr.DataKey("CveVenta").ToEntero() - Pago.TCPago = gvr.DataKey("TipoCambio").Todecimal + Pago.TCPago = gvr.DataKey("TipoCambio").ToDecimal Pago.AplicaTraslado = gvr.DataKey("RegresarImpuesto") = "1" Pago.Referencia = gvr.DataKey("Folio") @@ -21162,12 +20994,8 @@ Partial Class Ventas End If If AutoConta Then - If idCuentaContabilizacion > 0 Then - If Not ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then - Alert("Ocurrio un Error al contabilizar la prepoliza de almacen, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) - End If - Else - Alert(String.Format("Falta asignación de las siguientes cuentas contables: {0}", CuentasContablesInvalidas), TipoMensaje.MsgAdvertencia) + If Not ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then + Alert("Ocurrio un Error al contabilizar la prepoliza de almacen, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) End If End If End If @@ -34583,6 +34411,18 @@ Partial Class Ventas Else TFuenteRecaudacion.Visible = False End If + + If UsuarioActual.CveRol = 1 Then + If ChkEmitirComercioExterior.Checked Then + TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate.AddDays(-1)).ToString() + Else + TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString() + End If + + UpPS.Update() + End If + + End Sub 'Protected Sub LnkDescargarFacturaPrueba_Click(sender As Object, e As EventArgs) ' 'Dim Hilo As New System.Threading.Thread(Sub() DescargarFactura(Me.CveVenta, UsuarioActual.CveEmpresa)) @@ -36868,21 +36708,21 @@ Partial Class Ventas DdlTipoActivo_SelectedIndexChanged(DdlTipoActivoFiltro, EventArgs.Empty) End Sub - Protected Sub CargarTipoActivoFijo() - DdlTipoActivoFiltro.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("", "TipoActivoFijo") - DdlTipoActivoFiltro.DataBind() - DdlTipoActivoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) - End Sub - - Protected Sub DdlTipoActivo_SelectedIndexChanged(sender As Object, e As EventArgs) - DdlSubTipoActivoFiltro.Items.Clear() - DdlSubTipoActivoFiltro.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveTipoActivoFijo = {0}", DdlTipoActivoFiltro.SelectedValue), "SubTipoActivoFijo") - DdlSubTipoActivoFiltro.DataBind() - DdlSubTipoActivoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) + Protected Sub CargarTipoActivoFijo() + DdlTipoActivoFiltro.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("", "TipoActivoFijo") + DdlTipoActivoFiltro.DataBind() + DdlTipoActivoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub + + Protected Sub DdlTipoActivo_SelectedIndexChanged(sender As Object, e As EventArgs) + DdlSubTipoActivoFiltro.Items.Clear() + DdlSubTipoActivoFiltro.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveTipoActivoFijo = {0}", DdlTipoActivoFiltro.SelectedValue), "SubTipoActivoFijo") + DdlSubTipoActivoFiltro.DataBind() + DdlSubTipoActivoFiltro.Items.Insert(0, New ListItem("Todos", "-1")) End Sub #End Region - Protected Sub BtnFiltrarAF_Click(sender As Object, e As EventArgs) + Protected Sub BtnFiltrarAF_Click(sender As Object, e As EventArgs) Using ObjAF As New ClsAF If ObjAF.GetRepActivosFijosDepreciacion(UsuarioActual.CveEmpresa, Now, Depreciados:=1, CveTipoAF:=DdlTipoActivoFiltro.SelectedValue.ToEntero(), CveSubTipoAF:=DdlSubTipoActivoFiltro.SelectedValue.ToEntero(), CveSubProyecto:=DdlSubProyectoFiltroAF.SelectedValue.ToEntero()) Then GvVentaAF.DataSource = ObjAF.DtResultados.FiltraParametros("CveActivoFijo > 0 AND CveEstadoActivoFijo <> 5") From 525f2670ad551223a95ec1c0a76936152b937187 Mon Sep 17 00:00:00 2001 From: RPimienta Date: Sat, 20 May 2023 01:21:13 -0600 Subject: [PATCH 10/27] Desvinculacion de OC al cancelar la compra --- App_Code/ClsCompras.vb | 20 ++++++++++++++++++++ Compras/Compras.aspx.vb | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 38db7e34a..030f28eaf 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -2117,6 +2117,26 @@ Public Class ClsCompras Return Retorno End Function + Public Function CancelarCompraOC(CveCompra As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_CancelarCompraOC") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCompra", SqlDbType.Int).Value = CveCompra + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al desvincular la oc de la compra.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #End Region diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index a83716886..28a619d80 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -13899,6 +13899,12 @@ Partial Class Compras_Compras End If + If Not ErrorCancelar Then + If Not ObjCompras.CancelarCompraOC(CveCompra, UsuarioActual.CveEmpresa) Then + ErrorCancelar = True + End If + End If + 'CANCELA COMPRA If Not ErrorCancelar Then From 433e5c287d007102d8e05d4888f0f9623ed95535 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 20 May 2023 08:34:35 -0700 Subject: [PATCH 11/27] - timer Econo --- App_Code/ClsPaginas.vb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 7d3fefb52..1d2313014 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -4311,6 +4311,11 @@ Public Class ClsPaginas ' Response.Redirect("/Sistemas/PopUpSeleccionarEmpresa.aspx") ' 'Alert(Request.ServerVariables("URL")) 'End If + ''codigo temporal + If EsProduccion Then + If UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162, 166) Then System.Threading.Thread.Sleep(750) + End If + Dim i As Integer = Obt_ClavePagina(Request.ServerVariables("URL")) Dim FailURL As String = $"{FormsAuthentication.DefaultUrl}?ADCod={Encripta($"CveModulo={i}")}" 'si es <0 la página es sin restricciones From 8924f1df302aba18729e0d52e4e07fc9c4329fcc Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 20 May 2023 08:35:29 -0700 Subject: [PATCH 12/27] -- mejora --- Bancos/PopIECompras.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index 866df3a64..ca540f569 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -1556,7 +1556,7 @@ Partial Class Bancos_PopIECompras Pago.CveIE = rw.DataKey("CveIE").ToEntero Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - Pago.TCPago = TxtTipoCambio.Text.ToDecimal + Pago.TCPago = If(Pago.CveMonedaPago <> 1, TxtTipoCambio.Text.ToDecimal, 1) Pago.CveProveedor = DdlAcreedor.SelectedValue.ToEntero Pago.TipoPago = "Egsc" If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then From 6f43f282225c30f653fc713e7bb9207bc455b0b6 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 20 May 2023 13:30:26 -0700 Subject: [PATCH 13/27] =?UTF-8?q?--=20nuevo=20m=C3=A9todo=20para=20validac?= =?UTF-8?q?i=C3=B3n=20y=20contabilizaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsContabilidad.vb | 42 ++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index e6e877f15..2ed6e8796 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -3,7 +3,6 @@ Option Strict On Imports System.Data Imports System.Data.SqlClient -Imports System.Web Imports Extensiones Public Class ClsContabilidad @@ -6416,6 +6415,47 @@ Public Class ClsContabilidad Return Retorno End Function + + Public Function ValidacionesPrePoliza(CvePrePoliza As Integer, Opcion As Integer, ByRef UsuarioActual As Usuario, Optional CveVenta As Integer = -1, Optional AutoConta As Boolean = True) As Boolean + Dim Retorno = False + + DataAdapter("PA_Conta_PrePolizasValidacion") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza + .Add("@Opcion", SqlDbType.Int).Value = Opcion + .Add("@CveEmpresa", SqlDbType.Int).Value = UsuarioActual.CveEmpresa + .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + .Add("@AutoConta", SqlDbType.Int).Value = If(AutoConta, 1, 0) + .Add("@Valor", SqlDbType.Int).Direction = ParameterDirection.Output + .Add("@MsgSalida", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output + .Add("@MsgPrePolizaSalida", SqlDbType.VarChar, 8000).Direction = ParameterDirection.Output + .Add("@Diferencia", SqlDbType.Float).Direction = ParameterDirection.Output + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + ValorPolizaDescuadre = SqlAdapter.SelectCommand.Parameters("@Valor").Value.ToString.ToEntero + MensajePolizaDescuadre = SqlAdapter.SelectCommand.Parameters("@MsgSalida").Value.ToString + ValorDiferencia = SqlAdapter.SelectCommand.Parameters("@Diferencia").Value.ToString + Dim MsgPrePoliza As String = SqlAdapter.SelectCommand.Parameters("@MsgPrePolizaSalida").Value.ToString + If MsgPrePoliza <> "" Then MsgPrePoliza.GuardaLogAD("LogPrePoliza") + + If MensajePolizaDescuadre = "" AndAlso AutoConta Then + If UsuarioActual.Empresa.TipoContabilidad = 2 Then ' eltipocontabilidad deberá activarse en el PA + If Not ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then + MensajePolizaDescuadre = Mensaje.ToString ' regresa el mensaje de contabilización + End If + End If + End If + + Catch ex As Exception + OnError("Ocurrió un error al validar la PrePoliza.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #End Region #Region "AUXILIAR PREPOLIZAS" From 29b2b6445801bfd3a6b06878724b7b415ea9eb80 Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Sat, 20 May 2023 14:33:20 -0700 Subject: [PATCH 14/27] Compras Funcionalidad 713 Empresas que deduce IEPS --- Compras/Compras.aspx | 2 +- Compras/Compras.aspx.vb | 24 +++++++++++++++++++----- RH/Asistencias.aspx.vb | 2 +- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 42211ac69..0a7ec36fe 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -3629,7 +3629,7 @@ - + <%----%>
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 13d7e380d..c55e6f774 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1724,8 +1724,12 @@ Partial Class Compras_Compras Dim ObjeFacturas As New ClsCompras Dim RFC As String = "" If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-4), Now, "-1", "-1", -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa) AndAlso ObjeFacturas.DtResultados.Rows.Count > 0 Then + + Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0) ' no toma la cero, porque es el totalizador + ViewState("CveTipoProveedor") = dr("CveTipoProveedor").ToString.ToEntero + Dim XMLDoc As New XmlDocument Dim Archivo As String = String.Format("{0}Compras\{1}\{2}", UsuarioActual.Empresa.Ruta, dr("RFCDe"), dr("XML")) If IO.File.Exists(Archivo) Then @@ -2374,12 +2378,22 @@ Partial Class Compras_Compras If TrasladoIEPS > 0 Or OtrosImpuestos > 0 Then - If OtrosImpuestos > 0 Then - RegistraScript("$('#ModalIEPS').modal({ backdrop: 'static', keyboard: false },'show');") + + If UsuarioActual.Empresa.Funcionalidad(713).ToEntero = 1 Then + 'Si tiene funcionalidad y es Acreedor se muestra modal + If CveTipoProveedor.Contiene(2, 3) Then ' Acreedor + RegistraScript("$('#ModalIEPS').modal({ backdrop: 'static', keyboard: false },'show');") + End If + Else + 'Si no tiene funcionalidad y es proveedor se muestra + RegistraScript("$('#ModalIEPS').modal({ backdrop: 'static', keyboard: false },'show');") + + End If + Else RegistraScript("$('#ModalIEPS').modal('show');") - BtnCancelarotrosImpuestos.Visible = True + 'BtnCancelarotrosImpuestos.Visible = True End If @@ -18854,7 +18868,7 @@ Partial Class Compras_Compras Dim ObjBancos As New ClsBancos If ObjBancos.GetCreditosDetalleCompras(UsuarioActual.CveEmpresa, CveProveedor, -1, -1, -1) Then - GvCreditos.DataSource = ObjBancos.DtResultados + GvCreditos.DataSource = ObjBancos.DtResultados.FiltraParametros(" ImporteIE > 0") Else GvCreditos.DataSource = Nothing End If @@ -18921,7 +18935,7 @@ Partial Class Compras_Compras Dim ObjBancos As New ClsBancos If ObjBancos.GetCreditosDetalleCompras(UsuarioActual.CveEmpresa, CveProveedor, -1, -1, -1) Then - GvCreditos.DataSource = ObjBancos.DtResultados + GvCreditos.DataSource = ObjBancos.DtResultados.FiltraParametros(" ImporteIE > 0") Else GvCreditos.DataSource = Nothing End If diff --git a/RH/Asistencias.aspx.vb b/RH/Asistencias.aspx.vb index 535b7b773..f0d61df12 100644 --- a/RH/Asistencias.aspx.vb +++ b/RH/Asistencias.aspx.vb @@ -21,8 +21,8 @@ Partial Class RH_Asistencias txtFechaAsistencia.Text = Now.ToShortDateString If UsuarioActual.CveRol = 1 OrElse UsuarioActual.CveUsuario = 2343 Then PnlMasivo.Visible = True - CargaTiposPeriodo() End If + CargaTiposPeriodo() End If End Sub From aa32426f1a9d6f873ed85f504f41f395de3aa600 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 22 May 2023 11:48:45 -0700 Subject: [PATCH 15/27] =?UTF-8?q?--=20correcci=C3=B3n=20en=20carga=20de=20?= =?UTF-8?q?PS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/CatPS.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/CatPS.aspx.vb b/Ventas/CatPS.aspx.vb index 8ec3004dd..9117583ba 100644 --- a/Ventas/CatPS.aspx.vb +++ b/Ventas/CatPS.aspx.vb @@ -406,7 +406,7 @@ Partial Class CatPS Dim CodigoPSAdicional As String = dr("CodigoProductoAdicional").ToString.Trim Dim Cantidad As Integer = dr("CantidadFija").ToString.ToEntero msgg = GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) - If GuardarProductosEquivalenteEnFranquicia(ObjPS, CodigoPS, CodigoPSAdicional, Cantidad, 1) <> "" Then + If msgg <> "" Then ErrorExcel = True strNoCargados.AppendFormat(" {0}
", msgg) Exit For From f51e1ed226b79bce915791e894e60f9f174f66ad Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 22 May 2023 11:49:04 -0700 Subject: [PATCH 16/27] -- mejora visual, falta mandar el parametro de tipocorto --- RH/CatAsistenciasInasistencias.aspx | 44 ++++++++++++++------------ RH/CatAsistenciasInasistencias.aspx.vb | 1 + 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/RH/CatAsistenciasInasistencias.aspx b/RH/CatAsistenciasInasistencias.aspx index 1a45620ae..de3bb5b88 100644 --- a/RH/CatAsistenciasInasistencias.aspx +++ b/RH/CatAsistenciasInasistencias.aspx @@ -31,11 +31,11 @@ - + - + @@ -43,7 +43,8 @@ - + + @@ -51,7 +52,7 @@ - + @@ -59,46 +60,42 @@ - - - + - + - + - + - + - + - + - - - - + + a @@ -106,17 +103,17 @@ - + - + <%-- - - + --%> + <%----%> @@ -159,6 +156,11 @@
+
+ + + +
diff --git a/RH/CatAsistenciasInasistencias.aspx.vb b/RH/CatAsistenciasInasistencias.aspx.vb index 99337a21a..e5e7cc5f8 100644 --- a/RH/CatAsistenciasInasistencias.aspx.vb +++ b/RH/CatAsistenciasInasistencias.aspx.vb @@ -120,6 +120,7 @@ chkAplicaVacacion, chkAplicaIncapacidad, chkAplicaRetardo, chkAplicaAguinaldo, c CheckActiveSection.Visible = True Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) 'obtenemos el renglon que acabamos de seleccionar TipoTxt.Text = GvRow.DataKey("Tipo") + TxtTipoCorto.Text = GvRow.DataKey("TipoCorto") AplicaNoAplica.Checked = If(GvRow.DataKey("AplicaAsistencia") = "Aplica", True, False) From 078e4f3cd5676d9fcab4f870c839054a1d35a34f Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 22 May 2023 14:06:47 -0700 Subject: [PATCH 17/27] -- filtro por puesto y columna puesto --- App_Code/ClsRH.vb | 3 ++- RH/Asistencias.aspx | 17 +++++++++++++++-- RH/Asistencias.aspx.vb | 5 ++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index ac5599c36..7d3c9083e 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -2621,7 +2621,7 @@ Public Class ClsRH End Function - Public Function GetAsistencias(CvePersonal As Integer, CveClienteAsignado As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveTurno As Integer, CveEstatusPersonal As Integer, CveTipoPeriodo As Integer, FechaI As Date, FechaF As Date, CveEmpresa As Integer) As Boolean + Public Function GetAsistencias(CvePersonal As Integer, CveClienteAsignado As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveTurno As Integer, CveEstatusPersonal As Integer, CveTipoPeriodo As Integer, FechaI As Date, FechaF As Date, CveEmpresa As Integer, Optional CvePuesto As Integer = -1) As Boolean Dim Retorno As Boolean = False SqlDataAdapter("PA_RH_PersonalAsistenciasGet") @@ -2633,6 +2633,7 @@ Public Class ClsRH .Add("@CveTurno", SqlDbType.Int).Value = CveTurno .Add("@CveTipoPeriodo", SqlDbType.Int).Value = CveTipoPeriodo .Add("@CveEstatusPersonal", SqlDbType.Int).Value = CveEstatusPersonal + .Add("@CvePuesto", SqlDbType.Int).Value = CvePuesto .Add("@FechaI", SqlDbType.Date).Value = FechaI .Add("@FechaF", SqlDbType.Date).Value = FechaF .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa diff --git a/RH/Asistencias.aspx b/RH/Asistencias.aspx index 93c0b3969..1d69ade4d 100644 --- a/RH/Asistencias.aspx +++ b/RH/Asistencias.aspx @@ -92,8 +92,15 @@ Tipo Periodo:
- - + + + +
+ Puesto: +
+ + +
@@ -130,6 +137,12 @@ + + Puesto + + + + Asistencia diff --git a/RH/Asistencias.aspx.vb b/RH/Asistencias.aspx.vb index 535b7b773..cdad02fc9 100644 --- a/RH/Asistencias.aspx.vb +++ b/RH/Asistencias.aspx.vb @@ -17,6 +17,7 @@ Partial Class RH_Asistencias divCliente.Visible = False LblCliente.Visible = False GV.Columns(2).Visible = False + GV.Columns(3).Visible = True End If txtFechaAsistencia.Text = Now.ToShortDateString If UsuarioActual.CveRol = 1 OrElse UsuarioActual.CveUsuario = 2343 Then @@ -57,6 +58,8 @@ Partial Class RH_Asistencias Private Sub CargaTurnos() DdlTurno.DataSource = GlobalDTTurno(UsuarioActual.CveEmpresa) DdlTurno.DataBind() + DdlPuesto.DataSource = GlobalDTRHPuestos(UsuarioActual.CveEmpresa) + DdlPuesto.databind End Sub #End Region @@ -68,7 +71,7 @@ Partial Class RH_Asistencias Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click If TxtFechaAsistencia.Text.Trim.ToDate.Year.Contiene(Now.Year - 1, Now.Year, Now.Year + 1) Then Dim objpersonal As New ClsRH - If objpersonal.GetAsistencias(-1, DdlCliente.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlTurno.SelectedValue.ToEntero, 1, DdlTipoPeriodo.SelectedValue.ToEntero, txtFechaAsistencia.Text.Trim.ToDate, txtFechaAsistencia.Text.Trim.ToDate, UsuarioActual.CveEmpresa) Then + If objpersonal.GetAsistencias(-1, DdlCliente.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlTurno.SelectedValue.ToEntero, 1, DdlTipoPeriodo.SelectedValue.ToEntero, txtFechaAsistencia.Text.Trim.ToDate, txtFechaAsistencia.Text.Trim.ToDate, UsuarioActual.CveEmpresa, DdlPuesto.SelectedValue.ToEntero) Then Dim dt As DataTable = objpersonal.DtResultados If DdlSupervisorOrganigrama.SelectedValue.ToEntero() > 0 Then dt = dt.FiltraParametros(String.Format("CvePersonalPadre = {0}", DdlSupervisorOrganigrama.SelectedValue.ToEntero())) From 3b29202c24e6e31c0b84a6f9566584f68e6072e7 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 22 May 2023 14:07:14 -0700 Subject: [PATCH 18/27] -- mejora en pago --- Bancos/ProveedoresAbonar.aspx.vb | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index b12097b53..46e9f59c1 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -857,6 +857,8 @@ Partial Class Bancos_ProveedoresAbonar ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES Pago.TCPago = TxtTCDolares.Text.ToDecimal End If + If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / TxtTC.Text.ToDecimal + If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = TxtTCDolares.Text.ToDecimal If gvr.FCTextBox("TxtComision").Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = gvr.FCTextBox("TxtComision").Text.ToDecimal @@ -1097,13 +1099,14 @@ Partial Class Bancos_ProveedoresAbonar Anexo.Text = "[]" Dim Msg As New StringBuilder + Msg.AppendFormat(" Folio: {1}

", CveIE, TxtFolio.Text) - Msg.AppendFormat("
  • Imprimir movimiento
  • ", Encripta(String.Format("OP=IECHEQUE&CVEIE={0}", CveIE))) + Msg.AppendFormat(" Imprimir movimiento
    ", Encripta(String.Format("OP=IECHEQUE&CVEIE={0}", CveIE))) 'End If - Msg.AppendFormat("
  • Listado
  • ", Encripta(String.Format("OP=ImprimeMov&CveIE={0}", CveIE))) - If IDPoliza > 0 AndAlso UsuarioActual.Empresa.TipoContabilidad = 2 Then Msg.AppendFormat("
  • Póliza
  • ", IDPoliza) + Msg.AppendFormat(" Listado
    ", Encripta(String.Format("OP=ImprimeMov&CveIE={0}", CveIE))) + If IDPoliza > 0 AndAlso UsuarioActual.Empresa.TipoContabilidad = 2 Then Msg.AppendFormat(" Póliza
    ", IDPoliza) - Dim Mensaje As String = String.Format("
    El Documento se generó correctamente.


    Descargas:
      {0}
    ", Msg.ToString) + Dim Mensaje As String = String.Format("El Documento se generó correctamente.

    {0} ", Msg.ToString) 'LIMPIA TxtFolio.Text = "" From af8b66958fcea5f01e5977d20045c04f9e24c405 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 22 May 2023 14:07:52 -0700 Subject: [PATCH 19/27] -- mejora enconceptos de prepolizas al pago --- App_Code/ClsPaginas.vb | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index c00c08614..7bfd0a318 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -7656,6 +7656,14 @@ Public Class ClsPaginas Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 292, 294) '1.Venta.2.NC Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 207, 203) '1.Venta.2.NC End Select + Case 18 ' ingresos por comprobar + Select Case CveMoneda + Case 1 'pesos + Retorno.CveConcepto = 92 '1.Venta.2.NC + Case 2 'dólares + Retorno.CveConcepto = 92 'falta nuevo concepto + Retorno.CveConceptoComplementario = 332 + End Select End Select Else 'cuando es la provisión Select Case CveTipoSaldo @@ -7699,7 +7707,14 @@ Public Class ClsPaginas Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 291, 293) '1.Venta.2.NC Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 203, 203) '1.Venta.2.NC End Select - + Case 18 ' ingresos por comprobar + Select Case CveMoneda + Case 1 'pesos + Retorno.CveConcepto = 66 '1.Venta.2.NC + Case 2 'dólares + Retorno.CveConcepto = 66 'falta nuevo concepto + Retorno.CveConceptoComplementario = 332 + End Select End Select End If @@ -7736,10 +7751,7 @@ Public Class ClsPaginas Dim CveConceptoContableComplementaria As Integer = 207 Dim Contabilizable As Boolean = True If PorcentajePago > 1 Then PorcentajePago = 1 - Pago.CveConceptoPago = If(Pago.CveConceptoPago = -1, 2, Pago.CveConceptoPago) 'si viene en parametro lo toma com primera opcion, sino el 2 - If VentaActual.CveMoneda <> 1 Then - If Pago.TipoPago = "NC" Then Pago.CveConceptoPago = 301 Else Pago.CveConceptoPago = 292 - End If + Dim Concepto As String = String.Format("{0} F:{1}", VentaActual.ClienteNombre, VentaActual.SerieFolio) Dim FuncionalidadFluctuacionImpuestos As Boolean = If(VentaActual.UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) Dim tFecha As Date = Pago.Fecha @@ -7786,11 +7798,14 @@ Public Class ClsPaginas If Not ErrorMovtos AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 95, VentaActual.SerieFolio, VentaActual.SerieFolio, IdCtaContable, CveIE:=Pago.CveIE, CveVenta:=VentaActual.CveVenta, CveSubProyecto:=VentaActual.CveSubProyecto, CveCliente:=VentaActual.CveCliente, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, PorcentajeImpuesto:=VentaActual.PorcentajeIVA, Contabilizable:=False) Then ErrorMovtos = True End If - End If + Dim ConPreP As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(6, VentaActual.CveMoneda, True, 1) + 'cuando es pago por NC, tiene sus propios pagos + If Pago.TipoPago = "NC" Then ConPreP.CveConcepto = If(VentaActual.CveMoneda <> 1, 301, 251) + 'movimiento de pago cliente - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, Pago.ImportePagoVenta, Pago.CveConceptoPago, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada, Contabilizable:=Contabilizable) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, Pago.ImportePagoVenta, ConPreP.CveConcepto, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada, Contabilizable:=Contabilizable) Then ErrorMovtos = True 'movimiento de pago cliente Complementaria If Not ErrorMovtos AndAlso VentaActual.CveMoneda > 1 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, (ImporteME * TCValuacionVenta - ImporteME).RoundSQL, CveConceptoContableComplementaria, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=VentaActual.CveSubProyecto, CveCompra:=Pago.CveCompraRelacionada, Contabilizable:=Contabilizable) Then ErrorMovtos = True @@ -7848,6 +7863,7 @@ Public Class ClsPaginas Concepto = String.Format("{0} NC:{1}", VentaActual.ClienteNombre, Pago.Referencia) If Pago.TipoPago = "A" AndAlso Not ErrorMovtos Then ' A N T I C I P O Dim Ret As New ConceptosRetenciones + 'Dim ConPreP As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(6, VentaActual.CveMoneda, True, 1) If Pago.CveMonedaPago > 1 Then 'Agregamos la Extranjera If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 296, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=Pago.CveVentaAmortizacion, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True @@ -7860,14 +7876,15 @@ Public Class ClsPaginas End If If Pago.TipoPago = "NC" AndAlso Not ErrorMovtos Then ' N O T A D E C R E D I T O Dim Ret As New ConceptosRetenciones + Dim ConPrePNC As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(6, VentaActual.CveMoneda, True, 2) If Pago.CveMonedaPago > 1 Then 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 294, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, ConPrePNC.CveConcepto, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, ConPrePNC.CveConceptoComplementario, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True Else 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 91, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, ConPrePNC.CveConcepto, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True End If End If If Pago.TipoPago = "I" AndAlso Not ErrorMovtos Then ' I N G R E S O S X C O M P R O B A R @@ -7957,7 +7974,7 @@ Public Class ClsPaginas Public Property TCPago As Decimal = 1 Public Property CveVentaAmortizacion As Integer = 0 Public Property OtroGastoIngreso As Decimal = 0 - Public Property CveConceptoPago As Integer = -1 'no definido de inicio + 'Public Property CveConceptoPago As Integer = -1 'no definido de inicio Public Property CveCreditoDetalle As Integer = -1 Public Property CveCompraRelacionada As Integer = -1 Public Property AplicaTraslado As Boolean = True From 0926a9a10d2a5e4265a125718adf270f8c037724 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 22 May 2023 14:08:19 -0700 Subject: [PATCH 20/27] --parametro optimizado --- App_Code/Modelos.vb | 2 -- 1 file changed, 2 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 6175f2507..4a4b0c86c 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -2783,7 +2783,6 @@ Namespace Modelos Pago.CveVentaAmortizacion = ObjFactura.CveVenta 'Dr("CveVenta").ToString().ToEntero() Pago.AplicaTraslado = False Pago.Referencia = Concepto - Pago.CveConceptoPago = 251 ErrorPrepoliza = ClsPaginas.AplicaPrePolizaPagoVenta(ventaRef, Pago, ObjFactura.CvePrePoliza, ObjConta) @@ -3066,7 +3065,6 @@ Namespace Modelos Pago.CveVentaAmortizacion = ObjFactura.CveVenta 'Dr("CveVenta").ToString().ToEntero() Pago.AplicaTraslado = False Pago.Referencia = Concepto - Pago.CveConceptoPago = 251 Pago.ValorMultiplicador = -1D ErrorPrepoliza = ClsPaginas.AplicaPrePolizaPagoVenta(ventaRef, Pago, ObjFactura.CvePrePoliza, ObjConta) From 8265a891e006c0957ad7ce0410e686fc1ce3401b Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 22 May 2023 15:00:59 -0700 Subject: [PATCH 21/27] =?UTF-8?q?filtro=20de=20tipoperiodo=20y=20puesto,?= =?UTF-8?q?=20se=20agreg=C3=B3=20la=20visualizaci=C3=B3n=20de=20columna=20?= =?UTF-8?q?de=20horas=20dobles=20y=20triples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsRH.vb | 5 ++-- RH/RepAsistencias.aspx | 27 ++++++++++++-------- RH/RepAsistencias.aspx.vb | 54 +++++++++++++++++---------------------- 3 files changed, 44 insertions(+), 42 deletions(-) diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index 7d3c9083e..f0bbd4fc1 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -2649,7 +2649,7 @@ Public Class ClsRH Return Retorno End Function - Public Function RepGetAsistencias(Grupo As Integer, CveClienteAsignado As Integer, CveSubProyecto As Integer, CveTurno As Integer, CveEstatusPersonal As Integer, FechaI As Date, FechaF As Date, CveEmpresa As Integer, CvePersonalPadre As Integer) As Boolean + Public Function RepGetAsistencias(Grupo As Integer, CveClienteAsignado As Integer, CveSubProyecto As Integer, CveTurno As Integer, CveEstatusPersonal As Integer, FechaI As Date, FechaF As Date, CveEmpresa As Integer, CvePersonalPadre As Integer, CveTipoPeriodo As Integer, CvePuesto As Integer) As Boolean Dim Retorno As Boolean = False SqlDataAdapter("PA_RH_RepPersonalAsistenciasGet") @@ -2663,7 +2663,8 @@ Public Class ClsRH .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CvePersonalPadre", SqlDbType.Int).Value = CvePersonalPadre .Add("@CveEstatusPersonal", SqlDbType.Int).Value = CveEstatusPersonal - + .Add("@CveTipoPeriodo", SqlDbType.Int).Value = CveTipoPeriodo + .Add("@CvePuesto", SqlDbType.Int).Value = CvePuesto End With Try diff --git a/RH/RepAsistencias.aspx b/RH/RepAsistencias.aspx index d7c006eab..4e10295d9 100644 --- a/RH/RepAsistencias.aspx +++ b/RH/RepAsistencias.aspx @@ -46,16 +46,10 @@
    -
    - - - -
    - Cliente: -
    -
    -