diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index 227d61a28..738a1010c 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -1256,7 +1256,7 @@
-
+
<%----%>
<%----%>
@@ -4336,6 +4336,7 @@
+
@@ -4350,16 +4351,16 @@
- | % Descuento |
+ Descuento |
(%)
|
- IVA |
+ |
-
+
|
@@ -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, '.', ',');
}
}
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 2af43e23a..c78f926f4 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -17095,6 +17095,35 @@ Partial Class Ventas
Protected Sub DdlPS_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlPS.selectedindexchange
DdlPSIndexChange(DdlPS.SelectedValue.ToEntero(), DdlPS)
End Sub
+
+ Protected Sub DdlPSEdit_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
+ If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
+ If GvPS.EditIndex >= 0 Then
+ Dim ddlPSEdit = DirectCast(sender, ADServerControl.Dropdownlost)
+ Dim GvRow = DirectCast(ddlPSEdit.NamingContainer, GridViewRow)
+
+ If (GvRow.RowState = DataControlRowState.Edit OrElse GvRow.RowState = 5) Then
+ Dim CvePSParametro = ddlPSEdit.SelectedValue.ToEntero()
+
+ Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSParametro).FiltroPrimero("")
+ If DrPS IsNot Nothing Then
+ 'SUGIERE PRECIO
+ Dim PrecioSugerido As Decimal = 0
+ Dim tPrecioSugerido As Decimal = 0
+ tPrecioSugerido = DrPS("Precio").ToString().ToDecimal
+ Dim ObjPrecioSugerido As Modelos.MPrecioSugerido = CalculaPrecioSugerido(CvePSParametro, DrPS("CveClasificacion").ToString().ToEntero())
+
+ PrecioSugerido = ObjPrecioSugerido.PrecioSugerido
+
+ If PrecioSugerido <= 0 Then PrecioSugerido = tPrecioSugerido
+
+ GvRow.FCTextBox("TxtPrecio").Text = PrecioSugerido.ToString("#,###.####") ' que muestre hasta los 4 digitos si lo requiere
+ End If
+ End If
+ End If
+ End If
+
+ End Sub
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged
CargaPS(DdlClasificacion.SelectedValue.ToEntero(), DdlPS)
UpPS.Update()
@@ -23996,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
@@ -36974,16 +37015,28 @@ 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)
End If
End Sub
+
End Class