//Funciones de  ------------------------------------------------ Utilidades ------------------------------------------------

        /* Esta funcion llena el modelo de InfoPAADCLS con la informacion de la base de datos
         * Recibe el id del paad
         * Regresa el modelo lleno*/
        public InfoPAADCLS GetInfoPAAD(int id)
        {
            InfoPAADCLS     info = new InfoPAADCLS();
            Administrativos doc  = (Administrativos)Session["administ"];

            using (var db = new DB_PAAD_IADEntities())
            {
                info = (from admin in db.Administrativos
                        where admin.rol == 3
                        from paad in db.PAADs
                        where paad.id_paad == id && paad.estado != 1
                        join estado in db.Estados
                        on paad.estado equals estado.id_estado
                        join periodo in db.Periodos
                        on paad.periodo equals periodo.id_periodo
                        join docente in db.Docentes
                        on paad.docente equals docente.id_docente
                        select new InfoPAADCLS
                {
                    id_paad = paad.id_paad,
                    status_value = paad.estado,
                    status_name = estado.estado,
                    active = periodo.activo,
                    isdirector = paad.docente == admin.docente? true :false
                }).FirstOrDefault();
            }
            return(info);
        }
        //Acciones de la vista ------------------------------------------------ ViewPAAD ------------------------------------------------

        /* Esta accion corresponde a la vista ViewPAAD
         * Recibe el id del paad
         * Devuelve la vista*/
        public ActionResult ViewPAAD(int id)
        {
            util.IsClose();
            //Valida que el id del paad se valido si no redirecciona a home
            if (id < 1)
            {
                return(RedirectToAction("Home"));
            }
            InfoPAADCLS info = GetInfoPAAD(id);

            if (info == null)
            {
                return(RedirectToAction("Home"));
            }
            //~~~~~~~Poner redirecion a error not found
            ViewBag.info       = info;
            ViewBag.header     = GetHeader(info.id_paad);
            ViewBag.activities = GetActivities(info.id_paad);
            //Valida si el paad a ver es del director para mostrar o no los mensajes de rechazo o aprobacion
            if (info.isdirector)
            {
                ViewBag.msg = GetMessages(info.id_paad);
            }
            else
            {
                ViewBag.msg = null;
            }
            return(View("ViewPAAD_Subdirector"));
        }
        //Acciones de la vista ------------------------------------------------ ViewPAAD ------------------------------------------------

        /* Esta accion corresponde a la vista ViewPAAD
         * Recibe el id del paad
         * Devuelve la vista*/
        public ActionResult ViewPAAD(int id)
        {
            util.IsClose();
            //Valida que el id del paad sea valido si no redirecciona a home
            if (id < 1)
            {
                return(RedirectToAction("Home"));
            }
            //Se obtiene la info del paad
            InfoPAADCLS info = GetInfoPAAD(id);

            //Si la info es null redirecciona a home
            if (info == null)
            {
                return(RedirectToAction("Home"));
            }
            //Se colacan la info, el header y las actividades en el viewbag para ser leidas
            ViewBag.info       = info;
            ViewBag.header     = GetHeader(info.id_paad);
            ViewBag.activities = GetActivities(info.id_paad);
            return(View("ViewPAAD_Coordinador"));
        }
        //Funciones de  ------------------------------------------------ Utilidades ------------------------------------------------

        /* Esta funcion llena el modelo de InfoPAADCLS con la informacion de la base de datos
         * Recibe el id del paad
         * Regresa el modelo lleno*/
        public InfoPAADCLS GetInfoPAAD(int id)
        {
            InfoPAADCLS     info = new InfoPAADCLS();
            Administrativos doc  = (Administrativos)Session["administ"];

            using (var db = new DB_PAAD_IADEntities())
            {
                info = (from paad in db.PAADs
                        where paad.id_paad == id && paad.estado != 1
                        join estado in db.Estados
                        on paad.estado equals estado.id_estado
                        join periodo in db.Periodos
                        on paad.periodo equals periodo.id_periodo
                        select new InfoPAADCLS
                {
                    id_paad = paad.id_paad,
                    status_value = paad.estado,
                    status_name = estado.estado,
                    active = periodo.activo
                }).FirstOrDefault();
            }
            return(info);
        }