/*//////////////////////////////////////////////////////////////////////////////////////////////////////////// * 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)); }
/* 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; }
// No se utiliza este método public /*ActionResult*/ void RechazarSolicitud(CambiosViewModel modelo) { modelo.propuesto.ESTADO_CAMBIOS = "Rechazado"; //return null; }
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; }
/*///////////////////////////////////////////////////////////////////////////////////////////////////////// * 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)); }