diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index c2bb9c8cb..ce4681dde 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -23821,6 +23821,11 @@ Partial Class Ventas
End If
End If
+
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ LiCalcularPromociones.Visible = True
+ End If
+
TxtAtencionA.Enabled = True
UpCliente.Update()
@@ -23828,6 +23833,7 @@ Partial Class Ventas
UpPS.Update()
UpCliente.Update()
UPObservaciones.Update()
+ UpnTools.Update()
End Sub
Private Sub BtnEditarRemision_Click(sender As Object, e As EventArgs) Handles BtnEditarRemision.Click
@@ -23954,7 +23960,7 @@ Partial Class Ventas
For Each Row As DataRow In TmpDT.Rows
Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString().ToEntero()
If CveVentaDetalle > 0 Then
- If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalle").ToString().ToEntero(), Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("PU").ToString().ToDecimal(), Row("ImporteIEPS").ToString().ToDecimal(), Row("PorcentajeIEPS").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal(), Row("PorcentajeIVA").ToString().ToDecimal(), Row("Descuento").ToString().ToDecimal(), Row("Obs").ToString(), UsuarioActual.CveUsuario) Then
+ If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalle").ToString().ToEntero(), Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("PU").ToString().ToDecimal(), Row("ImporteIEPS").ToString().ToDecimal(), Row("PorcentajeIEPS").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal(), Row("PorcentajeIVA").ToString().ToDecimal(), Row("Descuento").ToString().ToDecimal(), Row("Obs").ToString(), UsuarioActual.CveUsuario, CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero()) Then
OcurrioError = True
Exit For
End If
@@ -23962,7 +23968,7 @@ Partial Class Ventas
If Not ObjVentas.AddVentaDetalle(CveVenta, Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("CveUM").ToString().ToEntero(),
Row("PU").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("ImporteIVA").ToString().ToDecimal, Math.Round((Row("Total").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)))), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, TiempoEntrega:=Row("TiempoEntrega").ToString(),
- CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=If(DtPromociones IsNot Nothing, DtPromociones.FiltroPrimeroValor("CvePromocionDetalle", $"CvePS={Row("CvePS").ToString()}").ToEntero(), -1),
+ CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero(),
ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDecimal, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDecimal, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero(), CveActivoFijo:=Row("CveActivoFijo").ToString().ToEntero(), NumTurnos:=Row("NumTurnos").ToString().ToDecimal()) Then
OcurrioError = True
Exit For
@@ -24897,7 +24903,7 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then EjecutaRecalculaPrecios = True
If UsuarioActual.CveEmpresa = 189 Then EjecutaRecalculaPrecios = False
- If EjecutaRecalculaPrecios Then RecalculaPrecios()
+ If EjecutaRecalculaPrecios Then RecalculaPrecios(False)
End Sub
Private Function ValidaPagosContado(Optional MostrarAlertas As Boolean = True, Optional TipoDoctoViejo As String = "") As Boolean
@@ -31899,6 +31905,9 @@ Partial Class Ventas
BtnCrearApartirDe.Visible = False
BtnGenerarRemision.Visible = False
BtnPermisoEditarCotizacion.Visible = False
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ LiCalcularPromociones.Visible = False
+ End If
BtnEditarCotizacion.Visible = False
BtnGenerarOS.Visible = False
@@ -32967,12 +32976,16 @@ Partial Class Ventas
End If
End If
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ LiCalcularPromociones.Visible = True
+ End If
+
UpPS.Update()
UPPDescuento.Update()
UPObservaciones.Update()
UPCondicionesPago.Update()
UpCliente.Update()
-
+ UpnTools.Update()
End Sub
Private Sub BtnEditarCotizacion_Click(sender As Object, e As EventArgs) Handles BtnEditarCotizacion.Click
@@ -33107,7 +33120,7 @@ Partial Class Ventas
Row("PU").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal, Math.Round((Row("Total").ToString().ToDecimal() * (1 + Row("PorcentajeIVA").ToString().ToDecimal())), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDecimal(), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(),
PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDecimal(), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDecimal, TiempoEntrega:=Row("TiempoEntrega").ToString(),
- PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDecimal, ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal) Then
+ PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDecimal, ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal, CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero()) Then
MensajeError = "Ocurrió un error al guardar las partidas de la cotización"
OcurrioError = True
Exit For
@@ -34591,6 +34604,9 @@ Partial Class Ventas
'CUANDO ES CREAR APARTIR DE SE LIMPIAN FUNCIONALIDADES DE DOCUMENTOS YA REGISTRADOS
BtnGenerarRemision.Visible = False
BtnEditarRemision.Visible = False
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ LiCalcularPromociones.Visible = False
+ End If
BtnPermisoEditarRemision.Visible = False
BtnPermisoEditarCotizacion.Visible = False
BtnEditarCotizacion.Visible = False
@@ -39807,7 +39823,7 @@ Partial Class Ventas
RegistraScript("MuestraAnticipos();", "AE")
End Sub
- Private Sub RecalculaPrecios()
+ Private Sub RecalculaPrecios(ByRef RecalculoPromociones As Boolean, Optional ForzarRecalculo As Boolean = False)
Dim PuedeRecalcular As Boolean = False
If CveVenta <= 0 OrElse EsCreaApartirDe OrElse (ModalidadEdicion AndAlso Not DdlTipoComprobante.SelectedValue = "Cot") Then
@@ -39819,6 +39835,10 @@ Partial Class Ventas
PuedeRecalcular = False
End If
+ If ForzarRecalculo Then
+ PuedeRecalcular = True
+ End If
+
If TmpDT IsNot Nothing AndAlso PuedeRecalcular Then
For Each Row As DataRow In TmpDT.Rows
Dim Cantidad As Decimal = Row("Cantidad").ToString().ToDecimal()
@@ -39846,6 +39866,13 @@ Partial Class Ventas
Row("Total") = (Cantidad * PU)
Row("TotalImporte") = (Cantidad * PU).RoundSQL(NumeroDecimales)
Row("TotalConImpuestos") = (Row("Total").ToString().ToDecimal() - Row("Descuento").ToString().ToDecimal() + Row("ImporteIVA").ToString().ToDecimal()).RoundSQL(2)
+
+ Row("CvePromocionDetalle") = ObjDescuento.CvePromocionDetalle
+
+ If ObjDescuento.CvePromocionDetalle > 0 Then
+ RecalculoPromociones = True
+ End If
+
End If
Next
@@ -39917,7 +39944,9 @@ Partial Class Ventas
BtnsFacturar.Visible = False
BtnEditarRemision.Visible = False
-
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ LiCalcularPromociones.Visible = False
+ End If
LimpiaDocumentoDEV()
CambiaTipoDocto()
@@ -40288,5 +40317,17 @@ Partial Class Ventas
Protected Sub BtnRegresarBusqueda_Click(sender As Object, e As EventArgs)
LimpiarAgregarCliente()
End Sub
+
+ Protected Sub LnkCalcularPromociones_Click(sender As Object, e As EventArgs)
+ Dim Recalculo As Boolean = False
+ RecalculaPrecios(Recalculo, ForzarRecalculo:=True)
+
+ If Recalculo Then
+ Alert("Se han recalculado los precios y promociones en base a las condiciones actuales")
+ Else
+ Alert("No se han encontrado cambios para los precios y promociones")
+ End If
+
+ End Sub
End Class