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

            VistaTerminoDeCargar?.Invoke(this, null);

            if (Session["UiVistaOficinaDeVentas"] != null)
            {
                UiVistaOficinaDeVentas.DataSource = Session["UiVistaOficinaDeVentas"];
                UiVistaOficinaDeVentas.DataBind();
            }
            if (Session["UiVistaVendedoresOficina"] != null)
            {
                UiVistaVendedoresOficina.DataSource = Session["UiVistaVendedoresOficina"];
                UiVistaVendedoresOficina.DataBind();
            }
            if (Session["UiListaVendedor"] != null)
            {
                UiListaVendedor.DataSource = Session["UiListaVendedor"];
                UiListaVendedor.DataBind();
            }
            if (Session["UiListaOrgVentas"] != null)
            {
                UiListaOrgVentas.DataSource = Session["UiListaOrgVentas"];
                UiListaOrgVentas.DataBind();
            }
            if (Session["UiVistaBodegasAsociadasAOficinaDeVentas"] != null)
            {
                UiVistaBodegasAsociadasAOficinaDeVentas.DataSource = Session["UiVistaBodegasAsociadasAOficinaDeVentas"];
                UiVistaBodegasAsociadasAOficinaDeVentas.DataBind();
            }
            if (Session["UiListaBodegasNoAsociadasAOficinaDeVentas"] != null)
            {
                UiListaBodegasNoAsociadasAOficinaDeVentas.DataSource = Session["UiListaBodegasNoAsociadasAOficinaDeVentas"];
                UiListaBodegasNoAsociadasAOficinaDeVentas.DataBind();
            }
            ReportViewer();
        }
        protected void UiVistaOficinaDeVentas_OnCustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
        {
            OficinaDeVentaArgumento oficinaDeVentaArgumento;

            switch (e.Parameters.Split('|')[0])
            {
            case "ExpandirColumnas":
                UiVistaOficinaDeVentas.ExpandAll();
                break;

            case "ColapsarColumnas":
                UiVistaOficinaDeVentas.CollapseAll();
                break;

            case "ObtenerOficinas":
                VistaCargandosePorPrimeraVez?.Invoke(sender, null);
                break;

            case "CrearOficina":
                var salesOrgId = 0;
                if (UiListaOrgVentas.Value != null)
                {
                    salesOrgId = int.Parse(UiListaOrgVentas.Value.ToString());
                }

                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        DESCRIPTION_SALES_OFFICE = UiTxtDescripcion.Text
                        ,
                        NAME_SALES_OFFICE = UiTxtNombre.Text
                        ,
                        SALES_ORGANIZATION_ID = salesOrgId
                    }
                };

                UsuarioDeseaAgregarOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                if (VendedoresAsociados != null && VendedoresAsociados.Count > 0 &&
                    OficinaDeVentas.SALES_OFFICE_ID != null)
                {
                    foreach (var item in VendedoresAsociados)
                    {
                        UsuarioDeseaAgregarVendedorALaOficinaDeVentas?.Invoke(sender, new OficinaDeVentaArgumento
                        {
                            Vendedor = item
                            ,
                            OficinaDeVenta = new OficinaDeVenta
                            {
                                SALES_OFFICE_ID = OficinaDeVentas.SALES_OFFICE_ID
                            }
                        });
                    }
                }
                VendedoresAsociados = null;
                if (BodegasAsociadas != null && BodegasAsociadas.Count > 0 &&
                    OficinaDeVentas.SALES_OFFICE_ID != null)
                {
                    foreach (var item in BodegasAsociadas)
                    {
                        UsuarioDeseaAgregarBodegaALaOficinaDeVentas?.Invoke(sender, new OficinaDeVentaArgumento
                        {
                            Bodega = item
                            ,
                            OficinaDeVenta = new OficinaDeVenta
                            {
                                SALES_OFFICE_ID = OficinaDeVentas.SALES_OFFICE_ID
                            }
                        });
                    }
                }
                BodegasAsociadas = null;
                if (OficinaDeVentas != null)
                {
                    UiVistaOficinaDeVentas.JSProperties.Add("cpTerminoCreacion", "Enabled");
                }
                break;

            case "ActualizarOficina":
                int?orgId = null;
                if (UiListaOrgVentas.Value != null)
                {
                    orgId = int.Parse(UiListaOrgVentas.Value.ToString());
                }

                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(UiTxtCodigo.Text)
                        ,
                        DESCRIPTION_SALES_OFFICE = UiTxtDescripcion.Text
                        ,
                        NAME_SALES_OFFICE = UiTxtNombre.Text
                        ,
                        SALES_ORGANIZATION_ID = orgId
                    }
                };
                UsuarioDeseaActualizarOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                UiVistaOficinaDeVentas.JSProperties.Add("cpTerminoActualizacion", "Enabled");
                break;

            case "UsuarioSeleccionoOficina":
                Session["IdOficina"]    = int.Parse(e.Parameters.Split('|')[1]);
                oficinaDeVentaArgumento = new OficinaDeVentaArgumento {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                    }
                };
                UsuarioSeleccionoOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                UiVistaOficinaDeVentas.JSProperties.Add("cpTerminoDeSeleccionarOficina", e.Parameters.Split('|')[2]);
                break;

            case "EliminarOficina":
                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                    }
                };
                UsuarioDeseaEliminarOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                break;
            }
        }