//protected void CargarDatosEmpresas() //{ // EmpresaNegocio nEmpresa = new EmpresaNegocio(); // List<SPE_OBTIENE_C_EMPRESA_Result> vLstEmpresas = new List<SPE_OBTIENE_C_EMPRESA_Result>(); // vLstEmpresas.Add(new SPE_OBTIENE_C_EMPRESA_Result() // { // ID_EMPRESA = 0, // NB_EMPRESA = "Todas" // }); // vLstEmpresas.AddRange(nEmpresa.Obtener_C_EMPRESA()); // if (vLstEmpresas.Count == 2) // vLstEmpresas.RemoveAt(0); // cmbEmpresas.DataTextField = "NB_EMPRESA"; // cmbEmpresas.DataValueField = "ID_EMPRESA"; // cmbEmpresas.DataSource = vLstEmpresas; // cmbEmpresas.DataBind(); // cmbEmpresas.SelectedIndex = 0; //} protected void CargarDatosOrganigramaPuesto(int?pIdEmpresa = null, bool?pFgMostrarEmpleados = false, int?pIdPuesto = null, int?pIdDepartamento = null, string pClCampo = null, int?pNoNiveles = null) { OrganigramaNegocio nOrganigrama = new OrganigramaNegocio(); E_ORGANIGRAMA_PUESTO vOrganigrama = nOrganigrama.ObtieneOrganigramaPuesto(pIdPuesto, pIdEmpresa, (bool)pFgMostrarEmpleados, pIdDepartamento, pClCampo, pNoNiveles); lstAscendencia.DataTextField = "nbNodo"; lstAscendencia.DataValueField = "idNodo"; lstAscendencia.DataSource = vOrganigrama.lstNodoAscendencia.OrderByDescending(o => o.noNivel); lstAscendencia.DataBind(); if (vOrganigrama.lstNodoDescendencia.Count == 0) { vOrganigrama.lstNodoDescendencia.Add(new E_ORGANIGRAMA_NODO_PUESTO() { nbNodo = "No hay datos" }); } if (vOrganigrama.lstNodoDescendencia.Where(w => w.idNodoSuperior == null).Count() > 1) { //UtilMensajes.MensajeResultadoDB(rnMensaje, "Por favor selecciona un nodo raíz del selector de plazas.", E_TIPO_RESPUESTA_DB.WARNING, pCallBackFunction: null); //lblMensaje.Style.Add("display", "block"); UtilMensajes.MensajeResultadoDB(rnMensaje, "Error en selección de plaza.", E_TIPO_RESPUESTA_DB.WARNING, pCallBackFunction: null); lblMensaje.Style.Add("display", "block"); } else { int vDiferenciaNievels = vOrganigrama.lstNodoDescendencia.Where(w => w.idNodoSuperior == null).FirstOrDefault().noNivelPuesto - vOrganigrama.lstNodoDescendencia.Where(w => w.idNodoSuperior == null).FirstOrDefault().noNivel; if (vDiferenciaNievels > 0) { foreach (var item in vOrganigrama.lstNodoDescendencia) { item.noNivelPuesto = item.noNivelPuesto - vDiferenciaNievels; } } rocPlazas.GroupEnabledBinding.NodeBindingSettings.DataFieldID = "idNodo"; rocPlazas.GroupEnabledBinding.NodeBindingSettings.DataFieldParentID = "idNodoSuperior"; rocPlazas.RenderedFields.NodeFields.Add(new OrgChartRenderedField() { DataField = "nbNodo" }); rocPlazas.GroupEnabledBinding.NodeBindingSettings.DataSource = vOrganigrama.lstNodoDescendencia; if ((bool)pFgMostrarEmpleados) { rocPlazas.GroupEnabledBinding.GroupItemBindingSettings.DataFieldID = "idItem"; rocPlazas.GroupEnabledBinding.GroupItemBindingSettings.DataFieldNodeID = "idNodo"; rocPlazas.GroupEnabledBinding.GroupItemBindingSettings.DataSource = vOrganigrama.lstGrupo; } rocPlazas.DataBind(); lblMensaje.Style.Add("display", "none"); } }
public E_ORGANIGRAMA_PUESTO ObtenerOrganigramaPuesto(int?pIdPlazaOrigen, int?pIdEmpresa, bool pFgMostrarEmpleados, int?pIdDepartamento, string pClCampoAdicional, int?pNuNivel) { using (context = new SistemaSigeinEntities()) { E_ORGANIGRAMA_PUESTO vOrganigrama = new E_ORGANIGRAMA_PUESTO(); List <E_ORGANIGRAMA_NODO_PUESTO> lstNodos = context.Database.SqlQuery <E_ORGANIGRAMA_AGRUPA_PUESTO>("EXEC " + "[ADM].[SPE_OBTIENE_ORGANIGRAMA_PLAZA_AGRUPA_PUESTO] " + "@PIN_ID_PLAZA, " + "@PIN_ID_EMPRESA, " + "@PIN_ID_DEPARTAMENTO, " + "@PIN_CL_CAMPO_ADICIONAL, " + "@PIN_NO_NIVELES " , new SqlParameter("@PIN_ID_PLAZA", (object)pIdPlazaOrigen ?? DBNull.Value) , new SqlParameter("@PIN_ID_EMPRESA", (object)pIdEmpresa ?? DBNull.Value) , new SqlParameter("@PIN_ID_DEPARTAMENTO", (object)pIdDepartamento ?? DBNull.Value) , new SqlParameter("@PIN_CL_CAMPO_ADICIONAL", (object)pClCampoAdicional ?? DBNull.Value) , new SqlParameter("@PIN_NO_NIVELES", (object)pNuNivel ?? DBNull.Value) ).Select(s => new E_ORGANIGRAMA_NODO_PUESTO() { idNodo = s.ID_PUESTO, idNodoSuperior = s.ID_PUESTO_SUPERIOR, //idNodoP = s.ID_PLAZA, //idNodoSuperiorP = s.ID_PLAZA_SUPERIOR, clNodo = s.CL_PUESTO, nbNodo = String.Format("{0} <br>({1})", s.NB_PUESTO, s.CANTIDAD), clTipoNodo = s.CL_POSICION_ORGANIGRAMA, clTipoGenealogia = s.CL_TIPO_GENEALOGIA, noNivel = s.NO_NIVEL ?? 0, noNivelPuesto = s.NO_NIVEL_ORGANIGRAMA ?? 0 }).ToList(); vOrganigrama.lstNodoDescendencia = lstNodos.Where(w => w.clTipoGenealogia.Equals("DESCENDENCIA")).ToList(); vOrganigrama.lstNodoAscendencia = lstNodos.Where(w => w.clTipoGenealogia.Equals("ASCENDENCIA")).ToList(); return(vOrganigrama); //List < E_ORGANIGRAMA_NODO_PUESTO> lstNodos = context.SPE_OBTIENE_ORGANIGRAMA_PLAZA(pIdPlazaOrigen, pIdEmpresa, pIdDepartamento, pClCampoAdicional, pNuNivel).Select(s => new E_ORGANIGRAMA_NODO_PUESTO() //{ // idNodo = s.ID_PLAZA, // idNodoSuperior = s.ID_PLAZA_SUPERIOR, // clNodo = s.CL_PUESTO, // nbNodo = s.NB_PUESTO, // clTipoNodo = s.CL_POSICION_ORGANIGRAMA, // clTipoGenealogia = s.CL_TIPO_GENEALOGIA, // noNivel = s.NO_NIVEL ?? 0, // noNivelPuesto = s.NO_NIVEL_ORGANIGRAMA ?? 0 //}).ToList(); //vOrganigrama.lstNodoDescendencia = lstNodos.Where(w => w.clTipoGenealogia.Equals("DESCENDENCIA")).ToList(); //vOrganigrama.lstNodoAscendencia = lstNodos.Where(w => w.clTipoGenealogia.Equals("ASCENDENCIA")).ToList(); //return vOrganigrama; } }