예제 #1
0
        // POST api/ActionQSE
        public HttpResponseMessage PostActionQSE(ActionQSE actionQSE)
        {
            actionQSE.Responsable = PersonneAnnuaireService.GetPersonneFromAllAnnuaireOrCreate(actionQSE.Responsable.Nom, actionQSE.Responsable.Prenom, actionQSE.ResponsableId, db);
            if (actionQSE.VerificateurId != 0 && actionQSE.VerificateurId != null)
            {
                actionQSE.Verificateur = PersonneAnnuaireService.GetPersonneFromAllAnnuaireOrCreate(actionQSE.Verificateur.Nom, actionQSE.Verificateur.Prenom, actionQSE.VerificateurId, db);
            }

            db.ActionQSEs.Add(actionQSE);
            db.SaveChanges();

            if (actionQSE.CauseQSEId != 0 && actionQSE.CauseQSEId != null)
            {
                FicheSecuriteServices.FicheSecuriteOpenOrClose(actionQSE);
            }

            return(Request.CreateResponse <ActionQSE>(HttpStatusCode.OK, actionQSE, Configuration.Formatters.JsonFormatter));
        }
예제 #2
0
        public HttpResponseMessage ImportNonConformites()
        {
            List <ImportNonConformite> AllImportNonConformite = context.ImportNonConformites.ToList();

            foreach (ImportNonConformite ImportNonConformite in AllImportNonConformite)
            {
                NonConformite NonConformite = new NonConformite()
                {
                    Date                   = ImportNonConformite.Date,
                    Description            = ImportNonConformite.Description,
                    Attendu                = ImportNonConformite.Attendu,
                    Cause                  = ImportNonConformite.Cause,
                    NonConformiteOrigineId = ImportNonConformite.NonConformiteOrigineId,
                    NonConformiteGraviteId = ImportNonConformite.NonConformiteGraviteId,
                    NonConformiteDomaineId = ImportNonConformite.NonConformiteDomaineId,
                    SiteId                 = ImportNonConformite.SiteId,
                    DateCreation           = DateTime.Now
                };

                //-------

                NonConformite.CompteurAnnuelSite = 1;

                var QueryLastNonConformiteForSiteAnnee = from n in context.NonConformites
                                                         where n.SiteId == NonConformite.SiteId &&
                                                         n.Date.Year == NonConformite.Date.Year
                                                         orderby n.CompteurAnnuelSite descending
                                                         select n;

                NonConformite LastNonConformiteForSiteAnnee = QueryLastNonConformiteForSiteAnnee.FirstOrDefault();

                if (LastNonConformiteForSiteAnnee != null)
                {
                    if (LastNonConformiteForSiteAnnee.Date.Year == NonConformite.Date.Year)
                    {
                        NonConformite.CompteurAnnuelSite = LastNonConformiteForSiteAnnee.CompteurAnnuelSite + 1;
                    }
                }

                Site site = context.Sites.First(s => s.SiteID == NonConformite.SiteId);
                NonConformite.Code += site.Trigramme + "-" + NonConformite.Date.Year + "-" + NonConformite.CompteurAnnuelSite;

                context.NonConformites.Add(NonConformite);
                context.SaveChanges();
                //-----

                var QueryImportActionforImportNonConformite = from a in context.ImportActions
                                                              where a.NonConformiteId == ImportNonConformite.Id
                                                              select a;

                List <ImportAction> AllImportAction = QueryImportActionforImportNonConformite.ToList();

                foreach (ImportAction ImportAction in AllImportAction)
                {
                    ActionQSE ActionQSE = new ActionQSE()
                    {
                        NonConformiteId     = NonConformite.Id,
                        Titre               = ImportAction.Titre,
                        Description         = ImportAction.Description,
                        DateButoireInitiale = ImportAction.DateButoireInitiale,
                        DateButoireNouvelle = ImportAction.DateButoireNouvelle,
                        Avancement          = ImportAction.Avancement,
                        PreuveVerification  = ImportAction.PreuveVerification,
                        CommentaireEfficaciteVerification = ImportAction.CommentaireEfficaciteVerification,
                        RealiseDate = ImportAction.RealiseDate,
                        VerifieDate = ImportAction.VerifieDate,
                        CritereEfficaciteVerification = ImportAction.CritereEfficaciteVerification
                    };

                    ActionQSE.Responsable = _personneAnnuaireService.GetPersonneFromAllAnnuaireOrCreate(
                        ImportAction.ResponsableNom, ImportAction.ResponsablePrenom, null, context
                        );

                    ActionQSE.Verificateur = _personneAnnuaireService.GetPersonneFromAllAnnuaireOrCreate(
                        ImportAction.VerificateurNom, ImportAction.VerificateurPrenom, null, context
                        );


                    context.ActionQSEs.Add(ActionQSE);
                    context.SaveChanges();
                }
            }

            context.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
예제 #3
0
        // PUT api/ActionQSE/5
        public HttpResponseMessage PutActionQSE(int id, ActionQSE actionqse)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, Configuration.Formatters.JsonFormatter));
            }

            if (id != actionqse.ActionQSEId)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, Configuration.Formatters.JsonFormatter));
            }


            var currentAction = db.ActionQSEs.Find(actionqse.ActionQSEId);

            db.Entry(currentAction).CurrentValues.SetValues(actionqse);

            db.Entry(currentAction).State = EntityState.Modified;

            try
            {
                if (currentAction.ResponsableId == 0)
                {
                    currentAction.Responsable = PersonneAnnuaireService.GetPersonneFromAllAnnuaireOrCreate(
                        currentAction.Responsable.Nom, currentAction.Responsable.Prenom, currentAction.ResponsableId, db
                        );
                }

                if (currentAction.VerificateurId == 0)
                {
                    currentAction.Responsable = PersonneAnnuaireService.GetPersonneFromAllAnnuaireOrCreate(
                        currentAction.Responsable.Nom, currentAction.Responsable.Prenom, currentAction.ResponsableId, db
                        );
                }

                db.SaveChanges();

                if (currentAction.CauseQSEId != 0 && currentAction.CauseQSEId != null)
                {
                    FicheSecuriteServices.FicheSecuriteOpenOrClose(currentAction);
                }
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ActionQSEExists(id))
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound, Configuration.Formatters.JsonFormatter));
                }
                else
                {
                    throw;
                }
            }
            // Si l'action appartient à une FS (et non une NC) >> On passe aussi la FS pour chercher la mise à jour de l'état de la FS (Workflow) dans la View.
            if (currentAction.CauseQSEId != null)
            {
                Dictionary <string, Object> Response = new Dictionary <string, Object>();

                Response.Add("FicheSecurite", currentAction.CauseQS.FicheSecurite);
                Response.Add("Action", currentAction);

                return(Request.CreateResponse(HttpStatusCode.OK, Response, Configuration.Formatters.JsonFormatter));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, currentAction, Configuration.Formatters.JsonFormatter));
            //StatusCode(HttpStatusCode.NoContent, currentAction, Configuration.Formatters.JsonFormatter);
        }