public JsonResult EliminarFaseContrato(int idContrato, int idFase) { string mensaje = ""; string error = ""; string numeroContrato = db.Contratos.Where(c => c.Contrato_Id == idContrato).Select(c => c.NumeroContrato).FirstOrDefault(); string nombreFase = db.FasesContrato.Where(f => f.fase_Id == idFase).Select(f => f.Descripcion).FirstOrDefault(); Registrofacescontratos rfc = db.Registrofacescontratos .Where(x => x.Fase_Id == idFase && x.Contrato_Id == idContrato) .Select(x => x).FirstOrDefault(); if (rfc.Fase_Id != 0) { if (rfc != null) { // Validar antes si la fase que se eliminará del contrato ya tiene al menos una actividad asociada List <ActividadesFases> actividadesFase = db.ActividadesFases .Where(af => af.Contratos_Contrato_Id1 == idContrato && af.FasesContrato_fase_Id1 == idFase) .Select(af => af).ToList <ActividadesFases>(); // Si la fase tiene al menos una actividad asociada, no se dejará eliminar if (actividadesFase.Count > 0) { error = "<b>Error:</b> No es posible eliminar la fase "" + nombreFase.Trim() + "", ya que tiene " + actividadesFase.Count + " actividades asociadas."; } else { try { db.Registrofacescontratos.Remove(rfc); db.SaveChanges(); mensaje = "La fase "" + nombreFase.Trim() + "" fue eliminada exitosamente del contrato " + numeroContrato + "."; } catch (Exception) { error = "Ocurrió un error al intentar eliminar la fase "" + nombreFase.Trim() + "" del contrato " + numeroContrato + "."; } } } else { error = "<b>Error:</b> El identificador de la fase no es válido."; } } return(Json("{ \"mensaje\": \"" + mensaje + "\", \"error\": \"" + error + "\" }")); }
public ActionResult CrearContratoFase([Bind(Include = "Fase_Id,Contrato_Id")] Registrofacescontratos registrofacescontratos) { if (ModelState.IsValid) { if (registrofacescontratos.Fase_Id != 0) { if (db.Registrofacescontratos.Where(x => x.Fase_Id == registrofacescontratos.Fase_Id && x.Contrato_Id == registrofacescontratos.Contrato_Id).Select(x => x).ToList().Count() == 0) { db.Registrofacescontratos.Add(registrofacescontratos); db.SaveChanges(); return(RedirectToAction("Index")); } else { TempData["Error"] = "Error. Este fase ya se encuentra asignada al contrato"; return(RedirectToAction("Index")); } } TempData["Error"] = "Error. Seleciona una Fase."; } return(RedirectToAction("Index")); }
public JsonResult GuardarFaseContrato(int idContrato, int idFase) { string mensaje = ""; string error = ""; string numeroContrato = db.Contratos.Where(c => c.Contrato_Id == idContrato).Select(c => c.NumeroContrato).FirstOrDefault(); string nombreFase = db.FasesContrato.Where(f => f.fase_Id == idFase).Select(f => f.Descripcion).FirstOrDefault(); Registrofacescontratos rfc = new Registrofacescontratos(); rfc.Contrato_Id = idContrato; rfc.Fase_Id = idFase; if (rfc.Fase_Id != 0) { if (db.Registrofacescontratos.Where(x => x.Fase_Id == rfc.Fase_Id && x.Contrato_Id == rfc.Contrato_Id).Select(x => x).ToList().Count() == 0) { try { db.Registrofacescontratos.Add(rfc); db.SaveChanges(); mensaje = "La fase "" + nombreFase.Trim() + "" fue agregada exitosamente al contrato " + numeroContrato + "."; } catch (Exception) { error = "Ocurrió un error al intentar agregar la fase "" + nombreFase.Trim() + "" al contrato " + numeroContrato + "."; } } else { error = "<b>Error:</b> La fase "" + nombreFase.Trim() + "" ya se encuentra asignada al contrato" + numeroContrato + "."; } } return(Json("{ \"mensaje\": \"" + mensaje + "\", \"error\": \"" + error + "\" }")); }