@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(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html") public String delete( @PathVariable("id") Integer id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) { PurchaseRequest purchaseRequest = Utils.checkRights(PurchaseRequest.findPurchaseRequest(id)); purchaseRequest.remove(); uiModel.asMap().clear(); uiModel.addAttribute("page", (page == null) ? "1" : page.toString()); uiModel.addAttribute("size", (size == null) ? "10" : size.toString()); checkProposalMinReached(purchaseRequest.getProposal()); return "redirect:/user/purchaserequest"; }
@RequestMapping(value = "/{id}", params = "form", produces = "text/html") public String updateForm(@PathVariable("id") Integer id, Model uiModel) { PurchaseRequest pr = Utils.checkRights(PurchaseRequest.findPurchaseRequest(id)); uiModel.addAttribute("purchaseRequest", pr); ArrayList<Proposal> mockProposal = new ArrayList<Proposal>(); mockProposal.add(pr.getProposal()); uiModel.addAttribute("proposals", mockProposal); uiModel.addAttribute("purchaserequestparts", pr.getPurchaseRequestParts()); ArrayList<User> mockUser = new ArrayList<User>(); mockUser.add(pr.getAcquirer()); uiModel.addAttribute("users", mockUser); uiModel.addAttribute("completed", pr.getCompleted()); return "user/purchaserequest/update"; }
@RequestMapping(method = RequestMethod.PUT, produces = "text/html") public String update( @Valid PurchaseRequest purchaseRequest, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) { Utils.checkRights(purchaseRequest); if (bindingResult.hasErrors()) { populateEditForm(uiModel, purchaseRequest); return "user/purchaserequest/update"; } if (purchaseRequest.getToMin() == 0) // e' completa. Molt Ben! { purchaseRequest.setCompleted(true); purchaseRequest.merge(); } else // non e' completa { purchaseRequest.setCompleted(false); purchaseRequest.merge(); PurchaseRequestPart part = new PurchaseRequestPart(); part.setPurchaseRequest(purchaseRequest); part.setAcquirer(purchaseRequest.getAcquirer()); part.setQuantity(purchaseRequest.getQuantity()); part.persist(); } checkProposalMinReached(purchaseRequest.getProposal()); uiModel.asMap().clear(); purchaseRequest.merge(); return "redirect:/user/purchaserequest/" + encodeUrlPathSegment(purchaseRequest.getId().toString(), httpServletRequest); }
@RequestMapping(value = "/{id}", produces = "text/html") public String show( @PathVariable("id") Integer id, @RequestParam(value = "incomplete", required = false) String incomplete, Model uiModel) { uiModel.addAttribute( "purchaserequest", Utils.checkRights(PurchaseRequest.findPurchaseRequest(id))); uiModel.addAttribute("itemId", id); if (incomplete != null) { uiModel.addAttribute("incomplete", true); uiModel.addAttribute("toMin", PurchaseRequest.findPurchaseRequest(id).getToMin()); uiModel.addAttribute("addTo", id); uiModel.addAttribute("newpurchaserequest", new PurchaseRequest()); ArrayList<Proposal> mock = new ArrayList<Proposal>(); mock.add(PurchaseRequest.findPurchaseRequest(id).getProposal()); uiModel.addAttribute("proposals", mock); } return "user/purchaserequest/show"; }
@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; }