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 &quot;" + nombreFase.Trim() + "&quot;, ya que tiene " + actividadesFase.Count + " actividades asociadas.";
                    }
                    else
                    {
                        try
                        {
                            db.Registrofacescontratos.Remove(rfc);
                            db.SaveChanges();
                            mensaje = "La fase &quot;" + nombreFase.Trim() + "&quot; fue eliminada exitosamente del contrato " + numeroContrato + ".";
                        }
                        catch (Exception)
                        {
                            error = "Ocurrió un error al intentar eliminar la fase &quot;" + nombreFase.Trim() + "&quot; del contrato " + numeroContrato + ".";
                        }
                    }
                }
                else
                {
                    error = "<b>Error:</b> El identificador de la fase no es válido.";
                }
            }

            return(Json("{ \"mensaje\": \"" + mensaje + "\", \"error\": \"" + error + "\" }"));
        }
예제 #2
0
 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 &quot;" + nombreFase.Trim() + "&quot; fue agregada exitosamente al contrato " + numeroContrato + ".";
                    }
                    catch (Exception)
                    {
                        error = "Ocurrió un error al intentar agregar la fase &quot;" + nombreFase.Trim() + "&quot; al contrato " + numeroContrato + ".";
                    }
                }
                else
                {
                    error = "<b>Error:</b> La fase &quot;" + nombreFase.Trim() + "&quot; ya se encuentra asignada al contrato" + numeroContrato + ".";
                }
            }

            return(Json("{ \"mensaje\": \"" + mensaje + "\", \"error\": \"" + error + "\" }"));
        }