diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java index b7cb1ba..450fd0d 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java @@ -256,7 +256,9 @@ public String getInfoHeaderFichierResultat(Demande demande, LocalDateTime dateDe @Override public Demande changeState(Demande demande, int etatDemande) throws DemandeCheckingException { - if ((etatDemande == Constant.ETATDEM_ERREUR) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { + if ((etatDemande == Constant.ETATDEM_ERREUR) + || (etatDemande == Constant.ETATDEM_INTEROMPU && (demande.getEtatDemande().getNumEtat() == Constant.ETATDEM_ENCOURS || demande.getEtatDemande().getNumEtat() == Constant.ETATDEM_ATTENTE)) + || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); demande.setEtatDemande(etat); return save(demande); diff --git a/web/src/main/java/fr/abes/item/web/DemandeRestService.java b/web/src/main/java/fr/abes/item/web/DemandeRestService.java index 9223db9..eb3f291 100644 --- a/web/src/main/java/fr/abes/item/web/DemandeRestService.java +++ b/web/src/main/java/fr/abes/item/web/DemandeRestService.java @@ -7,6 +7,7 @@ import fr.abes.item.core.constant.TYPE_DEMANDE; import fr.abes.item.core.constant.TYPE_SUPPRESSION; import fr.abes.item.core.entities.item.Demande; +import fr.abes.item.core.entities.item.DemandeSupp; import fr.abes.item.core.entities.item.LigneFichier; import fr.abes.item.core.exception.*; import fr.abes.item.core.service.IDemandeService; @@ -341,4 +342,17 @@ public Integer getNbLigneFichier(@PathVariable("type") TYPE_DEMANDE type, @PathV ILigneFichierService ligneFichierService = strategy.getStrategy(ILigneFichierService.class, type); return ligneFichierService.getNbLigneFichierTotalByDemande(service.findById(id)); } + + + @PatchMapping("stopDemandeSupp/{id}") + public DemandeWebDto stopDemandeSupp(@PathVariable("id") Integer id, HttpServletRequest request) throws ForbiddenException, UserExistException, UnknownDemandeException, DemandeCheckingException { + checkAccessToServices.autoriserAccesDemandeParIln(id, request.getAttribute(Constant.USER_NUM).toString(), TYPE_DEMANDE.SUPP); + IDemandeService service = strategy.getStrategy(IDemandeService.class, TYPE_DEMANDE.SUPP); + DemandeSupp demandeSupp = (DemandeSupp) service.findById(id); + if(demandeSupp != null){ + return builder.buildDemandeDto(service.changeState(demandeSupp, Constant.ETATDEM_INTEROMPU),TYPE_DEMANDE.SUPP); + } + throw new UnknownDemandeException("Demande inconnue"); + + } } diff --git a/web/src/main/java/fr/abes/item/web/EtatDemandeRestService.java b/web/src/main/java/fr/abes/item/web/EtatDemandeRestService.java index 092fdb1..58a9a0d 100644 --- a/web/src/main/java/fr/abes/item/web/EtatDemandeRestService.java +++ b/web/src/main/java/fr/abes/item/web/EtatDemandeRestService.java @@ -19,7 +19,7 @@ public EtatDemandeRestService(ReferenceService referenceService) { } @GetMapping(value="/etatsDemande") - @Operation(summary = "permet de récupérer la liste des états possible d'une demandeModif") + @Operation(summary = "permet de récupérer la liste des états possible d'une demande") public List getEtatDemandes() { return referenceService.findAllEtatDemande(); }