public ActionResult Create(MarcheViewModel marche) { var userId = User.Identity.GetUserId(); Projet pro = dbmetier.Projets.Find(marche.id_projet); Marché mar = new Marché(); mar.Délai = marche.Délai; mar.date_fin = marche.date_fin; mar.date_debut = System.DateTime.Now; mar.budget_prevu = marche.budget_prevu; mar.id_projet_fk = marche.id_projet; mar.matricule = marche.matricule; mar.id_responsable_fk = userId; dbmetier.Marché.Add(mar); dbmetier.SaveChanges(); foreach (var item in marche.listeprestataire) { Models.Participation par = new Models.Participation(); par.id_marché_participation = mar.id_marché; par.id_prestataire_participation = item; dbmetier.Participations.Add(par); dbmetier.SaveChanges(); } foreach (MissionViewModel item in marche.listMission) { //ajout de domaine Domaine domaine = dbmetier.Domaines.Where(x => x.libelle_domaine == item.domaine).FirstOrDefault(); Mission mision = new Mission { id_mission = item.id_mission, libelle_mission = item.libelle_mission, id_domaine_mission_fk = domaine.id_domaine, id_marche_mission = mar.id_marché }; dbmetier.Missions.Add(mision); dbmetier.SaveChanges(); foreach (var profillib in item.listeprofils) { Profil prof = dbmetier.Profils.Where(x => x.libelle_profil == profillib.libelle).FirstOrDefault(); Affectation_profils afectation = new Affectation_profils { id_mission_affectation = mision.id_mission, id_profils_affectation = prof.id_profil, charge_profil = profillib.charge }; dbmetier.Affectation_profils.Add(afectation); dbmetier.SaveChanges(); } } return(Content("<script language='javascript' type='text/javascript'>alert('sucsssflly!');</script>")); }
public ActionResult ajouterMission(MVM mission, int id_ordre, int id_marche) { //ajout de domaine int budget_mission = 0, budget_restant = 0; Participation par = dbmetier.Participations.Where(a => a.id_marché_participation == id_marche).First(); ICollection <Participation_profil> listparti = par.Participation_profil; foreach (var item in mission.listeprofils) { budget_mission += item.charge * (int)listparti.Where(a => a.Profil.libelle_profil == item.libelle).Select(a => a.cout_unit_ht).FirstOrDefault(); } Participation participation = dbmetier.Participations.Where(a => a.id_marché_participation == id_marche).FirstOrDefault(); Marché marche = dbmetier.Marché.Find(id_marche); budget_restant = (int)participation.budget_prestation - (int)marche.montant_total; if (budget_mission <= budget_restant) { marche.montant_total += budget_mission; Ordre_service ordre = dbmetier.Ordre_service.Find(id_ordre); ordre.date_modification = System.DateTime.Now; Domaine domaine = dbmetier.Domaines.Where(x => x.libelle_domaine == mission.mission.Domaine.libelle_domaine).FirstOrDefault(); Mission mision = new Mission { libelle_mission = mission.mission.libelle_mission, id_domaine_mission_fk = domaine.id_domaine, id_marche_mission = marche.id_marché , id_ordreservice_fk = ordre.id_ordre_service }; dbmetier.Missions.Add(mision); dbmetier.SaveChanges(); foreach (var profillib in mission.listeprofils) { Profil prof = dbmetier.Profils.Where(x => x.libelle_profil == profillib.libelle).FirstOrDefault(); Affectation_profils afectation = new Affectation_profils { id_mission_affectation = mision.id_mission, id_profils_affectation = prof.id_profil, charge_profil = profillib.charge }; dbmetier.Affectation_profils.Add(afectation); dbmetier.SaveChanges(); } } return(null); }
public ActionResult annler_mision(int id_marche, int id_mission_annulée) { Marché mar = dbmetier.Marché.Find(id_marche); Affectation_profils aff; Mission mission = dbmetier.Missions.Where(a => a.id_mission == id_mission_annulée).FirstOrDefault(); mission.date_fin_mission = System.DateTime.Now; ICollection <Affectation_profils> listaf = new List <Affectation_profils>(); int budget_mission = 0; foreach (var item in mission.Affectation_profils) { Profil profil = item.Profil; Participation par = dbmetier.Participations.Where(a => a.id_marché_participation == id_marche).FirstOrDefault(); Participation_profil particpro = dbmetier.Participation_profil.Where(a => a.id_profil_fk == profil.id_profil && a.id_participation_fk == (int)par.id_participation).FirstOrDefault(); budget_mission += (int)item.charge_profil * (int)particpro.cout_unit_ht; } mar.montant_total -= budget_mission; dbmetier.SaveChanges(); foreach (var item in mission.Affectation_profils) { aff = new Affectation_profils { charge_profil = item.charge_profil, id_affectation = item.id_affectation, id_mission_affectation = item.id_mission_affectation, id_profils_affectation = item.id_profils_affectation, Mission = item.Mission, Profil = item.Profil }; listaf.Add(aff); } foreach (var item in listaf) { aff = dbmetier.Affectation_profils.Where(a => a.id_affectation == item.id_affectation).FirstOrDefault(); dbmetier.Affectation_profils.Remove(aff); } dbmetier.SaveChanges(); return(RedirectToAction("Dashboardresp", new { id_marche = id_marche }));; }