// LATER put in a separate controller for only create & update requests @ModelAttribute("projet") public Projet initProjet( @RequestParam(value = "id", required = false) Long projetId, @RequestParam(value = "tdrId", required = false) Long tdrId) { if (projetId != null) { return projetService.getById(projetId); } else if (tdrId != null) { Projet projet = new Projet(); projet.setStatus("created"); Tdr tdr = tdrService.getById(tdrId); projet.setTdr(tdr); return projet; } return null; }
@RequestMapping(method = RequestMethod.POST, value = "/projet/approve") public String approve(@Valid @ModelAttribute("projet") Projet projet, BindingResult result) { if (result.hasErrors()) { return "projets"; } // projetService.approve(projet); projet.computeTotalBenef(); projetService.update(projet); try { projet.setStatus("approved"); projetService.update(projet); // tdrService.computeTdb(projet.getTdr()); tdrService.computeTdb(tdrService.getById(projet.getTdr().getId())); tdrService.publish(projet.getTdr()); } catch (Exception ex) { // TODO better error gestion ex.printStackTrace(); } return "redirect:list?tdrId=" + projet.getTdr().getId(); }