Esempio n. 1
0
        /*////////////////////////////////////////////////////////////////////////////////////////////////////////////
         *      Detalles de una solicitud*/
        /* EFECTO: muestra todos los datos de una solicitud
         * REQUIERE: id de la solicitud a consultar
         * MODIFICA: N/A  */
        public ActionResult DetallesSolicitud(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CambiosViewModel modelo = new CambiosViewModel();

            modelo.solicitud = db.CAMBIOS.Find(id);

            if (modelo.solicitud == null)
            {
                return(HttpNotFound());
            }
            modelo.propuesto   = db.REQUERIMIENTOS.Find(modelo.solicitud.NUEVO_REQ_ID, modelo.solicitud.NUEVO_VER_ID);
            modelo.vigente     = db.REQUERIMIENTOS.Find(modelo.solicitud.VIEJO_REQ_ID, modelo.solicitud.VIEJO_VER_ID);
            modelo.solicitante = db.USUARIOS.Find(modelo.solicitud.CEDULA);

            modelo.actual = db.REQUERIMIENTOS.Where(s => s.ID == modelo.solicitud.NUEVO_REQ_ID && s.ESTADO_CAMBIOS == "Aprobado").First();

            HashSet <string> permisos = obtienePermisos(); //permisos del rol del usuario

            var fg = new AspNetUsers();                    //instancia AspNetUser para usuario actual

            var listauser = db.AspNetUsers.ToArray();

            for (int i = 0; i < listauser.Length; i++)
            {                           //de todos los AspNetUser del sistema, encuentra el usuario activo actualmente
                if (listauser[i].Email == User.Identity.Name)
                {
                    fg = listauser[i];                  //obtiene el AspNetUser actual
                }
            }

            var usuario = db.USUARIOS.Where(u => u.ID_ASP.Equals(fg.Id)).Single();

            if (usuario.LIDER == true && usuario.PRYCTOID == modelo.solicitud.REQUERIMIENTOS.PRYCTOID)
            {
                permisos.Add("21");
            }
            if (modelo.solicitud.CEDULA == usuario.CEDULA)
            {
                permisos.Add("16");
                permisos.Add("17");
            }
            modelo.solicitud.CED_REV = usuario.CEDULA;
            ViewBag.ENCARGADO        = new SelectList(db.USUARIOS.Where(s => s.PRYCTOID == modelo.propuesto.PRYCTOID), "CEDULA", "nombreCompleto", modelo.propuesto.ENCARGADO);
            ViewBag.Permisos         = permisos;
            ViewBag.Cedula           = usuario.CEDULA;
            return(View(modelo));
        }
Esempio n. 2
0
 /* EFECTO: Requerimiento antiguo
  * REQUIERE: Que el estado sea Aprobado
  * MODIFICA: El requerimiento que será el nuevo aprobado y el anterior  */
 public /*ActionResult*/ void AceptarSolicitud(CambiosViewModel modelo, REQUERIMIENTOS antiguo, REQUERIMIENTOS nuevo, CAMBIOS cambio /*, CAMBIOS actual*/)
 {
     if (modelo.propuesto.ESTADO_CAMBIOS == "Aprobado")
     {
         //antiguo.ESTADO_CAMBIOS = "Obsoleto";
         REQUERIMIENTOS pivote = nuevo;
         nuevo   = antiguo;
         antiguo = pivote;
         nuevo.ESTADO_CAMBIOS = "Obsoleto";
         cambio.VIEJO_REQ_ID  = cambio.NUEVO_REQ_ID;
         cambio.VIEJO_VER_ID  = cambio.NUEVO_VER_ID;
         modelo.vigente       = antiguo;
         //modelo.propuesto.ESTADO_CAMBIOS = modelo.propuesto.ESTADO_CAMBIOS;
         //actual = cambio;
     }
     //return modelo;
 }
Esempio n. 3
0
 // No se utiliza este método
 public /*ActionResult*/ void RechazarSolicitud(CambiosViewModel modelo)
 {
     modelo.propuesto.ESTADO_CAMBIOS = "Rechazado";
     //return null;
 }
Esempio n. 4
0
        public ActionResult DetallesSolicitud(CambiosViewModel modelo)
        {
            if (modelo == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            REQUERIMIENTOS cambioActualizado = db.REQUERIMIENTOS.Find(modelo.propuesto.ID, modelo.propuesto.VERSION_ID);
            REQUERIMIENTOS reqAntiguo        = db.REQUERIMIENTOS.Find(modelo.actual.ID, modelo.actual.VERSION_ID);

            cambioActualizado.NOMBRE      = modelo.propuesto.NOMBRE;
            cambioActualizado.DESCRIPCION = modelo.propuesto.DESCRIPCION;
            cambioActualizado.ENCARGADO   = modelo.propuesto.ENCARGADO;
            cambioActualizado.ESFUERZO    = modelo.propuesto.ESFUERZO;
            cambioActualizado.ESTADO      = modelo.propuesto.ESTADO;
            cambioActualizado.FECHAFINAL  = modelo.propuesto.FECHAFINAL;
            cambioActualizado.FECHAINCIO  = modelo.propuesto.FECHAINCIO;
            //cambioActualizado.IMAGEN = modelo.propuesto.IMAGEN;
            //cambioActualizado.rutaImagen = modelo.propuesto.rutaImagen;
            //cambioActualizado.CRIT_ACEPTACION = modelo.propuesto.CRIT_ACEPTACION;
            cambioActualizado.MODULO        = modelo.propuesto.MODULO;
            cambioActualizado.OBSERVACIONES = modelo.propuesto.OBSERVACIONES;
            cambioActualizado.PRIORIDAD     = modelo.propuesto.PRIORIDAD;
            //cambioActualizado.PROYECTO = modelo.propuesto.PROYECTO;
            //cambioActualizado.PRYCTOID = modelo.propuesto.PRYCTOID;
            cambioActualizado.SPRINT = modelo.propuesto.SPRINT;
            //cambioActualizado.USUARIOS = modelo.propuesto.USUARIOS;
            //cambioActualizado.VERSION_ID = modelo.propuesto.VERSION_ID;

            var fg = new AspNetUsers();                 //instancia AspNetUser para usuario actual

            var listauser = db.AspNetUsers.ToArray();

            for (int i = 0; i < listauser.Length; i++)
            {                           //de todos los AspNetUser del sistema, encuentra el usuario activo actualmente
                if (listauser[i].Email == User.Identity.Name)
                {
                    fg = listauser[i];                  //obtiene el AspNetUser actual
                }
            }

            var usuario = db.USUARIOS.Where(u => u.ID_ASP.Equals(fg.Id)).Single();

            CAMBIOS cambio = db.CAMBIOS.Find(modelo.solicitud.ID);

            cambio.DESCRIPCION   = modelo.solicitud.DESCRIPCION;
            cambio.FECHA         = DateTime.Now;
            cambio.JUSTIFICACION = modelo.solicitud.JUSTIFICACION;

            if ((cambioActualizado.ESTADO_CAMBIOS != modelo.propuesto.ESTADO_CAMBIOS) || (modelo.propuesto.ESTADO_CAMBIOS == "En revisión"))
            {
                cambio.CED_REV = usuario.CEDULA;
                if (modelo.solicitud.FECHA_REV == null)
                {
                    cambio.FECHA_REV = DateTime.Now;
                }
                else
                {
                    cambio.FECHA_REV = modelo.solicitud.FECHA_REV;
                }
                cambio.JUST_REV = modelo.solicitud.JUST_REV;
                AceptarSolicitud(modelo, reqAntiguo, cambioActualizado, cambio);
            }

            cambioActualizado.ESTADO_CAMBIOS = modelo.propuesto.ESTADO_CAMBIOS;
            //if (ModelState.IsValid)
            //{
            db.Entry(reqAntiguo).State        = EntityState.Modified;
            db.Entry(cambioActualizado).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("DetallesSolicitud", new { ID = modelo.solicitud.ID }));
            //}
            //return null;
        }
Esempio n. 5
0
        /*/////////////////////////////////////////////////////////////////////////////////////////////////////////
         * INDEX de las SOLICITUDES*/
        /* EFECTO: muestra listado de solicitudes
         * REQUIERE: N/A
         * MODIFICA: N/A  */
        public ActionResult IndexSolicitudes()
        {
            CambiosViewModel modelo       = new CambiosViewModel();
            List <CAMBIOS>   listaCambios = db.CAMBIOS.ToList();

            modelo.listaCambios = new List <CAMBIOS>();

            HashSet <string> permisos = obtienePermisos(); //permisos del usuario
            var fg = new AspNetUsers();                    //instancia AspNetUser para usuario actual

            var listauser = db.AspNetUsers.ToArray();

            for (int i = 0; i < listauser.Length; i++)
            {                           //de todos los AspNetUser del sistema, encuentra el usuario activo actualmente
                if (listauser[i].Email == User.Identity.Name)
                {
                    fg = listauser[i];                  //obtiene el AspNetUser actual
                }
            }
            USUARIOS    usuarioActual = db.USUARIOS.Where(u => u.ID_ASP == fg.Id).First();
            AspNetRoles rol           = fg.AspNetRoles.First();

            //Administrador
            if (rol.Name == "Administrador")
            {
                foreach (var l in listaCambios)
                {//todos las solicitudes
                    if ((l.REQUERIMIENTOS1.ESTADO_CAMBIOS == "Pendiente") || (l.REQUERIMIENTOS1.ESTADO_CAMBIOS == "En revisión"))
                    {
                        modelo.listaCambios.Add(l);
                    }
                }
            }
            //lider
            if (rol.Name == "Desarrollador")
            {
                if (usuarioActual.LIDER == true)//es lider
                {
                    foreach (var l in listaCambios)
                    {//solicitudes pendientes/en revisión del proyecto donde es lider
                        if (((l.REQUERIMIENTOS1.ESTADO_CAMBIOS == "Pendiente") || (l.REQUERIMIENTOS1.ESTADO_CAMBIOS == "En revisión")) && (l.REQUERIMIENTOS.PRYCTOID == usuarioActual.PRYCTOID))
                        {
                            modelo.listaCambios.Add(l);
                        }
                    }
                }
                else
                {
                    foreach (var l in listaCambios)
                    {//solicitudes pendientes/en revisión que solicitó
                        if (((l.REQUERIMIENTOS1.ESTADO_CAMBIOS == "Pendiente") || (l.REQUERIMIENTOS1.ESTADO_CAMBIOS == "En revisión")) && (l.CEDULA == usuarioActual.CEDULA))
                        {
                            modelo.listaCambios.Add(l);
                        }
                    }
                }
            }
            //otro - usuario
            if (rol.Name == "Usuario")
            {
                foreach (var l in listaCambios)
                {//solicitudes pendientes/en revisión que solicitó
                    if (((l.REQUERIMIENTOS1.ESTADO_CAMBIOS == "Pendiente") || (l.REQUERIMIENTOS1.ESTADO_CAMBIOS == "En revisión")) && (l.CEDULA == usuarioActual.CEDULA))
                    {
                        modelo.listaCambios.Add(l);
                    }
                }
            }
            //var cAMBIOS = db.CAMBIOS.Include(c => c.REQUERIMIENTOS).Include(c => c.USUARIOS).Include(c => c.USUARIOS1).Include(c => c.REQUERIMIENTOS1);
            ViewBag.Permisos = obtienePermisos();
            return(View(modelo));
        }