public PartialViewResult AjoutFormulaireTravail(DateTime debut, DateTime fin, int id_employe) { var typesTravail = from travail in cnx.type_temps where (travail.absence == false) select new { nomTravail = travail.nom, id_type_travail = travail.id_type_temps }; ViewBag.type_travail = new SelectList(typesTravail, "id_type_travail", "nomTravail", 2); var projets = from p in cnx.projet where ( p.z_actif == true) select new { nomProjet = p.reference + " " + p.nom + " / " + p.client.nom, id_projet = p.id_projet }; ViewBag.id_projet = new SelectList(projets, "id_projet", "nomProjet"); var emp = cnx.employe.Where(e => e.id_employe == id_employe).Single(); var taches = from task in cnx.tache select new { id_tache = task.id_tache, nom_tache = task.nom_tache }; ViewBag.id_tache = new SelectList(taches, "id_tache", "nom_tache", emp.id_tache); TravailView travailview = new TravailView(); travailview.id_employe = id_employe; travailview.dateTravail = debut; travailview.debutTravail = debut.ToShortTimeString(); travailview.finTravail = fin.ToShortTimeString(); return PartialView("_formTravail", travailview); }
public void updateFromView(TravailView travailview) { this.commentaires = travailview.commentairesFrais; this.kilometres = travailview.kilometres; this.peage = travailview.peage; this.hotel_resto = travailview.hotel_resto; this.divers = travailview.divers; }
public void UpdateFromView(TravailView travailview) { this.id_employe = travailview.id_employe; this.date_debut = travailview.dateTravail; this.date_fin = travailview.dateTravail; this.date_debut=this.date_debut.ChangeTimeString(travailview.debutTravail); this.date_fin=this.date_fin.ChangeTimeString(travailview.finTravail); this.commentaires = travailview.commentairesTemps; this.id_type_temps = travailview.type_travail; this.id_tache=travailview.id_tache; this.id_projet = travailview.id_projet; this.repas_ext = travailview.repas_ext; }
public JsonResult EnregistrerTravail(int? id, TravailView travailview) { //On utilise les annotations pour vérifier la validité de l'objet if (ModelState.IsValid) { // on teste l'id envoyé dans l'URL. S'il n'y en a pas, c'est que cela est un nouveau temps. if (id == null) { // on instancie le nouveau temps et le met en jour grâce aux données de la vue du formulaire temps travail = new temps(); travail.UpdateFromView(travailview); // si le temps a des frais on instancie un nouvel objet frais lié à ce temps if (travailview.hasFrais()) { frais frs = new frais(); frs.updateFromView(travailview); travail.frais = frs; cnx.AddTofrais(frs); } // s'assurer qu'il n'y a pas de congés en même temps sinon on rajoute une erreur au ModelState if (this.IsThereAchevauchement(travail, false) == false) { // on rajoute à l'EntityManager l'objet créé et on sauvegarde cnx.AddTotemps(travail); cnx.SaveChanges(); // on renvoie un objet anonyme précisant si cela a fonctionné, si c'est une création // et une version de l'objet travail pour qu'il soit intégré par le plugin FullCalendar return Json(new { succes = 1, creation = 1, temps = travail.PourJson() }); } else { // on rajoute une erreur à l'objet ModelState ModelState.AddModelError("", "Les dates ne conviennent pas. (superposition d'absence et de travail) "); } } else { // dans le cas d'une modification on recherche le temps concerné par l'id temps travail = cnx.temps.Where(t => t.id_temps == id).Single(); // on le met en jour grâce aux données de la vue du formulaire travail.UpdateFromView(travailview); // on recherche les frais associés à ce temps frais frs = travail.frais; // s'il n'y en pas if (frs != null) { // on vérifie que le formulaire a les champs frais renseignés if (travailview.hasFrais()) { // si c'est le cas, on met à jour l'objet frais associé et on le sauvegarde frs.updateFromView(travailview); cnx.ObjectStateManager.ChangeObjectState(frs, EntityState.Modified); } else { // on supprime l'objet associé cnx.DeleteObject(frs); travail.frais = null; } } else { // si le travail n'avait pas frasi et que le formuakire en a if (travailview.hasFrais()) { // on crée l'objet frais, on l'associe à Temps et on sauvegarde frs = new frais(); frs.updateFromView(travailview); travail.frais = frs; cnx.AddTofrais(frs); } } // s'assurer qu'il n'y a pas de congés en même temps sinon lancer une erreur if (this.IsThereAchevauchement(travail, false) == false) { // on enregsitre l'objet modifié et on renvoie l'objet anonyme en Json précisant le succes cnx.ObjectStateManager.ChangeObjectState(travail, EntityState.Modified); cnx.SaveChanges(); return Json(new { succes = 1 }); } else { // on rajoute une erreur à l'objet ModelState ModelState.AddModelError("", "Les dates ne conviennent pas. (superposition d'absence et de travail) "); } } } // on renvoie un objet anonyme indiquant que l'objet n'a pas été enregistré correctement // et on renvoie la liste des erreurs. return Json(new { succes = 0, erreurs = ModelState.ListeErreurs() }); }
public PartialViewResult EditionFormulaireTravail(int id) { temps tps = cnx.temps.Where(t => t.id_temps == id).Single(); var typesTravail = from travail in cnx.type_temps where (travail.absence == false) select new { nomTravail = travail.nom, id_type_travail = travail.id_type_temps }; ViewBag.type_travail = new SelectList(typesTravail, "id_type_travail", "nomTravail", tps.id_type_temps); var projets = from p in cnx.projet where ( p.z_actif == true) select new { nomProjet = p.reference + " " + p.nom + " / " + p.client.nom, id_projet = p.id_projet }; ViewBag.id_projet = new SelectList(projets, "id_projet", "nomProjet", tps.id_projet); ViewBag.id_tache = new SelectList(cnx.tache, "id_tache", "nom_tache", tps.id_tache); TravailView travailview = new TravailView(); travailview.UpdateFromModel(tps); ViewBag.type = "editer"; return PartialView("_formTravail", travailview); }