public ActionResult Index(proyectos proyectito, modulos modulito)
        {
            //Aquí solo selecciona los requerimientos relacionados con el proyecto y módulo que el usuario escogio
            if (proyectito.codigoPK != 0 && modulito.idPK != 0)                                                                          //si los parámetros no son igual a 0
            {
                TempData["proyecto"]       = proyectito.codigoPK;                                                                        //se obtiene el código del proyecto
                TempData["nombreProyecto"] = new proyectosController().ProjectByCode(int.Parse(TempData["proyecto"].ToString())).nombre; //se obtiene el nombre a partir del código anterior
                TempData["modulos"]        = modulito.idPK;                                                                              //se obtiene el código del módulo

                try
                {//se comunica con el controlador de módulos para que le pase los nombres de módulos asociados con el proyecto y código de módulo seleccioando
                    TempData["nombreModulo"] = new modulosController().ModByCode(int.Parse(TempData["proyecto"].ToString()), int.Parse(TempData["modulos"].ToString())).nombre;
                }
                catch (NullReferenceException)
                {
                    TempData.Keep();                                     //se le solicita mantener los datos nuevamente
                    return(RedirectToAction("Index", "requerimientos")); //si ocurre error se redirige a página de selección
                }

                TempData.Keep();                                     //se le solicita mantener los datos nuevamente
                return(RedirectToAction("Lista", "requerimientos")); //se redirecciona a la vista del listado de requerimientos
            }
            else //si los parámetros son igual a 0
            {
                return(View()); //se recarga la vista
            }
        }
예제 #2
0
        //Esta método es llamado para desplegar el dropdown de selección del proyecto al cual se le quiere consultar sus módulos
        public ActionResult Index()
        {
            var user  = User.Identity.GetUserName();
            var emple = new empleadosController().ExistEmail(user);
            var clien = new clientesController().ExistEmail(user);

            if (emple.Count() > 0)   //es empleado
            {
                //Se obtiene la cedula del empleado
                var cedula = emple[0].cedulaPK;
                //se buscan los proyectos donde participa el empleado con la cedula
                var proyectos = new proyectosController().ProyectsByEmployee(cedula);
                TempData["proyectos"] = proyectos;
                TempData.Keep();
                return(View());
            }
            else if (clien.Count() > 0) // es cliente
            {
                //Se obtiene la cedula del cliente
                var cedula = clien[0].cedulaPK;
                // buscamos un proyecto asignado al cliente pero ahora segun su cedula
                var proyectos = new proyectosController().ProyectsByClient(cedula);
                TempData["proyectos"] = proyectos;
                TempData.Keep();
                return(View());
            }
            else  //es jefe de desarrollo o soporte
            {
                List <proyectos> proyectos = new proyectosController().Pass();
                TempData["proyectos"] = proyectos;
                TempData.Keep();
                return(View());
            }
        }
예제 #3
0
        //[Authorize(Roles = "Soporte, JefeDesarrollo,Lider")]
        //método para obtener los empleados asignados y disponibles
        public ActionResult DisponibilidadEmpleados()
        {
            //limpio los datos  para asegurarme que no hayan datos que no correspondan
            TempData["empDisponibles"] = null;
            TempData["empOcupados"]    = null;
            TempData["pryActual"]      = null;
            var user  = User.Identity.GetUserName(); //obteniendo la identidad del empleado
            var emple = new empleadosController().ExistEmail(user);


            /*si el usuario es empleado, mostrar de una vez su vista*/
            if (emple.Count() > 0)   //es empleado
            {
                var  cedula  = emple[0].cedulaPK;
                bool esLider = new rolesController().idLiderNow(cedula);
                if (esLider == true)                                                                                      //si es líder de algun proyecto puedo mostrar lo que corresponde a su proyecto, de lo contrario vista en blanco
                {
                    TempData["empDisponibles"] = new empleadosController().GetFreeEmployees();                            //empleados disponibles
                    var proy = new proyectosController().GetLiderProyectoActual(cedula);                                  //obtenego de cual proyecto soy lider
                    TempData["empOcupados"] = new empleadosController().GetEmployeeBusyProject(cedula, proy[0].codigoPK); //obtengo los empleados ocupados en mi proyecto
                    TempData.Keep();
                }
            }
            else
            {                                                                                           //es jefe de desarrollo/soporte , puedo mostrar todos los datos sin restricción
                TempData["empDisponibles"] = new empleadosController().GetFreeEmployees();              //obtengo los empleados libres
                TempData["empOcupados"]    = new empleadosController().GetEmployeeBusyProject(null, 0); //obtengo los empleados ocupados
                TempData.Keep();                                                                        //hago que conserve los datos
            }

            //regreso la vista
            return(View());
        }
예제 #4
0
        //EFE: trae los datos necesarios para equipos y llama el metodo para seleccionar el proyecto
        //REQ:
        //MOD: crea variables temporales para guardar los empleados libres, los proyectos y la lista de conocimientos
        public ActionResult Index()
        {
            var user  = User.Identity.GetUserName();
            var emple = new empleadosController().ExistEmail(user);


            if (emple.Count() > 0)   //es empleado
            {
                var cedula = emple[0].cedulaPK;
                List <proyectos> proyectos     = new proyectosController().GetLidetedProyects(cedula);
                List <string>    conocimientos = new conocimientosController().PassKnowledge();
                TempData["proyectos"]     = proyectos;
                TempData["conocimientos"] = conocimientos;
                TempData.Keep();
                return(RedirectToAction("SelectProject", "equipos"));
            }
            else
            {
                List <proyectos> proyectos     = new proyectosController().Pass();
                List <string>    conocimientos = new conocimientosController().PassKnowledge();
                TempData["proyectos"]     = proyectos;
                TempData["conocimientos"] = conocimientos;
                TempData.Keep();
                return(RedirectToAction("SelectProject", "equipos"));
            }
        }
예제 #5
0
        /*
         * EFE: verifica si el usuario es desarrollaro o jefe de desarrollo y le presenta los datos de los proyectos correspondientes
         * REQ: NA
         * MOD: busca el nombre del proyecto y lo agrega
         */
        public ActionResult TotalTimes()
        {
            TempData["usuarioEsJefe"] = null;
            TempData["proyectos"]     = null;
            var user  = User.Identity.GetUserName();
            var emple = new empleadosController().ExistEmail(user);

            /*si el usuario es empleado, mostrar de una vez su vista*/
            if (emple.Count() > 0)   //es empleado
            {
                //obteniendo la cedula del empleado
                var  cedula   = emple[0].cedulaPK;
                bool liderNow = new rolesController().idLiderNow(cedula);
                if (liderNow == true)
                {
                    TempData["proyectos"] = new requerimientosController().GetTotalTimes(cedula);
                    foreach (var item in (TempData["proyectos"] as IEnumerable <ProyectoIntegrador_mejorado.Models.ProyectTimesModel>))
                    {
                        var proyecto = new proyectosController().ProjectByCode(item.codigoProy);
                        if (proyecto.fechaFinal != null)
                        {
                            item.terminado = true;
                        }
                        else
                        {
                            item.terminado = false;
                        }
                        item.nombreProyecto = proyecto.nombre;
                    }
                    TempData.Keep();
                }
            }
            else   // es de soporte o el jefe de desarrollo
            {
                TempData["usuarioEsJefe"] = "si";
                TempData["proyectos"]     = new requerimientosController().GetTotalTimes(null);
                foreach (var item in (TempData["proyectos"] as IEnumerable <ProyectoIntegrador_mejorado.Models.ProyectTimesModel>))
                {
                    var proyecto = new proyectosController().ProjectByCode(item.codigoProy);
                    var liderId  = new rolesController().getLiderId(item.codigoProy);
                    var lider    = new empleadosController().GetEmployee(liderId);
                    if (proyecto.fechaFinal != null)
                    {
                        item.terminado = true;
                    }
                    else
                    {
                        item.terminado = false;
                    }
                    item.nombreProyecto = proyecto.nombre;
                    if (lider != null)
                    {
                        item.lider = lider.nombre + " " + lider.apellido1 + " " + lider.apellido2;
                    }
                }
                TempData.Keep();
            }
            return(View());
        }
예제 #6
0
        //Este método es utilizado en el dropdown en cascada de selección de proyecto y módulo
        public ActionResult GetProyList(string ced)
        {
            List <proyectos> proy = new proyectosController().ProyectsByEmployee(ced); //se comunica con el controlador de módulos para que pase el listado de módulos de acuerdo al proyecto

            ViewBag.Projects = new SelectList(proy, "codigoPK", "nombre");             //ese listado se guarda en esta "vista"

            TempData.Keep();                                                           //se le solicita mantener los datos nuevamente
            //return View();
            return(PartialView("ProjectsPartial"));
        }
예제 #7
0
        //EFE: redirige a la vista del reporte de estado de requerimientos para un desarrollador
        //REQ: NA
        //MOD: NA
        public ActionResult EmployeeRequirements()
        {
            TempData["requerimientos"] = null;
            TempData["empSelect"]      = null;
            TempData["proyecto"]       = null;

            var user  = User.Identity.GetUserName();
            var emple = new empleadosController().ExistEmail(user);

            if (emple.Count() > 0)
            {
                bool liderNow = new rolesController().idLiderNow(emple[0].cedulaPK);
                if (liderNow == true)
                {
                    /*si el usuario es empleado y lider, mostrar de una vez su vista*/
                    TempData["rol"] = "lider";
                    var actualProyect = new rolesController().ProyectoLiderNow(emple[0].cedulaPK);
                    TempData["proyecto"]       = actualProyect;
                    TempData["requerimientos"] = new requerimientosController().GetRequirementsByProyect(actualProyect.codigoPK);
                    foreach (var item in TempData["requerimientos"] as List <ProyectoIntegrador_mejorado.Models.requerimientos> )
                    {
                        var empleado = new empleadosController().GetEmployee(item.cedulaEmpleadoFK);
                        item.descripcion = empleado.nombre + " " + empleado.apellido1 + " " + empleado.apellido2;
                    }
                }
                else
                {
                    /*si el usuario es empleado y no lider, mostrar de una vez su vista*/
                    TempData["rol"] = "desarrollador";
                    var requirementList = new requerimientosController().GetRequirementsByEmployee(emple[0].cedulaPK);
                    if (requirementList != null)
                    {
                        var actualProyect = new proyectosController().getProjectName(requirementList[0].codigoProyectoFK);
                        TempData["proyecto"] = actualProyect;
                    }
                    TempData["requerimientos"] = requirementList;
                }
                TempData.Keep();
                return(View());
            }
            else
            {
                /*si es jefe de desarrollo o soporte*/
                TempData["rol"]       = "boss";
                TempData["empleados"] = new empleadosController().Pass();
                List <proyectos> proyectos = new proyectosController().Pass();
                TempData["proyectos"] = proyectos;
                TempData.Keep();
                return(View());
            }

            //return RedirectToAction("SelectReport", "reportes");
        }
예제 #8
0
        /*
         * Efecto: Request GET de requerimientosDesarrollador
         * Requiere: NA
         * Modifica: NA
         */
        public ActionResult requerimientosDesarrollador()
        {
            List <proyectos> proyectos = new proyectosController().Pass();
            List <empleados> empleados = new empleadosController().Pass();

            //ViewBag.proyectos = new SelectList(proyectos, "codigoPK", "nombre");
            //ViewBag.empleados = new SelectList(empleados, "cedulaPK", "nombre");
            TempData["proyectos"] = new SelectList(proyectos, "codigoPK", "nombre");
            TempData["empleados"] = new SelectList(empleados, "cedulaPK", "nombre");
            TempData.Keep();
            return(View());
        }
예제 #9
0
        public ActionResult SetFree(int codigo, string cedula)
        {
            /*sacamos la cedula del string*/
            int    counter  = cedula.Length;
            string id       = "";
            int    i        = 0;
            int    counter2 = 1;
            bool   fin      = false;

            while (i < counter && fin == false)
            {
                if (cedula[i] == '0' || cedula[i] == '1' || cedula[i] == '2' || cedula[i] == '3' || cedula[i] == '4' ||
                    cedula[i] == '5' || cedula[i] == '6' || cedula[i] == '7' || cedula[i] == '8' || cedula[i] == '9')
                {
                    id = id + cedula[i];
                    if (counter2 == 9)
                    {
                        fin = true;
                    }
                    else
                    {
                        counter2++;
                    }
                }
                i++;
            }

            /*se verifica que no tenga requerimientos asignados*/
            bool has = new requerimientosController().ExistEmployee(id);
            bool end = new proyectosController().Ended(codigo);

            if (has == false && end == false)
            {
                /*se le quita el rol al empleado*/
                new rolesController().EraseRol(codigo, id);
            }



            /*recargamos la vista de la lista actualizada*/
            string knowledge = TempData["temp"] as string;

            if (knowledge != "")
            {
                TempData.Keep();
                return(RedirectToAction("Lista", "equipos", new { conocimientoPK = knowledge, algo = "" }));
            }
            else
            {
                TempData.Keep();
                return(RedirectToAction("Lista", "equipos", new { conocimientoPK = "todos", algo = "" }));
            }
        }
예제 #10
0
        /*
         * Efecto: Request GET de cuentaDeRequerimientos
         * Requiere: NA
         * Modifica: NA
         */
        public ActionResult cuentaDeRequerimientos()
        {
            var user   = User.Identity.GetUserName();
            var client = new clientesController().ExistEmail(user);

            if (client.Count() > 0)
            {
                TempData["clientId"] = client[0].cedulaPK;
                List <proyectos> proyectos = new proyectosController().ProyectsByClient(client[0].cedulaPK);
                TempData["projects"] = new SelectList(proyectos, "codigoPK", "nombre");
                TempData.Keep();
            }
            return(View());
        }
예제 #11
0
 public ActionResult Index(proyectos proyectito)
 {
     //Aquí se seleccionan solo los módulos relacionados con el proyecto que el usuario previamente seleccionó
     if (proyectito.codigoPK != 0)                   //si el cóidgo de proyecto es diferente de 0
     {
         TempData["proyecto"] = proyectito.codigoPK; //aquí se obtiene el código del proyecto
         //Aquí se llama al controlador de proyectos, para que devuelva el nombre del proyecto cuyo código es el que se obtuvo en la línea anterior
         TempData["nombreProyecto"] = new proyectosController().ProjectByCode(int.Parse(TempData["proyecto"].ToString())).nombre;
         TempData.Keep();                              //hacemos que mantenga los datos temporales
         return(RedirectToAction("Lista", "modulos")); //se redirecciona a la pagina de que lista los módulos
     }
     else
     {
         return(View()); //si el código del proyecto es 0, se vuelve a la página de selección de proyecto
     }
 }
예제 #12
0
 public ActionResult SelectProject(proyectos proyectito)
 {
     //TempData["proyecto"] = proyectito.codigoPK;
     if (proyectito.codigoPK != 0)
     {
         string know = "----------";
         TempData["proyecto"]       = proyectito.codigoPK;
         TempData["nombreProyecto"] = new proyectosController().ProjectByCode(int.Parse(TempData["proyecto"].ToString())).nombre;
         TempData.Keep();
         return(RedirectToAction("Lista", "equipos", new { conocimientoPK = know, a = "" }));
     }
     else
     {
         return(View());
     }
 }
        // GET: requerimientos
        //Esta método es llamado para desplegar el dropdown de selección del proyecto y módulo al cual se le quiere consultar sus requerimientos
        public ActionResult Index()
        {
            var user  = User.Identity.GetUserName();
            var emple = new empleadosController().ExistEmail(user);
            var clien = new clientesController().ExistEmail(user);

            if (emple.Count() > 0)   //es empleado
            {
                var cedula = emple[0].cedulaPK;
                //se buscan los proyectos donde participa el empleado con la cedula
                var proyectos = new proyectosController().ProyectsByEmployee(cedula);
                ViewBag.ProyectList   = new SelectList(proyectos, "codigoPK", "nombre");
                TempData["proyectos"] = proyectos;
                TempData.Keep();
                return(View());
            }
            else if (clien.Count() > 0) // es cliente
            {
                //Se obtiene la cedula del cliente
                var cedula = clien[0].cedulaPK;
                // buscamos un proyecto asignado al cliente pero ahora segun su cedula
                var proyectos = new proyectosController().ProyectsByClient(cedula);
                ViewBag.ProyectList   = new SelectList(proyectos, "codigoPK", "nombre");
                TempData["proyectos"] = proyectos;
                TempData.Keep();
                return(View());
            }
            else  //es jefe de desarrollo o soporte
            {
                List <proyectos> proyectos = new proyectosController().Pass();
                ViewBag.ProyectList   = new SelectList(proyectos, "codigoPK", "nombre");
                TempData["proyectos"] = proyectos;
                TempData.Keep();
                return(View());
            }



            /*
             *
             * List<proyectos> proyectos = new proyectosController().Pass(); //se comunica con el controlador de proyectos para que le la lista de proyectos
             * ViewBag.ProyectList = new SelectList(proyectos, "codigoPK", "nombre"); //contiene la lista de proyectos
             * TempData["proyectos"] = proyectos; //se almacena en esa variable de datos temporales el proyecto seleccionado
             * TempData.Keep();//se le pide mantener esos datos temporales
             * return View(); //se envía a la vista*/
        }
예제 #14
0
        //EFE: trae la lista de empleados filtrados por conocimiento y por proyecto y regresa la vista de los mismos
        //REQ: debe exitir al menos un proyecto
        //MOD: crea variables temporales para guardar la lista de empleados filtrados por conocimiento y por proyecto
        public ActionResult Lista(string conocimientoPK, string a)
        {
            bool ended = false;

            TempData["end"]  = "no";
            TempData["temp"] = conocimientoPK;
            if (conocimientoPK != "todos")
            {
                List <empleados> employeesList = new empleadosController().GetEmployeeByKnowledge(conocimientoPK);
                TempData["empleadosK"] = employeesList;
            }
            else
            {
                if (TempData["proyecto"] != null)
                {
                    ended = new proyectosController().Ended(int.Parse(TempData["proyecto"].ToString()));
                    if (ended == true)
                    {
                        TempData["end"] = "si";
                    }
                    List <empleados> employeesFree = new empleadosController().GetFreeEmployeesNotInProyect(int.Parse(TempData["proyecto"].ToString()));
                    TempData["empleados"] = employeesFree;

                    TempData.Keep();
                    return(View());
                }
                else
                {
                    ViewBag.know = "----------";
                    TempData.Keep();
                    return(RedirectToAction("Index", "equipos"));
                }
            }
            ViewBag.know = conocimientoPK;
            if (TempData["proyecto"] != null)
            {
                ended = new proyectosController().Ended(int.Parse(TempData["proyecto"].ToString()));
                if (ended == true)
                {
                    TempData["end"] = "si";
                }


                List <empleados> employeesFree = new empleadosController().GetFreeEmployeesNotInProyect(int.Parse(TempData["proyecto"].ToString()));
                TempData["empleados"] = employeesFree;

                List <empleados> employeesList2 = new empleadosController().GetEmployeeByProyect(int.Parse(TempData["proyecto"].ToString()));
                TempData["empleadosP"] = employeesList2;


                string    liderID = new rolesController().getLiderId(int.Parse(TempData["proyecto"].ToString()));
                empleados lider   = new empleadosController().GetEmployee(liderID);

                TempData["lider"] = lider;
                TempData.Keep();


                return(View());
            }
            else
            {
                TempData.Keep();
                return(RedirectToAction("Index", "equipos"));
            }
        }