From d3d554c18bc30d395b2289a79f4bd9f59e3f9ee2 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 3 Jan 2025 18:24:38 -0700 Subject: [PATCH] =?UTF-8?q?--=20aplicar=20promociones=20a=20toda=20la=20un?= =?UTF-8?q?a=20cotizaci=C3=B3n/remisi=C3=B3n.=20al=20editar=20la=20partida?= =?UTF-8?q?,=20verificar=20si=20tiene=20promoci=C3=B3n=20de=20nuevo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsVentas.vb | 3 ++- Ventas/Ventas.aspx | 6 ++++- Ventas/Ventas.aspx.vb | 55 +++++++++++++++++++++++++++++++++++++------ 3 files changed, 55 insertions(+), 9 deletions(-) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 3aee4f3d4..0f4eea25a 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -1631,7 +1631,7 @@ Public Class ClsVentas Return Retorno End Function - Public Function UpdateVentaDetalleRemision(CveVenta As Integer, CvePS As Integer, Cantidad As Decimal, PU As Decimal, IEPS As Decimal, PorcentajeIEPS As Decimal, IVA As Decimal, PorcentajeIVA As Decimal, Descuento As Decimal, Observaciones As String, Optional CveUsuarioModifico As Integer = -1) As Boolean + Public Function UpdateVentaDetalleRemision(CveVenta As Integer, CvePS As Integer, Cantidad As Decimal, PU As Decimal, IEPS As Decimal, PorcentajeIEPS As Decimal, IVA As Decimal, PorcentajeIVA As Decimal, Descuento As Decimal, Observaciones As String, Optional CveUsuarioModifico As Integer = -1, Optional CvePromocionDetalle As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_VentasDetalleRemisionUpdate") @@ -1647,6 +1647,7 @@ Public Class ClsVentas .Add("@Descuento", SqlDbType.Decimal).Value = Descuento .Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico + .Add("@CvePromocionDetalle", SqlDbType.Int).Value = CvePromocionDetalle End With Try diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 51652a2a7..f2dcdb177 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -407,6 +407,10 @@
  • Agregar Orden de Servicio
  • +
  • + +
  • @@ -8343,7 +8347,7 @@
    - <%----%> + <%----%>
    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