public ActionResult Registrar(Material material) { if (!LoginController.validaUsuario(Session)) return RedirectToAction("Index", "Home"); if (!LoginController.validaRol(Session)) return RedirectToAction("Index", "Home"); try { ViewBag.CatMaterial = new SelectList((from s in db.CategoriaMat where s.Estado == 1 select new { s.IdCategoria, s.Nombre } ), "IdCategoria", "Nombre"); ViewBag.Proveedor = new SelectList((from s in db.Proveedor where s.Estado == 1 select new { s.IdProveedor, s.Nombre } ), "IdProveedor", "Nombre"); ViewBag.IdTipoMaterial = new SelectList((from s in db.TipoMaterial where s.IdCatMat == material.IdCatMat && s.Estado == 1 select new { s.IdTipoMaterial, s.Nombre } ), "IdTipoMaterial", "Nombre"); ModelState.Remove("Usuario"); material.Usuario = Session["UsuarioActual"].ToString(); if (ModelState.IsValid) { if (material.IdCatMat != 1) { if (TempData["ListaColores"] != null) { db.Material.Add(material); db.SaveChanges(); foreach (ColorMaterial item in (List<ColorMaterial>)TempData["ListaColores"]) { item.IdMaterial = material.IdMaterial; db.ColorMaterial.Add(item); } db.SaveChanges(); TempData["ListaColores"] = null; } else { ModelState.AddModelError("ColorMaterial", "Debe registrar al menos un Color."); return View(material); } } else { db.Material.Add(material); db.SaveChanges(); } return RedirectToAction("Index"); } } catch (RetryLimitExceededException /* dex */) { ModelState.AddModelError("", "Imposible guardar cambios. Intentelo de nuevo, y si el problema persiste contacte el administrador del sistema."); } return View(material); }
public ActionResult Editar(int? id, Material material) { if (!LoginController.validaUsuario(Session)) return RedirectToAction("Index", "Home"); if (!LoginController.validaRol(Session)) return RedirectToAction("Index", "Home"); ViewBag.CatMaterial = new SelectList((from s in db.CategoriaMat where s.Estado == 1 select new { s.IdCategoria, s.Nombre } ), "IdCategoria", "Nombre"); ViewBag.Proveedor = new SelectList((from s in db.Proveedor where s.Estado == 1 select new { s.IdProveedor, s.Nombre } ), "IdProveedor", "Nombre"); ViewBag.ColorMaterial = new SelectList((from s in db.ColorMat where s.IdCatMaterial == material.IdCatMat && s.Estado == 1 select new { IdColor = s.IdColor, Nombre = s.Nombre }), "IdColor", "Nombre"); ViewBag.SubCatMaterial = new SelectList((from s in db.SubCategoria where s.IdCatMat == material.IdCatMat && s.Estado == 1 select new { IdSubCatMat = s.IdSubCatMat, Nombre = s.Nombre }), "IdSubCatMat", "Nombre"); ViewBag.TipoMateriales = new SelectList((from s in db.TipoMaterial where s.IdCatMat == material.IdCatMat && s.Estado == 1 select new { s.IdTipoMaterial, s.Nombre } ), "IdTipoMaterial", "Nombre"); try { ModelState.Remove("Usuario"); material.Usuario = Session["UsuarioActual"].ToString(); if (ModelState.IsValid) { material.IdMaterial = id.Value; db.Entry(material).State = EntityState.Modified; db.SaveChanges(); if (material.IdCatMat != 1) { var colores = from s in db.ColorMaterial select s; colores = colores.Where(s => s.IdMaterial == id ); Listacolores = colores.ToList(); foreach (ColorMaterial item in Listacolores) { db.ColorMaterial.Attach(item); db.ColorMaterial.Remove(item); db.SaveChanges(); } if (TempData["ListaColores"] != null) { foreach (ColorMaterial item in (List<ColorMaterial>)TempData["ListaColores"]) { item.IdMaterial = material.IdMaterial; db.ColorMaterial.Add(item); } db.SaveChanges(); TempData["ListaColores"] = null; } else { ModelState.AddModelError("ColorMaterial", "Debe registrar al menos un Color."); return PartialView(material); } } return RedirectToAction("Index"); } } catch (RetryLimitExceededException /* dex */) { ModelState.AddModelError("", "Imposible guardar los cambios. Intentelo de nuevo, si el problema persiste, contacte el administrador del sistema."); } return PartialView(material); }