示例#1
0
        public ActionResult Rechazar(AprobarSolicitudCambioModelo model)
        {
            if (ModelState.IsValid)
            {
                var solicitud = new Solicitud_Cambios();
                var req1      = baseDatos.Requerimientos.Find(solicitud.req1);
                var req2      = baseDatos.Requerimientos.Find(solicitud.req2);

                req1.categoria = "Actual";
                req2.categoria = "Rechazada";

                solicitud.Estado_Solicitud.nombre = "Rechazado";
                String userIdentityId = System.Web.HttpContext.Current.User.Identity.GetUserId();
                String usuarioActual  = baseDatos.Usuarios.Where(m => m.id == userIdentityId).First().cedula;
                solicitud.aprobadoPor = usuarioActual;
                solicitud.aprobadoEn  = DateTime.Now;
            }

            return(View(model));
        }
示例#2
0
        /// <summary>
        /// Funcionalidad para llenar los datos del requerimiento actual y la solicitud de cambio del requerimiento.
        /// </summary>
        // GET: /Solicitud_Cambios/Aprobar
        public ActionResult Aprobar(string id)
        {
            /*if (!revisarPermisos("Aprobar Solicitud de Cambio"))   // Revisa los permisos del usuario accediendo a la pantalla
             * {
             *  //Despliega mensaje en caso de no poder modificar un requerimiento
             *  this.AddToastMessage("Acceso Denegado", "No tienes permiso para ver detalles de requerimientos!", ToastType.Warning);
             *  return RedirectToAction("Index", "Home");
             * }*/
            if (id == null) // Si no existe el requerimiento, redirecciona a error
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AprobarSolicitudCambioModelo modelo = new AprobarSolicitudCambioModelo(); // Crea un modelo y lo llena con los datos del requerimiento
            var solicitud = baseDatos.Solicitud_Cambios.Find(Int32.Parse(id));        // que entro como parametro

            if (solicitud == null)
            {
                return(HttpNotFound());
            }
            var req1 = baseDatos.Requerimientos.Find(solicitud.req1);
            var req2 = baseDatos.Requerimientos.Find(solicitud.req2);

            modelo.id1            = req1.id;                        // Diferentes asignaciones de variables para el modelo creado
            modelo.id2            = req2.id;
            modelo.codigo1        = req1.codigo;
            modelo.codigo2        = req2.codigo;
            modelo.nombre1        = req1.nombre;
            modelo.nombre2        = req2.nombre;
            modelo.creadoPor1     = baseDatos.Usuarios.Find(req1.creadoPor).nombre;
            modelo.creadoPor2     = req2.creadoPor;
            modelo.version1       = req1.version.ToString();
            modelo.version2       = req2.version.ToString();
            modelo.descripcion1   = req1.descripcion;
            modelo.descripcion2   = req2.descripcion;
            modelo.prioridad1     = req1.prioridad.ToString();
            modelo.prioridad2     = req2.prioridad.ToString();
            modelo.esfuerzo1      = req1.esfuerzo.ToString();
            modelo.esfuerzo2      = req2.esfuerzo.ToString();
            modelo.observaciones1 = req1.observaciones;
            modelo.observaciones2 = req2.observaciones;
            modelo.fechaInicial1  = req1.creadoEn.ToString("MM/dd/yyyy");
            modelo.fechaInicial2  = req2.creadoEn.ToString("MM/dd/yyyy");
            if (req1.finalizaEn != null)
            {
                modelo.fechaFinal1 = (req1.finalizaEn ?? DateTime.Now).ToString("MM/dd/yyyy");
            }
            if (req2.finalizaEn != null)
            {
                modelo.fechaFinal2 = (req2.finalizaEn ?? DateTime.Now).ToString("MM/dd/yyyy");
            }
            modelo.solicitadoPor1 = baseDatos.Usuarios.Find(req1.solicitadoPor).nombre;
            modelo.solicitadoPor2 = req2.solicitadoPor;
            modelo.estado1        = req1.estado;
            modelo.estado2        = req2.estado;
            modelo.proyecto       = req1.proyecto;
            modelo.solicitadoEn   = req2.creadoEn.ToString("MM/dd/yyyy");
            modelo.solicitadoPor  = baseDatos.Usuarios.Find(solicitud.solicitadoPor).nombre;
            modelo.razon          = solicitud.razon;
            modelo.comentario     = solicitud.comentario;

            if (req1.imagen != null)
            {
                modelo.file1 = HttpUtility.UrlEncode(Convert.ToBase64String(req1.imagen));
            }
            else
            {
                modelo.file1 = "";
            }

            if (req2.imagen != null)
            {
                modelo.file2 = HttpUtility.UrlEncode(Convert.ToBase64String(req2.imagen));
            }
            else
            {
                modelo.file2 = "";
            }
            modelo.equipo1 = new List <string>();     // Se llena la variable equipo con el equipo ya asignado a este requerimiento, si ya hay uno
            foreach (var des in req1.Usuarios.ToList())
            {
                modelo.equipo1.Add(des.cedula);
            }

            modelo.equipo2 = new List <string>();     // Se llena la variable equipo con el equipo ya asignado a este requerimiento, si ya hay uno
            foreach (var des in req2.Usuarios.ToList())
            {
                modelo.equipo2.Add(des.cedula);
            }

            modelo.criteriosAceptacion1 = req1.Requerimientos_Cri_Acep.Select(c => c.criterio).Aggregate((acc, x) => acc + "|" + x);    // Se agrega a la lista de criterios de aceptacion
            modelo.criteriosAceptacion2 = req2.Requerimientos_Cri_Acep.Select(c => c.criterio).Aggregate((acc, x) => acc + "|" + x);

            List <Usuario> listaDesarrolladores = new List <Usuario>();       // Se inicializan listas que se usan a traves a continuacion
            List <Modulo>  listaModulos         = new List <Modulo>();
            List <Estado_Requerimientos> listaEstadoRequerimientos = new List <Estado_Requerimientos>();
            List <Usuario> listaClientes = new List <Usuario>();
            string         clienteRol    = context.Roles.Where(m => m.Name == "Cliente").First().Id;

            //Requerido para formar el equipo de trabajo
            foreach (var proyEquipo in baseDatos.Proyectos.Find(req1.proyecto).Proyecto_Equipo)
            {
                listaDesarrolladores.Add(baseDatos.Usuarios.Find(proyEquipo.usuario));
            }
            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());
                }
            }
            ViewBag.eliminarRequerimiento  = revisarPermisos("Eliminar Requerimientos");  // Aqui se hacen unas validaciones de permisos
            ViewBag.modificarRequerimiento = revisarPermisos("Modificar Requerimientos"); // y se cargan ciertos Viewbags necesitados por la vista
            ViewBag.Desarrolladores        = new SelectList(listaDesarrolladores, "cedula", "nombre");
            ViewBag.Clientes            = new SelectList(listaClientes, "cedula", "nombre");
            ViewBag.DesarrolladoresDisp = listaDesarrolladores;
            ViewBag.Estados             = new SelectList(baseDatos.Estado_Proyecto.ToList(), "nombre", "nombre");
            return(View(modelo));        // Se retorna la vista al modelo luego de cargar los datos
        }