//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()); } }
//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")); } }
//[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"); }
// 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*/ }
public ActionResult Index() { /*Para relacionar la persona loggeada con su respectiva instancia en la bd, * con esto sabemos a que Rol pertenece * y facilitamos el acceso correspondiente con los condicionales de abajo */ 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 = (from d in db.proyectos join f in db.roles on d.codigoPK equals f.codigoProyectoFK where f.cedulaFK == cedula select d).ToList(); return(View(proyectos.ToList())); } else if (clien.Count() > 0) // es cliente { //Obtenemos al cliente segun el username dela bd clientes var existe = db.clientes.Where(w => w.correo == user); // buscamos un proyecto asignado al cliente pero ahora segun su cedula var proyectos = db.proyectos.Where(p => existe.Any(w => w.cedulaPK == p.cedulaClienteFK)); //var proyectos = db.proyectos.Include(p => p.clientes).Where(p => p.cedulaClienteFK == clien[0].cedulaPK); //var proyectos = db.proyectos.Include(p => p.clientes); return(View(proyectos.ToList())); } else //es jefe de desarrollo o soporte { var proyectos = db.proyectos.Include(p => p.clientes); return(View(proyectos.ToList())); } }
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, mostrar los reportes disponibles para los lideres { //obteniendo la cedula del empleado var cedula = emple[0].cedulaPK; List <StringModel> reportes = new List <StringModel>(); reportes.Add(new StringModel { Nombre = "Requerimientos de desarrollador" }); reportes.Add(new StringModel { Nombre = "Estado requerimientos de desarrollador" }); reportes.Add(new StringModel { Nombre = "Tiempos totales por proyecto" }); reportes.Add(new StringModel { Nombre = "Disponibilidad de desarrolladores" }); TempData["reportes"] = reportes; TempData.Keep(); // ajustar para mostrar solo los correpondientes } else if (clien.Count() > 0) //es cliente, mostrar los reportes disponibles para los clientes { List <StringModel> reportes = new List <StringModel>(); reportes.Add(new StringModel { Nombre = "Requerimientos de desarrollador" }); reportes.Add(new StringModel { Nombre = "Disponibilidad de desarrolladores" }); reportes.Add(new StringModel { Nombre = "Estado y responsable de requerimientos de proyecto" }); reportes.Add(new StringModel { Nombre = "Cuenta de Requerimientos Finalizados y En Curso" }); TempData["reportes"] = reportes; TempData.Keep(); } else // es de soporte o el jefe de desarrollo, desplegar todos los reportes { List <StringModel> reportes = new List <StringModel>(); reportes.Add(new StringModel { Nombre = "Requerimientos de desarrollador" }); reportes.Add(new StringModel { Nombre = "Información sobre conocimientos" }); reportes.Add(new StringModel { Nombre = "Disponibilidad de empleados entre fechas" }); reportes.Add(new StringModel { Nombre = "Estado requerimientos de desarrollador" }); reportes.Add(new StringModel { Nombre = "Tiempos totales por proyecto" }); reportes.Add(new StringModel { Nombre = "Disponibilidad de desarrolladores" }); reportes.Add(new StringModel { Nombre = "Historial de desarrollador" }); reportes.Add(new StringModel { Nombre = "Análisis de duraciones en requerimientos" }); reportes.Add(new StringModel { Nombre = "Diferencia entre fecha estimada y real" }); TempData["reportes"] = reportes; TempData.Keep(); } return(RedirectToAction("SelectReport", "reportes")); }