Пример #1
0
        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);
        }
Пример #2
0
 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;
 }
Пример #3
0
 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;
 }
Пример #4
0
        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() });
        }
Пример #5
0
        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);
        }