/// <summary>
        /// UiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo_OnBatchUpdate(object sender, ASPxDataBatchUpdateEventArgs e)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void UiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo_OnBatchUpdate(object sender, ASPxDataBatchUpdateEventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }
            try
            {
                var listaDeSkusModificados = new List <VentaPorMultiploDePromo>();
                foreach (var item in e.UpdateValues)
                {
                    var skuDeVentaPorMultiplo = SkusAsociadosAPromocionDeVentaPorMultiplo.FirstOrDefault(sku => sku.SWIFT_PROMO_SKU_SALES_BY_MULTIPLE_ID == int.Parse(item.Keys["SWIFT_PROMO_SKU_SALES_BY_MULTIPLE_ID"].ToString()));
                    if (skuDeVentaPorMultiplo == null)
                    {
                        continue;
                    }
                    skuDeVentaPorMultiplo.MULTIPLE = int.Parse(item.NewValues["MULTIPLE"].ToString());
                    listaDeSkusModificados.Add(skuDeVentaPorMultiplo);
                }

                if (listaDeSkusModificados.Count > 0)
                {
                    UsuarioDeseaModificarSkuDeVentaPorMultiploAsociadoAPromocionDeVentaPorMultiplo?.Invoke(
                        sender, new PromoArgumento
                    {
                        Promo = new Promo {
                            PROMO_ID = int.Parse(UiTxtCodigoDePromocionDeVentaPorMultiplo.Value.ToString())
                        }
                        ,
                        VentasPorMultiploDePromo = listaDeSkusModificados
                    });
                }

                var listaDeSkusEliminados = e.DeleteValues.Select(skuEliminado => SkusAsociadosAPromocionDeVentaPorMultiplo.FirstOrDefault(sku => sku.SWIFT_PROMO_SKU_SALES_BY_MULTIPLE_ID == int.Parse(skuEliminado.Keys["SWIFT_PROMO_SKU_SALES_BY_MULTIPLE_ID"].ToString()))).ToList();
                if (listaDeSkusEliminados.Count > 0)
                {
                    UsuarioDeseaEliminarSkuDeVentaPorMultiploAsociadoAPromocionDeVentaPorMultiplo?.Invoke(sender, new PromoArgumento
                    {
                        Promo = new Promo {
                            PROMO_ID = int.Parse(UiTxtCodigoDePromocionDeVentaPorMultiplo.Value.ToString())
                        }
                        ,
                        VentasPorMultiploDePromo = listaDeSkusEliminados
                    });
                }

                e.Handled = true;
            }
            catch (Exception exception)
            {
                EstablecerError(exception.Message, sender);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void UiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo_OnCustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }
            try
            {
                switch (e.Parameters.Split('|')[0])
                {
                case "ExpandirGruposDeUiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo":
                    UiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo.ExpandAll();
                    break;

                case "ContraerGruposDeUiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo":
                    UiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo.CollapseAll();
                    break;

                case "EliminarSkusAsociadosAPromocionDeVentaPorMultiplo":
                    var listaDeSkusAEliminar = new List <VentaPorMultiploDePromo>();
                    for (var i = 0; i < UiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo.VisibleRowCount; i++)
                    {
                        listaDeSkusAEliminar.Add((VentaPorMultiploDePromo)UiVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo.GetRow(i));
                    }

                    UsuarioDeseaEliminarSkuDeVentaPorMultiploAsociadoAPromocionDeVentaPorMultiplo?.Invoke(sender, new PromoArgumento
                    {
                        Promo = new Promo {
                            PROMO_ID = int.Parse(UiTxtCodigoDePromocionDeVentaPorMultiplo.Value.ToString())
                        }
                        ,
                        VentasPorMultiploDePromo = listaDeSkusAEliminar
                    });
                    break;

                case "LimpiarVistaDeSkusAsociadosAPromocionDeVentaPorMultiplo":
                    SkusAsociadosAPromocionDeVentaPorMultiplo = null;
                    break;

                case "CargarSkusAsociadosAPromocionDeVentaPorMultiplo":
                    UsuarioDeseaObtenerSkusDeVentaPorMultiploAsociadosAPromocionDeVentaPorMultiplo?.Invoke(sender, new PromoArgumento
                    {
                        Promo = new Promo
                        {
                            PROMO_ID = int.Parse(UiTxtCodigoDePromocionDeVentaPorMultiplo.Value.ToString())
                        }
                    });
                    break;

                case "AsociarSkusAPromocionDeVentaPorMultiplo":
                    if (double.Parse(UiQtyVentaMinimaParaAplicarASkuDeVentaPorMultiplo.Value.ToString()) <= 0)
                    {
                        EstablecerError("La cantidad de venta mínima debe ser mayor cero.", sender);
                        return;
                    }
                    var idPromocionDeVentaPorMultiplo = UiTxtCodigoDePromocionDeVentaPorMultiplo.Value == null
                            ? 0
                            : int.Parse(UiTxtCodigoDePromocionDeVentaPorMultiplo.Value.ToString());

                    var listaSkusAAsociar = UiListaDeSkusNoAsociadosAPromocionDeVentaPorMultiplo.GridView.GetSelectedFieldValues("CODE_SKU", "PACK_UNIT");

                    if (listaSkusAAsociar.Count <= 0)
                    {
                        EstablecerError("Por favor, seleccione los productos que desea asociar a la promoción.", sender);
                        return;
                    }
                    ;

                    var listaDeSkusConVentaPorMultiploAAsociar = listaSkusAAsociar.Select(sku => new VentaPorMultiploDePromo
                    {
                        PROMO_ID  = idPromocionDeVentaPorMultiplo,
                        CODE_SKU  = ((object[])sku)[0].ToString(),
                        PACK_UNIT = int.Parse(((object[])sku)[1].ToString()),
                        MULTIPLE  = int.Parse(UiQtyVentaMinimaParaAplicarASkuDeVentaPorMultiplo.Value.ToString())
                    }).ToList();

                    UsuarioDeseaAsociarSkuDeVentaPorMultiploAPromocionDeVentaPorMultiplo?.Invoke(sender, new PromoArgumento
                    {
                        Promo = new Promo {
                            PROMO_ID = idPromocionDeVentaPorMultiplo, PROMO_NAME = UiTxtNombreDePromocionDeVentaPorMultiplo.Value.ToString(), PROMO_TYPE = "SALES_BY_MULTIPLE"
                        }
                        ,
                        VentasPorMultiploDePromo = listaDeSkusConVentaPorMultiploAAsociar
                    });
                    break;
                }
            }
            catch (Exception exception)
            {
                EstablecerError(exception.Message, sender);
            }
        }