diff --git a/Ventas/Promociones.aspx.vb b/Ventas/Promociones.aspx.vb index 51596e47a..1acec290c 100644 --- a/Ventas/Promociones.aspx.vb +++ b/Ventas/Promociones.aspx.vb @@ -1,539 +1,541 @@ -Option Explicit On -Option Strict On - -Imports System.Data -Imports Extensiones - - -Partial Class Ventas_Promociones - Inherits ClsPaginas - -#Region " PROPIEDADES " - Private Property TempDT As DataTable - Get - Return CType(ViewState("TempDT"), DataTable) - End Get - Set(value As DataTable) - ViewState("TempDT") = value - End Set - End Property - Private Property CvePromocion As Integer - Get - Return ViewState("CvePromocion").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CvePromocion") = value - End Set - End Property - Private Property CveConsecutivo As Integer - Get - Return ViewState("CveConsecutivo").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveConsecutivo") = value - End Set - End Property - - Private Property DtSubProyectos As DataTable - Get - Return If(IsNothing(ViewState("DtSubProyectos")), Nothing, CType(ViewState("DtSubProyectos"), DataTable)) - End Get - Set(value As DataTable) - ViewState("DtSubProyectos") = value - End Set - End Property - -#End Region - - Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load - If Not Page.IsPostBack Then - CvePromocion = -1 - CargaValoresIniciales() - CargaMonedas() - If Request("CvePromocion") IsNot Nothing AndAlso Request("CvePromocion").ToString.ToEntero > 0 Then - CvePromocion = Request("CvePromocion").ToString.ToEntero - CargaDatos() - Else - ChkEstatus.Enabled = True - ChkEstatus.Checked = True - CreaDT() - End If - - End If - End Sub - - -#Region " VALORES INICIALES " - - Private Sub CargaValoresIniciales() - Dim ObjPS As New ClsProductosServicios - 'CLASIFICACIONES - DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") - DdlClasificacion.DataBind() - DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) - - 'CARGA PS - DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") - If Not DdlPS.UsaWebService AndAlso CType(DdlPS.DataSource, DataTable) Is Nothing Then - DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) - DdlPS.DataBind() - End If - - 'CARGA SUBPROYECTOS - DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) - - DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) - DdlVendedor.DataBind() - DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) - - 'DdlCliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) - 'DdlCliente.DataBind() - 'DdlCliente.Items.Insert(0, New ListItem("todos", "-1")) - DdlClientes.setEsWebService(True) - - TxtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString - TxtFechaF.Text = Now.LastDayOfMonth.ToShortDateString - - If ObjPS.GetMarcas(UsuarioActual.CveEmpresa) Then - DdlMarca.DataSource = ObjPS.DtResultados - End If - ObjPS.Dispose() - DdlMarca.DataBind() - DdlMarca.Items.Insert(0, New ListItem("Todos", "-1")) - - If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then - GvDatos.Columns(7).Visible = True - DivRin.Visible = True - Dim ObjGral As New ClsGenerales - If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then - DdlRin.DataSource = ObjGral.DtResultados - End If - ObjGral.Dispose() - DdlRin.DataBind() - DdlRin.Items.Insert(0, New ListItem("Todos", "-1")) - End If - - End Sub - - Private Sub CreaDT() - TempDT = New DataTable - - TempDT.Columns.Add("Estatus", GetType(Integer)) - TempDT.Columns.Add("CvePromocionDetalle", GetType(Integer)) - TempDT.Columns.Add("CveClasificacion", GetType(Integer)) - TempDT.Columns.Add("Clasificacion", GetType(String)) - TempDT.Columns.Add("CvePS", GetType(Integer)) - TempDT.Columns.Add("CodigoPS", GetType(String)) - TempDT.Columns.Add("PUAnterior", GetType(Decimal)) - TempDT.Columns.Add("PUPromocion", GetType(Decimal)) - TempDT.Columns.Add("CveTipoPromocion", GetType(Integer)) - TempDT.Columns.Add("CveRinTamaño", GetType(Integer)) - TempDT.Columns.Add("TipoPromocion", GetType(String)) - TempDT.Columns.Add("Promocion", GetType(String)) - TempDT.Columns.Add("CantidadMinima", GetType(Integer)) - TempDT.Columns.Add("RinTamaño", GetType(String)) - - TempDT.Columns.Add("AplicaRestriccionTexto", GetType(String)) - TempDT.Columns.Add("AplicaRestriccion", GetType(Boolean)) - TempDT.Columns.Add("HoraInicio", GetType(DateTime)) - TempDT.Columns.Add("HoraFin", GetType(DateTime)) - TempDT.Columns.Add("AplicaLunes", GetType(Boolean)) - TempDT.Columns.Add("AplicaMartes", GetType(Boolean)) - TempDT.Columns.Add("AplicaMiercoles", GetType(Boolean)) - TempDT.Columns.Add("AplicaJueves", GetType(Boolean)) - TempDT.Columns.Add("AplicaViernes", GetType(Boolean)) - TempDT.Columns.Add("AplicaSabado", GetType(Boolean)) - TempDT.Columns.Add("AplicaDomingo", GetType(Boolean)) - End Sub - -#Region " PS " - Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) - ChangeDdlProducto() - DdlTipoPromocion.Items.FindByValue("1").Enabled = False - ' DdlTipoPromocion.Items.FindByValue("3").Enabled = False - End Sub - Private Sub ChangeDdlProducto() - If UsuarioActual.Empresa.Funcionalidad(105) = "" Then - DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo") - DdlPS.DataBind() - DdlPS.ddl.Items.Insert(0, New ListItem(" Seleccione ", "-1")) - Else - DdlPS.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacion.SelectedValue) - End If - End Sub - Protected Sub DdlPS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPS.selectedindexchange - DdlTipoPromocion.Items.FindByValue("1").Enabled = True - DdlTipoPromocion.Items.FindByValue("3").Enabled = True - End Sub -#End Region - - -#End Region - - - - -#Region " CARGA DATOS " - - Private Sub CargaDatos() - Dim ObjVentas As New ClsVentas - - If ObjVentas.GetPromociones(CvePromocion, "-1", -1, -1, -1, UsuarioActual.CveEmpresa, -1) AndAlso ObjVentas.DtResultados.Rows.Count = 1 Then - Dim Dr = ObjVentas.DtResultados.Rows(0) - TxtPromocion.Text = Dr("Promocion").ToString - TxtFechaI.Text = Dr("FechaInicio").ToString.ToDate.ToShortDateString - TxtFechaF.Text = Dr("FechaFin").ToString.ToDate.ToShortDateString - DdlSubProyecto.SelectedValue = Dr("CveSubProyecto").ToString - DdlMarca.SelectedValue = Dr("CveMarca").ToString - If Dr("CveVendedor").ToString.ToEntero > 0 Then DdlVendedor.SelectedValue = Dr("CveVendedor").ToString - If Dr("CveCliente").ToString.ToEntero > 0 Then DdlClientes.SelectedValue = Dr("CveCliente").ToString - ChkEstatus.Checked = If(Dr("Estatus").ToString = "True", True, False) - DdlMoneda.SelectedValueExist(Dr("CveMoneda").ToString) - DdlMarca.SelectedValueExist(Dr("CveMarca").ToString) - DdlTipoAplicacion.SelectedValueExist(Dr("TipoAplicacion").ToString) - - If ObjVentas.GetPromocionesDetalle(CvePromocion, UsuarioActual.CveEmpresa) Then - TempDT = ObjVentas.DtResultados - CargaGrid() - Else - Alert("Ocurrió un error al consultar los detalles de la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - - Else - Alert("Ocurrió un error al consultar la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - - ObjVentas.Dispose() - End Sub - Private Sub CargaGrid() - GvDatos.DataSource = TempDT.FiltraParametros("Estatus <> 2") - GvDatos.DataBind() - UpDatos.Update() - End Sub - - - Private Sub CargaMonedas() - DdlMoneda.DataSource = GlobalDTMonedas - DdlMoneda.DataBind() - End Sub - -#End Region - - -#Region " AGREGAR " - Protected Sub LbAgregarModal_Click(sender As Object, e As EventArgs) - RegistraScript("$('#DivAgregar').modal('show')") - CveConsecutivo = -1 - - DdlClasificacion.SelectedValue = "-1" - ChangeDdlProducto() - - LbPUActual.Text = "" - DdlTipoPromocion.SelectedValue = "-1" - TxtPromocionConcepto.Text = "" - TxtCantMinima.Text = "" - - ChkRestricciones.Checked = False - 'DivRestricciones.Visible = False - ChkLunes.Checked = False - ChkMartes.Checked = False - ChkMiercoles.Checked = False - ChkJueves.Checked = False - ChkViernes.Checked = False - ChkSabado.Checked = False - ChkDomingo.Checked = False - - BtnAgregar.Text = "Agregar" - - UpAgregar.Update() - End Sub - - Protected Sub BtnAgregar_Click(sender As Object, e As EventArgs) - - If DdlClasificacion.SelectedValue.ToEntero <= 0 Then - Alert("Debe seleccionar una clasificacion", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim Dr As DataRow = Nothing - - If CveConsecutivo >= 0 Then - Dr = TempDT.Rows(CveConsecutivo) - Dr("Estatus") = 1 - Else - Dr = TempDT.NewRow - Dr("Estatus") = 0 - End If - - If DdlClasificacion.SelectedValue.ToEntero > 0 Then - Dr("CveClasificacion") = DdlClasificacion.SelectedValue - Dr("Clasificacion") = DdlClasificacion.SelectedItem.Text - Else - Dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimeroValor("CveClasificacion") - Dr("Clasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimeroValor("Clasificacion") - End If - - Dr("CvePS") = If(DdlPS.SelectedValue = "", "-1", DdlPS.SelectedValue) - Dr("CodigoPS") = DdlPS.SelectedText - Dr("PUAnterior") = LbPUActual.Text.ToDecimal - - Dr("CveTipoPromocion") = DdlTipoPromocion.SelectedValue.ToEntero - Dr("TipoPromocion") = DdlTipoPromocion.SelectedItem.Text - Dr("Promocion") = TxtPromocionConcepto.Text - - If DdlTipoPromocion.SelectedValue.ToEntero.Contiene(1, 3) Then - Dr("PUPromocion") = TxtPromocionConcepto.Text.ToDecimal - Else - Dr("PUPromocion") = LbPUActual.Text.ToDecimal - (LbPUActual.Text.ToDecimal * TxtPromocionConcepto.Text.ToDecimal / 100) - End If - - If DdlTipoPromocion.SelectedValue.ToEntero = 3 Then - Dr("CantidadMinima") = TxtCantMinima.Text.ToEntero - Else - Dr("CantidadMinima") = 1 - End If - - If ChkRestricciones.Checked Then - Dr("AplicaRestriccionTexto") = "Si" - Dr("AplicaRestriccion") = True - Dr("HoraInicio") = Now.ToShortDateString.ToDate.AddHours(TxtHoraInicio.Text.Trim.Substring(0, 2).ToEntero).AddMinutes(TxtHoraInicio.Text.Trim.Substring(2, 2).ToEntero) - Dr("HoraFin") = Now.ToShortDateString.ToDate.AddHours(TxtHoraFin.Text.Trim.Substring(0, 2).ToEntero).AddMinutes(TxtHoraFin.Text.Trim.Substring(2, 2).ToEntero) - Dr("AplicaLunes") = ChkLunes.Checked - Dr("AplicaMartes") = ChkMartes.Checked - Dr("AplicaMiercoles") = ChkMiercoles.Checked - Dr("AplicaJueves") = ChkJueves.Checked - Dr("AplicaViernes") = ChkViernes.Checked - Dr("AplicaSabado") = ChkSabado.Checked - Dr("AplicaDomingo") = ChkDomingo.Checked - Else - Dr("AplicaRestriccionTexto") = "No" - Dr("AplicaRestriccion") = False - Dr("HoraInicio") = MinFecha.ToDateTime - Dr("HoraFin") = MaxFecha.ToDateTime - Dr("AplicaLunes") = False - Dr("AplicaMartes") = False - Dr("AplicaMiercoles") = False - Dr("AplicaJueves") = False - Dr("AplicaViernes") = False - Dr("AplicaSabado") = False - Dr("AplicaDomingo") = False - End If - - If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then - Dr("CveRinTamaño") = DdlRin.SelectedValue.ToEntero - Else - Dr("CveRinTamaño") = -1 - End If - - If CveConsecutivo >= 0 Then - Dr.AcceptChanges() - Else - TempDT.Rows.Add(Dr) - End If - - CargaGrid() - RegistraScript("$('#DivAgregar').modal('hide')") - End Sub - Protected Sub ChkRestricciones_CheckedChanged(sender As Object, e As EventArgs) - DivRestricciones.Visible = ChkRestricciones.Checked - End Sub - - Protected Sub BtnGenerarAPartir_Click(sender As Object, e As EventArgs) - CvePromocion = 0 - End Sub - -#End Region - - -#Region " GV PS " - Private Sub GvDatos_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvDatos.RowCommand - - If e.CommandName = "Editar" Then - Dim Gvr = GvDatos.Rows(e.CommandArgument.ToString.ToEntero) - - RegistraScript("$('#DivAgregar').modal('show')") - CveConsecutivo = e.CommandArgument.ToString.ToEntero - DdlRin.SelectedValueExist(Gvr.DataKey("CveRinTamaño")) - DdlClasificacion.SelectedValue = Gvr.DataKey("CveClasificacion") - ChangeDdlProducto() - If UsuarioActual.Empresa.Funcionalidad(105) = "" Then - DdlPS.SelectedValue = Gvr.DataKey("CvePS") - Else - DdlPS.SelectedValue = Gvr.DataKey("CvePS") - DdlPS.SelectedText = Gvr.DataKey("CodigoPS") - End If - - LbPUActual.Text = Gvr.DataKey("PUAnterior").FormatoNumero - DdlTipoPromocion.SelectedValue = Gvr.DataKey("CveTipoPromocion") - DdlTipoPromocion_SelectedIndexChanged(sender, Nothing) - TxtPromocionConcepto.Text = Gvr.DataKey("Promocion").FormatoNumero(4) - TxtCantMinima.Text = Gvr.DataKey("CantidadMinima") - - TxtHoraInicio.Text = $"{Gvr.DataKey("HoraInicio").ToDate.Hour}:{Gvr.DataKey("HoraInicio").ToDate.Minute}" - TxtHoraFin.Text = $"{Gvr.DataKey("HoraFin").ToDate.Hour}:{Gvr.DataKey("HoraFin").ToDate.Minute}" - - ChkRestricciones.Checked = CBool(Gvr.DataKey("AplicaRestriccion")) - DivRestricciones.Visible = CBool(Gvr.DataKey("AplicaRestriccion")) - ChkLunes.Checked = CBool(Gvr.DataKey("AplicaLunes")) - ChkMartes.Checked = CBool(Gvr.DataKey("AplicaMartes")) - ChkMiercoles.Checked = CBool(Gvr.DataKey("AplicaMiercoles")) - ChkJueves.Checked = CBool(Gvr.DataKey("AplicaJueves")) - ChkViernes.Checked = CBool(Gvr.DataKey("AplicaViernes")) - ChkSabado.Checked = CBool(Gvr.DataKey("AplicaSabado")) - ChkDomingo.Checked = CBool(Gvr.DataKey("AplicaDomingo")) - ChkIncluyeImpuesto.Checked = CBool(Gvr.DataKey("IncluyeImpuestos")) - - BtnAgregar.Text = "Actualizar" - - UpAgregar.Update() - GvDatos.EditIndex = -1 - End If - - End Sub - Protected Sub GvPS_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting - Dim DbRow = TempDT.Rows(e.RowIndex) - - If CvePromocion > 0 Then - DbRow("Estatus") = 2 - Else - TempDT.Rows.Remove(DbRow) - End If - - CargaGrid() - End Sub -#End Region - - -#Region " GUARDAR " - Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) - If CvePromocion > 0 Then - ActualizaPromocion() - Else - GuardaPromocion() - End If - End Sub - - - Private Sub GuardaPromocion() - Dim CveCliente As Integer = If(DdlClientes.SelectedValue = "", -1, DdlClientes.SelectedValue.ToEntero) - Dim ObjVentas As New ClsVentas - Dim TieneError = False - ObjVentas.IniciaTransacSQL() - CvePromocion = ObjVentas.AddPromociones(TxtPromocion.Text.Trim, If(IsDate(TxtFechaI.Text), TxtFechaI.Text.ToDate, MinFecha), If(IsDate(TxtFechaF.Text), TxtFechaF.Text.ToDate, MaxFecha), - DdlVendedor.SelectedValue.ToEntero, CveCliente, ChkEstatus.Checked, DdlMoneda.SelectedValue.ToEntero, UsuarioActual.CveUsuario, - UsuarioActual.CveEmpresa, DdlSubProyecto.SelectedValue.ToEntero, DdlTipoAplicacion.SelectedValue.ToString, DdlMarca.SelectedValue.ToEntero) - - If CvePromocion > 0 Then - For Each Dr As DataRow In TempDT.Rows - If Not ObjVentas.AddPromocionesDetalle(CvePromocion, Dr("CvePS").ToString.ToEntero, Dr("CveTipoPromocion").ToString.ToEntero, Dr("Promocion").ToString.ToDouble, Dr("PUAnterior").ToString.ToDouble, Dr("PUPromocion").ToString.ToDouble, - CBool(Dr("AplicaRestriccion")), CBool(Dr("AplicaLunes")), CBool(Dr("AplicaMartes")), CBool(Dr("AplicaMiercoles")), CBool(Dr("AplicaJueves")), CBool(Dr("AplicaViernes")), CBool(Dr("AplicaSabado")), CBool(Dr("AplicaDomingo")), - Dr("HoraInicio").ToString.ToDateTime, Dr("HoraFin").ToString.ToDateTime, Dr("CantidadMinima").ToString.ToEntero, - CveClasificacion:=If(Dr("CvePS").ToString = "", 20, Dr("CveClasificacion").ToString.ToEntero), CveRinTamaño:=Dr("CveRinTamaño").ToString.ToEntero, IncluyeImpuestos:=ChkIncluyeImpuesto.Checked) Then - TieneError = True - Exit For - End If - Next - Else - TieneError = True - End If - - If Not TieneError Then - ObjVentas.Commit() - Alert("La promoción se guardo correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPromociones.aspx"";") - Else - ObjVentas.RollBack() - Alert("Ocurrió un error al guardar la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - - ObjVentas.Dispose() - End Sub - Private Sub ActualizaPromocion() - Dim CveCliente As Integer = If(DdlClientes.SelectedValue = "", -1, DdlClientes.SelectedValue.ToEntero) - - Dim ObjVentas As New ClsVentas - Dim TieneError = False - ObjVentas.IniciaTransacSQL() - - If ObjVentas.UpdatePromociones(TxtPromocion.Text.Trim, If(IsDate(TxtFechaI.Text), TxtFechaI.Text.ToDate, MinFecha), If(IsDate(TxtFechaF.Text), TxtFechaF.Text.ToDate, MaxFecha), DdlVendedor.SelectedValue.ToEntero, CveCliente, ChkEstatus.Checked, DdlMoneda.SelectedValue.ToEntero, UsuarioActual.CveUsuario, CvePromocion, DdlSubProyecto.SelectedValue.ToEntero, DdlMarca.SelectedValue.ToEntero) Then - - For Each Dr As DataRow In TempDT.FiltraParametros("Estatus = 0").Rows - If Not ObjVentas.AddPromocionesDetalle(CvePromocion, Dr("CvePS").ToString.ToEntero, Dr("CveTipoPromocion").ToString.ToEntero, Dr("Promocion").ToString.ToDouble, Dr("PUAnterior").ToString.ToDouble, Dr("PUPromocion").ToString.ToDouble, - CBool(Dr("AplicaRestriccion")), CBool(Dr("AplicaLunes")), CBool(Dr("AplicaMartes")), CBool(Dr("AplicaMiercoles")), CBool(Dr("AplicaJueves")), CBool(Dr("AplicaViernes")), CBool(Dr("AplicaSabado")), CBool(Dr("AplicaDomingo")), - Dr("HoraInicio").ToString.ToDateTime, Dr("HoraFin").ToString.ToDateTime, Dr("CantidadMinima").ToString.ToEntero, CveClasificacion:=If(Dr("CvePS").ToString = "-1", Dr("CveClasificacion").ToString.ToEntero, -1), IncluyeImpuestos:=ChkIncluyeImpuesto.Checked) Then - TieneError = True - Exit For - End If - Next - - If Not TieneError Then - For Each Dr As DataRow In TempDT.FiltraParametros("Estatus = 1").Rows - If Not ObjVentas.UpdatePromocionesDetalle(Dr("CvePromocionDetalle").ToString.ToEntero, CvePromocion, Dr("CvePS").ToString.ToEntero, Dr("CveTipoPromocion").ToString.ToEntero, Dr("Promocion").ToString.ToDouble, Dr("PUAnterior").ToString.ToDouble, Dr("PUPromocion").ToString.ToDouble, - CBool(Dr("AplicaRestriccion")), CBool(Dr("AplicaLunes")), CBool(Dr("AplicaMartes")), CBool(Dr("AplicaMiercoles")), CBool(Dr("AplicaJueves")), CBool(Dr("AplicaViernes")), CBool(Dr("AplicaSabado")), CBool(Dr("AplicaDomingo")), - Dr("HoraInicio").ToString.ToDateTime, Dr("HoraFin").ToString.ToDateTime, Dr("CantidadMinima").ToString.ToEntero, CveClasificacion:=If(Dr("CvePS").ToString = "-1", Dr("CveClasificacion").ToString.ToEntero, -1), IncluyeImpuestos:=ChkIncluyeImpuesto.Checked) Then - TieneError = True - Exit For - End If - Next - End If - - If Not TieneError Then - For Each Dr As DataRow In TempDT.FiltraParametros("Estatus = 2").Rows - If Not ObjVentas.RemovePromocionesDetalle(Dr("CvePromocionDetalle").ToString.ToEntero) Then - TieneError = True - Exit For - End If - Next - End If - - Else - TieneError = True - End If - - If Not TieneError Then - ObjVentas.Commit() - Alert("La promoción se guardo correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPromociones.aspx"";") - Else - ObjVentas.RollBack() - Alert("Ocurrió un error al guardar la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - - ObjVentas.Dispose() - End Sub -#End Region - - -#Region " ELIMINAR " - Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs) - Dim ObjVentas As New ClsVentas - ObjVentas.IniciaTransacSQL() - Dim TieneError = False - - If ObjVentas.RemovePromocionesDetalle(CvePromocion) Then - If Not ObjVentas.RemovePromociones(CvePromocion, UsuarioActual.CveEmpresa) Then - TieneError = True - End If - Else - TieneError = True - End If - - If Not TieneError Then - ObjVentas.Commit() - Alert("La promoción se elimino correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPromociones.aspx"";") - Else - ObjVentas.RollBack() - Alert("Ocurrió un error al registrar la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - ObjVentas.Dispose() - End Sub -#End Region - - Protected Sub DdlTipoPromocion_SelectedIndexChanged(sender As Object, e As EventArgs) - If DdlTipoPromocion.SelectedValue = "3" Then - DivCantMinima.Visible = True - Else - DivCantMinima.Visible = False - End If - End Sub +Option Explicit On +Option Strict On + +Imports System.Data +Imports Extensiones + + +Partial Class Ventas_Promociones + Inherits ClsPaginas + +#Region " PROPIEDADES " + Private Property TempDT As DataTable + Get + Return CType(ViewState("TempDT"), DataTable) + End Get + Set(value As DataTable) + ViewState("TempDT") = value + End Set + End Property + Private Property CvePromocion As Integer + Get + Return ViewState("CvePromocion").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CvePromocion") = value + End Set + End Property + Private Property CveConsecutivo As Integer + Get + Return ViewState("CveConsecutivo").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveConsecutivo") = value + End Set + End Property + + Private Property DtSubProyectos As DataTable + Get + Return If(IsNothing(ViewState("DtSubProyectos")), Nothing, CType(ViewState("DtSubProyectos"), DataTable)) + End Get + Set(value As DataTable) + ViewState("DtSubProyectos") = value + End Set + End Property + +#End Region + + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load + If Not Page.IsPostBack Then + CvePromocion = -1 + CargaValoresIniciales() + CargaMonedas() + If Request("CvePromocion") IsNot Nothing AndAlso Request("CvePromocion").ToString.ToEntero > 0 Then + CvePromocion = Request("CvePromocion").ToString.ToEntero + CargaDatos() + Else + ChkEstatus.Enabled = True + ChkEstatus.Checked = True + CreaDT() + End If + + End If + End Sub + + +#Region " VALORES INICIALES " + + Private Sub CargaValoresIniciales() + Dim ObjPS As New ClsProductosServicios + 'CLASIFICACIONES + DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") + DdlClasificacion.DataBind() + DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) + + 'CARGA PS + DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + If Not DdlPS.UsaWebService AndAlso CType(DdlPS.DataSource, DataTable) Is Nothing Then + DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlPS.DataBind() + End If + + 'CARGA SUBPROYECTOS + DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) + DdlSubProyecto.DataBind() + DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) + + DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) + DdlVendedor.DataBind() + DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) + + 'DdlCliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) + 'DdlCliente.DataBind() + 'DdlCliente.Items.Insert(0, New ListItem("todos", "-1")) + DdlClientes.setEsWebService(True) + + TxtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString + TxtFechaF.Text = Now.LastDayOfMonth.ToShortDateString + + If ObjPS.GetMarcas(UsuarioActual.CveEmpresa) Then + DdlMarca.DataSource = ObjPS.DtResultados + End If + ObjPS.Dispose() + DdlMarca.DataBind() + DdlMarca.Items.Insert(0, New ListItem("Todos", "-1")) + + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + GvDatos.Columns(7).Visible = True + DivRin.Visible = True + Dim ObjGral As New ClsGenerales + If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then + DdlRin.DataSource = ObjGral.DtResultados + End If + ObjGral.Dispose() + DdlRin.DataBind() + DdlRin.Items.Insert(0, New ListItem("Todos", "-1")) + End If + + End Sub + + Private Sub CreaDT() + TempDT = New DataTable + + TempDT.Columns.Add("Estatus", GetType(Integer)) + TempDT.Columns.Add("CvePromocionDetalle", GetType(Integer)) + TempDT.Columns.Add("CveClasificacion", GetType(Integer)) + TempDT.Columns.Add("Clasificacion", GetType(String)) + TempDT.Columns.Add("CvePS", GetType(Integer)) + TempDT.Columns.Add("CodigoPS", GetType(String)) + TempDT.Columns.Add("PUAnterior", GetType(Decimal)) + TempDT.Columns.Add("PUPromocion", GetType(Decimal)) + TempDT.Columns.Add("CveTipoPromocion", GetType(Integer)) + TempDT.Columns.Add("CveRinTamaño", GetType(Integer)) + TempDT.Columns.Add("TipoPromocion", GetType(String)) + TempDT.Columns.Add("Promocion", GetType(String)) + TempDT.Columns.Add("CantidadMinima", GetType(Integer)) + TempDT.Columns.Add("RinTamaño", GetType(String)) + + TempDT.Columns.Add("AplicaRestriccionTexto", GetType(String)) + TempDT.Columns.Add("AplicaRestriccion", GetType(Boolean)) + TempDT.Columns.Add("HoraInicio", GetType(DateTime)) + TempDT.Columns.Add("HoraFin", GetType(DateTime)) + TempDT.Columns.Add("AplicaLunes", GetType(Boolean)) + TempDT.Columns.Add("AplicaMartes", GetType(Boolean)) + TempDT.Columns.Add("AplicaMiercoles", GetType(Boolean)) + TempDT.Columns.Add("AplicaJueves", GetType(Boolean)) + TempDT.Columns.Add("AplicaViernes", GetType(Boolean)) + TempDT.Columns.Add("AplicaSabado", GetType(Boolean)) + TempDT.Columns.Add("AplicaDomingo", GetType(Boolean)) + + TempDT.Columns.Add("IncluyeImpuestos", GetType(Boolean)) + End Sub + +#Region " PS " + Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) + ChangeDdlProducto() + DdlTipoPromocion.Items.FindByValue("1").Enabled = False + ' DdlTipoPromocion.Items.FindByValue("3").Enabled = False + End Sub + Private Sub ChangeDdlProducto() + If UsuarioActual.Empresa.Funcionalidad(105) = "" Then + DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo") + DdlPS.DataBind() + DdlPS.ddl.Items.Insert(0, New ListItem(" Seleccione ", "-1")) + Else + DdlPS.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacion.SelectedValue) + End If + End Sub + Protected Sub DdlPS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPS.selectedindexchange + DdlTipoPromocion.Items.FindByValue("1").Enabled = True + DdlTipoPromocion.Items.FindByValue("3").Enabled = True + End Sub +#End Region + + +#End Region + + + + +#Region " CARGA DATOS " + + Private Sub CargaDatos() + Dim ObjVentas As New ClsVentas + + If ObjVentas.GetPromociones(CvePromocion, "-1", -1, -1, -1, UsuarioActual.CveEmpresa, -1) AndAlso ObjVentas.DtResultados.Rows.Count = 1 Then + Dim Dr = ObjVentas.DtResultados.Rows(0) + TxtPromocion.Text = Dr("Promocion").ToString + TxtFechaI.Text = Dr("FechaInicio").ToString.ToDate.ToShortDateString + TxtFechaF.Text = Dr("FechaFin").ToString.ToDate.ToShortDateString + DdlSubProyecto.SelectedValue = Dr("CveSubProyecto").ToString + DdlMarca.SelectedValue = Dr("CveMarca").ToString + If Dr("CveVendedor").ToString.ToEntero > 0 Then DdlVendedor.SelectedValue = Dr("CveVendedor").ToString + If Dr("CveCliente").ToString.ToEntero > 0 Then DdlClientes.SelectedValue = Dr("CveCliente").ToString + ChkEstatus.Checked = If(Dr("Estatus").ToString = "True", True, False) + DdlMoneda.SelectedValueExist(Dr("CveMoneda").ToString) + DdlMarca.SelectedValueExist(Dr("CveMarca").ToString) + DdlTipoAplicacion.SelectedValueExist(Dr("TipoAplicacion").ToString) + + If ObjVentas.GetPromocionesDetalle(CvePromocion, UsuarioActual.CveEmpresa) Then + TempDT = ObjVentas.DtResultados + CargaGrid() + Else + Alert("Ocurrió un error al consultar los detalles de la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + + Else + Alert("Ocurrió un error al consultar la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + + ObjVentas.Dispose() + End Sub + Private Sub CargaGrid() + GvDatos.DataSource = TempDT.FiltraParametros("Estatus <> 2") + GvDatos.DataBind() + UpDatos.Update() + End Sub + + + Private Sub CargaMonedas() + DdlMoneda.DataSource = GlobalDTMonedas + DdlMoneda.DataBind() + End Sub + +#End Region + + +#Region " AGREGAR " + Protected Sub LbAgregarModal_Click(sender As Object, e As EventArgs) + RegistraScript("$('#DivAgregar').modal('show')") + CveConsecutivo = -1 + + DdlClasificacion.SelectedValue = "-1" + ChangeDdlProducto() + + LbPUActual.Text = "" + DdlTipoPromocion.SelectedValue = "-1" + TxtPromocionConcepto.Text = "" + TxtCantMinima.Text = "" + + ChkRestricciones.Checked = False + 'DivRestricciones.Visible = False + ChkLunes.Checked = False + ChkMartes.Checked = False + ChkMiercoles.Checked = False + ChkJueves.Checked = False + ChkViernes.Checked = False + ChkSabado.Checked = False + ChkDomingo.Checked = False + + BtnAgregar.Text = "Agregar" + + UpAgregar.Update() + End Sub + + Protected Sub BtnAgregar_Click(sender As Object, e As EventArgs) + + If DdlClasificacion.SelectedValue.ToEntero <= 0 Then + Alert("Debe seleccionar una clasificacion", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim Dr As DataRow = Nothing + + If CveConsecutivo >= 0 Then + Dr = TempDT.Rows(CveConsecutivo) + Dr("Estatus") = 1 + Else + Dr = TempDT.NewRow + Dr("Estatus") = 0 + End If + + If DdlClasificacion.SelectedValue.ToEntero > 0 Then + Dr("CveClasificacion") = DdlClasificacion.SelectedValue + Dr("Clasificacion") = DdlClasificacion.SelectedItem.Text + Else + Dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimeroValor("CveClasificacion") + Dr("Clasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimeroValor("Clasificacion") + End If + + Dr("CvePS") = If(DdlPS.SelectedValue = "", "-1", DdlPS.SelectedValue) + Dr("CodigoPS") = If(String.IsNullOrEmpty(DdlPS.SelectedText), "Todos", DdlPS.SelectedText) + Dr("PUAnterior") = LbPUActual.Text.ToDecimal + + Dr("CveTipoPromocion") = DdlTipoPromocion.SelectedValue.ToEntero + Dr("TipoPromocion") = DdlTipoPromocion.SelectedItem.Text + Dr("Promocion") = TxtPromocionConcepto.Text + + If DdlTipoPromocion.SelectedValue.ToEntero.Contiene(1, 3) Then + Dr("PUPromocion") = TxtPromocionConcepto.Text.ToDecimal + Else + Dr("PUPromocion") = LbPUActual.Text.ToDecimal - (LbPUActual.Text.ToDecimal * TxtPromocionConcepto.Text.ToDecimal / 100) + End If + + If DdlTipoPromocion.SelectedValue.ToEntero = 3 Then + Dr("CantidadMinima") = TxtCantMinima.Text.ToEntero + Else + Dr("CantidadMinima") = 1 + End If + + If ChkRestricciones.Checked Then + Dr("AplicaRestriccionTexto") = "Si" + Dr("AplicaRestriccion") = True + Dr("HoraInicio") = Now.ToShortDateString.ToDate.AddHours(TxtHoraInicio.Text.Trim.Substring(0, 2).ToEntero).AddMinutes(TxtHoraInicio.Text.Trim.Substring(2, 2).ToEntero) + Dr("HoraFin") = Now.ToShortDateString.ToDate.AddHours(TxtHoraFin.Text.Trim.Substring(0, 2).ToEntero).AddMinutes(TxtHoraFin.Text.Trim.Substring(2, 2).ToEntero) + Dr("AplicaLunes") = ChkLunes.Checked + Dr("AplicaMartes") = ChkMartes.Checked + Dr("AplicaMiercoles") = ChkMiercoles.Checked + Dr("AplicaJueves") = ChkJueves.Checked + Dr("AplicaViernes") = ChkViernes.Checked + Dr("AplicaSabado") = ChkSabado.Checked + Dr("AplicaDomingo") = ChkDomingo.Checked + Else + Dr("AplicaRestriccionTexto") = "No" + Dr("AplicaRestriccion") = False + Dr("HoraInicio") = MinFecha.ToDateTime + Dr("HoraFin") = MaxFecha.ToDateTime + Dr("AplicaLunes") = False + Dr("AplicaMartes") = False + Dr("AplicaMiercoles") = False + Dr("AplicaJueves") = False + Dr("AplicaViernes") = False + Dr("AplicaSabado") = False + Dr("AplicaDomingo") = False + End If + + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + Dr("CveRinTamaño") = DdlRin.SelectedValue.ToEntero + Else + Dr("CveRinTamaño") = -1 + End If + + If CveConsecutivo >= 0 Then + Dr.AcceptChanges() + Else + TempDT.Rows.Add(Dr) + End If + + CargaGrid() + RegistraScript("$('#DivAgregar').modal('hide')") + End Sub + Protected Sub ChkRestricciones_CheckedChanged(sender As Object, e As EventArgs) + DivRestricciones.Visible = ChkRestricciones.Checked + End Sub + + Protected Sub BtnGenerarAPartir_Click(sender As Object, e As EventArgs) + CvePromocion = 0 + End Sub + +#End Region + + +#Region " GV PS " + Private Sub GvDatos_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvDatos.RowCommand + + If e.CommandName = "Editar" Then + Dim Gvr = GvDatos.Rows(e.CommandArgument.ToString.ToEntero) + + RegistraScript("$('#DivAgregar').modal('show')") + CveConsecutivo = e.CommandArgument.ToString.ToEntero + DdlRin.SelectedValueExist(Gvr.DataKey("CveRinTamaño")) + DdlClasificacion.SelectedValue = Gvr.DataKey("CveClasificacion") + ChangeDdlProducto() + If UsuarioActual.Empresa.Funcionalidad(105) = "" Then + DdlPS.SelectedValue = Gvr.DataKey("CvePS") + Else + DdlPS.SelectedValue = Gvr.DataKey("CvePS") + DdlPS.SelectedText = Gvr.DataKey("CodigoPS") + End If + + LbPUActual.Text = Gvr.DataKey("PUAnterior").FormatoNumero + DdlTipoPromocion.SelectedValue = Gvr.DataKey("CveTipoPromocion") + DdlTipoPromocion_SelectedIndexChanged(sender, Nothing) + TxtPromocionConcepto.Text = Gvr.DataKey("Promocion").FormatoNumero(4) + TxtCantMinima.Text = Gvr.DataKey("CantidadMinima") + + TxtHoraInicio.Text = $"{Gvr.DataKey("HoraInicio").ToDate.Hour}:{Gvr.DataKey("HoraInicio").ToDate.Minute}" + TxtHoraFin.Text = $"{Gvr.DataKey("HoraFin").ToDate.Hour}:{Gvr.DataKey("HoraFin").ToDate.Minute}" + + ChkRestricciones.Checked = CBool(Gvr.DataKey("AplicaRestriccion")) + DivRestricciones.Visible = CBool(Gvr.DataKey("AplicaRestriccion")) + ChkLunes.Checked = CBool(Gvr.DataKey("AplicaLunes")) + ChkMartes.Checked = CBool(Gvr.DataKey("AplicaMartes")) + ChkMiercoles.Checked = CBool(Gvr.DataKey("AplicaMiercoles")) + ChkJueves.Checked = CBool(Gvr.DataKey("AplicaJueves")) + ChkViernes.Checked = CBool(Gvr.DataKey("AplicaViernes")) + ChkSabado.Checked = CBool(Gvr.DataKey("AplicaSabado")) + ChkDomingo.Checked = CBool(Gvr.DataKey("AplicaDomingo")) + ChkIncluyeImpuesto.Checked = CBool(Gvr.DataKey("IncluyeImpuestos")) + + BtnAgregar.Text = "Actualizar" + + UpAgregar.Update() + GvDatos.EditIndex = -1 + End If + + End Sub + Protected Sub GvPS_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting + Dim DbRow = TempDT.Rows(e.RowIndex) + + If CvePromocion > 0 Then + DbRow("Estatus") = 2 + Else + TempDT.Rows.Remove(DbRow) + End If + + CargaGrid() + End Sub +#End Region + + +#Region " GUARDAR " + Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) + If CvePromocion > 0 Then + ActualizaPromocion() + Else + GuardaPromocion() + End If + End Sub + + + Private Sub GuardaPromocion() + Dim CveCliente As Integer = If(DdlClientes.SelectedValue = "", -1, DdlClientes.SelectedValue.ToEntero) + Dim ObjVentas As New ClsVentas + Dim TieneError = False + ObjVentas.IniciaTransacSQL() + CvePromocion = ObjVentas.AddPromociones(TxtPromocion.Text.Trim, If(IsDate(TxtFechaI.Text), TxtFechaI.Text.ToDate, MinFecha), If(IsDate(TxtFechaF.Text), TxtFechaF.Text.ToDate, MaxFecha), + DdlVendedor.SelectedValue.ToEntero, CveCliente, ChkEstatus.Checked, DdlMoneda.SelectedValue.ToEntero, UsuarioActual.CveUsuario, + UsuarioActual.CveEmpresa, DdlSubProyecto.SelectedValue.ToEntero, DdlTipoAplicacion.SelectedValue.ToString, DdlMarca.SelectedValue.ToEntero) + + If CvePromocion > 0 Then + For Each Dr As DataRow In TempDT.Rows + If Not ObjVentas.AddPromocionesDetalle(CvePromocion, Dr("CvePS").ToString.ToEntero, Dr("CveTipoPromocion").ToString.ToEntero, Dr("Promocion").ToString.ToDouble, Dr("PUAnterior").ToString.ToDouble, Dr("PUPromocion").ToString.ToDouble, + CBool(Dr("AplicaRestriccion")), CBool(Dr("AplicaLunes")), CBool(Dr("AplicaMartes")), CBool(Dr("AplicaMiercoles")), CBool(Dr("AplicaJueves")), CBool(Dr("AplicaViernes")), CBool(Dr("AplicaSabado")), CBool(Dr("AplicaDomingo")), + Dr("HoraInicio").ToString.ToDateTime, Dr("HoraFin").ToString.ToDateTime, Dr("CantidadMinima").ToString.ToEntero, + CveClasificacion:=If(Dr("CvePS").ToString = "", 20, Dr("CveClasificacion").ToString.ToEntero), CveRinTamaño:=Dr("CveRinTamaño").ToString.ToEntero, IncluyeImpuestos:=ChkIncluyeImpuesto.Checked) Then + TieneError = True + Exit For + End If + Next + Else + TieneError = True + End If + + If Not TieneError Then + ObjVentas.Commit() + Alert("La promoción se guardo correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPromociones.aspx"";") + Else + ObjVentas.RollBack() + Alert("Ocurrió un error al guardar la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + + ObjVentas.Dispose() + End Sub + Private Sub ActualizaPromocion() + Dim CveCliente As Integer = If(DdlClientes.SelectedValue = "", -1, DdlClientes.SelectedValue.ToEntero) + + Dim ObjVentas As New ClsVentas + Dim TieneError = False + ObjVentas.IniciaTransacSQL() + + If ObjVentas.UpdatePromociones(TxtPromocion.Text.Trim, If(IsDate(TxtFechaI.Text), TxtFechaI.Text.ToDate, MinFecha), If(IsDate(TxtFechaF.Text), TxtFechaF.Text.ToDate, MaxFecha), DdlVendedor.SelectedValue.ToEntero, CveCliente, ChkEstatus.Checked, DdlMoneda.SelectedValue.ToEntero, UsuarioActual.CveUsuario, CvePromocion, DdlSubProyecto.SelectedValue.ToEntero, DdlMarca.SelectedValue.ToEntero) Then + + For Each Dr As DataRow In TempDT.FiltraParametros("Estatus = 0").Rows + If Not ObjVentas.AddPromocionesDetalle(CvePromocion, Dr("CvePS").ToString.ToEntero, Dr("CveTipoPromocion").ToString.ToEntero, Dr("Promocion").ToString.ToDouble, Dr("PUAnterior").ToString.ToDouble, Dr("PUPromocion").ToString.ToDouble, + CBool(Dr("AplicaRestriccion")), CBool(Dr("AplicaLunes")), CBool(Dr("AplicaMartes")), CBool(Dr("AplicaMiercoles")), CBool(Dr("AplicaJueves")), CBool(Dr("AplicaViernes")), CBool(Dr("AplicaSabado")), CBool(Dr("AplicaDomingo")), + Dr("HoraInicio").ToString.ToDateTime, Dr("HoraFin").ToString.ToDateTime, Dr("CantidadMinima").ToString.ToEntero, CveClasificacion:=If(Dr("CvePS").ToString = "-1", Dr("CveClasificacion").ToString.ToEntero, -1), IncluyeImpuestos:=ChkIncluyeImpuesto.Checked) Then + TieneError = True + Exit For + End If + Next + + If Not TieneError Then + For Each Dr As DataRow In TempDT.FiltraParametros("Estatus = 1").Rows + If Not ObjVentas.UpdatePromocionesDetalle(Dr("CvePromocionDetalle").ToString.ToEntero, CvePromocion, Dr("CvePS").ToString.ToEntero, Dr("CveTipoPromocion").ToString.ToEntero, Dr("Promocion").ToString.ToDouble, Dr("PUAnterior").ToString.ToDouble, Dr("PUPromocion").ToString.ToDouble, + CBool(Dr("AplicaRestriccion")), CBool(Dr("AplicaLunes")), CBool(Dr("AplicaMartes")), CBool(Dr("AplicaMiercoles")), CBool(Dr("AplicaJueves")), CBool(Dr("AplicaViernes")), CBool(Dr("AplicaSabado")), CBool(Dr("AplicaDomingo")), + Dr("HoraInicio").ToString.ToDateTime, Dr("HoraFin").ToString.ToDateTime, Dr("CantidadMinima").ToString.ToEntero, CveClasificacion:=If(Dr("CvePS").ToString = "-1", Dr("CveClasificacion").ToString.ToEntero, -1), IncluyeImpuestos:=ChkIncluyeImpuesto.Checked) Then + TieneError = True + Exit For + End If + Next + End If + + If Not TieneError Then + For Each Dr As DataRow In TempDT.FiltraParametros("Estatus = 2").Rows + If Not ObjVentas.RemovePromocionesDetalle(Dr("CvePromocionDetalle").ToString.ToEntero) Then + TieneError = True + Exit For + End If + Next + End If + + Else + TieneError = True + End If + + If Not TieneError Then + ObjVentas.Commit() + Alert("La promoción se guardo correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPromociones.aspx"";") + Else + ObjVentas.RollBack() + Alert("Ocurrió un error al guardar la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + + ObjVentas.Dispose() + End Sub +#End Region + + +#Region " ELIMINAR " + Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs) + Dim ObjVentas As New ClsVentas + ObjVentas.IniciaTransacSQL() + Dim TieneError = False + + If ObjVentas.RemovePromocionesDetalle(CvePromocion) Then + If Not ObjVentas.RemovePromociones(CvePromocion, UsuarioActual.CveEmpresa) Then + TieneError = True + End If + Else + TieneError = True + End If + + If Not TieneError Then + ObjVentas.Commit() + Alert("La promoción se elimino correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPromociones.aspx"";") + Else + ObjVentas.RollBack() + Alert("Ocurrió un error al registrar la promoción. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + ObjVentas.Dispose() + End Sub +#End Region + + Protected Sub DdlTipoPromocion_SelectedIndexChanged(sender As Object, e As EventArgs) + If DdlTipoPromocion.SelectedValue = "3" Then + DivCantMinima.Visible = True + Else + DivCantMinima.Visible = False + End If + End Sub End Class \ No newline at end of file