Ejemplo n.º 1
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());
        }
Ejemplo n.º 2
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());
        }
Ejemplo n.º 3
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");
        }
Ejemplo n.º 4
0
        public ActionResult DeleteConfirmed(int id)
        {
            proyectos proyectos = db.proyectos.Find(id);
            /* Si el proyecto tiene líder se procede a eliminar la tupla en roles correspondiente */
            string liderId = new rolesController().getLiderId(proyectos.codigoPK);

            /* Llamada a método que elimina rol en el controlador de roles */
            if (liderId != null)
            {
                new rolesController().EraseRol(proyectos.codigoPK, liderId);
            }
            db.proyectos.Remove(proyectos);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public List <ProyectTimesModel> GetTotalTimes(string cedula)
        {
            if (cedula != null) //es un empleado
            {
                //se obtiene primero el codigo del proyecto donde es lider actualmente
                var proyecto = new rolesController().ProyectoLiderNow(cedula);

                IEnumerable <ProyectTimesModel> lista =
                    from a in db.requerimientos
                    where a.codigoProyectoFK == proyecto.codigoPK
                    orderby a.codigoProyectoFK ascending
                    group a by a.codigoProyectoFK into x
                    select new ProyectTimesModel
                {
                    codigoProy     = x.Key,
                    tiempoEstimado = x.Sum(b => DbFunctions.DiffDays(b.fechaInicio, b.duracionEstimada)) * 8,
                    tiempoReal     = x.Sum(b => b.duracionDias) * 8
                };
                ;

                return(lista.ToList());
            }
            else  //es de soporte o el jefe de desarrollo
            {
                IEnumerable <ProyectTimesModel> lista =
                    from a in db.requerimientos
                    orderby a.codigoProyectoFK ascending
                    group a by a.codigoProyectoFK into x
                    select new ProyectTimesModel
                {
                    codigoProy     = x.Key,
                    tiempoEstimado = x.Sum(b => DbFunctions.DiffDays(b.fechaInicio, b.duracionEstimada)) * 8,
                    tiempoReal     = x.Sum(b => b.duracionDias) * 8
                };

                return(lista.ToList());
            }
        }
Ejemplo n.º 6
0
 public ActionResult EmployeeHistory(empleados employee)
 {
     TempData.Keep();
     if (employee.cedulaPK != null)
     {
         List <EmployeeHistoryModel> employeeHistory = new List <EmployeeHistoryModel>();
         List <roles> employeeRoles = new rolesController().getEmployeeRoles(employee.cedulaPK);
         foreach (roles rol in employeeRoles)
         {
             EmployeeHistoryModel participation = new EmployeeHistoryModel();
             participation.projectName  = new proyectosController().getProjectName(rol.codigoProyectoFK);
             participation.executedRole = rol.rol;
             int?requirementsDays = new requerimientosController().GetRequirementsDays(rol.codigoProyectoFK, rol.cedulaFK);
             if (requirementsDays != null && rol.rol == "Desarrollador")
             {
                 participation.dedicatedHours = (int)requirementsDays * 8;
             }
             employeeHistory.Add(participation);
         }
         TempData["employeeHistory"] = employeeHistory;
     }
     return(View());
 }
Ejemplo n.º 7
0
 public ActionResult EmployeeRequirements2(proyectos proyecto)
 {
     TempData["empSelect"] = null;
     if (proyecto.codigoPK != 0)
     {
         TempData["proyectoSeleccionado"] = proyecto;
         var lider = new rolesController().getLiderId(proyecto.codigoPK);
         TempData["liderDeProyecto"] = new empleadosController().GetEmployee(lider);
         TempData["requerimientos"]  = new requerimientosController().GetRequirementsByProyect(proyecto.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;
         }
         TempData.Keep();
         return(View());
     }
     else
     {
         TempData.Keep();
         return(RedirectToAction("EmployeeRequirements", "reportes"));
     }
 }
Ejemplo n.º 8
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"));
            }
        }