From d27e2ee52021c6d88598705c7ac884ac695ce4d8 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 26 Feb 2024 11:29:41 -0700 Subject: [PATCH] FERRETERA. --fix de porcentaje de utilidad --- Ventas/Ventas.aspx | 45 +++++++++++++++++++++++++++---------------- Ventas/Ventas.aspx.vb | 8 ++++---- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 40122ad0c..ddb128135 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -604,7 +604,7 @@ Fecha de Cirugia: - + @@ -9795,44 +9795,55 @@ function CalculaDescPS() { if ($get("TxtPorPS").value != "") { - var PorcentajeDescuento = parseFloat($get("TxtPorPS").value); + let PorcentajeDescuento = parseFloat($get("TxtPorPS").value); if (PorcentajeDescuento < 0 || PorcentajeDescuento > 99) { alert("No se puede aplicar ese porcentaje de descuento"); $get("TxtPorPS").value = "0"; + recalcularUtilidad(0); return; } - var ivaPor = parseFloat($get("HdnIVADescPS").value) ; + let ivaPor = parseFloat($get("HdnIVADescPS").value) ; - var subTotal = parseFloat($get("LblSubtotalDescPS").innerText.replace(",", "").replace(",", "")); + let subTotal = parseFloat($get("LblSubtotalDescPS").innerText.replace(",", "").replace(",", "")); $get("LblDescPS").innerText = formato_numero(((subTotal * PorcentajeDescuento) / 100), 2, '.', ','); - var descuento = parseFloat($get("LblDescPS").innerText.replace(",", "").replace(",", "")); + let descuento = parseFloat($get("LblDescPS").innerText.replace(",", "").replace(",", "")); $get("LblIVADescPS").innerText = formato_numero(((subTotal - descuento) * ivaPor), 2, '.', ','); - var importeIVA =parseFloat($get("LblIVADescPS").innerText.replace(",", "").replace(",", "")); + let importeIVA =parseFloat($get("LblIVADescPS").innerText.replace(",", "").replace(",", "")); - var Total = (subTotal - descuento) + importeIVA; + let Total = (subTotal - descuento) + importeIVA; $get("LblTotalFinalDescPS").innerText = formato_numero(Total, 2, '.', ','); $get("HdnDescPS").value = descuento; - var totalCompra = parseFloat($get("HdnTotalCompra").value); - if (totalCompra > 0) { - var totalRedondeado = parseFloat($get("LblTotalFinalDescPS").innerText.replace(",", "").replace(",", "")); - var utilidad = ((totalRedondeado - totalCompra) / totalRedondeado) * 100; + recalcularUtilidad(descuento) + } else { + let subTotal = parseFloat($get("LblSubtotalDescPS").innerText.replace(",", "").replace(",", "")); + $get("LblIVADescPS").innerText = formato_numero((subTotal * ivaPor), 2, '.', ','); + let importeIVA =parseFloat($get("LblIVADescPS").innerText.replace(",", "").replace(",", "")); + let Total = (subTotal) + importeIVA; - $get("LblUtilidadPorcentaje").innerText = formato_numero(utilidad, 2, '.', ','); - } - } - else { - $get("LblTotalFinalDescPS").innerText = "0.00"; + $get("LblTotalFinalDescPS").innerText = formato_numero(Total, 2, '.', ','); $get("LblDescPS").innerText = "0.00"; - $get("LblIVADescPS").innerText = "0.00"; $get("LblUtilidadPorcentaje").innerText = "0.00"; $get("HdnDescPS").innerText = "0.00"; + + recalcularUtilidad(0); + } + } + + function recalcularUtilidad(descuento){ + let totalCompra = parseFloat($get("HdnTotalCompra").value); + if (totalCompra > 0) { + let subTotal = parseFloat($get("LblSubtotalDescPS").innerText.replace(",", "").replace(",", "")); + let subTotal2 = subTotal - descuento; + let utilidad = ((subTotal2 - totalCompra) / subTotal2) * 100; + + $get("LblUtilidadPorcentaje").innerText = formato_numero(utilidad, 2, '.', ','); } } diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 4a634eae8..79b0aff37 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -24047,13 +24047,13 @@ Partial Class Ventas Using ObjPS As New ClsProductosServicios Dim PrecioCompra = ObjPS.GetUltimoPrecioCompra(UsuarioActual.CveEmpresa, GvRow.DataKey("CvePS").ToEntero()) If PrecioCompra > 0 Then - Dim TotalCompra = (PrecioCompra * GvRow.DataKey("Cantidad").ToDouble() * (1 + GvRow.DataKey("IVA").ToDecimal())) - HdnTotalCompra.Value = TotalCompra.ToString() + Dim SubTotalCompra = (PrecioCompra * GvRow.DataKey("Cantidad").ToDouble()) + HdnTotalCompra.Value = SubTotalCompra.ToString() LblPrecioCompra.Text = $"PU Compra: {(PrecioCompra).FormatoNumero(2)}" - Dim TotalRedondeado = GvRow.DataKey("Total").ToDecimal() + GvRow.DataKey("ImporteIVA").ToDecimal() + Dim SubTotal = GvRow.DataKey("Total").ToDecimal() - Dim PorUtilidad = ((TotalRedondeado - TotalCompra) / TotalRedondeado) * 100D + Dim PorUtilidad = ((SubTotal - SubTotalCompra) / SubTotal) * 100D LblUtilidadPorcentaje.Text = PorUtilidad.FormatoNumero(2) End If End Using