From d4f25efbfdd329bbe070b2483c495e929ec10ae7 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 22 Feb 2025 17:20:58 -0700 Subject: [PATCH] - E189 - Devoluciones, con descuento previo de RNC. --- Compras/Compras.aspx | 4 ++-- Compras/Compras.aspx.vb | 45 +++++++++++++++++++++++++++++------------ 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 6f55e7050..00698f6f0 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -1541,9 +1541,9 @@ - + - + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 4c2820c32..2b3255f1e 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1271,7 +1271,17 @@ Partial Class Compras_Compras ViewState("FechaMovtoDev") = value End Set End Property - + Private Property DevolucionImporteOriginal As Decimal + Get + If ViewState("DevolucionImporteOriginal") Is Nothing Then + ViewState("DevolucionImporteOriginal") = 0 + End If + Return ViewState("DevolucionImporteOriginal").ToString.ToDecimal + End Get + Set(value As Decimal) + ViewState("DevolucionImporteOriginal") = value + End Set + End Property @@ -4432,7 +4442,6 @@ Partial Class Compras_Compras End If Dim TotalRealDevolucion As Decimal = 0 - Dim EstatusCredito As Integer = 0 Dim CveSubProyecto As Integer = 0 'Credito Multiple @@ -6873,7 +6882,6 @@ Partial Class Compras_Compras ErrorMovInv = True Exit For End If - ' Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) @@ -6881,7 +6889,6 @@ Partial Class Compras_Compras ImporteTransito += importeMNTemp CveCompraAmortizacion = Gvr.DataKey("CveCompra").ToEntero 'se registra por cada compra relacionada - End If Next @@ -6927,14 +6934,27 @@ Partial Class Compras_Compras DiferenciaDevolucion = -DiferenciaDevolucion End If If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then ' las devoluciones, que tengan descuento por rnc, debe de descontar del saldo de la factura aplicada - tConceptoDiferencia = 272 - tCveCompraAmortizacion = tCveCompra - If ObjConta.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then - tCveCompra = ObjConta.DtResultados.FiltroPrimeroValor("CveCompraAmortizacion", "CveConceptoContable = 60").ToEntero 'a aplicación de la nc + Dim DiferenciaSaldo As Decimal = DevolucionImporteOriginal ''If(DdlMoneda.SelectedValue.ToEntero <> 1, (importeMovimiento * TxtTC.Text.ToDecimal), importeMovimiento) - DevolucionImporteOriginal + + If DiferenciaSaldo <> 0 Then + DiferenciaDevolucion += DiferenciaSaldo ' si hay diferencia se manda al costo + Dim DiferenciaBonif As Decimal = DiferenciaSaldo * (PorcentajeIVA) 'se saca el iva de la dif + DiferenciaSaldo = -DiferenciaSaldo * (1 + PorcentajeIVA) 'se invierte su aplicación + + tCveCompraAmortizacion = tCveCompra + If ObjConta.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then + tCveCompra = ObjConta.DtResultados.FiltroPrimeroValor("CveCompraAmortizacion", "CveConceptoContable = 60").ToEntero 'a aplicación de la nc + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaSaldo, DiferenciaSaldo, 272, Referencia, Concepto, CveCompra:=tCveCompra, CveCompraAmortizacion:=tCveCompraAmortizacion, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) Then + ErrorPrepoliza = True + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaBonif, DiferenciaBonif, 259, Referencia, Concepto, CveCompra:=tCveCompra, CveCompraAmortizacion:=tCveCompraAmortizacion, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) Then + ErrorPrepoliza = True + End If End If End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaDevolucion, DiferenciaDevolucion, tConceptoDiferencia, Referencia, Concepto, CveCompra:=tCveCompra, CveCompraAmortizacion:=tCveCompraAmortizacion, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) Then + If DiferenciaDevolucion <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaDevolucion, DiferenciaDevolucion, tConceptoDiferencia, Referencia, Concepto, CveCompra:=tCveCompra, CveCompraAmortizacion:=tCveCompraAmortizacion, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) Then ErrorPrepoliza = True End If End If @@ -13992,7 +14012,6 @@ Partial Class Compras_Compras Try Dim subtotaldevolucion As Decimal = 0 Dim realizadevolucion As Boolean = False - 'Calculo los subtotales para comparar con la NC Dim cantidad As Decimal = 0D @@ -14015,14 +14034,13 @@ Partial Class Compras_Compras If Math.Abs(TxtSubTotal2.Text.ToDecimal - subtotaldevolucion) <= tTolerancia Then VinculaDevolucion() - If EsGrupoDiaz AndAlso FechaMovtoDev <> MinFecha AndAlso (FechaMovtoDev >= TxtFecha.Text.ToDate) Then + If FechaMovtoDev <> MinFecha AndAlso (FechaMovtoDev >= TxtFecha.Text.ToDate) Then TxtFecha.Text = FechaMovtoDev.AddDays(1).ToString("dd/MM/yyyy") Alert("La fecha de la devolución se cambiará a una fecha posterior al ingreso.", TipoMensaje.ToastAdventencia) UpParametros.Update() End If - Else - Alert("El Total de la NC debe ser igual al total de la devolucion", TipoMensaje.MsgAdvertencia) + Alert("El Total de la NC debe ser igual al total de la devolución", TipoMensaje.MsgAdvertencia) End If Else Alert("No se ha seleccionado nada para la devolución. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) @@ -14106,6 +14124,7 @@ Partial Class Compras_Compras Dim PSRow As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSRNC).FiltroPrimero("") Dim PS As String = PSRow("PSCodigo").ToString Dim tDif As Decimal = TxtSubTotal2.Text.ToDecimal - Total + DevolucionImporteOriginal = tDif AddPS(1, PSRow("CveUnidadMedida").ToString.ToEntero, PSRow("UnidadMedida").ToString, PSRow("CveClasificacion").ToString.ToEntero, PSRow("Clasificacion").ToString, CvePSRNC, PS, 1, CveSubProyectoDev.ToString, SubProyecto, "", "-1", "", tDif, tDif, IVAPorcentajeCompra, 0, 0, 0, 0, 0)