1 package org.kuali.ole.myaccount.renewal.controller;
2
3 import org.apache.log4j.Logger;
4 import org.kuali.ole.deliver.request.api.OleDeliverRequestDefinition;
5 import org.kuali.ole.deliver.request.bo.OleDeliverRequestBo;
6 import org.kuali.ole.myaccount.renewal.form.OleMyAccountRequestForm;
7 import org.kuali.ole.myaccount.renewal.service.OleMyAccountProcess;
8 import org.kuali.ole.service.OlePatronHelperService;
9 import org.kuali.ole.service.OlePatronHelperServiceImpl;
10 import org.kuali.rice.krad.service.BusinessObjectService;
11 import org.kuali.rice.krad.web.controller.UifControllerBase;
12 import org.kuali.rice.krad.web.form.UifFormBase;
13 import org.springframework.stereotype.Controller;
14 import org.springframework.validation.BindingResult;
15 import org.springframework.web.bind.annotation.ModelAttribute;
16 import org.springframework.web.bind.annotation.RequestMapping;
17 import org.springframework.web.servlet.ModelAndView;
18
19 import javax.servlet.http.HttpServletRequest;
20 import javax.servlet.http.HttpServletResponse;
21 import java.util.ArrayList;
22 import java.util.List;
23
24
25
26
27
28 @Controller
29 @RequestMapping(value = "/myaccountrequestcontroller")
30 public class OleMyAccountRequestController extends UifControllerBase {
31
32 private static final Logger LOG = Logger.getLogger(OleMyAccountRequestController.class);
33
34 private BusinessObjectService boService;
35 private OleMyAccountProcess oleMyAccountProcess;
36 private OlePatronHelperService olePatronHelperService = new OlePatronHelperServiceImpl();
37
38
39
40
41
42
43 @Override
44 protected OleMyAccountRequestForm createInitialForm(HttpServletRequest request) {
45 return new OleMyAccountRequestForm();
46 }
47
48
49
50
51
52
53
54
55
56 @Override
57 @RequestMapping(params = "methodToCall=start")
58 public ModelAndView start(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
59 HttpServletRequest request, HttpServletResponse response) {
60 OleMyAccountRequestForm oleMyAccountRequestForm = (OleMyAccountRequestForm) form;
61 return super.start(oleMyAccountRequestForm, result, request, response);
62 }
63
64 @RequestMapping(params = "methodToCall=requestRecord")
65 public ModelAndView requestRecord(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
66 HttpServletRequest request, HttpServletResponse response) throws Exception {
67 LOG.info("Inside requestRecord method");
68 String olePatronId =request.getParameter("olePatronId");
69 OleMyAccountRequestForm oleMyAccountRequestForm =(OleMyAccountRequestForm) form;
70 try{
71 List<OleDeliverRequestDefinition> oleDeliverRequestDefinitions = getOleMyAccountProcess().getPatronRequestItems(olePatronId);
72 List<OleDeliverRequestBo> oleDeliverRequestBos = new ArrayList<OleDeliverRequestBo>();
73 for(OleDeliverRequestDefinition oleDeliverRequestDefinition : oleDeliverRequestDefinitions) {
74 OleDeliverRequestBo oleDeliverRequestBo = OleDeliverRequestBo.from(oleDeliverRequestDefinition);
75 oleDeliverRequestBos.add(oleDeliverRequestBo);
76 }
77 oleMyAccountRequestForm.setOleDeliverRequestBos(oleDeliverRequestBos);
78 } catch (Exception e) {
79 LOG.error("request record from Myaccount------->"+e.getMessage());
80 }
81 return getUIFModelAndView(oleMyAccountRequestForm,"OlePatronRequestRecordPage");
82 }
83
84 @RequestMapping(params = "methodToCall=cancelRequest")
85 public ModelAndView cancelRequest(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
86 HttpServletRequest request, HttpServletResponse response) throws Exception {
87 LOG.info("Inside cancelRequest method");
88 OleMyAccountRequestForm oleMyAccountRequestForm =(OleMyAccountRequestForm) form;
89 String olePatronId =request.getParameter("olePatronId");
90 List<OleDeliverRequestBo> oleDeliverRequestBo = oleMyAccountRequestForm.getOleDeliverRequestBos();
91 List<OleDeliverRequestDefinition> oleDeliverRequestDefinitions = new ArrayList<OleDeliverRequestDefinition>();
92 List<OleDeliverRequestDefinition> oleDeliverRequestDefinitionNew = new ArrayList<OleDeliverRequestDefinition>();
93 try{
94 for(OleDeliverRequestBo oleDeliverRequest : oleDeliverRequestBo) {
95 if(oleDeliverRequest.isRequestFlag()) {
96 OleDeliverRequestDefinition oleDeliverRequestDefinition = OleDeliverRequestBo.to(oleDeliverRequest);
97 oleDeliverRequestDefinitions.add(oleDeliverRequestDefinition);
98 } else {
99 OleDeliverRequestDefinition oleDeliverRequestDefinition = OleDeliverRequestBo.to(oleDeliverRequest);
100 oleDeliverRequestDefinitionNew.add(oleDeliverRequestDefinition);
101 }
102 }
103 getOleMyAccountProcess().cancelRequest(oleDeliverRequestDefinitions);
104 List<OleDeliverRequestBo> oleDeliverRequestBos = new ArrayList<OleDeliverRequestBo>();
105 OleDeliverRequestBo oleDeliverRequestBoNew = new OleDeliverRequestBo();
106 for(OleDeliverRequestDefinition oleDeliverRequestDefinition : oleDeliverRequestDefinitionNew) {
107 oleDeliverRequestBoNew = OleDeliverRequestBo.from(oleDeliverRequestDefinition);
108 oleDeliverRequestBos.add(oleDeliverRequestBoNew);
109 }
110 oleMyAccountRequestForm.setOleDeliverRequestBos(oleDeliverRequestBos);
111 } catch (Exception e) {
112 LOG.error("cancel request from Myaccount------->"+e.getMessage());
113 }
114 return getUIFModelAndView(oleMyAccountRequestForm,"OlePatronRequestRecordPage");
115 }
116
117 public OleMyAccountProcess getOleMyAccountProcess(){
118
119 if(oleMyAccountProcess==null)
120 oleMyAccountProcess=new OleMyAccountProcess();
121 return oleMyAccountProcess;
122 }
123
124 }