// GET: TipoPieza/Crear public ActionResult Crear(Guid? id, bool principal = false) { if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest); TipoPieza tp = new TipoPieza(); if (principal) { //id = TipoObraID TipoObra tipoObra = db.TipoObras.Find(id); if (tipoObra == null) return HttpNotFound(); tp.TipoObraID = tipoObra.TipoObraID; tp.Orden = tipoObra.TipoPiezas.Where(a => a.EsPrincipal).Count() + 1; tp.Status = true; tp.EsPrincipal = true; } else { //id = TipoPiezaPadreID TipoPieza tipoPiezaPadre = db.TipoPiezas.Find(id); if (tipoPiezaPadre == null) return HttpNotFound(); tp.TipoObraID = tipoPiezaPadre.TipoObraID; tp.Orden = tipoPiezaPadre.TipoPiezasHijas.Count + 1; tp.TipoPiezaPadreID = tipoPiezaPadre.TipoPiezaID; tp.Status = true; tp.EsPrincipal = false; } return PartialView("_Crear", tp); }
public ActionResult Crear(Guid? id, bool principal = false) { if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest); TipoPieza tp = new TipoPieza(); if (principal) { //id = TipoObraID TipoObra tipoObra = db.TipoObras.Find(id); if (tipoObra == null) return HttpNotFound(); tp.Prefijo = "A"; tp.TipoObraID = tipoObra.TipoObraID; tp.Orden = tipoObra.TipoPiezas.Where(a => a.EsPrincipal).Count() + 1; tp.Status = true; tp.EsPrincipal = true; } else { //id = TipoPiezaPadreID TipoPieza tipoPiezaPadre = db.TipoPiezas.Find(id); if (tipoPiezaPadre == null) return HttpNotFound(); tp.Orden = tipoPiezaPadre.TipoPiezasHijas.Count; if (tp.Orden > 0) { string ultimaLetra = tipoPiezaPadre.TipoPiezasHijas.Select(a => a.Prefijo).OrderByDescending(a => a).FirstOrDefault(); tp.Prefijo = IncrementarLetra(ultimaLetra); tp.Orden++; } else { tp.Orden = 1; tp.Prefijo = "A"; } tp.TipoObraID = tipoPiezaPadre.TipoObraID; tp.TipoPiezaPadreID = tipoPiezaPadre.TipoPiezaID; tp.Status = true; tp.EsPrincipal = false; } return PartialView("_Crear", tp); }
public ActionResult Crear([Bind(Include = "TipoObraID,Nombre,Descripcion,Status,Temp")] TipoObra tipoObra) { //revalidar el nombre if (db.TipoObras.FirstOrDefault(a => a.Nombre == tipoObra.Nombre) != null) ModelState.AddModelError("Nombre", "Nombre ya existe."); if (ModelState.IsValid) { tipoObra.TipoObraID = Guid.NewGuid(); db.TipoObras.Add(tipoObra); db.SaveChanges(); AlertaSuccess(string.Format("Tipo de Obra: <b>{0}</b> creada.", tipoObra.Nombre), true); //Crear la pieza Maestra TipoPieza tipoPieza = new TipoPieza() { TipoPiezaID = Guid.NewGuid(), TipoObraID = tipoObra.TipoObraID, Nombre = "Principal", Prefijo = "A", Orden = 1, Descripcion = "Pieza principal de la Obra", EsPrincipal = true, Status = true }; db.TipoPiezas.Add(tipoPieza); db.SaveChanges(); AlertaSuccess(string.Format("Tipo de Pieza : <b>{0}</b> creada.", tipoPieza.Nombre), true); string url = Url.Action("Lista", "TipoObra"); return Json(new { success = true, url = url }); } return PartialView("_Crear", tipoObra); }