Option Explicit On Option Strict On Imports System.Data Imports DocumentFormat.OpenXml.Drawing.Diagrams Imports Extensiones Imports iText.StyledXmlParser.Css.Resolve.Shorthand.Impl Imports Microsoft.Owin.Security.Provider 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 TempDTOrigial As DataTable Get Return CType(ViewState("TempDTOrigial"), DataTable) End Get Set(value As DataTable) ViewState("TempDTOrigial") = 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 Private Property CvePromocionPadre As Integer Get If ViewState("CvePromocionPadre") Is Nothing Then ViewState("CvePromocionPadre") = -1 End If Return ViewState("CvePromocionPadre").ToString.ToEntero End Get Set(value As Integer) ViewState("CvePromocionPadre") = 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() LnkAgrgarPlantillaPS.Visible = False Else ChkEstatus.Enabled = True ChkEstatus.Checked = True CreaDT() End If CargaGvBitacora() End If End Sub #Region "BITACORA" Private Sub CargaGvBitacora() If CvePromocion > 0 Then divBitacora.Visible = True Dim ObjGral As New ClsGenerales() If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CvePromocion:=CvePromocion) Then GvBitacora.DataSource = ObjGral.DtResultados End If ObjGral.Dispose() GvBitacora.DataBind() UpHistorialModificacion.Update() Else divBitacora.Visible = False End If End Sub #End Region #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 = NowADS().FirstDayOfMonth.ToShortDateString TxtFechaF.Text = NowADS().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(8).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 '' si es E acumuladora If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then divDistribuidor.Visible = True 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)) TempDTOrigial = TempDT.Copy '366 Estatus '367 CvePS '368 PUPromocion '369 CveTipoPromocion '370 Cantidad Minima '371 AplicaRestriccion '372 HoraInicio '373 HoraFin '374 AplicaLunes '375 AplicaMartes '376 AplicaMiercoles '377 AplicaJueves '378 AplicaViernes '379 AplicaSabado '380 AplicaDomingo '381 IncluyeImpuestos 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 If DdlClientes.UsaWebService Then DdlClientes.txtText.Value = Dr("NombreComercial").ToString DdlClientes.txtValue.Value = Dr("CveCliente").ToString Else DdlClientes.SelectedValue = Dr("CveCliente").ToString End If End If ChkEstatus.Checked = If(Dr("Estatus").ToString = "True", True, False) DdlMoneda.SelectedValueExist(Dr("CveMoneda").ToString) DdlMarca.SelectedValueExist(Dr("CveMarca").ToString) DdlTipoAplicacion.SelectedValueExist(Dr("TipoAplicacion").ToString) CvePromocionPadre = If(Dr("CvePromocionPadre").ToString.ToEntero > 0, Dr("CvePromocionPadre").ToString.ToEntero, -1) If ObjVentas.GetPromocionesDetalle(CvePromocion, UsuarioActual.CveEmpresa) Then TempDT = ObjVentas.DtResultados.Copy TempDTOrigial = ObjVentas.DtResultados.Copy 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 ButBtnEliminar.Visible = True 'If CvePromocionPadre > 0 Then ' BtnGuardar.Enabled = False ' ButBtnEliminar.Enabled = False '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 = "1" 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 If TxtCantMinima.Text.ToEntero <= 0 Then Alert("La cantidad minima debe ser de 1", 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 Dr("CantidadMinima") = TxtCantMinima.Text.ToEntero If ChkRestricciones.Checked Then Dr("AplicaRestriccionTexto") = "Si" Dr("AplicaRestriccion") = True Dr("HoraInicio") = NowADS().ToShortDateString.ToDate.AddHours(TxtHoraInicio.Text.Trim.Substring(0, 2).ToEntero).AddMinutes(TxtHoraInicio.Text.Trim.Substring(2, 2).ToEntero) Dr("HoraFin") = NowADS().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 Dr("IncluyeImpuestos") = ChkIncluyeImpuesto.Checked 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, DdlDistribuidor.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 UsuarioActual.Empresa.Funcionalidad(563) <> "" Then If Not ObjVentas.SincronizarPromocionesClonar(CvePromocion, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1) Then TieneError = True End If 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() Dim ObjGral As New ClsGenerales(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, DdlTipoAplicacion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, CveMarca:=DdlMarca.SelectedValue.ToEntero, EsDistribuidor:=DdlDistribuidor.SelectedValue.ToEntero) Then For Each Dr As DataRow In TempDT.FiltraParametros("Estatus = 0").Rows Dim OpReplicarDetalleFranquicias As Integer = If(UsuarioActual.Empresa.Funcionalidad(563) <> "", 2, 1) ' op 2 Elimina detalles de franquicias 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), CveRinTamaño:=Dr("CveRinTamaño").ToString.ToEntero, IncluyeImpuestos:=ChkIncluyeImpuesto.Checked, Opcion:=OpReplicarDetalleFranquicias) Then TieneError = True Exit For End If If Not TieneError Then If Not ObjGral.AddHistorialBitacora(364, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, "", Dr("CodigoPS").ToString, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If 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), CveRinTamaño:=Dr("CveRinTamaño").ToString.ToEntero, IncluyeImpuestos:=ChkIncluyeImpuesto.Checked) Then TieneError = True Exit For End If If Not TieneError Then '366 Estatus '367 CvePS '368 PUPromocion '369 CveTipoPromocion '370 Cantidad Minima '371 AplicaRestriccion '372 HoraInicio '373 HoraFin '374 AplicaLunes '375 AplicaMartes '376 AplicaMiercoles '377 AplicaJueves '378 AplicaViernes '379 AplicaSabado '380 AplicaDomingo '381 IncluyeImpuestos Dim Dr2 As DataRow = TempDTOrigial.FiltraParametros($"CvePromocionDetalle = {Dr("CvePromocionDetalle").ToString}").Rows(0) If Not TieneError And Dr("CvePS").ToString <> Dr2("CvePS").ToString Then If Not ObjGral.AddHistorialBitacora(367, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("CodigoPS").ToString, Dr2("CodigoPS").ToString, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("CveTipoPromocion").ToString <> Dr2("CveTipoPromocion").ToString Then If Not ObjGral.AddHistorialBitacora(369, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("TipoPromocion").ToString, $"{Dr("CodigoPS").ToString} - {Dr2("TipoPromocion").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("CantidadMinima").ToString <> Dr2("CantidadMinima").ToString Then If Not ObjGral.AddHistorialBitacora(370, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("CantidadMinima").ToString, $"{Dr("CodigoPS").ToString} - {Dr2("CantidadMinima").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If 'If Not TieneError And Dr("AplicaRestriccion").ToString <> Dr2("AplicaRestriccion").ToString Then ' If Not ObjGral.AddHistorialBitacora(371, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr2("AplicaRestriccion").ToString, $"{Dr("CodigoPS").ToString} - {Dr("AplicaRestriccion").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then ' TieneError = True ' Exit For ' End If 'End If If Not TieneError And Dr("HoraInicio").ToString <> Dr2("HoraInicio").ToString Then If Not ObjGral.AddHistorialBitacora(372, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraInicio").ToString, $"{Dr("CodigoPS").ToString} - {Dr2("HoraInicio").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("HoraFin").ToString <> Dr2("HoraFin").ToString Then If Not ObjGral.AddHistorialBitacora(373, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraFin").ToString, $"{Dr("CodigoPS").ToString} - {Dr2("HoraFin").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("AplicaLunes").ToString <> Dr2("AplicaLunes").ToString Then Dim EstadoAnterior As String = If(Boolean.Parse(Dr2("AplicaLunes").ToString), "Aplica", "No aplica") Dim EstadoActual As String = If(Boolean.Parse(Dr("AplicaLunes").ToString), "Aplica", "No aplica") If Not ObjGral.AddHistorialBitacora(374, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, EstadoActual, $"{Dr("CodigoPS").ToString} - { EstadoAnterior }", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("AplicaMartes").ToString <> Dr2("AplicaMartes").ToString Then Dim EstadoAnterior As String = If(Boolean.Parse(Dr2("AplicaMartes").ToString), "Aplica", "No aplica") Dim EstadoActual As String = If(Boolean.Parse(Dr("AplicaMartes").ToString), "Aplica", "No aplica") If Not ObjGral.AddHistorialBitacora(375, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, EstadoActual, $"{Dr("CodigoPS").ToString} - { EstadoAnterior }", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("AplicaMiercoles").ToString <> Dr2("AplicaMiercoles").ToString Then Dim EstadoAnterior As String = If(Boolean.Parse(Dr2("AplicaMiercoles").ToString), "Aplica", "No aplica") Dim EstadoActual As String = If(Boolean.Parse(Dr("AplicaMiercoles").ToString), "Aplica", "No aplica") If Not ObjGral.AddHistorialBitacora(376, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, EstadoActual, $"{Dr("CodigoPS").ToString} - { EstadoAnterior }", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("AplicaJueves").ToString <> Dr2("AplicaJueves").ToString Then Dim EstadoAnterior As String = If(Boolean.Parse(Dr2("AplicaJueves").ToString), "Aplica", "No aplica") Dim EstadoActual As String = If(Boolean.Parse(Dr("AplicaJueves").ToString), "Aplica", "No aplica") If Not ObjGral.AddHistorialBitacora(377, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, EstadoActual, $"{Dr("CodigoPS").ToString} - { EstadoAnterior }", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("AplicaViernes").ToString <> Dr2("AplicaViernes").ToString Then Dim EstadoAnterior As String = If(Boolean.Parse(Dr2("AplicaViernes").ToString), "Aplica", "No aplica") Dim EstadoActual As String = If(Boolean.Parse(Dr("AplicaViernes").ToString), "Aplica", "No aplica") If Not ObjGral.AddHistorialBitacora(378, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, EstadoActual, $"{Dr("CodigoPS").ToString} - { EstadoAnterior }", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("AplicaSabado").ToString <> Dr2("AplicaSabado").ToString Then Dim EstadoAnterior As String = If(Boolean.Parse(Dr2("AplicaSabado").ToString), "Aplica", "No aplica") Dim EstadoActual As String = If(Boolean.Parse(Dr("AplicaSabado").ToString), "Aplica", "No aplica") If Not ObjGral.AddHistorialBitacora(379, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, EstadoActual, $"{Dr("CodigoPS").ToString} - { EstadoAnterior }", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("AplicaDomingo").ToString <> Dr2("AplicaDomingo").ToString Then Dim EstadoAnterior As String = If(Boolean.Parse(Dr2("AplicaDomingo").ToString), "Aplica", "No aplica") Dim EstadoActual As String = If(Boolean.Parse(Dr("AplicaDomingo").ToString), "Aplica", "No aplica") If Not ObjGral.AddHistorialBitacora(380, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, EstadoActual, $"{Dr("CodigoPS").ToString} - { EstadoAnterior }", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If If Not TieneError And Dr("IncluyeImpuestos").ToString <> Dr2("IncluyeImpuestos").ToString Then Dim EstadoAnterior As String = If(Boolean.Parse(Dr2("IncluyeImpuestos").ToString), "Incluye", "No Incluye") Dim EstadoActual As String = If(Boolean.Parse(Dr("IncluyeImpuestos").ToString), "Incluye", "No Incluye") If Not ObjGral.AddHistorialBitacora(381, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, EstadoActual, $"{Dr("CodigoPS").ToString} - { EstadoAnterior }", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If End If Next End If If Not TieneError Then For Each Dr As DataRow In TempDT.FiltraParametros("Estatus = 2").Rows 'RunPromocionesClonar Dim OpEliminacionDetalle As Integer = If(UsuarioActual.Empresa.Funcionalidad(563) <> "", 2, 1) ' op 2 Elimina detalles de franquicias If Not ObjVentas.RemovePromocionesDetalle(Dr("CvePromocionDetalle").ToString.ToEntero, OpEliminacionDetalle) Then TieneError = True Exit For End If If Not TieneError Then If Not ObjGral.AddHistorialBitacora(365, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, "", Dr("CodigoPS").ToString, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then TieneError = True Exit For End If End If Next End If Else TieneError = True End If If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then If Not ObjVentas.SincronizarPromocionesClonar(CvePromocion, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 2) Then TieneError = True End If 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 UsuarioActual.Empresa.Funcionalidad(563) <> "" Then If Not ObjVentas.SincronizarPromocionesClonar(CvePromocion, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 3) Then TieneError = True End If End If If Not TieneError Then If ObjVentas.RemovePromocionesDetalle(-1, 3, CvePromocion) Then If Not ObjVentas.RemovePromociones(CvePromocion, UsuarioActual.CveEmpresa) Then TieneError = True End If Else TieneError = True End If 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 If UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso TieneError Then If ObjVentas.SincronizarPromocionesClonar(CvePromocion, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 4) Then Alert("Se presento un error al eliminar, se desactivo kla promoción actual y promociones relacionadas", TipoMensaje.MsgAdvertencia, $"document.location.href=""/Ventas/Promociones.aspx?CvePromocion={CvePromocion}"";") End If End If ObjVentas.Dispose() End Sub #End Region 'Protected Sub DdlTipoPromocion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoPromocion.SelectedIndexChanged ' If DdlTipoPromocion.SelectedValue = "3" Then ' DivCantMinima.Visible = True ' Else ' DivCantMinima.Visible = False ' End If 'End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then If CvePromocionPadre > 0 Then e.Row.FCLinkButton("LnkGvDetalleEditar").Visible = False e.Row.FCLinkButton("LnkGvDetalleEliminar").Visible = False End If End If End Sub Protected Sub LnkAgrgarPlantillaPS_Click(sender As Object, e As EventArgs) TxtExcel.Text = "[]" UpAgregarPlantilla.Update() RegistraScript("$('#DivAgregarPlantilla').modal('show');") End Sub Protected Sub LnkDecargaPlatilla_Click(sender As Object, e As EventArgs) Dim rutaArchivoPlantilla As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\CargaPromociones.xlsx" Dim nombreArchivo As String = "CargaPromociones.xlsx" ' Configurar la respuesta HTTP Response.Clear() Response.ContentType = "application/octet-stream" Response.AppendHeader("Content-Disposition", "attachment; filename=" & nombreArchivo) Dim contenido As Byte() = System.IO.File.ReadAllBytes(rutaArchivoPlantilla) Response.BinaryWrite(contenido) Response.Flush() Response.End() End Sub Protected Sub BrnAgregarPlantilla_Click(sender As Object, e As EventArgs) If TxtExcel.getfiles().Archivos.Count > 0 Then Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim Directorio As String = Server.MapPath("~") & file.path Dim Tipo As String = If(file.Extension.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") CargarArchivo(Directorio, file.filename, Tipo) Else Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError) End If End Sub Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String) TempDT.Clear() CveConsecutivo = TempDT.Rows.Count + 1 Dim ProcesoOK As Boolean = False Dim DTPlantilla As New DataTable Dim ErrorArchivo = False Dim ErrorExcel = False DTPlantilla = ReadExcelFile(Ruta + FileName, True) 'Alert(DT.Rows.Count.ToString) If DTPlantilla.Rows.Count = 0 Then Alert("No encontraron registros.") Exit Sub End If If Not ValidaDTPlantilla(DTPlantilla) Then Exit Sub End If For Each dRowTemplate As DataRow In DTPlantilla.Rows 'Clasificacion Codigo TipoPromocion Promocion CantidadMinima Rin IncluyeImpuestos Dim CveClasificacion As Integer = dRowTemplate("CveClasificacion").ToString.ToEntero Dim CvePS As Integer = dRowTemplate("CvePS").ToString.ToEntero Dim CveTipoPromosicion As Integer = dRowTemplate("CveTipoPromosicion").ToString.ToEntero Dim Promocion As Decimal = dRowTemplate("Promocion").ToString.ToDecimal Dim CantidadMinima As Decimal = dRowTemplate("CantidadMinima").ToString.ToDecimal Dim CveRin As Integer = dRowTemplate("CveRin").ToString.ToEntero Dim IncluyeImpuestos As Boolean = Boolean.Parse(dRowTemplate("IncluyeImpuestos").ToString) Dim Dr As DataRow = TempDT.NewRow Dr = TempDT.NewRow Dr("Estatus") = 0 If CveClasificacion > 0 Then Dr("CveClasificacion") = CveClasificacion Dr("Clasificacion") = dRowTemplate("Clasificacion").ToString Dr("CvePS") = -1 Else Dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion") Dr("Clasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("Clasificacion") Dr("CvePS") = CvePS End If Dr("CodigoPS") = dRowTemplate("CodigoPS").ToString Dr("PUAnterior") = 0 Dr("CveTipoPromocion") = CveTipoPromosicion Dr("TipoPromocion") = dRowTemplate("TipoPromocion").ToString Dr("Promocion") = Promocion Dr("PUPromocion") = 0 Dr("CantidadMinima") = CantidadMinima 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 Dr("IncluyeImpuestos") = IncluyeImpuestos If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then Dr("CveRinTamaño") = CveRin Dr("RinTamaño") = dRowTemplate("RinTamaño").ToString Else Dr("CveRinTamaño") = -1 End If TempDT.Rows.Add(Dr) Next CargaGrid() RegistraScript("$('#DivAgregarPlantilla').modal('hide')") End Sub Private Function ValidaDTPlantilla(ByRef DTPlantilla As DataTable) As Boolean Dim Errores As New StringBuilder DTPlantilla.Columns.Add("CveClasificacion", GetType(Integer)) DTPlantilla.Columns.Add("CvePS", GetType(Integer)) DTPlantilla.Columns.Add("CveTipoPromosicion", GetType(Integer)) 'DTPlantilla.Columns.Add("Promocion", GetType(Decimal)) 'DTPlantilla.Columns.Add("CantidadMinima", GetType(Decimal)) DTPlantilla.Columns.Add("CveRin", GetType(Integer)) 'DTPlantilla.Columns.Add("IncluyeImpuestos", GetType(Boolean)) DTPlantilla.Columns.Add("CodigoPS", GetType(String)) DTPlantilla.Columns.Add("RinTamaño", GetType(String)) Dim DTPS As DataTable = New DataTable Dim DTRines As DataTable = New DataTable Dim ObjPS As New ClsProductosServicios If ObjPS.GetPS(-1, -1, UsuarioActual.CveEmpresa) Then DTPS = ObjPS.DtResultados End If ObjPS.Dispose() Dim ObjGral As New ClsGenerales If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then DTRines = ObjGral.DtResultados End If ObjGral.Dispose() Dim RegistroActual As Integer = 1 For Each dRow As DataRow In DTPlantilla.Rows Dim SBErrorRegistro As New StringBuilder Dim ClasificacionStr, CodigoStr, TipoPromocionStr, PromocionStr, CantidadMinimaStr, RinStr, IncluyeImpuestosStr As String ClasificacionStr = dRow("Clasificacion").ToString.Trim CodigoStr = dRow("Codigo").ToString.Trim TipoPromocionStr = dRow("TipoPromocion").ToString.Trim PromocionStr = dRow("Promocion").ToString.Trim CantidadMinimaStr = dRow("CantidadMinima").ToString.Trim RinStr = dRow("Rin").ToString.Trim IncluyeImpuestosStr = dRow("IncluyeImpuestos").ToString.Trim If ClasificacionStr.Length > 0 Or CodigoStr.Length > 0 Then Dim CveClasificacion As Integer = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveClasificacion", $"Clasificacion = '{ClasificacionStr}'").ToString().ToEntero() Dim CvePS As Integer = DTPS.FiltroPrimeroValor("CvePS", $"Codigo = '{CodigoStr}'").ToString().ToEntero() Dim CodigoPS As String = DTPS.FiltroPrimeroValor("PSCodigo", $"Codigo = '{CodigoStr}'").ToString() Dim CveTipoPromocion As Integer = -1 Dim Promocion As Decimal = PromocionStr.ToDecimal Dim CantidadMinima As Decimal = CantidadMinimaStr.ToDecimal Dim CveRin As Integer = If(RinStr <> "", DTRines.FiltroPrimeroValor("CveRinTamaño", $"Codigo = '{RinStr}'").ToString.ToEntero(), -1) Dim RinTamaño As String = If(RinStr <> "", DTRines.FiltroPrimeroValor("RinTamaño", $"Codigo = '{RinStr}'").ToString(), "") Dim IncluyeImpuestos As Boolean = If(IncluyeImpuestosStr.ToUpper.Contiene("´SÍ", "SI", "1"), True, False) ' SBErrorRegistro.Append($"") If ClasificacionStr.Length > 0 And CodigoStr.Length > 0 Then SBErrorRegistro.Append($"No se puede agregar Clasificación y codigo en un mismo registro. ") Else If ClasificacionStr.Length > 0 Then SBErrorRegistro.Append(If(CveClasificacion > 0, "", $"No se encontro Clasificación '{ClasificacionStr}'. ")) Else SBErrorRegistro.Append(If(CvePS > 0, "", $"No se encontro código de Producto/Servicio '{CodigoStr }'. ")) End If End If If TipoPromocionStr.Trim.ToUpper.Contiene("IMPORTE $", "IMPORTE") Then CveTipoPromocion = 1 ElseIf TipoPromocionStr.Trim.ToUpper.Contiene("DESCUENTO %", "DESCUENTO") Then CveTipoPromocion = 2 ElseIf TipoPromocionStr.Trim.ToUpper = "CANTIDAD" Then CveTipoPromocion = 3 Else SBErrorRegistro.Append($"Tipo Promoción no encontrada '{TipoPromocionStr}'. ") End If If Not Promocion > 0 Then SBErrorRegistro.Append($"La Promoción debe de ser mayor a 0. ") End If If CantidadMinimaStr.Length > 0 And Not CantidadMinima > 0 Then SBErrorRegistro.Append($"La Cantidad MÍnima debe de ser mayor a 0. ") End If If RinStr.Length > 0 And Not CveRin > 0 Then SBErrorRegistro.Append($"Tamaño de Rin no encontrado '{RinStr}'. ") End If If Not IncluyeImpuestosStr.ToUpper.Contiene("´SÍ", "SI", "1", "NO", "0") Then SBErrorRegistro.Append($"Campo IncluyeImpuestos no válido '{IncluyeImpuestosStr}'.
") End If If SBErrorRegistro.ToString.Length > 0 Then Errores.AppendLine($"Registro {RegistroActual}, {SBErrorRegistro.ToString}") Else dRow("CveClasificacion") = CveClasificacion dRow("CvePS") = CvePS dRow("CveTipoPromosicion") = CveTipoPromocion dRow("Promocion") = Promocion dRow("CantidadMinima") = CantidadMinima dRow("RinTamaño") = RinTamaño dRow("CveRin") = CveRin dRow("IncluyeImpuestos") = IncluyeImpuestos dRow("CodigoPS") = If(CveClasificacion > 0, "Todos", CodigoPS) End If End If RegistroActual = RegistroActual + 1 Next If Errores.ToString.Length = 0 Then DTPlantilla.AcceptChanges() Return True Else Alert(Errores.ToString, TipoMensaje.MsgAdvertencia) Return False End If End Function End Class