// 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));
        }
Example #2
0
        //
        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));
        }