View Javadoc

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   * The OleMyAccountController is the controller class for processing all the actions that corresponds to the renewal by patron  functionality in OLE.
26   * The request mapping tag takes care of mapping the individual action to the corresponding functions.
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       *  This method creates new OleMyAccountRequestForm form
40       * @param request
41       * @return  OleMyAccountRequestForm
42       */
43      @Override
44      protected OleMyAccountRequestForm createInitialForm(HttpServletRequest request) {
45          return new OleMyAccountRequestForm();
46      }
47  
48      /**
49       *  This method converts UifFormBase to OleMyAccountRequestForm
50       * @param form
51       * @param result
52       * @param request
53       * @param response
54       * @return ModelAndView
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 }