//[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()); }
/* * 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()); }
//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"); }
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()); } }
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()); }
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")); } }
//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")); } }