public void UpdateFromView(AbsenceView absenceview) { this.id_employe = absenceview.id_employe; this.date_debut = absenceview.dateAbsence; this.date_fin = absenceview.dateAbsence; this.date_debut=this.date_debut.ChangeTimeString(absenceview.debutAbsence); this.date_fin=this.date_fin.ChangeTimeString(absenceview.finAbsence); this.commentaires = absenceview.commentairesTemps; this.id_type_temps = absenceview.type_absence; this.id_tache = null; this.id_projet = null; this.repas_ext = false; }
public PartialViewResult AjoutFormulaireAbsence(DateTime debut, DateTime fin, int id_employe) { var typesAbsences = from absence in cnx.type_temps where (absence.absence == true) select new { nomAbsence = absence.nom, id_type_absence = absence.id_type_temps }; ViewBag.type_absence = new SelectList(typesAbsences, "id_type_absence", "nomAbsence"); AbsenceView absenceview = new AbsenceView(); absenceview.id_employe = id_employe; absenceview.dateAbsence = debut; absenceview.debutAbsence = debut.ToShortTimeString(); absenceview.finAbsence = fin.ToShortTimeString(); return PartialView("_formAbsence", absenceview); }
public JsonResult EnregistrerAbsence(int? id, AbsenceView absenceview) { if (ModelState.IsValid) { if (!id.HasValue) { temps absence = new temps(); absence.UpdateFromView(absenceview); var employe = cnx.employe.Where(e => e.id_employe == absence.id_employe).Single(); absence.CorrigerEnDemiJournee(employe.horaires_matin, employe.horaires_matin_fin, employe.horaires_apresmidi, employe.horaires_apresmidi_fin); // s'assurer qu'il n'y a pas d'autres congés en même temps sinon lancer une erreur if (this.IsThereAchevauchement(absence, true) == false) { cnx.AddTotemps(absence); cnx.SaveChanges(); return Json(new { succes = 1, creation = 1, temps = absence.PourJson() }); } else { ModelState.AddModelError("", "Les dates ne conviennent pas. (superposition d'absence et de travail) "); } } else { temps absence = cnx.temps.Where(t => t.id_temps == id).Single(); absence.UpdateFromView(absenceview); // va faire coller l'absence à exactement à une demi journée en comprant avec la date de début de l'évenement absence.CorrigerEnDemiJournee(absence.employe.horaires_matin, absence.employe.horaires_matin_fin, absence.employe.horaires_apresmidi, absence.employe.horaires_apresmidi_fin); // dans le cas d'une modification d'un évenement de travail en congé s'assurer que tous les frais ont bien été enlevé if (absence.id_frais.HasValue) { cnx.DeleteObject(absence.frais); absence.id_frais = null; } // s'assurer qu'il n'y a pas d'autres congés en même temps sinon lancer une erreur if (this.IsThereAchevauchement(absence, true) == false) { cnx.ObjectStateManager.ChangeObjectState(absence, EntityState.Modified); cnx.SaveChanges(); return Json(new { succes = 1 }); } else { ModelState.AddModelError("", "Les dates ne conviennent pas. (superposition d'absence et de travail) "); } } } return Json(new { succes = 0, erreurs = ModelState.ListeErreurs() }); }
public PartialViewResult EditionFormulaireAbsence(int id) { temps tps = cnx.temps.Where(t => t.id_temps == id).Single(); var typesAbsences = from absence in cnx.type_temps where (absence.absence == true) select new { nomAbsence = absence.nom, id_type_absence = absence.id_type_temps }; ViewBag.type_absence = new SelectList(typesAbsences, "id_type_absence", "nomAbsence", tps.id_type_temps); AbsenceView absenceview = new AbsenceView(); absenceview.UpdateFromModel(tps); ViewBag.type = "editer"; return PartialView("_formAbsence", absenceview); }