protected void Page_Load(object sender, EventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }
            if (Session["connectionString"] == null || Session["USER"] == null)
            {
                ScriptManager.RegisterStartupScript(this, GetType(), "Logoff", "LogOff();", true);
                return;
            }

            if (!IsPostBack)
            {
                UiFechaDeEntrega.Date = DateTime.Today.AddDays(1);
                ScriptManager.RegisterStartupScript(this, GetType(), "BloquearControles", "BloquearControles(false);", true);
            }

            if (Session["UiListaCliente"] != null)
            {
                UiListaCliente.DataSource = Session["UiListaCliente"];
                UiListaCliente.DataBind();
            }
            if (Session["UiListaSku"] != null)
            {
                UiListaSku.DataSource = Session["UiListaSku"];
                UiListaSku.DataBind();
            }
            if (Session["UiVistaOrdenDeVentaDetalle"] != null)
            {
                UiVistaOrdenDeVentaDetalle.DataSource = Session["UiVistaOrdenDeVentaDetalle"];
                UiVistaOrdenDeVentaDetalle.DataBind();
            }
            if (Session["UiLabelMostrarNumDocYSerie"].ToString() != "")
            {
                UiLabelMostrarNumDocYSerie.Text = Session["UiLabelMostrarNumDocYSerie"].ToString();
            }
        }
        private void AgregarSku(object sender)
        {
            try
            {
                Session["CargadoDeExcel"] = false;
                if (OrdenDeVentaDetalles == null)
                {
                    OrdenDeVentaDetalles = new List <OrdenDeVentaDetalle>();
                }

                var lst = UiListaSku.GridView.GetSelectedFieldValues("SKU;SKU_DESCRIPTION;COST");
                int i   = 1;
                foreach (var item in lst)
                {
                    var existeSku = false;
                    var item1     = item;
                    foreach (var itemOrden in OrdenDeVentaDetalles.Where(itemOrden => item1.ToString().Split('|')[0].Equals(itemOrden.SKU)))
                    {
                        itemOrden.TOTAL_LINE = (itemOrden.QTY * itemOrden.PRICE);
                        existeSku            = true;
                        break;
                    }
                    if (existeSku)
                    {
                        continue;
                    }
                    var lineaDetalle = new OrdenDeVentaDetalle();
                    lineaDetalle.SKU             = item.ToString().Split('|')[0];
                    lineaDetalle.SKU_DESCRIPTION = item.ToString().Split('|')[1];
                    lineaDetalle.QTY             = 1;
                    lineaDetalle.PRICE           = Convert.ToDecimal(item.ToString().Split('|')[2]);
                    lineaDetalle.TOTAL_LINE      = (lineaDetalle.PRICE * lineaDetalle.QTY);
                    lineaDetalle.DISCOUNT        = UiSpinDescuentoAplicado.Number;
                    lineaDetalle.TOTAL_DISCOUNT  = (lineaDetalle.TOTAL_LINE - ((lineaDetalle.TOTAL_LINE * lineaDetalle.DISCOUNT) / 100));

                    lineaDetalle.LINE_SEQ        = i;
                    lineaDetalle.POSTED_DATETIME = DateTime.Now;
                    lineaDetalle.SERIE           = "0";
                    lineaDetalle.SERIE_2         = "0";
                    lineaDetalle.REQUERIES_SERIE = 0;
                    lineaDetalle.COMBO_REFERENCE = lineaDetalle.SKU;
                    lineaDetalle.PARENT_SEQ      = lineaDetalle.LINE_SEQ;
                    lineaDetalle.IS_ACTIVE_ROUTE = 0;

                    OrdenDeVentaDetalles.Add(lineaDetalle);
                    i++;

                    foreach (var itemSkuParaVenta in SkuParaVentas.Where(itemSkuParaVenta => itemSkuParaVenta.SKU.Equals(lineaDetalle.SKU)))
                    {
                        SkuParaVentas.Remove(itemSkuParaVenta);
                        break;
                    }
                }
                UiVistaOrdenDeVentaDetalle.DataSource = OrdenDeVentaDetalles;
                UiVistaOrdenDeVentaDetalle.DataBind();

                ((ASPxGridView)(sender)).JSProperties.Add("cpActualizarListaSkusParaVenta", "enable");
            }
            catch (Exception ex)
            {
                EstablecerError(ex.Message, sender);
            }
        }
        protected void UiVistaOrdenDeVentaDetalle_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }

            switch (e.Parameters.Split('|')[0])
            {
            case "AgregarSku":
                AgregarSku(sender);
                break;

            case "LimpiarData":
                OrdenDeVentaDetalles      = null;
                Session["CargadoDeExcel"] = false;
                Session["ListaDeErrores"] = null;
                SkuParaVentas             = SkuParaVentasOriginal;
                ((ASPxGridView)(sender)).JSProperties.Add("cpActualizarListaSkusParaVenta", "enable");
                break;

            case "CambiarDescuento":
                CambiarDescuento(sender);
                break;

            case "GrabarOrdenDeVenta":
                if (ValidarOrdenDeVenta(sender))
                {
                    if (Usuario.DOC_LEFT == 0)
                    {
                        EstablecerError("Su secuencia de documentos ha llegado al limite.", sender, true);
                    }
                    else
                    {
                        GrabarOrdenDeVenta(sender, OrdenDeVentaDetalles, e.Parameters.Split('|')[2]);
                        ValidarUsuarioParaPreventa?.Invoke(this, new UsuarioArgumento {
                            Data = new Usuario {
                                LOGIN = Session["LOGIN"].ToString()
                            }
                        });
                        Session["UiLabelMostrarNumDocYSerie"] = "Se creo la orden de venta numero: " + (Convert.ToInt64(Usuario.DOC_NUM)) + " con el numero de serie: " + Usuario.DOC_SERIE;
                        UiVistaOrdenDeVentaDetalle.JSProperties.Add("cpCambiarLabelSeriaDocumento", Session["UiLabelMostrarNumDocYSerie"]);
                    }
                }
                break;

            case "ExportarVistaExel":
                UiExportarVista.GridViewID = "UiVistaOrdenDeVentaDetalle";
                UiExportarVista.WriteXlsToResponse();
                break;

            case "RecargarUiOrdenDeVentaDetalle":
                if ((bool)Session["CargadoDeExcel"])
                {
                    GridViewDataColumn col = (GridViewDataColumn)UiVistaOrdenDeVentaDetalle.Columns["QTY"];
                    col.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.False;
                }
                else
                {
                    GridViewDataColumn col = (GridViewDataColumn)UiVistaOrdenDeVentaDetalle.Columns["QTY"];
                    col.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
                }
                UiVistaOrdenDeVentaDetalle.DataSource = OrdenDeVentaDetalles;
                UiVistaOrdenDeVentaDetalle.DataBind();
                break;

            case "ObtenerSesion":
                UiVistaOrdenDeVentaDetalle.JSProperties.Add("cpExportarAExcel", Session["connectionString"]);
                break;
            }
        }