From e639c776e0e5a3c8fd44440984de78da1adec94d Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 26 Apr 2023 20:31:08 -0700 Subject: [PATCH] =?UTF-8?q?Ajustes=20en=20aplicaci=C3=B3n=20de=20anticipos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx.vb | 53 +++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index caebcc4a0..aa43c661a 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -11239,8 +11239,15 @@ Partial Class Ventas Dim tTipoAmortizacion As Integer = If(DdlTipoAmortizacionAnticipo.SelectedValue = "2", 1, 2) + Dim ForzarAjuste As Boolean = False - DtImpuestos = CargaDtImpuestosNC(gvrt.DataKey("CveVenta").ToString().ToEntero(), gvrt.FCTextBox(String.Format("TxtAnticipo{0}", gvrt.RowIndex)).Text.ToDecimal, AplicaImpuestosLocales:=True, NCDescuento:=False, NivelTotal:=tTipoAmortizacion) + 'EL IMPORTE DE NC NO PUEDE SER MAYOR AL DE LA FACTURA + If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso (tTipoAmortizacion = 1) Then + ForzarAjuste = True + End If + + 'SI LA APLICACION DE ANTICIPO SE HACE A NIVEL TOTAL, FORZAR EL AJUSTE POR REDONDEO + DtImpuestos = CargaDtImpuestosNC(gvrt.DataKey("CveVenta").ToString().ToEntero(), gvrt.FCTextBox(String.Format("TxtAnticipo{0}", gvrt.RowIndex)).Text.ToDecimal, AplicaImpuestosLocales:=True, NCDescuento:=False, NivelTotal:=tTipoAmortizacion, ForzarAjuste:=ForzarAjuste) Dim query = From ddr In DtImpuestos Group By PorcentajeIVA = ddr("PorcentajeIVA").ToString().ToDecimal, @@ -11251,9 +11258,9 @@ Partial Class Ventas Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString().ToDecimal), ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString().ToDecimal), ImporteIVA = x.Sum(Function(s) (s("ImporteIVA").ToString().ToDecimal)).RoundSQL(2), ' Math.Round(s("ImporteIVA").ToString().ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA, - ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA, - ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR, - ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString().ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS, + ImporteRetIVA = x.Sum(Function(s) s("ImporteRetIVA").ToString().ToDecimal()).RoundSQL(2),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA, + ImporteRetISR = x.Sum(Function(s) s("ImporteRetISR").ToString().ToDecimal()).RoundSQL(2),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR, + ImporteIEPS = x.Sum(Function(s) s("ImporteIEPS").ToString().ToDecimal()).RoundSQL(2), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS, PorcentajeIVA = PorcentajeIVA, PorcentajeRetIVA = PorcentajeRetIVA, PorcentajeRetISR = PorcentajeRetISR, @@ -11303,13 +11310,13 @@ Partial Class Ventas '**** IMPUESTOS LOCALES factura.DtDetalle = tmpcon - Dim TotalSubTotal As Decimal = tmpcon.SUM("TotalImporte").ToDecimal - Dim TotalDescuentos As Decimal = tmpcon.SUM("Descuento").ToDecimal + Dim TotalSubTotal As Decimal = tmpcon.SUMD("TotalImporte").RoundSQL(2) + Dim TotalDescuentos As Decimal = tmpcon.SUMD("Descuento") - Dim TotalIVA As Decimal = tmpcon.SUM("ImporteIVA").ToDecimal - Dim TotalIEPS As Decimal = tmpcon.SUM("ImporteIEPS").ToDecimal - Dim TotalRetIVA As Decimal = tmpcon.SUM("ImporteRetIVA").ToDecimal - Dim TotalRetISR As Decimal = tmpcon.SUM("ImporteRetISR").ToDecimal + Dim TotalIVA As Decimal = tmpcon.SUMD("ImporteIVA") + Dim TotalIEPS As Decimal = tmpcon.SUMD("ImporteIEPS") + Dim TotalRetIVA As Decimal = tmpcon.SUMD("ImporteRetIVA") + Dim TotalRetISR As Decimal = tmpcon.SUMD("ImporteRetISR") Dim Total As Decimal = 0 Dim TotalImpuestosLocales As Decimal = factura.TotalImpuestoLocal.ToString().ToDecimal Total = (TotalSubTotal - TotalDescuentos + TotalIVA + TotalIEPS - TotalRetIVA - TotalRetISR - TotalImpuestosLocales) @@ -11343,6 +11350,9 @@ Partial Class Ventas Else ErrorList.Add("No se encontró un producto para generar la nota de crédito") + If DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then + DtVentasNC.Rows.Clear() + End If End If End If @@ -23659,8 +23669,9 @@ Partial Class Ventas End If End Using + 'SI TIENE UN ANTICIPO RELACIONADO O VIENE DE UNA REFACTURACION If RowVentas IsNot Nothing Then - If RowVentas("TipoDocto").ToString().Contiene("Ing") AndAlso DdlTipoComprobante.SelectedValue = "Ing" Then + If RowVentas("TipoDocto").ToString().Contiene("Ing", "Ant") AndAlso DdlTipoComprobante.SelectedValue = "Ing" Then CargaInventario(Me.CveVenta) End If End If @@ -29997,7 +30008,7 @@ Partial Class Ventas Next End Sub - Private Function CargaDtImpuestosNC(CveVentaNC As Integer, Importe As Decimal, Optional NCDescuento As Boolean = False, Optional AplicaImpuestosLocales As Boolean = True, Optional NivelTotal As Integer = 1, Optional AplicaNCUsado As Boolean = False) As DataTable + Private Function CargaDtImpuestosNC(CveVentaNC As Integer, Importe As Decimal, Optional NCDescuento As Boolean = False, Optional AplicaImpuestosLocales As Boolean = True, Optional NivelTotal As Integer = 1, Optional AplicaNCUsado As Boolean = False, Optional ForzarAjuste As Boolean = False) As DataTable Dim Total As Decimal = 0, SubTotal As Decimal = 0, Saldo As Decimal = 0 Dim TmpDT As DataTable = Nothing @@ -30115,6 +30126,24 @@ Partial Class Ventas End If End If + 'SI LA DIFERENCIA ES MENOR O IGUAL A 1 CENTAVO, AJUSTAR EL TOTAL + If ForzarAjuste Then + 'ASUSTO LA DIFERENCIA EN LOS IMPUESTOS + Dim difTmp As Decimal = Importe - importeNC + If Math.Abs(difTmp) > 0.00D AndAlso Math.Abs(difTmp) <= 0.01D Then + 'SI TIENE IVA, AJUSTAR AQUI + If DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteIVA").ToString().ToDecimal() > 0 Then + Dim ImporteIVAAjustado As Decimal = DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteIVA").ToString().ToDecimal + difTmp + DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteIVA") = ImporteIVAAjustado + Else + Dim ImporteAjustado As Decimal = DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteTotal").ToString().ToDecimal + difTmp + DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteTotal") = ImporteAjustado + DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImportePU") = ImporteAjustado + End If + + End If + End If + If Not NCDescuento Then Me.TmpDT = TmpDT End If