/// <summary>
 /// elimina los skus de la promo
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void UiVistaSkusAsociadosPromoPorPrecioEspecial_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
 {
     e.Cancel = true;
     try
     {
         var SkuPromoID = int.Parse(e.Values["SPECIAL_PRICE_LIST_BY_SCALE_ID"].ToString());
         var IdPromo    = int.Parse(UiTxtCodigoDePromocionDeDescuentoPorPrecioEspecial.Value.ToString());
         UsuarioDeseaEliminarSkusAPromo?.Invoke(sender,
                                                new PromoArgumento
         {
             Promo = new Promo
             {
                 PROMO_ID = IdPromo
             },
             DescuentoPorPrecioEspecial = new DescuentosPorPrecioEspecial
             {
                 SPECIAL_PRICE_LIST_BY_SCALE_ID = SkuPromoID
             }
         });
     }
     catch (Exception ex)
     {
         EstablecerError("No se ha podido eliminar sku debido a: " + ex.Message, sender);
     }
 }
        /// <summary>
        /// Actualiza o elimina nuestros skus asociados a la promo
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void UiVistaSkusAsociadosADescuentoPorPrecioEspecial_OnBatchUpdate(object sender, ASPxDataBatchUpdateEventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }

            #region Actualizar
            var ListaDeSkusModificados = new List <DescuentosPorPrecioEspecial>();

            foreach (var item in e.UpdateValues)
            {
                var SkuACambiar = SkusAsociadosAPromo.FirstOrDefault(p => p.SPECIAL_PRICE_LIST_BY_SCALE_ID == int.Parse(item.Keys["SPECIAL_PRICE_LIST_BY_SCALE_ID"].ToString()));
                if (SkuACambiar == null)
                {
                    continue;
                }
                SkuACambiar.SPECIAL_PRICE_LIST_BY_SCALE_ID = SkuACambiar.SPECIAL_PRICE_LIST_BY_SCALE_ID;
                SkuACambiar.INCLUDE_DISCOUNT = int.Parse(item.NewValues["INCLUDE_DISCOUNT"].ToString());
                SkuACambiar.PRICE            = Decimal.Parse(item.NewValues["PRICE"].ToString());

                ListaDeSkusModificados.Add(SkuACambiar);
            }

            if (ListaDeSkusModificados.Count > 0 || e.DeleteValues.Count > 0)
            {
                foreach (var skuUpdate in ListaDeSkusModificados)
                {
                    UsuarioDeseaActualizarSkusAPromo?.Invoke(sender, new PromoArgumento
                    {
                        DescuentoPorPrecioEspecial = new DescuentosPorPrecioEspecial
                        {
                            SPECIAL_PRICE_LIST_BY_SCALE_ID = skuUpdate.SPECIAL_PRICE_LIST_BY_SCALE_ID,
                            INCLUDE_DISCOUNT = skuUpdate.INCLUDE_DISCOUNT,
                            PRICE            = skuUpdate.PRICE
                        },
                        Promo = new Promo
                        {
                            PROMO_ID = int.Parse(UiTxtCodigoDePromocionDeDescuentoPorPrecioEspecial.Value.ToString())
                        }
                    });
                }
            }
            else
            {
                EstablecerError(Enums.GetStringValue(ErrorEnPreciosEspeciales.SinRegistrosAActualizar), sender);
            }
            #endregion

            #region Eliminar

            foreach (var item in e.DeleteValues)
            {
                var SkuAEliminar = SkusAsociadosAPromo.FirstOrDefault(p => p.SPECIAL_PRICE_LIST_BY_SCALE_ID == int.Parse(item.Keys["SPECIAL_PRICE_LIST_BY_SCALE_ID"].ToString()));
                if (SkuAEliminar == null)
                {
                    continue;
                }

                UsuarioDeseaEliminarSkusAPromo?.Invoke(sender,
                                                       new PromoArgumento
                {
                    Promo = new Promo
                    {
                        PROMO_ID = int.Parse(UiTxtCodigoDePromocionDeDescuentoPorPrecioEspecial.Value.ToString())
                    },
                    DescuentoPorPrecioEspecial = new DescuentosPorPrecioEspecial
                    {
                        SPECIAL_PRICE_LIST_BY_SCALE_ID = SkuAEliminar.SPECIAL_PRICE_LIST_BY_SCALE_ID
                    }
                });
            }

            #endregion
            e.Handled = true;
        }