View Javadoc
1   /*
2    * Copyright 2011 The Kuali Foundation.
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.ole.select.service.impl;
17  
18  import org.kuali.ole.module.purap.document.service.OlePurapService;
19  import org.kuali.ole.select.OleSelectConstant;
20  import org.kuali.ole.select.batch.service.OleRequisitionCreateDocumentService;
21  import org.kuali.ole.select.batch.service.impl.OleRequisitionCreateDocumentServiceImpl;
22  import org.kuali.ole.select.businessobject.BibInfoBean;
23  import org.kuali.ole.select.service.PopulateBibInfoService;
24  import org.kuali.ole.sys.context.SpringContext;
25  import org.kuali.rice.core.api.config.property.ConfigurationService;
26  import org.kuali.rice.krad.UserSession;
27  import org.kuali.rice.krad.util.ErrorMessage;
28  import org.kuali.rice.krad.util.GlobalVariables;
29  import org.springframework.util.AutoPopulatingList;
30  
31  import java.util.Collections;
32  import java.util.List;
33  import java.util.Map;
34  
35  public class PopulateBibInfoServiceImpl implements PopulateBibInfoService {
36      protected static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(PopulateBibInfoServiceImpl.class);
37      protected ConfigurationService kualiConfigurationService;
38      protected OlePurapService olePurapService;
39  
40      public OlePurapService getOlePurapService() {
41          if (olePurapService == null) {
42              olePurapService = SpringContext.getBean(OlePurapService.class);
43          }
44          return olePurapService;
45      }
46  
47      @Override
48      public String processBibInfoForCitation(String citationString, BibInfoBean bibInfoBean) throws Exception {
49          try {
50              String user;
51              if (GlobalVariables.getUserSession() != null) {
52                  user = GlobalVariables.getUserSession().getPrincipalName();
53              } else {
54                  kualiConfigurationService = SpringContext.getBean(ConfigurationService.class);
55                  user = kualiConfigurationService.getPropertyValueAsString("userName");
56              }
57              GlobalVariables.setUserSession(new UserSession(user));
58              BuildCitationBibInfoBean buildCitationBibInfoBean = SpringContext.getBean(BuildCitationBibInfoBean.class);
59              bibInfoBean = buildCitationBibInfoBean.getBean(citationString, bibInfoBean);
60              if (bibInfoBean.getTitle() == null || "".equalsIgnoreCase(bibInfoBean.getTitle())) {
61                  return OleSelectConstant.SOAP_CITATION_PARSER_UNREACHABLE;
62              }
63              bibInfoBean.setRequestSourceUrl(citationString);
64              //bibInfoBean.setRequestSource(OleSelectConstant.REQUEST_SRC_TYPE_WEBFORM);
65              bibInfoBean.setRequisitionSource(OleSelectConstant.REQUISITON_SRC_TYPE_WEBFORM);
66              bibInfoBean.setDocStoreOperation(OleSelectConstant.DOCSTORE_OPERATION_WEBFORM);
67              bibInfoBean = setBibInfoDefaultValues(bibInfoBean);
68              OleRequisitionCreateDocumentService createDocument = SpringContext.getBean(OleRequisitionCreateDocumentServiceImpl.class);
69              List<BibInfoBean> bibInfoBeanList = getBibInfoBeanList(bibInfoBean);
70              String docNumber = createDocument.saveRequisitionDocument(bibInfoBeanList, true);
71              return docNumber;
72          } catch (Exception e) {
73              LOG.error("Exception processing for SOAP citation document creation----" + e.getMessage(), e);
74              String errorMessage = null;
75              if (GlobalVariables.getMessageMap().hasErrors()) {
76                  Map<String, AutoPopulatingList<ErrorMessage>> map = GlobalVariables.getMessageMap().getErrorMessages();
77                  for (Map.Entry<String, AutoPopulatingList<ErrorMessage>> entry : map.entrySet()) {
78                      AutoPopulatingList<ErrorMessage> errors = entry.getValue();
79                      ErrorMessage error = errors.get(0);
80                      String[] params = error.getMessageParameters();
81                      errorMessage = params[0];
82                  }
83              }
84              return OleSelectConstant.SOAP_EXCEPTION + " - " + errorMessage;
85          }
86      }
87  
88      /**
89       * This method sets the default values to the bibInfoBean
90       *
91       * @param bibInfoBean
92       * @return BibInfoBean
93       */
94      private BibInfoBean setBibInfoDefaultValues(BibInfoBean bibInfoBean) throws Exception {
95  
96          // bibInfoBean.setIsbn(kualiConfigurationService.getPropertyValueAsString("isbn"));
97          bibInfoBean.setFinancialYear(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.FIN_YEAR));
98          bibInfoBean.setChartOfAccountsCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.CHART_OF_ACC_CD));
99          bibInfoBean.setOrganizationCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.ORG_CODE));
100         bibInfoBean.setDocumentFundingSourceCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.FUND_SRC_CD));
101         bibInfoBean.setUseTaxIndicator(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.USE_TAX_IND) == "true" ? true : false);
102         bibInfoBean.setDeliveryCampusCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_CMPS_CD));
103         bibInfoBean.setDeliveryBuildingOtherIndicator(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_BLDNG_OTHR_IND) == "true" ? true : false);
104         bibInfoBean.setDeliveryBuildingCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_BLDNG_CD));
105         bibInfoBean.setDeliveryBuildingLine1Address(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_BLDNG_LN_ADDR));
106         bibInfoBean.setDeliveryBuildingRoomNumber(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_BLDNG_ROOM_NBR));
107         bibInfoBean.setDeliveryCityName(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_CITY_NM));
108         bibInfoBean.setDeliveryStateCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_STATE_CD));
109         bibInfoBean.setDeliveryPostalCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_POSTAL_CD));
110         bibInfoBean.setDeliveryCountryCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DLVR_CNTRY_CD));
111         bibInfoBean.setDeliveryToName(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.DELIVERY_TO_NAME));
112 /*        bibInfoBean.setVendorCode(properties.getProperty("userName"));
113         bibInfoBean.setVendorCustomerNumber(properties.getProperty("userName"));*/
114         bibInfoBean.setUom(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.UOM));
115         bibInfoBean.setItemTypeCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.ITEM_TYPE_CD));
116         bibInfoBean.setListprice(new Double(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.LIST_PRICE)));
117         bibInfoBean.setQuantity(new Long(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.QTY)));
118         bibInfoBean.setPurchaseOrderTransmissionMethodCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.PO_TRNS_MTH_CD));
119         bibInfoBean.setPurchaseOrderCostSourceCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.PO_CST_SRC_CD));
120         bibInfoBean.setRequestorPersonName(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.REQUESTOR_PERSON_NAME));
121         bibInfoBean.setRequestorPersonPhoneNumber(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.REQUESTOR_PERSON_PHONE_NUMBER));
122         bibInfoBean.setRequestorPersonEmailAddress(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.REQUESTOR_PERSON_EMAIL_ADDRESS));
123         bibInfoBean.setLocation(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.LOCATION));
124         bibInfoBean.setOrganizationAutomaticPurchaseOrderLimit(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.ORG_PO_LMT));
125         bibInfoBean.setPurchaseOrderAutomaticIndicator(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.PURCHASE_ORDER_AUTOMATIC_INDICATIOR) == "true" ? true : false);
126         bibInfoBean.setReceivingDocumentRequiredIndicator(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.RCV_REQ_INT) == "true" ? true : false);
127         bibInfoBean.setPaymentRequestPositiveApprovalIndicator(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.PREQ_APPRL_INT) == "true" ? true : false);
128         /*bibInfoBean.setChart(properties.getProperty("chart"));
129         bibInfoBean.setAccountNumber(properties.getProperty("accountNumber"));
130         bibInfoBean.setObjectCode(properties.getProperty("objectCode"));
131         bibInfoBean.setPercent(new Long(properties.getProperty("percent")));*/
132         if (LOG.isDebugEnabled()) {
133             LOG.debug("---------------Billing Name from property--------->" + getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.BILL_NM));
134         }
135         bibInfoBean.setBillingName(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.BILL_NM));
136         bibInfoBean.setBillingCityName(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.BILL_CITY_NM));
137         bibInfoBean.setBillingCountryCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.BILL_CNTRY_CD));
138         bibInfoBean.setBillingLine1Address(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.BILL_LIN_ADDR));
139         bibInfoBean.setBillingPhoneNumber(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.BILL_PHN_NBR));
140         bibInfoBean.setBillingPostalCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.BILL_POSTAL_CD));
141         bibInfoBean.setBillingStateCode(getOlePurapService().getParameter(org.kuali.ole.sys.OLEConstants.BILL_STATE_CD));
142        /* bibInfoBean.setLicensingRequirementIndicator(kualiConfigurationService.getPropertyValueAsBoolean("licensingRequirementIndicator"));*/
143         /*bibInfoBean.setLicensingRequirementCode(kualiConfigurationService.getPropertyValueAsString("licensingRequirementCode"));*/
144         return bibInfoBean;
145     }
146 
147 
148     @Override
149     public String processBibInfoForOperURL(String openUrlString, BibInfoBean bibInfoBean) throws Exception {
150         try {
151             String user;
152             if (GlobalVariables.getUserSession() != null) {
153                 user = GlobalVariables.getUserSession().getPrincipalName();
154             } else {
155                 kualiConfigurationService = SpringContext.getBean(ConfigurationService.class);
156                 user = kualiConfigurationService.getPropertyValueAsString("userName");
157             }
158             GlobalVariables.setUserSession(new UserSession(user));
159             BuildOpenUrlBibInfoBean buildOpenUrlBibInfoBean = SpringContext.getBean(BuildOpenUrlBibInfoBean.class);
160             bibInfoBean = buildOpenUrlBibInfoBean.getBean(bibInfoBean, openUrlString);
161             if (bibInfoBean.getTitle() == null || "".equalsIgnoreCase(bibInfoBean.getTitle())) {
162                 return OleSelectConstant.SOAP_INVALID_OPENURL;
163             }
164             bibInfoBean.setRequestSourceUrl(openUrlString);
165             //bibInfoBean.setRequestSource(OleSelectConstant.REQUEST_SRC_TYPE_WEBFORM);
166             bibInfoBean.setRequisitionSource(OleSelectConstant.REQUISITON_SRC_TYPE_WEBFORM);
167             bibInfoBean.setDocStoreOperation(OleSelectConstant.DOCSTORE_OPERATION_WEBFORM);
168             bibInfoBean = setBibInfoDefaultValues(bibInfoBean);
169             OleRequisitionCreateDocumentService createDocument = SpringContext.getBean(OleRequisitionCreateDocumentServiceImpl.class);
170             List<BibInfoBean> bibInfoBeanList = getBibInfoBeanList(bibInfoBean);
171             String docNumber = createDocument.saveRequisitionDocument(bibInfoBeanList, true);
172             return docNumber;
173         } catch (Exception e) {
174             LOG.error("Exception processing for SOAP citation document creation----" + e.getMessage(), e);
175             String errorMessage = null;
176             if (GlobalVariables.getMessageMap().hasErrors()) {
177                 Map<String, AutoPopulatingList<ErrorMessage>> map = GlobalVariables.getMessageMap().getErrorMessages();
178                 for (Map.Entry<String, AutoPopulatingList<ErrorMessage>> entry : map.entrySet()) {
179                     AutoPopulatingList<ErrorMessage> errors = entry.getValue();
180                     ErrorMessage error = errors.get(0);
181                     String[] params = error.getMessageParameters();
182                     errorMessage = params[0];
183                 }
184             }
185             return OleSelectConstant.SOAP_EXCEPTION + " - " + errorMessage;
186         }
187     }
188 
189 
190     @Override
191     public String processBibInfoForForm(BibInfoBean bibInfoBean, String title, String author, String edition, String series, String publisher, String placeOfPublication, String yearOfPublication, String standardNumber, String typeOfStandardNumber,
192                                         String routeRequesterReceipt) throws Exception {
193         try {
194             String user;
195 /*            if(GlobalVariables.getUserSession()!=null){
196                 user = GlobalVariables.getUserSession().getPrincipalName();
197             }else{*/
198             kualiConfigurationService = SpringContext.getBean(ConfigurationService.class);
199             user = kualiConfigurationService.getPropertyValueAsString("userName");
200             // }
201             if (LOG.isDebugEnabled()){
202                 LOG.debug("userName in processBibInfoForForm>>>>>>>>>>>>>>" + user);
203             }
204             GlobalVariables.setUserSession(new UserSession(user));
205             BuildFormBibInfoBean buildFormBibInfoBean = SpringContext.getBean(BuildFormBibInfoBean.class);
206             bibInfoBean = buildFormBibInfoBean.getBean(bibInfoBean, title, author, edition, series, publisher, placeOfPublication, yearOfPublication, standardNumber, typeOfStandardNumber, routeRequesterReceipt);
207             bibInfoBean = setBibInfoDefaultValues(bibInfoBean);
208             //bibInfoBean.setRequestSource(OleSelectConstant.REQUEST_SRC_TYPE_WEBFORM);
209             bibInfoBean.setRequisitionSource(OleSelectConstant.REQUISITON_SRC_TYPE_WEBFORM);
210             bibInfoBean.setDocStoreOperation(OleSelectConstant.DOCSTORE_OPERATION_WEBFORM);
211             OleRequisitionCreateDocumentService createDocument = SpringContext.getBean(OleRequisitionCreateDocumentServiceImpl.class);
212             List<BibInfoBean> bibInfoBeanList = getBibInfoBeanList(bibInfoBean);
213             String docNumber = createDocument.saveRequisitionDocument(bibInfoBeanList, true);
214             return docNumber;
215         } catch (Exception e) {
216             LOG.error("Exception processing for SOAP form document creation----" + e.getMessage(), e);
217             String errorMessage = null;
218             if (GlobalVariables.getMessageMap().hasErrors()) {
219                 Map<String, AutoPopulatingList<ErrorMessage>> map = GlobalVariables.getMessageMap().getErrorMessages();
220                 for (Map.Entry<String, AutoPopulatingList<ErrorMessage>> entry : map.entrySet()) {
221                     AutoPopulatingList<ErrorMessage> errors = entry.getValue();
222                     ErrorMessage error = errors.get(0);
223                     String[] params = error.getMessageParameters();
224                     errorMessage = params[0];
225                 }
226             }
227             return OleSelectConstant.SOAP_EXCEPTION + " - " + errorMessage;
228         }
229     }
230 
231     private List<BibInfoBean> getBibInfoBeanList(BibInfoBean bibInfoBean) throws Exception {
232         return Collections.singletonList(bibInfoBean);
233 
234     }
235 
236     public ConfigurationService getConfigurationService() {
237         return kualiConfigurationService;
238     }
239 
240     public void setConfigurationService(ConfigurationService kualiConfigurationService) {
241         this.kualiConfigurationService = kualiConfigurationService;
242     }
243 
244 
245 }