1 package org.kuali.ole.deliver.controller;
2
3 import org.apache.log4j.Logger;
4 import org.kuali.ole.OLEConstants;
5 import org.kuali.ole.deliver.bo.FeeType;
6 import org.kuali.ole.deliver.bo.ItemBillHelperService;
7 import org.kuali.ole.deliver.form.ItemBillForm;
8 import org.kuali.ole.docstore.common.client.DocstoreClientLocator;
9
10 import org.kuali.ole.docstore.common.document.ItemOleml;
11 import org.kuali.ole.docstore.common.search.SearchResponse;
12 import org.kuali.ole.sys.context.SpringContext;
13 import org.kuali.rice.krad.service.KRADServiceLocator;
14 import org.kuali.rice.krad.util.GlobalVariables;
15 import org.kuali.rice.krad.util.KRADConstants;
16 import org.kuali.rice.krad.web.controller.UifControllerBase;
17 import org.kuali.rice.krad.web.form.UifFormBase;
18 import org.springframework.stereotype.Controller;
19 import org.springframework.validation.BindingResult;
20 import org.springframework.web.bind.annotation.ModelAttribute;
21 import org.springframework.web.bind.annotation.RequestMapping;
22 import org.springframework.web.servlet.ModelAndView;
23
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26 import java.util.HashMap;
27 import java.util.List;
28 import java.util.Map;
29
30
31
32
33
34
35
36
37
38 @Controller
39 @RequestMapping(value = "/itemPatronBill")
40 public class ItemBillController extends UifControllerBase {
41
42 private static final Logger LOG = Logger.getLogger(ItemBillController.class);
43 private DocstoreClientLocator docstoreClientLocator;
44
45 public DocstoreClientLocator getDocstoreClientLocator() {
46
47 if (docstoreClientLocator == null) {
48 docstoreClientLocator = SpringContext.getBean(DocstoreClientLocator.class);
49
50 }
51 return docstoreClientLocator;
52 }
53
54
55
56
57
58
59
60
61 @Override
62 protected ItemBillForm createInitialForm(HttpServletRequest request) {
63 return new ItemBillForm();
64 }
65
66
67
68
69
70
71
72
73
74
75 @Override
76 @RequestMapping(params = "methodToCall=start")
77 public ModelAndView start(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
78 HttpServletRequest request, HttpServletResponse response) {
79 ItemBillForm itemBillForm = (ItemBillForm) form;
80 return super.start(itemBillForm, result, request, response);
81 }
82
83
84
85
86
87
88
89
90
91
92 @RequestMapping(params = "methodToCall=submit")
93 public ModelAndView submitItemBarcode(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
94 HttpServletRequest request, HttpServletResponse response) {
95 ItemBillForm itemBillForm = (ItemBillForm) form;
96 String itemBarcode = itemBillForm.getItemBarcode();
97 if (itemBarcode.equals("") || itemBarcode == null) {
98 GlobalVariables.getMessageMap().putErrorWithoutFullErrorPath(KRADConstants.GLOBAL_ERRORS, OLEConstants.ENTR_ITM_BAR);
99 return getUIFModelAndView(itemBillForm);
100 } else if (!(itemBarcode.equals("")) || itemBarcode != null) {
101
102 org.kuali.ole.docstore.common.document.Item item = new ItemOleml();
103 org.kuali.ole.docstore.common.search.SearchParams search_Params = new org.kuali.ole.docstore.common.search.SearchParams();
104 SearchResponse searchResponse = null;
105 search_Params.getSearchConditions().add(search_Params.buildSearchCondition("phrase", search_Params.buildSearchField(org.kuali.ole.docstore.common.document.content.enums.DocType.ITEM.getCode(), item.ITEM_BARCODE, itemBarcode), ""));
106
107
108 search_Params.getSearchResultFields().add(search_Params.buildSearchResultField(org.kuali.ole.docstore.common.document.content.enums.DocType.ITEM.getCode(), "id"));
109
110 try {
111
112
113 searchResponse = getDocstoreClientLocator().getDocstoreClient().search(search_Params);
114
115
116 } catch (Exception ex) {
117 ex.printStackTrace();
118 }
119
120
121 if (searchResponse.getSearchResults() != null && searchResponse.getSearchResults().size() == 0) {
122 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, OLEConstants.ITM_BAR_NOT_AVAL);
123 return getUIFModelAndView(itemBillForm);
124 }
125 }
126 Map itemBarcodeMap = new HashMap();
127 itemBarcodeMap.put("itemBarcode", itemBarcode);
128 List<FeeType> feeTypeList = (List<FeeType>) KRADServiceLocator.getBusinessObjectService().findMatching(FeeType.class, itemBarcodeMap);
129 if (feeTypeList.size() == 0) {
130 GlobalVariables.getMessageMap().putErrorWithoutFullErrorPath(KRADConstants.GLOBAL_ERRORS, OLEConstants.BILL_NOT_AVAI_BAR);
131 return getUIFModelAndView(itemBillForm);
132 }
133 ItemBillHelperService itemBillHelperService = new ItemBillHelperService();
134 List<FeeType> feeTypes = itemBillHelperService.getItemBillDetails(itemBarcode);
135 itemBillForm.setFeeType(itemBillHelperService.getFeeTypeDetails(feeTypes != null && feeTypes.size() > 0 ? feeTypes.get(0) : null));
136 itemBillForm.setFeeTypes(feeTypes);
137 return getUIFModelAndView(itemBillForm, "ItemViewPage");
138 }
139
140
141
142
143
144
145
146
147
148
149 @RequestMapping(params = "methodToCall=clear")
150 public ModelAndView clearItemBarcode(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
151 HttpServletRequest request, HttpServletResponse response) {
152 ItemBillForm itemBillForm = (ItemBillForm) form;
153 itemBillForm.setItemBarcode("");
154 return getUIFModelAndView(itemBillForm, "ItemViewPage");
155
156 }
157
158
159
160
161 @Override
162 @RequestMapping(params = "methodToCall=back")
163 public ModelAndView back(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
164 HttpServletRequest request, HttpServletResponse response) {
165 return super.back(form, result, request, response);
166 }
167
168
169 }