FERRETERA. Descuentos, al especificarlos, el cálculo corregirlo, el IVA no mostrarlo.
This commit is contained in:
@@ -4336,6 +4336,7 @@
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<asp:HiddenField ID="HdnDescPS" runat="server" ClientIDMode="Static" Value="0" />
|
||||
<asp:HiddenField ID="HdnIVADescPS" runat="server" ClientIDMode="Static" Value="0" />
|
||||
<asp:HiddenField ID="HdnConsecPS" runat="server" ClientIDMode="Static" Value="-1" />
|
||||
<asp:HiddenField ID="HdnTotalCompra" runat="server" ClientIDMode="Static" Value="0" />
|
||||
<table style="width: 90%">
|
||||
@@ -4350,16 +4351,16 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>% Descuento</td>
|
||||
<td>Descuento</td>
|
||||
<td>
|
||||
<asp:TextBox ID="TxtPorPS" runat="server" CausesValidation="true" ClientIDMode="Static" MaxLength="12" Text="0" ValidationGroup="GrpDescuentoP" Width="72px"></asp:TextBox>
|
||||
<asp:CompareValidator ID="CVPorPS" runat="server" ControlToValidate="TxtPorPS" Display="None" ErrorMessage="El campo <b>''Descuento por Porcentaje''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." Operator="DataTypeCheck" Type="Currency" ValidationGroup="GrpPorPS"></asp:CompareValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VCEPorPS" runat="server" HighlightCssClass="vco" TargetControlID="CVPorPS" Width="300px"></ajax:ValidatorCalloutExtender>
|
||||
(%)
|
||||
</td>
|
||||
<td>IVA</td>
|
||||
<td><label style="display:none;">IVA</label></td>
|
||||
<td>
|
||||
<asp:Label ID="LblIVADescPS" runat="server" ClientIDMode="Static" Text="0.00"></asp:Label>
|
||||
<asp:Label ID="LblIVADescPS" runat="server" ClientIDMode="Static" Text="0.00" style="display:none;"></asp:Label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -9752,28 +9753,32 @@
|
||||
var PorcentajeDescuento = parseFloat($get("TxtPorPS").value);
|
||||
if (PorcentajeDescuento < 0 || PorcentajeDescuento > 99) {
|
||||
alert("No se puede aplicar ese porcentaje de descuento");
|
||||
$get("TxtPorPS").value = "0";
|
||||
return;
|
||||
}
|
||||
var ivaPor = parseFloat($get("HdnIVADescPS").value) ;
|
||||
|
||||
var subTotal = parseFloat($get("LblSubtotalDescPS").innerText.replace(",", "").replace(",", ""));
|
||||
var Monto = parseFloat($get("LblTotalDescPS").innerText.replace(",", "").replace(",", ""));
|
||||
|
||||
var Total = Monto - ((Monto * PorcentajeDescuento) / 100);
|
||||
|
||||
$get("LblDescPS").innerText = formato_numero(((subTotal * PorcentajeDescuento) / 100), 2, '.', ',');
|
||||
|
||||
var descuento = parseFloat($get("LblDescPS").innerText.replace(",", "").replace(",", ""));
|
||||
|
||||
$get("LblIVADescPS").innerText = formato_numero(((subTotal - descuento) * ivaPor), 2, '.', ',');
|
||||
|
||||
var importeIVA =parseFloat($get("LblIVADescPS").innerText.replace(",", "").replace(",", ""));
|
||||
|
||||
var Total = (subTotal - descuento) + importeIVA;
|
||||
|
||||
$get("LblTotalFinalDescPS").innerText = formato_numero(Total, 2, '.', ',');
|
||||
|
||||
var TotalRedondeado = parseFloat($get("LblTotalFinalDescPS").innerText.replace(",", "").replace(",", ""));
|
||||
|
||||
var descuento = - ((TotalRedondeado - (subTotal * 1.16)) / 1.16);
|
||||
|
||||
$get("LblIVADescPS").innerText = formato_numero(((subTotal - descuento) * 0.16), 2, '.', ',');
|
||||
|
||||
$get("LblDescPS").innerText = formato_numero(descuento, 2, '.', ',');
|
||||
|
||||
$get("HdnDescPS").value = descuento;
|
||||
|
||||
var totalCompra = parseFloat($get("HdnTotalCompra").value);
|
||||
if (totalCompra > 0) {
|
||||
var utilidad = ((TotalRedondeado - totalCompra) / TotalRedondeado) * 100;
|
||||
var totalRedondeado = parseFloat($get("LblTotalFinalDescPS").innerText.replace(",", "").replace(",", ""));
|
||||
var utilidad = ((totalRedondeado - totalCompra) / totalRedondeado) * 100;
|
||||
|
||||
$get("LblUtilidadPorcentaje").innerText = formato_numero(utilidad, 2, '.', ',');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24025,24 +24025,36 @@ Partial Class Ventas
|
||||
ElseIf e.CommandName = "Descuento" Then
|
||||
LblSubtotalDescPS.Text = ""
|
||||
LblTotalDescPS.Text = ""
|
||||
LblTotalFinalDescPS.Text = ""
|
||||
|
||||
LblTituloDesc.Text = "Descuento"
|
||||
HdnConsecPS.Value = "-1"
|
||||
HdnTotalCompra.Value = ""
|
||||
TxtPorPS.Text = ""
|
||||
LblIVADescPS.Text = ""
|
||||
LblUtilidadPorcentaje.Text = ""
|
||||
HdnIVADescPS.Value = "0"
|
||||
|
||||
Dim GvRow As GridViewRow = GvPS.Rows(e.CommandArgument.ToString().ToEntero())
|
||||
LblTituloDesc.Text = $"Descuento: {GvRow.DataKey("PS")}"
|
||||
HdnConsecPS.Value = GvRow.DataKey("Consec")
|
||||
LblSubtotalDescPS.Text = (GvRow.DataKey("Total").ToDecimal()).FormatoNumero()
|
||||
LblTotalDescPS.Text = (GvRow.DataKey("Total").ToDecimal() + GvRow.DataKey("ImporteIVA").ToDecimal()).FormatoNumero()
|
||||
LblTotalFinalDescPS.Text = (GvRow.DataKey("Total").ToDecimal() + GvRow.DataKey("ImporteIVA").ToDecimal()).FormatoNumero()
|
||||
LblIVADescPS.Text = GvRow.DataKey("ImporteIVA").FormatoNumero()
|
||||
HdnIVADescPS.Value = GvRow.DataKey("IVA").FormatoNumero()
|
||||
|
||||
Using ObjPS As New ClsProductosServicios
|
||||
Dim PrecioCompra = ObjPS.GetUltimoPrecioCompra(UsuarioActual.CveEmpresa, GvRow.DataKey("CvePS").ToEntero())
|
||||
If PrecioCompra > 0 Then
|
||||
HdnTotalCompra.Value = (PrecioCompra * GvRow.DataKey("Cantidad").ToDouble() * 1.16).ToString()
|
||||
Dim TotalCompra = (PrecioCompra * GvRow.DataKey("Cantidad").ToDouble() * (1 + GvRow.DataKey("IVA").ToDecimal()))
|
||||
HdnTotalCompra.Value = TotalCompra.ToString()
|
||||
LblPrecioCompra.Text = $"PU Compra: {(PrecioCompra).FormatoNumero(2)}"
|
||||
|
||||
Dim TotalRedondeado = GvRow.DataKey("Total").ToDecimal() + GvRow.DataKey("ImporteIVA").ToDecimal()
|
||||
|
||||
Dim PorUtilidad = ((TotalRedondeado - TotalCompra) / TotalRedondeado) * 100D
|
||||
LblUtilidadPorcentaje.Text = PorUtilidad.FormatoNumero(2)
|
||||
End If
|
||||
End Using
|
||||
|
||||
@@ -37003,11 +37015,22 @@ Partial Class Ventas
|
||||
If HdnDescPS.Value.ToEntero() > 0 Then
|
||||
Dim RowUpdate As DataRow = TmpDT.Select($"Consec = {HdnConsecPS.Value}").FirstOrDefault()
|
||||
If RowUpdate IsNot Nothing Then
|
||||
RowUpdate("Descuento") = HdnDescPS.Value.ToDecimal()
|
||||
RowUpdate("ImporteIVA") = LblIVADescPS.Text.ToDecimal()
|
||||
If HdnDescPS.Value.ToDecimal().RoundSQL(2) < RowUpdate("Total").ToString().ToDecimal() Then
|
||||
RowUpdate("Descuento") = HdnDescPS.Value.ToDecimal().RoundSQL(2)
|
||||
|
||||
Dim TotalCalculableImpuestos = (RowUpdate("Cantidad").ToString().ToDecimal * RowUpdate("PU").ToString().ToDecimal) - RowUpdate("Descuento").ToString().ToDecimal()
|
||||
Dim TotalCalculableImpuestosIVA As Decimal = (TotalCalculableImpuestos * (1 + RowUpdate("PorcentajeIEPS").ToString().ToDecimal))
|
||||
|
||||
Dim ImporteIVA = (RowUpdate("PorcentajeIVA").ToString().ToDouble * TotalCalculableImpuestosIVA).RoundSQL(NumeroDecimales)
|
||||
|
||||
RowUpdate("ImporteIVA") = ImporteIVA
|
||||
|
||||
CalculaTotalesVenta()
|
||||
RegistraScript("$('#ModalDescPS').modal('hide');")
|
||||
Else
|
||||
Alert("El descuento no puede ser mayor o igual al total.", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
CalculaTotalesVenta()
|
||||
RegistraScript("$('#ModalDescPS').modal('hide');")
|
||||
End If
|
||||
Else
|
||||
Alert("No se pudo aplicar el descuento", TipoMensaje.MsgAdvertencia)
|
||||
|
||||
Reference in New Issue
Block a user