public ActionResult CrearRequerimiento(Requerimiento requerimiento) { var errors = ModelState.Values.SelectMany(v => v.Errors); if (ModelState.IsValid) { var estado = db.EstadoRequerimiento.Where(p => p.nombre == "Pendiente Aprobación").SingleOrDefault(); var estadoDetalle = db.EstadoRequerimientoDetalle.Where(p => p.nombre == "Sin Aprobación").SingleOrDefault(); DateTime timeUtc = DateTime.UtcNow; TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone); requerimiento.fechaCreacion = cstTime; requerimiento.usuarioCreacion = User.Identity.Name; requerimiento.fechaModificacion = cstTime; requerimiento.EstadoRequerimiento = estado; db.Requerimientos.Add(requerimiento); //db.SaveChanges(); foreach (var item in requerimiento.Detalles) { item.estadoRequerimientoDetalleId = estadoDetalle.estadoRequerimientoDetalleId; db.RequerimientoDetalles.Add(item); var requerimientoDetalleEstadoRequerimientoDetalle = new RequerimientoDetalleEstadoRequerimientoDetalle(); requerimientoDetalleEstadoRequerimientoDetalle.RequerimientoDetalle = item; requerimientoDetalleEstadoRequerimientoDetalle.estadoRequerimientoDetalleId = estadoDetalle.estadoRequerimientoDetalleId; requerimientoDetalleEstadoRequerimientoDetalle.usuarioCreacion = User.Identity.Name; requerimientoDetalleEstadoRequerimientoDetalle.fechaCreacion = cstTime; db.RequerimientoDetalleEstadoRequerimientoDetalle.Add(requerimientoDetalleEstadoRequerimientoDetalle); } var requerimientoEstado = new RequerimientoEstadoRequerimiento(); requerimientoEstado.Requerimiento = requerimiento; requerimientoEstado.estadoRequerimientoId = estado.estadoRequerimientoId; requerimientoEstado.usuarioCreacion = User.Identity.Name; requerimientoEstado.fechaCreacion = cstTime; db.RequerimientoEstadoRequerimiento.Add(requerimientoEstado); db.SaveChanges(); //return View("Index"); //return RedirectToAction("Index/" + requerimiento.tipoCompraId); return(RedirectToAction("Index")); } return(View(requerimiento)); }
public ActionResult EditarRequerimiento(Requerimiento requerimiento) { var errors = ModelState.Values.SelectMany(v => v.Errors); if (ModelState.IsValid) { Requerimiento Requerimiento = db.Requerimientos.Find(requerimiento.requerimientoId); var estado = db.EstadoRequerimiento.Where(p => p.nombre == "Pendiente Aprobación").SingleOrDefault(); var estadoDetalle = db.EstadoRequerimientoDetalle.Where(p => p.nombre == "Sin Aprobación").SingleOrDefault(); DateTime timeUtc = DateTime.UtcNow; TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone); //Actualiza Datos Requerimiento Existente Requerimiento.obraId = requerimiento.obraId; Requerimiento.prioridadId = requerimiento.prioridadId; Requerimiento.comentario = requerimiento.comentario; Requerimiento.fechaModificacion = cstTime; Requerimiento.EstadoRequerimiento = estado; //db.Requerimientos.Add(requerimiento); foreach (var item in Requerimiento.Detalles.Where(p => p.EstadoRequerimientoDetalle.descripcion == "Sin Aprobación").Where(p => p.requerimientoId == requerimiento.requerimientoId).ToList()) { var req = item; foreach (var item2 in item.RequerimientoDetalleEstadosRequerimientoDetalle.ToList()) { var reqDetalleEstado = item2; db.RequerimientoDetalleEstadoRequerimientoDetalle.Remove(reqDetalleEstado); } db.RequerimientoDetalles.Remove(req); } //db.RequerimientoDetalles.RemoveRange(db.RequerimientoDetalles.Where(p => p.EstadoRequerimientoDetalle.descripcion == "Sin Aprobación").Where(p => p.requerimientoId == requerimiento.requerimientoId)); foreach (var item in requerimiento.Detalles) { item.estadoRequerimientoDetalleId = estadoDetalle.estadoRequerimientoDetalleId; item.requerimientoId = requerimiento.requerimientoId; db.RequerimientoDetalles.Add(item); var requerimientoDetalleEstadoRequerimientoDetalle = new RequerimientoDetalleEstadoRequerimientoDetalle(); requerimientoDetalleEstadoRequerimientoDetalle.RequerimientoDetalle = item; requerimientoDetalleEstadoRequerimientoDetalle.estadoRequerimientoDetalleId = estadoDetalle.estadoRequerimientoDetalleId; requerimientoDetalleEstadoRequerimientoDetalle.usuarioCreacion = User.Identity.Name; requerimientoDetalleEstadoRequerimientoDetalle.fechaCreacion = cstTime; db.RequerimientoDetalleEstadoRequerimientoDetalle.Add(requerimientoDetalleEstadoRequerimientoDetalle); } //foreach (var item in requerimiento.Detalles) //{ // var requerimientoDetalleEstadoRequerimientoDetalle = new RequerimientoDetalleEstadoRequerimientoDetalle(); // requerimientoDetalleEstadoRequerimientoDetalle.RequerimientoDetalle = item; // requerimientoDetalleEstadoRequerimientoDetalle.estadoRequerimientoDetalleId = estadoDetalle.estadoRequerimientoDetalleId; // requerimientoDetalleEstadoRequerimientoDetalle.usuarioCreacion = User.Identity.Name; // requerimientoDetalleEstadoRequerimientoDetalle.fechaCreacion = cstTime; // db.RequerimientoDetalleEstadoRequerimientoDetalle.Add(requerimientoDetalleEstadoRequerimientoDetalle); //} try { db.SaveChanges(); } catch (DbEntityValidationException ex) { StringBuilder sb = new StringBuilder(); foreach (var failure in ex.EntityValidationErrors) { sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType()); foreach (var error in failure.ValidationErrors) { sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage); sb.AppendLine(); } } throw new DbEntityValidationException( "Entity Validation Failed - errors follow:\n" + sb.ToString(), ex ); // Add the original exception as the innerException } catch (Exception ex) { } //return View("Index"); //return RedirectToAction("Index/" + requerimiento.tipoCompraId); return(RedirectToAction("Index")); } return(View(requerimiento)); }
public ActionResult Disapprove(Requerimiento requerimiento) { var errors = ModelState.Values.SelectMany(v => v.Errors); Requerimiento Requerimiento = db.Requerimientos.Find(requerimiento.requerimientoId); DateTime timeUtc = DateTime.UtcNow; TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone); var estado = db.EstadoRequerimiento.Where(p => p.nombre == "Aprobación Rechazada").SingleOrDefault();; var estadoDetalle = db.EstadoRequerimientoDetalle.Where(p => p.nombre == "Aprobación Rechazada").SingleOrDefault(); var estadoList = new string[] { "Sin Aprobación", "Aprobación Rechazada" }; if (Requerimiento.Detalles.Where(p => estadoList.Contains(p.EstadoRequerimientoDetalle.nombre)).Count() != requerimiento.Detalles.Count()) { //if (Requerimiento.EstadoRequerimiento.nombre != "Aprobado Parcial") //{ estado = db.EstadoRequerimiento.Where(p => p.nombre == "Rechazado Parcial").SingleOrDefault(); //} } Requerimiento.estadoRequerimientoId = estadoDetalle.estadoRequerimientoDetalleId; var requerimientoEstado = new RequerimientoEstadoRequerimiento(); var requerimientoDetalleEstado = new RequerimientoDetalleEstadoRequerimientoDetalle(); requerimientoEstado.Requerimiento = Requerimiento; requerimientoEstado.requerimientoId = requerimiento.requerimientoId; requerimientoEstado.estadoRequerimientoId = estado.estadoRequerimientoId; requerimientoEstado.usuarioCreacion = User.Identity.Name; requerimientoEstado.fechaCreacion = cstTime; Requerimiento.estadoRequerimientoId = estado.estadoRequerimientoId; //Actualiza datos en Requerimiento requerimientoEstado.Requerimiento.estadoRequerimientoId = estado.estadoRequerimientoId; requerimientoEstado.Requerimiento.usuarioModificacion = User.Identity.Name; requerimientoEstado.Requerimiento.fechaModificacion = cstTime; db.RequerimientoEstadoRequerimiento.Add(requerimientoEstado); foreach (var item in requerimiento.Detalles) { var requerimientoDetalleEstadoRequerimientoDetalle = new RequerimientoDetalleEstadoRequerimientoDetalle(); requerimientoDetalleEstadoRequerimientoDetalle.requerimientoDetalleId = item.requerimientoDetalleId; requerimientoDetalleEstadoRequerimientoDetalle.estadoRequerimientoDetalleId = estadoDetalle.estadoRequerimientoDetalleId; requerimientoDetalleEstadoRequerimientoDetalle.usuarioCreacion = User.Identity.Name; requerimientoDetalleEstadoRequerimientoDetalle.fechaCreacion = cstTime; RequerimientoDetalle RequerimientoDetalle = db.RequerimientoDetalles.Find(item.requerimientoDetalleId); RequerimientoDetalle.estadoRequerimientoDetalleId = estadoDetalle.estadoRequerimientoDetalleId; requerimientoDetalleEstadoRequerimientoDetalle.RequerimientoDetalle = RequerimientoDetalle; db.RequerimientoDetalleEstadoRequerimientoDetalle.Add(requerimientoDetalleEstadoRequerimientoDetalle); } try { db.SaveChanges(); } catch (DbEntityValidationException ex) { StringBuilder sb = new StringBuilder(); foreach (var failure in ex.EntityValidationErrors) { sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType()); foreach (var error in failure.ValidationErrors) { sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage); sb.AppendLine(); } } throw new DbEntityValidationException( "Entity Validation Failed - errors follow:\n" + sb.ToString(), ex ); } return(RedirectToAction("IndexApprove")); }