private void vista_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
        {
            OficinaDeVentaArgumento oficinaDeVentaArgumento;

            switch (e.Parameters.Split('|')[0])
            {
            case "ObtenerOrganizaciones":
                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                    }
                };
                UsuarioSeleccionoOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                UiListaOrgVentas.JSProperties.Add("cpTerminoDeCargarOrganizaciones", "Enable");
                break;

            case "ObtenerVendedoresNoAsociados":
                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                    }
                }; UsuarioSeleccionoOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                UiListaVendedor.GridView.JSProperties.Add("cpTerminoDeCargarVendedoresNoAsociados", "Enable");
                break;

            case "SetValue":
                UiListaOrgVentas.Value = e.Parameters.Split('|')[1];
                break;

            case "AgregarVendedor":
                AgregarVendedores(sender);
                UiListaVendedor.GridView.JSProperties.Add("cpTerminoDeAgregarVendedor", "Enabled");
                break;

            case "AgregarVendedorNuevaOficina":
                AgregarVendedoresNuevaOficina(sender);
                UiListaVendedor.GridView.JSProperties.Add("cpTerminoDeAgregarVendedorNuevaOficina", "Enabled");
                break;

            case "AgregarBodega":
                AgregarBodegas(sender);
                UiListaBodegasNoAsociadasAOficinaDeVentas.GridView.JSProperties.Add("cpTerminoDeAgregarBodega", "Enabled");
                break;

            case "AgregarBodegaNuevaOficina":
                AgregarBodegasNuevaOficina(sender);
                UiListaBodegasNoAsociadasAOficinaDeVentas.GridView.JSProperties.Add("cpTerminoDeAgregarBodegaNuevaOficina", "Enabled");
                break;

            case "ObtenerBodegasNoAsociadas":
                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                    }
                };
                UsuarioSeleccionoOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                UiListaBodegasNoAsociadasAOficinaDeVentas.GridView.JSProperties.Add("cpTerminoDeCargarBodegasNoAsociadas", "Enable");
                break;
            }
        }
        protected void UiVistaBodegasAsociadasAOficinaDeVentas_OnCustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
        {
            OficinaDeVentaArgumento oficinaDeVentaArgumento;

            switch (e.Parameters.Split('|')[0])
            {
            case "ObtenerBodegasAsociados":
                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                    }
                };
                UsuarioSeleccionoOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                UiVistaBodegasAsociadasAOficinaDeVentas.JSProperties.Add("cpTerminoDeCargarBodegasAsociadas", "Enabled");
                break;

            case "ObtenerBodegasAsociadasBatch":
                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                    }
                };
                UsuarioSeleccionoOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                UiVistaBodegasAsociadasAOficinaDeVentas.JSProperties.Add("cpTerminoDeCargarBodegasBatch", "Enabled");
                break;

            case "EliminarTodasBodegasOficina":
                foreach (var item in (IList <Bodega>)Session["UiVistaBodegasAsociadasAOficinaDeVentas"])
                {
                    UsuarioDeseaEliminarBodegaALaOficinaDeVentas?.Invoke(sender, new OficinaDeVentaArgumento
                    {
                        OficinaDeVenta = new OficinaDeVenta
                        {
                            SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                        }
                        ,
                        Bodega = item
                    });
                }
                BodegasAsociadas = null;
                UiVistaBodegasAsociadasAOficinaDeVentas.JSProperties.Add("cpTerminoDeCargarBodegas", "Enabled");
                break;

            case "EliminarTodasBodegasNuevaOficina":
                oficinaDeVentaArgumento = new OficinaDeVentaArgumento
                {
                    OficinaDeVenta = new OficinaDeVenta
                    {
                        SALES_OFFICE_ID = int.Parse(e.Parameters.Split('|')[1])
                    }
                };
                UsuarioSeleccionoOficinaDeVentas?.Invoke(sender, oficinaDeVentaArgumento);
                BodegasAsociadas = null;
                UiVistaBodegasAsociadasAOficinaDeVentas.JSProperties.Add("cpTerminoDeCargarBodegas", "Enabled");
                break;

            case "LimpiarRegistrosCreacion":
                BodegasAsociadas = null;
                UiVistaBodegasAsociadasAOficinaDeVentas.JSProperties.Add("cpTerminoDeCargarBodegasCreacion", "Enabled");
                break;
            }
        }
        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;
            }
        }