@RequestMapping(produces = "text/html") public String list( @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) { User user = Utils.getCurrentUser(); if (page != null || size != null) { int sizeNo = size == null ? 10 : size.intValue(); final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo; uiModel.addAttribute( "purchaserequests", PurchaseRequest.findPurchaseRequestsByAcquirer(user) .setFirstResult(firstResult) .setMaxResults(sizeNo) .getResultList()); float nrOfPages = (float) PurchaseRequest.countPurchaseRequests() / sizeNo; uiModel.addAttribute( "maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages)); } else { uiModel.addAttribute( "purchaserequests", PurchaseRequest.findPurchaseRequestsByAcquirer(Utils.getCurrentUser())); } return "user/purchaserequest/list"; }
@RequestMapping(method = RequestMethod.POST, produces = "text/html") public String create( PurchaseRequest purchaseRequest, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest, @RequestParam(required = false) Integer proposal, @RequestParam(required = false) Integer addTo) { // checkRights(purchaseRequest); if (bindingResult.hasErrors()) { populateEditForm(uiModel, purchaseRequest); return "user/purchaserequest/create"; } int pag_id = 0; purchaseRequest.setAcquirer(Utils.getCurrentUser()); purchaseRequest.setReceived(false); /* TO-DO: qua mettiamo il check per vedere se è completa o se dobbiamo fare delle parti... */ if (addTo != null) // se la sto aggiungendo ad una gia' esistente! { PurchaseRequest pr = PurchaseRequest.findPurchaseRequest(addTo); // aggiungo a questa pr.setQuantity(pr.getQuantity() + purchaseRequest.getQuantity()); if (pr.getToMin() == 0) { pr.setCompleted(true); checkProposalMinReached(pr.getProposal()); } pr.merge(); // ignoro la mia "purchaserequest" e memorizzo la parte PurchaseRequestPart part = new PurchaseRequestPart(); part.setPurchaseRequest(PurchaseRequest.findPurchaseRequest(addTo)); part.setAcquirer(purchaseRequest.getAcquirer()); part.setQuantity(purchaseRequest.getQuantity()); part.persist(); pag_id = pr.getProposal().getId(); } else { // se non sto aggiungendo a niente if (purchaseRequest.getToMin() == 0) // e' completa. Molt Ben! { purchaseRequest.setCompleted(true); purchaseRequest.persist(); } else // non e' completa { purchaseRequest.setCompleted(false); purchaseRequest.persist(); PurchaseRequestPart part = new PurchaseRequestPart(); part.setPurchaseRequest(purchaseRequest); part.setAcquirer(purchaseRequest.getAcquirer()); part.setQuantity(purchaseRequest.getQuantity()); part.persist(); } checkProposalMinReached(purchaseRequest.getProposal()); pag_id = purchaseRequest.getProposal().getId(); } uiModel.asMap().clear(); return "redirect:/user/proposals/" + pag_id; }