// GET: Proyectos public ActionResult Index(int?page) { if (!revisarPermisos("Consultar Lista de Proyectos")) { this.AddToastMessage("Acceso Denegado", "No tienes permiso para consultar Proyectos!", ToastType.Warning); return(RedirectToAction("Index", "Home")); } ProyectosModelo modelo = new ProyectosModelo(); //Si es desarrollador, falta revisar pertenencia a proyectos // (solo debe mostrar proyectos a los que pertenezco) //Si es cliente, solo debe mostrar sus proyectos solicitados //Si es admin, mostrar todos String userIdentityId = System.Web.HttpContext.Current.User.Identity.GetUserId(); //Busca el Id del usuario actual var rolRelacion = context.Users.Find(userIdentityId).Roles.First(); //Busca la relacion de rol del usuario actual String nombreRol = context.Roles.Find(rolRelacion.RoleId).Name; if (nombreRol == "Admin") { modelo.proyectos = baseDatos.Proyectos.ToList(); } else { String usuarioActual = baseDatos.Usuarios.Where(m => m.id == userIdentityId).First().cedula; //Busca la cedula del usuario actual var proyectoEquipos = baseDatos.Proyecto_Equipo.Where(m => m.usuario == usuarioActual).ToList(); //Busca las relaciones de pertenencia con proyectos modelo.proyectos = baseDatos.Proyectos.Where(m => m.cliente == usuarioActual).ToList(); //Busca los proyectos que solicito foreach (var proyEquipo in proyectoEquipos) { modelo.proyectos.Add(baseDatos.Proyectos.Find(proyEquipo.proyecto)); //Anade los proyectos en los que es parte del equipo } modelo.proyectos = modelo.proyectos.OrderByDescending(s => s.nombre).ToList(); //Ordena los proyectos por nombre } modelo.indexProyectoInfoList = new List <ProyectosModelo.proyectoInfo>(); int pageSize = 10; int pageNumber = (page ?? 1); int lastElement = (modelo.proyectos.Count < pageSize * pageNumber) ? modelo.proyectos.Count : pageSize * pageNumber; //despliega la informacion de los usuarios por paginas for (int i = (pageNumber - 1) * pageSize; i < lastElement; i++) { ProyectosModelo.proyectoInfo proyecto = new ProyectosModelo.proyectoInfo(); proyecto.nombre = modelo.proyectos.ElementAt(i).nombre; proyecto.lider = baseDatos.Usuarios.Find(modelo.proyectos.ElementAt(i).lider).nombre; proyecto.cliente = baseDatos.Usuarios.Find(modelo.proyectos.ElementAt(i).cliente).nombre; proyecto.estado = modelo.proyectos.ElementAt(i).estado; modelo.indexProyectoInfoList.Add(proyecto); } modelo.crearProyecto = revisarPermisos("Crear Proyectos"); modelo.detallesProyecto = revisarPermisos("Consultar Detalles de Proyectos"); var proyectosAsIPagedList = new StaticPagedList <ProyectosModelo.proyectoInfo>(modelo.indexProyectoInfoList, pageNumber, pageSize, modelo.proyectos.Count); ViewBag.OnePageOfProyectos = proyectosAsIPagedList; return(View(modelo)); }
// public List <ProyectosModelo> CargarGrillaProyecto(string Usuario, string Proyecto, string OT, string NombreOT, string Cliente, int Estado, int Procedimiento) { List <ProyectosModelo> lista = new List <ProyectosModelo>(); Conexion conexion = new Conexion(); SqlCommand cmd = conexion.AbrirConexionIntranet(); if (cmd != null) { cmd.CommandText = "[Proyectos_OTSinAsignar]"; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Usuario", Usuario); cmd.Parameters.AddWithValue("@Proyecto", Proyecto); cmd.Parameters.AddWithValue("@OT", OT); cmd.Parameters.AddWithValue("@NombreOT", NombreOT); cmd.Parameters.AddWithValue("@Cliente", Cliente); cmd.Parameters.AddWithValue("@Estado", Estado); cmd.Parameters.AddWithValue("@Procedimiento", Procedimiento); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { ProyectosModelo pro = new ProyectosModelo(); pro.OT = reader["QG_RMS_JOB_NBR"].ToString(); pro.NombreOT = reader["NM"].ToString(); pro.Cliente = reader["CUST_NM"].ToString(); string asf = reader["PRN_ORD_QTY"].ToString(); int ti = Convert.ToInt32(reader["PRN_ORD_QTY"].ToString()); pro.Tiraje = ti.ToString("N0").Replace(",", "."); string es = reader["JOB_STS"].ToString(); if (es == "1") { pro.Estado = "<div style='Color:Blue;'>En Proceso</div>"; } else { pro.Estado = "<div style='Color:Green;'>Liquidada</div>"; } lista.Add(pro); } } conexion.CerrarConexion(); return(lista); }
public ActionResult Crear(ProyectosModelo model) { if (ModelState.IsValid) { var proyecto = new Proyecto(); proyecto.cliente = model.cliente.cedula; proyecto.lider = model.lider.cedula; proyecto.fechaInicio = DateTime.ParseExact(model.fechaInicio, "MM/dd/yyyy", CultureInfo.InvariantCulture); proyecto.fechaFinal = DateTime.ParseExact(model.fechaFinal, "MM/dd/yyyy", CultureInfo.InvariantCulture); proyecto.descripcion = model.descripcion; proyecto.nombre = model.nombre; proyecto.estado = "Por iniciar"; proyecto.duracion = proyecto.fechaFinal.Subtract(proyecto.fechaInicio).Days; baseDatos.Proyectos.Add(proyecto); if ((model.equipo != null) && (model.equipo.Count() > 0)) { foreach (var desarrollador in model.equipo) { var proyectoDesarrollador = new Proyecto_Equipo(); proyectoDesarrollador.usuario = desarrollador; proyectoDesarrollador.proyecto = proyecto.nombre; baseDatos.Proyecto_Equipo.Add(proyectoDesarrollador); } var checkLider = model.equipo.Where(m => m == proyecto.lider); if (checkLider.Count() == 0) { var proyectoDesarrollador = new Proyecto_Equipo(); proyectoDesarrollador.usuario = proyecto.lider; proyectoDesarrollador.proyecto = proyecto.nombre; baseDatos.Proyecto_Equipo.Add(proyectoDesarrollador); } } else { var proyectoDesarrollador = new Proyecto_Equipo(); proyectoDesarrollador.usuario = proyecto.lider; proyectoDesarrollador.proyecto = proyecto.nombre; baseDatos.Proyecto_Equipo.Add(proyectoDesarrollador); } baseDatos.SaveChanges(); this.AddToastMessage("Proyecto Creado", "El proyecto " + model.nombre + " se ha creado correctamente.", ToastType.Success); return(RedirectToAction("Crear", "Proyectos")); } List <Usuario> listaDesarrolladores = new List <Usuario>(); List <Usuario> listaClientes = new List <Usuario>(); string clienteRol = context.Roles.Where(m => m.Name == "Cliente").First().Id; string desarrolladorRol = context.Roles.Where(m => m.Name == "Desarrollador").First().Id; foreach (var user in context.Users.ToArray()) { if (user.Roles.First().RoleId.Equals(clienteRol)) { listaClientes.Add(baseDatos.Usuarios.Where(m => m.id == user.Id).First()); } else { if (user.Roles.First().RoleId.Equals(desarrolladorRol)) { listaDesarrolladores.Add(baseDatos.Usuarios.Where(m => m.id == user.Id).First()); } } } ViewBag.Desarrolladores = new SelectList(listaDesarrolladores, "cedula", "nombre"); ViewBag.Clientes = new SelectList(listaClientes, "cedula", "nombre"); ViewBag.DesarrolladoresDisp = listaDesarrolladores; return(View(model)); }