public PartialViewResult Dupliquer(int id) { temps tps = cnx.temps.Where(t => t.id_temps == id).Single(); DupliquerView dpv = new DupliquerView(); dpv.dateFin = tps.date_debut.AddDays(1); dpv.id_temps = id; return PartialView("_formDupliquer", dpv); }
public JsonResult Dupliquer(DupliquerView duplicate) { if (ModelState.IsValid) { temps tps = cnx.temps.Where(t => t.id_temps == duplicate.id_temps).Single(); recurrence rec = new recurrence(); tps.recurrence = rec; DateTime debut = tps.date_debut; DateTime fin = tps.date_fin; bool absence = tps.type_temps.absence; int diffDays = duplicate.frequenceInt; while (debut.AddDays(diffDays) < duplicate.dateFin.AddDays(1)) { temps tpsCopie = tps.ClonerPourDupliquer(); debut = debut.AddDays(diffDays); fin = fin.AddDays(diffDays); tpsCopie.date_debut = debut; tpsCopie.date_fin = fin; //verification si on le garde ou pas // si c'est un samedi on garde seulement si c'est une astreinte (type_temps=1) ou un congé annuel (type_temps=6) if ((debut.DayOfWeek == DayOfWeek.Saturday) && (tpsCopie.id_type_temps != 1)) continue; // si c'est un dimanche on garde seulement si c'est une astreinte (type_temps=1) if ((debut.DayOfWeek == DayOfWeek.Sunday) && (tpsCopie.id_type_temps != 1)) continue; if (this.IsThereAchevauchement(tpsCopie, absence) == false) { tpsCopie.recurrence = rec; cnx.AddTotemps(tpsCopie); } } cnx.SaveChanges(); return Json(new { succes = 1 }); } else { return Json(new { succes = 0, erreurs = ModelState.ListeErreurs() }); } }