/// <summary>
        /// Devuelve los datos un Perfil en especifico
        /// </summary>
        /// <returns>BE_PERFILES con los objetos de la entidad, que a su vez representan la tabla PERFILES de la base de datos. En caso no haiga datos devuelve nothing.</returns>
        public BE_PERFILES SeleccionarPerfilesPorID(Int32 ID)
        {
            SqlConnection cnx = new SqlConnection();
            DbDataReader  dr;

            cnx = DC_Connection.getConnection();
            BE_PERFILES oBE_PERFILES = null;

            try
            {
                using (SqlCommand objCmd = new SqlCommand()
                {
                    Connection = cnx,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "USP_PERFILES_SELECCIONAR_POR_ID"
                })
                {
                    objCmd.Parameters.Add("@PERFIL_ID", SqlDbType.Int).Value = ID;

                    cnx.Open();
                    dr = objCmd.ExecuteReader();

                    // Se crea una variable tipo int por cada posicion de cada campo
                    int PERFIL_ID          = dr.GetOrdinal("PERFIL_ID");
                    int PERFIL_DESCRIPCION = dr.GetOrdinal("PERFIL_DESCRIPCION");


                    // creamos un objeto del tamaño de la tupla en el array de objeto Valores
                    object[] Valores = new object[dr.FieldCount];

                    // Preguntamos si el DbDataReader tiene registros
                    if (dr.HasRows)
                    {
                        // Instancionamos la lista para empezar a setearla
                        oBE_PERFILES = new BE_PERFILES();
                        if (dr.Read())
                        {
                            // Obetemos los valores para la tupla
                            dr.GetValues(Valores);
                            //BE_PERFILES oBE_PERFILES = new BE_PERFILES();
                            oBE_PERFILES.ID          = Int32.Parse(Valores.GetValue(PERFIL_ID).ToString());
                            oBE_PERFILES.DESCRIPCION = Valores.GetValue(PERFIL_DESCRIPCION).ToString();
                        }
                    }
                }

                return(oBE_PERFILES);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                cnx.Close();
            }
        }
        /// <summary>
        /// Devuelve los datos de todo el personal
        /// </summary>
        /// <returns>List de BE_PERSONAL con los objetos de la entidad, que a su vez representan la tabla BE_PERSONAL de la base de datos. En caso no haiga datos devuelve nothing.</returns>
        public List <BE_PERSONAL> SeleccionarPersonal()
        {
            wsMaestros.BE_PERSONAL[] oLista = wsMantenimientoEstructuras.SeleccionarPersonal();

            List <BE_PERSONAL> oPERSONAL    = new List <BE_PERSONAL>();
            BE_PERFILES        oBE_PERFILES = null;
            BE_USUARIO         oBE_USUARIO  = null;

            if (oLista != null)
            {
                foreach (var item in  oLista)
                {
                    BE_PERSONAL oBE_PERSONAL = new BE_PERSONAL();
                    oBE_PERSONAL.ID                      = item.ID;
                    oBE_PERSONAL.CODIGO_TRABAJO          = item.CODIGO_TRABAJO;
                    oBE_PERSONAL.APELLIDO_PATERNO        = item.APELLIDO_PATERNO;
                    oBE_PERSONAL.APELLIDO_MATERNO        = item.APELLIDO_MATERNO;
                    oBE_PERSONAL.NOMBRES                 = item.NOMBRES;
                    oBE_PERSONAL.NOMBRES_COMPLETOS       = item.NOMBRES_COMPLETOS;
                    oBE_PERSONAL.GERENCIA_ID             = item.GERENCIA_ID;
                    oBE_PERSONAL.AREA_ID                 = item.AREA_ID;
                    oBE_PERSONAL.PUESTO_ID               = item.PUESTO_ID;
                    oBE_PERSONAL.CORREO                  = item.CORREO;
                    oBE_PERSONAL.NOMBRE_USUARIO          = item.NOMBRE_USUARIO;
                    oBE_PERSONAL.EMPRESA_ID              = item.EMPRESA_ID;
                    oBE_PERSONAL.COORDINACION_ID         = item.COORDINACION_ID;
                    oBE_PERSONAL.SEDE_ID                 = item.SEDE_ID;
                    oBE_PERSONAL.GRUPO_ORGANIZACIONAL_ID = item.GRUPO_ORGANIZACIONAL_ID;

                    oBE_USUARIO = BL_USUARIO.SeleccionarPersonalPorUsuario(oBE_PERSONAL.NOMBRE_USUARIO);

                    if (oBE_USUARIO != null)
                    {
                        oBE_PERSONAL.PERFIL_ID = oBE_USUARIO.PERFIL_ID;
                    }
                    else
                    {
                        oBE_PERSONAL.PERFIL_ID = 0; //Sin Perfil
                    }
                    oBE_PERFILES = new DA_PERFILES().SeleccionarPerfilesPorID(oBE_PERSONAL.PERFIL_ID);

                    if (oBE_PERFILES != null)
                    {
                        oBE_PERSONAL.oBE_PERFILES = oBE_PERFILES;
                    }

                    wsMaestros.BE_COORDINACION oCoordinacion = wsMantenimientoEstructuras.SeleccionarCoordinacionPorId(oBE_PERSONAL.COORDINACION_ID);

                    if (oCoordinacion != null)
                    {
                        BE_COORDINACION oBE_COORDINACION = new BE_COORDINACION();
                        oBE_COORDINACION.ID           = oCoordinacion.ID;
                        oBE_COORDINACION.DESCRIPCION  = oCoordinacion.DESCRIPCION;
                        oBE_COORDINACION.CODIGO       = oCoordinacion.CODIGO;
                        oBE_COORDINACION.AREA_ID      = oCoordinacion.AREA_ID;
                        oBE_PERSONAL.oBE_COORDINACION = oBE_COORDINACION;
                    }

                    wsMaestros.BE_SEDE[] oSede = wsMantenimientoEstructuras.SeleccionarSedePorId(oBE_PERSONAL.SEDE_ID);
                    if (oSede != null)
                    {
                        foreach (var itemSede in oSede)
                        {
                            BE_SEDE oBE_SEDE = new BE_SEDE();
                            oBE_SEDE.ID           = itemSede.ID;
                            oBE_SEDE.CODIGO       = itemSede.CODIGO;
                            oBE_SEDE.DESCRIPCION  = itemSede.DESCRIPCION;
                            oBE_SEDE.EMPRESA_ID   = itemSede.EMPRESA_ID;
                            oBE_PERSONAL.oBE_SEDE = oBE_SEDE;
                        }
                    }

                    wsMaestros.BE_PUESTO oPuesto = wsMantenimientoEstructuras.SeleccionarPuestoPorId(oBE_PERSONAL.PUESTO_ID);
                    if (oPuesto != null)
                    {
                        BE_PUESTO oBE_PUESTO = new BE_PUESTO();
                        oBE_PUESTO.ID           = oPuesto.ID;
                        oBE_PUESTO.DESCRIPCION  = oPuesto.DESCRIPCION;
                        oBE_PUESTO.CODIGO       = oPuesto.CODIGO;
                        oBE_PUESTO.EMPRESA_ID   = oPuesto.EMPRESA_ID;
                        oBE_PERSONAL.oBE_PUESTO = oBE_PUESTO;
                    }

                    wsMaestros.BE_GRUPO_ORGANIZACIONAL[] oGrupoOrganizacional = wsMantenimientoEstructuras.SeleccionarGrupoOrganizacionalPorId(oBE_PERSONAL.GRUPO_ORGANIZACIONAL_ID);
                    if (oGrupoOrganizacional != null)
                    {
                        foreach (var itemSede in oGrupoOrganizacional)
                        {
                            BE_GRUPO_ORGANIZACIONAL oBE_GRUPO_ORGANIZACIONAL = new BE_GRUPO_ORGANIZACIONAL();
                            oBE_GRUPO_ORGANIZACIONAL.ID           = itemSede.ID;
                            oBE_GRUPO_ORGANIZACIONAL.CODIGO       = itemSede.CODIGO;
                            oBE_GRUPO_ORGANIZACIONAL.DESCRIPCION  = itemSede.DESCRIPCION;
                            oBE_PERSONAL.oBE_GRUPO_ORGANIZACIONAL = oBE_GRUPO_ORGANIZACIONAL;
                        }
                    }

                    wsMaestros.BE_EMPRESA[] oEmpresa = wsMantenimientoEstructuras.SeleccionarEmpresa();
                    if (oEmpresa != null)
                    {
                        foreach (var itemEmpresa in oEmpresa)
                        {
                            BE_EMPRESA oBE_EMPRESA = new BE_EMPRESA();

                            if (oBE_PERSONAL.EMPRESA_ID == itemEmpresa.ID)
                            {
                                oBE_EMPRESA.ID           = itemEmpresa.ID;
                                oBE_EMPRESA.DESCRIPCION  = itemEmpresa.DESCRIPCION;
                                oBE_PERSONAL.oBE_EMPRESA = oBE_EMPRESA;
                            }
                        }
                    }

                    wsMaestros.BE_GERENCIA[] oGerencia = wsMantenimientoEstructuras.SeleccionarGerencia();
                    if (oGerencia != null)
                    {
                        foreach (var itemGerencia in oGerencia)
                        {
                            BE_GERENCIA oBE_GERENCIA = new BE_GERENCIA();

                            if (oBE_PERSONAL.GERENCIA_ID == itemGerencia.ID)
                            {
                                oBE_GERENCIA.ID           = itemGerencia.ID;
                                oBE_GERENCIA.DESCRIPCION  = itemGerencia.DESCRIPCION;
                                oBE_PERSONAL.oBE_GERENCIA = oBE_GERENCIA;
                            }
                        }
                    }

                    wsMaestros.BE_AREA[] oArea = wsMantenimientoEstructuras.SeleccionarAreas();
                    if (oArea != null)
                    {
                        foreach (var itemArea in oArea)
                        {
                            BE_AREA oBE_AREA = new BE_AREA();
                            if (oBE_PERSONAL.AREA_ID == itemArea.ID)
                            {
                                oBE_AREA.ID           = itemArea.ID;
                                oBE_AREA.DESCRIPCION  = itemArea.DESCRIPCION;
                                oBE_AREA.GERENCIA_ID  = itemArea.GERENCIA_ID;
                                oBE_PERSONAL.oBE_AREA = oBE_AREA;
                            }
                        }
                    }

                    oPERSONAL.Add(oBE_PERSONAL);
                }
            }

            return(oPERSONAL);
        }