public ActionResult Creer_ordre(DateTime date_provisoire, List <int> listmission, int id_marche) { if (User.Identity.GetUserId() == dbmetier.Marché.Where(a => a.id_marché == id_marche).Select(a => a.id_responsable_fk).FirstOrDefault()) { Marché marche = dbmetier.Marché.Find(id_marche); Ordre_service ordre_service = new Ordre_service { date_debut_ordre = System.DateTime.Now, date_provisoire = date_provisoire, id_projet_ordreservice = marche.Projet.id_projet, etat_reception = false, etat_facturation = false, }; dbmetier.Ordre_service.Add(ordre_service); dbmetier.SaveChanges(); foreach (var item in listmission) { Mission mission = new Mission(); mission = dbmetier.Missions.Find(item); mission.date_debut_mission = System.DateTime.Now; mission.id_ordreservice_fk = ordre_service.id_ordre_service; } dbmetier.SaveChanges(); } return(RedirectToAction("Dashboardresp", new { id_marche = id_marche })); }
public ActionResult facturation(int id_ordre) { Ordre_service ordre = dbmetier.Ordre_service.Find(id_ordre); ordre.etat_facturation = true; dbmetier.SaveChanges(); return(null); }
public ActionResult reception(int id_ordre) { Ordre_service ordre = dbmetier.Ordre_service.Find(id_ordre); ordre.etat_reception = true; ordre.date_fin_ordre = System.DateTime.Now; dbmetier.SaveChanges(); return(RedirectToAction("Dashboardresp")); }
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 ajouteMission(int id_ordre, List <int> listmission, int id_marche) { if (User.Identity.GetUserId() == dbmetier.Marché.Where(a => a.id_marché == id_marche).Select(a => a.id_responsable_fk).FirstOrDefault()) { Ordre_service ordre = dbmetier.Ordre_service.Find(id_ordre); foreach (var item in listmission) { Mission mission = new Mission(); mission = dbmetier.Missions.Find(item); mission.id_ordreservice_fk = ordre.id_ordre_service; } dbmetier.SaveChanges(); } return(RedirectToAction("Dashboardresp", new { id_marche = id_marche })); }
public ActionResult fin_Mission(int id_marche, int id_mission) { Mission mission = dbmetier.Missions.Find(id_mission); mission.date_fin_mission = System.DateTime.Now; Ordre_service ordre = dbmetier.Ordre_service.Find(mission.Ordre_service.id_ordre_service); bool isrecptione = true; foreach (var item in ordre.Missions) { if (item.date_fin_mission == null) { isrecptione = false; } } if (isrecptione == true) { ordre.etat_reception = true; ordre.date_fin_ordre = mission.date_fin_mission; } dbmetier.SaveChanges(); return(RedirectToAction("Dashboardresp", new { id_marche = id_marche }));; }
public ActionResult Dashboardresp(int id_marche) { int totale_mission; IList <Mission> list_desmission_encour = new List <Mission>(); IList <Mission> list_desmission_nonlances = new List <Mission>(); IList <Mission> list_desmission_complete = new List <Mission>(); IList <Mission> list_desmission_annule = new List <Mission>(); IList <Mission> list_desmission = dbmetier.Missions.Where(a => a.id_marche_mission == id_marche).ToList(); foreach (var item in list_desmission) { if (item.Ordre_service == null) { list_desmission_nonlances.Add(item); } else { if (item.Affectation_profils.Count == 0) { list_desmission_annule.Add(item); } if (etat_ordre_service(item.id_ordreservice_fk) == true && item.Affectation_profils.Count != 0) { list_desmission_complete.Add(item); } if (etat_ordre_service(item.id_ordreservice_fk) == false && item.Affectation_profils.Count != 0) { list_desmission_encour.Add(item); } } ViewBag.list_desmission_nonlances = list_desmission_nonlances; ViewBag.list_desmission_complete = list_desmission_complete; ViewBag.list_desmission_encour = list_desmission_encour; ViewBag.list_desmission_annule = list_desmission_annule; } totale_mission = list_desmission.Count; if (totale_mission != 0) { ViewBag.pourcentage_nonlances = ((double)list_desmission_nonlances.Count / totale_mission) * 100; ViewBag.pourcentage_complete = ((double )list_desmission_complete.Count / totale_mission) * 100; ViewBag.pourcentage_encour = ((double)list_desmission_encour.Count / totale_mission) * 100; ViewBag.pourcentage_annulle = ((double)list_desmission_annule.Count / totale_mission) * 100; } int nombre_res = 0, nombre_non = 0; IList <Ordre_service> liste_ordre = dbmetier.Marché.Find(id_marche).Projet.Ordre_service.ToList(); foreach (var item in liste_ordre) { if (item.etat_reception == true) { nombre_res++; } else { nombre_non++; } } ViewBag.pourcentage_ordre_recep = nombre_res; ViewBag.pourcentage_cordre_nonrecep = nombre_non; // ordre de service IList <Ordre_service> list_ordre = new List <Ordre_service>(); //listmision view model List <MVM> listMissionVM = new List <MVM>(); MVM element = new MVM(); foreach (var item in list_desmission) { Ordre_service ordre = dbmetier.Ordre_service.Where(a => a.id_ordre_service == item.id_ordreservice_fk).FirstOrDefault(); if (!list_ordre.Contains(ordre) && ordre != null) { list_ordre.Add(ordre); } } Marché marche = dbmetier.Marché.Find(id_marche); int id_participation = dbmetier.Participations.Where(a => a.id_prestataire_participation == marche.id_prestataire_final && a.id_marché_participation == marche.id_marché).Select(a => a.id_participation).FirstOrDefault(); // on peut creer un liste de misiion non affecte a un ordre de service ici. foreach (var item in list_desmission) { int cout, cout_totale = 0; List <Affectation_profils> listaffectations = dbmetier.Affectation_profils.Where(a => a.id_mission_affectation == item.id_mission).ToList(); foreach (var item2 in listaffectations) { cout = (int)dbmetier.Participation_profil.Where(a => a.id_profil_fk == item2.Profil.id_profil && a.id_participation_fk == id_participation).Select(a => a.cout_unit_ht).FirstOrDefault(); cout_totale += cout * (int)item2.charge_profil; } element = new MVM { mission = item, cout = cout_totale }; listMissionVM.Add(element); } ViewBag.listmission = listMissionVM; ViewBag.listeordre = list_ordre; ViewBag.Marche = marche; ViewBag.prestataire = dbmetier.prestataires.Find(marche.id_prestataire_final); var listedomaines = dbmetier.Domaines.ToList(); ViewBag.listedomaines = new SelectList(listedomaines, "libelle_domaine", "libelle_domaine"); var listProfils = dbmetier.Marché.Find(id_marche).Participations.Where(a => a.id_prestataire_participation == marche.id_prestataire_final).FirstOrDefault().Participation_profil.ToList().Select(a => a.Profil); ViewBag.listeProfils = new SelectList(listProfils, "libelle_profil", "libelle_profil"); return(View()); }
// cette fonction doit etre la couche metier de mission public bool?etat_ordre_service(int id) { Ordre_service ordre = dbmetier.Ordre_service.Find(id); return(ordre.etat_reception); }