public ActionResult Create2(Actividades actividades) { var fa = db.Fases.Where(f => f.IdFase == actividades.IdFase).Include(f => f.Auditoria).SingleOrDefault(); actividades.Fase = fa; ValidadorActividades val = new ValidadorActividades(); ValidationResult mod = val.Validate(actividades); if (ModelState.IsValid && mod.IsValid) { actividades.UsuarioCrea = GetUserId(User); actividades.FechaCrea = DateTime.Now; actividades.IdEstado = 1; actividades.Eliminado = false; var lis = db.Actividades.Where(a => a.IdFase == actividades.IdFase && a.Eliminado != true).ToList().AsReadOnly(); var porcent = 0.0; foreach (var item in lis) { porcent += item.Porcentaje; } if ((porcent + actividades.Porcentaje) > 100) { ViewBag.fase = fa.Auditoria.Auditoria + "/" + fa.Fase + "/" + fa.Auditoria.UsuarioRealiza.UserName; Session["MyAlert"] = "<script type='text/javascript'>alertify.error('El Porcentaje acumulado sobrepasa el 100%, sumatoria actual: " + (porcent + actividades.Porcentaje) + "%, porcentaje faltante: " + (100 - porcent) + "%.');</script>"; ViewBag.IdEncargado = new SelectList(db.Users.Where(u => u.Eliminado != true && u.Nombres != "Administrador" && u.Apellidos != "Administrador").OrderBy(u => u.Nombres).ThenBy(u => u.Apellidos), "Id", "NombreCompleto", actividades.IdEncargado); return(View(actividades)); } if ((porcent + actividades.Porcentaje) < 100) { Session["MyAlert"] = "<script type='text/javascript'>alertify.warning('El Porcentaje acumulado no alcanza el 100%, sumatoria actual: " + (porcent + actividades.Porcentaje) + "%.');</script>"; } db.Actividades.Add(actividades); db.SaveChanges(); return(RedirectToAction("Index2", new { IdFase = actividades.IdFase })); } foreach (ValidationFailure _error in mod.Errors) { ModelState.AddModelError(_error.PropertyName, _error.ErrorMessage); } ViewBag.IdEncargado = new SelectList(db.Users.Where(u => u.Eliminado != true && u.Nombres != "Administrador" && u.Apellidos != "Administrador").OrderBy(u => u.Nombres).ThenBy(u => u.Apellidos), "Id", "NombreCompleto", actividades.IdEncargado); ViewBag.IdEstado = new SelectList(db.Estados, "IdEstado", "Estado", actividades.IdEstado); ViewBag.IdFase = new SelectList(db.Fases, "IdFase", "Fase", actividades.IdFase); ViewBag.fase = fa.Auditoria.Auditoria + "/" + fa.Fase + "/" + fa.Auditoria.UsuarioRealiza.UserName; return(View(actividades)); }
public ActionResult Edit2(Actividades actividades) { var fa = db.Fases.Where(f => f.IdFase == actividades.IdFase).Include(f => f.Auditoria).SingleOrDefault(); actividades.Fase = fa; ValidadorActividades val = new ValidadorActividades(); ValidationResult mod = val.Validate(actividades); if (ModelState.IsValid && mod.IsValid) { var lis = db.Actividades.Where(a => a.IdFase == actividades.IdFase && a.Eliminado != true && a.IdActividad != actividades.IdActividad).ToList().AsReadOnly(); var porcent = 0.0; foreach (var item in lis) { if (item.IdActividad != actividades.IdActividad) { porcent += item.Porcentaje; } } if ((porcent + actividades.Porcentaje) > 100) { Session["MyAlert"] = "<script type='text/javascript'>alertify.error('El Porcentaje acumulado sobrepasa el 100%, sumatoria actual: " + (porcent + actividades.Porcentaje) + "%.');</script>"; ViewBag.fase = fa.Auditoria.Auditoria + "/" + fa.Fase + "/" + fa.Auditoria.UsuarioRealiza.UserName; ViewBag.IdEncargado = new SelectList(db.Users.Where(u => u.Eliminado != true && u.Nombres != "Administrador" && u.Apellidos != "Administrador" && u.Roles.Any(r => r.RoleId == "b41a5a37-b052-4099-a63c-8107fe061b78")).OrderBy(u => u.Nombres).ThenBy(u => u.Apellidos), "Id", "NombreCompleto", actividades.IdEncargado); return(View(actividades)); } else { actividades.UsuarioModifica = GetUserId(User); actividades.FechaModifica = DateTime.Now; db.Entry(actividades).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index2", new { idFase = actividades.IdFase })); } } foreach (ValidationFailure _error in mod.Errors) { ModelState.AddModelError(_error.PropertyName, _error.ErrorMessage); } ViewBag.fase = fa.Auditoria.Auditoria + "/" + fa.Fase + "/" + fa.Auditoria.UsuarioRealiza.UserName; ViewBag.IdEncargado = new SelectList(db.Users.Where(u => u.Eliminado != true && u.Nombres != "Administrador" && u.Apellidos != "Administrador" && u.Roles.Any(r => r.RoleId == "b41a5a37-b052-4099-a63c-8107fe061b78")).OrderBy(u => u.Nombres).ThenBy(u => u.Apellidos), "Id", "NombreCompleto", actividades.IdEncargado); return(View(actividades)); }