001/* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.ole.select.batch.service.impl; 017 018import org.kuali.ole.module.purap.PurapConstants.RequisitionStatuses; 019import org.kuali.ole.module.purap.businessobject.PurApAccountingLine; 020import org.kuali.ole.module.purap.businessobject.RequisitionAccount; 021import org.kuali.ole.module.purap.businessobject.RequisitionItem; 022import org.kuali.ole.module.purap.document.RequisitionDocument; 023import org.kuali.ole.select.OleSelectConstant; 024import org.kuali.ole.select.batch.service.OleRequisitionCreateDocumentService; 025import org.kuali.ole.select.batch.service.RequisitionCreateDocumentService; 026import org.kuali.ole.select.businessobject.*; 027import org.kuali.ole.select.document.OleRequisitionDocument; 028import org.kuali.ole.select.document.service.OleRequestSourceService; 029import org.kuali.ole.select.document.service.OleRequestorService; 030import org.kuali.ole.select.service.BibInfoService; 031import org.kuali.ole.select.validation.BibInfoValidation; 032import org.kuali.ole.select.validation.StandardNumberValidation; 033import org.kuali.ole.select.validation.impl.BibinfoValidationImpl; 034import org.kuali.ole.select.validation.impl.StandardNumberValidationImpl; 035import org.kuali.ole.sys.OLEConstants; 036import org.kuali.ole.sys.OLEConstants.FinancialDocumentTypeCodes; 037import org.kuali.ole.sys.businessobject.Building; 038import org.kuali.ole.sys.context.SpringContext; 039import org.kuali.ole.vnd.VendorConstants; 040import org.kuali.ole.vnd.businessobject.VendorAddress; 041import org.kuali.ole.vnd.businessobject.VendorContract; 042import org.kuali.ole.vnd.businessobject.VendorDetail; 043import org.kuali.ole.vnd.document.service.VendorService; 044import org.kuali.rice.core.api.config.property.ConfigurationService; 045import org.kuali.rice.core.api.util.type.KualiDecimal; 046import org.kuali.rice.kew.api.exception.WorkflowException; 047import org.kuali.rice.krad.service.BusinessObjectService; 048import org.kuali.rice.krad.service.DocumentService; 049import org.kuali.rice.krad.util.ObjectUtils; 050 051import java.math.BigDecimal; 052import java.util.*; 053 054public class OleRequisitionCreateDocumentServiceImpl extends RequisitionCreateDocumentServiceImpl implements OleRequisitionCreateDocumentService { 055 056 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OleRequisitionCreateDocumentServiceImpl.class); 057 058 protected RequisitionCreateDocumentService requisitionCreateDocumentService; 059 protected OleRequestorService oleRequestorService; 060 protected VendorService vendorService; 061 protected OleRequestSourceService oleRequestSourceService; 062 protected BusinessObjectService businessObjectService; 063 protected DocumentService documentService; 064 protected BibInfoService bibInfoService; 065 protected ConfigurationService kualiConfigurationService; 066 protected List reqList; 067 068 public RequisitionCreateDocumentService getRequisitionCreateDocumentService() { 069 return requisitionCreateDocumentService; 070 } 071 072 public void setRequisitionCreateDocumentService(RequisitionCreateDocumentService requisitionCreateDocumentService) { 073 this.requisitionCreateDocumentService = requisitionCreateDocumentService; 074 } 075 076 public OleRequestorService getOleRequestorService() { 077 return oleRequestorService; 078 } 079 080 public void setOleRequestorService(OleRequestorService oleRequestorService) { 081 this.oleRequestorService = oleRequestorService; 082 } 083 084 public VendorService getVendorService() { 085 return vendorService; 086 } 087 088 public void setVendorService(VendorService vendorService) { 089 this.vendorService = vendorService; 090 } 091 092 public OleRequestSourceService getOleRequestSourceService() { 093 return oleRequestSourceService; 094 } 095 096 public void setOleRequestSourceService(OleRequestSourceService oleRequestSourceService) { 097 this.oleRequestSourceService = oleRequestSourceService; 098 } 099 100 public BibInfoService getBibInfoService() { 101 return bibInfoService; 102 } 103 104 public void setBibInfoService(BibInfoService bibInfoService) { 105 this.bibInfoService = bibInfoService; 106 } 107 108 public BusinessObjectService getBusinessObjectService() { 109 return businessObjectService; 110 } 111 112 public void setBusinessObjectService(BusinessObjectService businessObjectService) { 113 this.businessObjectService = businessObjectService; 114 } 115 116 public List getReqList() { 117 return reqList; 118 } 119 120 public ConfigurationService getConfigurationService() { 121 return kualiConfigurationService; 122 } 123 124 public void setConfigurationService(ConfigurationService kualiConfigurationService) { 125 this.kualiConfigurationService = kualiConfigurationService; 126 } 127 128 /** 129 * Set the values for the Requisition Document and save. 130 * 131 * @param bibInfoBeanList ArrayList 132 */ 133 public String saveRequisitionDocument(List<BibInfoBean> bibInfoBeanList, boolean vendorRecordMappingFlag) throws Exception { 134 String docNumber = ""; 135 vendorService = getVendorService(); 136 oleRequestorService = getOleRequestorService(); 137 requisitionCreateDocumentService = getRequisitionCreateDocumentService(); 138 oleRequestSourceService = getOleRequestSourceService(); 139 if (vendorRecordMappingFlag) { 140 reqList = new ArrayList(0); 141 HashMap<String, String> dataMap = new HashMap<String, String>(); 142 if (bibInfoBeanList.iterator().hasNext()) { 143 if (bibInfoBeanList.iterator().next().getRequisitionSource().equals(OleSelectConstant.REQUISITON_SRC_TYPE_MANUALINGEST)) { 144 dataMap.put(OleSelectConstant.DOC_CATEGORY_TYPE, OleSelectConstant.DOC_CATEGORY_TYPE_ITEM); 145 bibInfoBeanList = bibInfoService.getUUID(bibInfoBeanList, dataMap); 146 } 147 } 148 for (BibInfoBean bibInfoBean : bibInfoBeanList) { 149 StandardNumberValidation validation = new StandardNumberValidationImpl(); 150 BibInfoValidation mandatoryValidation = new BibinfoValidationImpl(); 151 String message = validation.isValidStandardNumbers(bibInfoBean); 152 message = mandatoryValidation.validateMadatory(bibInfoBean); 153 if (message.equalsIgnoreCase(OleSelectConstant.STATUS) || message.equals("")) { 154 OleRequisitionDocument requisitionDocument = createRequisitionDocument(); 155 requisitionDocument.setItems(generateItemList(bibInfoBean)); 156 //requisitionDocument.setBoNotes(generateBoNotesList(bibInfoBean)); 157 requisitionDocument.setRequisitionSourceCode(bibInfoBean.getRequisitionSource()); 158 if (bibInfoBeanList != null && bibInfoBeanList.size() > 0) { 159 160 if (bibInfoBean.getPurchaseOrderType() != null) { 161 requisitionDocument.setPurchaseOrderTypeId(bibInfoBean.getPurchaseOrderType()); 162 } /*else{ 163 requisitionDocument.setPurchaseOrderTypeId("firm_fixed_ybp"); 164 }*/ 165 setDocumentValues(requisitionDocument, bibInfoBean); 166 } 167 // requisitionCreateDocumentService.saveRequisitionDocuments(requisitionDocument); 168 docNumber = requisitionCreateDocumentService.saveRequisitionDocuments(requisitionDocument); 169 reqList.add(requisitionDocument.getPurapDocumentIdentifier()); 170 171 } else { 172 docNumber = message; 173 } 174 } 175 176 } else { 177 OleRequisitionDocument requisitionDocument = createRequisitionDocument(); 178 requisitionDocument.setItems(generateMultipleItemsForOneRequisition(bibInfoBeanList)); 179 if (bibInfoBeanList != null && bibInfoBeanList.size() > 0) { 180 if (bibInfoBeanList.get(1).getPurchaseOrderType() != null) { 181 requisitionDocument.setPurchaseOrderTypeId(bibInfoBeanList.get(1).getPurchaseOrderType()); 182 } /*else{ 183 requisitionDocument.setPurchaseOrderTypeId("firm_fixed_ybp"); 184 }*/ 185 186 setDocumentValues(requisitionDocument, bibInfoBeanList.get(1)); 187 } 188 docNumber = requisitionCreateDocumentService.saveRequisitionDocuments(requisitionDocument); 189 190 } 191 return docNumber; 192 } 193 194 /** 195 * To create the Requisition document object 196 * 197 * @return OleRequisitionDocument 198 */ 199 protected OleRequisitionDocument createRequisitionDocument() throws WorkflowException { 200 return (OleRequisitionDocument) SpringContext.getBean(DocumentService.class).getNewDocument(FinancialDocumentTypeCodes.REQUISITION); 201 } 202 203 /** 204 * To create the requisition document 205 * 206 * @param bibInfoBean BibInfoBean 207 * @return RequisitionDocument 208 */ 209 protected RequisitionDocument setDocumentValues(OleRequisitionDocument requisitionDocument, BibInfoBean bibInfoBean) throws Exception { 210 // ******************Document Overview Section****************** 211 //requisitionDocument.getDocumentHeader().setDocumentDescription(bibInfoBean.getIsbn()); 212 // requisitionDocument.setStatusCode(PurapConstants.RequisitionStatuses.APPDOC_IN_PROCESS); 213 requisitionDocument.setApplicationDocumentStatus(RequisitionStatuses.APPDOC_IN_PROCESS); 214 requisitionDocument.setVendorPoNumber(bibInfoBean.getYbp()); 215 // ******************Financial Document Detail Section****************** 216 //requisitionDocument.setFinancialYear(bibInfoBean.getFinancialYear()); 217 218 219 // ******************Requisition Detail Section****************** 220 221 requisitionDocument.setChartOfAccountsCode(bibInfoBean.getChartOfAccountsCode()); 222 requisitionDocument.setOrganizationCode(bibInfoBean.getOrganizationCode()); 223 requisitionDocument.setDocumentFundingSourceCode(bibInfoBean.getDocumentFundingSourceCode()); 224 requisitionDocument.setUseTaxIndicator(bibInfoBean.isUseTaxIndicator()); 225 226 // ******************Delivery Section****************** 227 228 setDeliveryDetails(requisitionDocument, bibInfoBean); 229 requisitionDocument.setDeliveryCampusCode(bibInfoBean.getDeliveryCampusCode()); 230 231 // ******************Vendor Section****************** 232 233 setVendorDetails(requisitionDocument, bibInfoBean); 234 235 // ******************Items Section****************** 236 // requisitionDocument.setListprice(bibInfoBean.getListprice()); 237 // requisitionDocument.setQuantity(bibInfoBean.getQuantity()); 238 239 // ******************Capital Assets Section****************** 240 // ******************Payment INfo Section****************** 241 if (LOG.isDebugEnabled()) 242 LOG.debug("----------Billing Name in OleRequisition--------------" + bibInfoBean.getBillingName()); 243 requisitionDocument.setBillingName(bibInfoBean.getBillingName()); 244 requisitionDocument.setBillingLine1Address(bibInfoBean.getBillingLine1Address()); 245 requisitionDocument.setBillingCityName(bibInfoBean.getBillingCityName()); 246 requisitionDocument.setBillingStateCode(bibInfoBean.getBillingStateCode()); 247 requisitionDocument.setBillingPostalCode(bibInfoBean.getBillingPostalCode()); 248 requisitionDocument.setBillingPhoneNumber(bibInfoBean.getBillingPhoneNumber()); 249 requisitionDocument.setBillingCountryCode(bibInfoBean.getBillingCountryCode()); 250 requisitionDocument.setDeliveryBuildingRoomNumber(bibInfoBean.getDeliveryBuildingRoomNumber()); 251 // ******************Additional Institutional Info Section****************** 252 253 requisitionDocument.setPurchaseOrderTransmissionMethodCode(bibInfoBean.getPurchaseOrderTransmissionMethodCode()); 254 requisitionDocument.setPurchaseOrderCostSourceCode(bibInfoBean.getPurchaseOrderCostSourceCode()); 255 requisitionDocument.setRequestorPersonName(bibInfoBean.getRequestorPersonName()); 256 requisitionDocument.setRequestorPersonPhoneNumber(bibInfoBean.getRequestorPersonPhoneNumber()); 257 requisitionDocument.setRequestorPersonEmailAddress(bibInfoBean.getRequestorPersonEmailAddress()); 258 259 // ******************Account Summary Section****************** 260 // ******************View Related Documents Section****************** 261 // ******************View Payment History Section****************** 262 // ******************Notes and Attachments Section****************** 263 // ******************Ad Hoc Recipients Section****************** 264 // ******************Route Log Section ****************** 265 266 267 // ******************Common Document Properties..****************** 268 //requisitionDocument.setFundcode(bibInfoBean.getAccountNumber()); 269 //requisitionDocument.setLocation(bibInfoBean.getLocation()); 270 //requsitionDocument.setSubAccountNumber(bibInfoBean.getSubAccountNumber()); 271 //requisitionDocument.setRequisitionSourceCode(PurapConstants.RequisitionSources.STANDARD_ORDER); 272 requisitionDocument.setOrganizationAutomaticPurchaseOrderLimit(new KualiDecimal(bibInfoBean.getOrganizationAutomaticPurchaseOrderLimit())); 273 requisitionDocument.setPurchaseOrderAutomaticIndicator(bibInfoBean.isPurchaseOrderAutomaticIndicator()); 274 requisitionDocument.setReceivingDocumentRequiredIndicator(bibInfoBean.isReceivingDocumentRequiredIndicator()); 275 requisitionDocument.setPaymentRequestPositiveApprovalIndicator(bibInfoBean.isPaymentRequestPositiveApprovalIndicator()); 276 277 /*requisitionDocument.setLicensingRequirementIndicator(bibInfoBean.isLicensingRequirementIndicator());*/ 278 /*requisitionDocument.setLicensingRequirementCode(bibInfoBean.getLicensingRequirementCode());*/ 279 280 return requisitionDocument; 281 282 } 283 284 /** 285 * To set the delivery details for the Requisition Document 286 * 287 * @param bibInfoBean BibInfoBean 288 * @return requisitionDocument OleRequisitionDocument 289 */ 290 private void setDeliveryDetails(OleRequisitionDocument requisitionDocument, BibInfoBean bibInfoBean) { 291 if (LOG.isDebugEnabled()) 292 LOG.debug("bibInfoBean.getDeliveryBuildingCode----------->" + bibInfoBean.getDeliveryBuildingCode()); 293 294 if (bibInfoBean.getDeliveryCampusCode() != null && bibInfoBean.getDeliveryBuildingCode() != null) { 295 Building building = vendorService.getBuildingDetails(bibInfoBean.getDeliveryCampusCode(), bibInfoBean.getDeliveryBuildingCode()); 296 if (building != null) { 297 requisitionDocument.setDeliveryBuildingCode(building.getBuildingCode()); 298 requisitionDocument.setDeliveryCampusCode(building.getCampusCode()); 299 requisitionDocument.setDeliveryBuildingLine1Address(building.getBuildingStreetAddress()); 300 requisitionDocument.setDeliveryBuildingName(building.getBuildingName()); 301 requisitionDocument.setDeliveryCityName(building.getBuildingAddressCityName()); 302 requisitionDocument.setDeliveryStateCode(building.getBuildingAddressStateCode()); 303 requisitionDocument.setDeliveryPostalCode(building.getBuildingAddressZipCode()); 304 requisitionDocument.setDeliveryCountryCode(building.getBuildingAddressCountryCode()); 305 } 306 } 307 requisitionDocument.setDeliveryToName(bibInfoBean.getDeliveryToName()); 308 requisitionDocument.setDeliveryBuildingOtherIndicator(bibInfoBean.isDeliveryBuildingOtherIndicator()); 309 } 310 311 /** 312 * To set the vendor details for the Requisition Document 313 * 314 * @param bibInfoBean BibInfoBean 315 * @return requisitionDocument OleRequisitionDocument 316 */ 317 private void setVendorDetails(OleRequisitionDocument requisitionDocument, BibInfoBean bibInfoBean) { 318 if (bibInfoBean.getVendorCode() != null) { 319 VendorDetail vendorDetail = vendorService.getVendorDetail(bibInfoBean.getVendorCode()); 320 321 requisitionDocument.setVendorCustomerNumber(bibInfoBean.getVendorCustomerNumber()); 322 requisitionDocument.setVendorNumber(bibInfoBean.getVendorCode()); 323 requisitionDocument.setVendorNumber(vendorDetail.getVendorNumber()); 324 requisitionDocument.setVendorName(vendorDetail.getVendorName()); 325 requisitionDocument.setVendorHeaderGeneratedIdentifier(vendorDetail.getVendorHeaderGeneratedIdentifier()); 326 requisitionDocument.setVendorDetailAssignedIdentifier(vendorDetail.getVendorDetailAssignedIdentifier()); 327 requisitionDocument.setVendorDetail(vendorDetail); 328 329 String deliveryCampus = bibInfoBean.getDeliveryCampusCode(); 330 Integer headerId = null; 331 Integer detailId = null; 332 int dashInd = vendorDetail.getVendorNumber().indexOf('-'); 333 // make sure there's at least one char before and after '-' 334 if (dashInd > 0 && dashInd < vendorDetail.getVendorNumber().length() - 1) { 335 headerId = new Integer(vendorDetail.getVendorNumber().substring(0, dashInd)); 336 detailId = new Integer(vendorDetail.getVendorNumber().substring(dashInd + 1)); 337 } 338 VendorAddress vendorAddress = vendorService.getVendorDefaultAddress(headerId, detailId, VendorConstants.AddressTypes.PURCHASE_ORDER, deliveryCampus); 339 setVendorAddress(vendorAddress, requisitionDocument); 340 341 List<VendorContract> vendorContracts = vendorDetail.getVendorContracts(); 342 for (Iterator<VendorContract> vendorContract = vendorContracts.iterator(); vendorContract.hasNext(); ) { 343 requisitionDocument.setVendorContractGeneratedIdentifier((vendorContract.next()).getVendorContractGeneratedIdentifier()); 344 } 345 } 346 347 } 348 349 /** 350 * To generate single Item list for the Requisition Document 351 * 352 * @param bibInfoBean BibInfoBean 353 * @return ArrayList 354 */ 355 private List<RequisitionItem> generateItemList(BibInfoBean bibInfoBean) throws Exception { 356 List<RequisitionItem> items = new ArrayList<RequisitionItem>(); 357 int itemLineNumber = 1; 358 items.add(createRequisitionItem(bibInfoBean, itemLineNumber)); 359 return items; 360 } 361 /*private List<Note> generateBoNotesList(BibInfoBean bibInfoBean) { 362 List<Note> notes = new ArrayList<Note>(); 363 notes.add(createNotes(bibInfoBean)); 364 return notes; 365 }*/ 366 367 /** 368 * To generate multiple Item list for the Requisition Document 369 * 370 * @param bibInfoBeanList List<BibInfoBean> 371 * @return ArrayList 372 */ 373 private List<RequisitionItem> generateMultipleItemsForOneRequisition(List<BibInfoBean> bibInfoBeanList) throws Exception { 374 List<RequisitionItem> items = new ArrayList<RequisitionItem>(); 375 int itemLineNumber = 0; 376 // set items to document 377 for (BibInfoBean tempBibInfoBean : bibInfoBeanList) { 378 itemLineNumber++; 379 items.add(createRequisitionItem(tempBibInfoBean, itemLineNumber)); 380 } 381 return items; 382 } 383 384 /** 385 * To create the requisition item for the Requisition Document. 386 * 387 * @param bibInfoBean BibInfoBean 388 * @return RequisitionItem 389 */ 390 @SuppressWarnings("deprecation") 391 protected RequisitionItem createRequisitionItem(BibInfoBean bibInfoBean, int itemLineNumber) throws Exception { 392 OleRequisitionItem item = new OleRequisitionItem(); 393 394 item.setBibInfoBean(bibInfoBean); 395 item.setItemLineNumber(itemLineNumber); 396 item.setItemUnitOfMeasureCode(bibInfoBean.getUom()); 397 item.setItemQuantity(new KualiDecimal(bibInfoBean.getQuantity())); 398 item.setItemDescription(bibInfoBean.getIsbn()); 399 item.setItemUnitPrice(new BigDecimal(bibInfoBean.getListprice())); 400 item.setItemTypeCode(bibInfoBean.getItemTypeCode()); 401 item.setItemListPrice(new KualiDecimal(bibInfoBean.getListprice())); 402 if (ObjectUtils.isNotNull(bibInfoBean.getTitleId())) { 403 item.setItemTitleId(bibInfoBean.getTitleId()); 404 } 405 406 if (item.getItemType() == null) { 407 org.kuali.ole.module.purap.businessobject.ItemType itemType = businessObjectService.findBySinglePrimaryKey(org.kuali.ole.module.purap.businessobject.ItemType.class, bibInfoBean.getItemTypeCode()); 408 item.setItemType(itemType); 409 } 410 411 RequisitionAccount requisitionAccount = new RequisitionAccount(); 412 requisitionAccount.setChartOfAccountsCode(bibInfoBean.getChart()); 413 requisitionAccount.setAccountNumber(bibInfoBean.getAccountNumber()); 414 requisitionAccount.setFinancialObjectCode(bibInfoBean.getObjectCode()); 415 requisitionAccount.setDebitCreditCode(OLEConstants.GL_DEBIT_CODE); 416 if (bibInfoBean.getListprice() != null) { 417 requisitionAccount.setAmount(new KualiDecimal(bibInfoBean.getListprice())); 418 } 419 if (bibInfoBean.getPercent() != null) { 420 requisitionAccount.setAccountLinePercent(new BigDecimal(bibInfoBean.getPercent())); 421 } 422 if (bibInfoBean.getAccountNumber() != null) { 423 List<PurApAccountingLine> sourceAccountingLines = item.getSourceAccountingLines(); 424 if (sourceAccountingLines.size() == 0) { 425 sourceAccountingLines = new ArrayList<PurApAccountingLine>(0); 426 } 427 sourceAccountingLines.add((PurApAccountingLine) requisitionAccount); 428 item.setSourceAccountingLines(sourceAccountingLines); 429 } 430 431/* OleRequestor oleRequestor = checkRequestorExist(bibInfoBean); 432 if(oleRequestor == null) { 433 434 oleRequestor = new OleRequestor(); 435 oleRequestor = saveRequestor(bibInfoBean, oleRequestor); 436 } 437 438 item.setOleRequestor(oleRequestor); 439 440 item.setRequestorId(oleRequestor.getRequestorId()); 441// item.setRequestSourceTypeId(oleRequestSourceService.getRequestSourceTypeId(bibInfoBean.getRequestSource())); 442 item.setRequestorFirstName(oleRequestor.getRequestorFirstName()); 443 444 item.setRequestorLastName(oleRequestor.getRequestorLastName());*/ 445 item.setRequestorId(bibInfoBean.getRequestorId()); 446 item.setRequestSourceUrl(bibInfoBean.getRequestSourceUrl()); 447 448 //getOleRequestorService().saveRequestor(oleRequestor); 449 450 String requestorType = bibInfoBean.getRequestorType(); 451 452 if (requestorType == null || "".equals(requestorType)) { 453 454 requestorType = OleSelectConstant.REQUESTOR_TYPE_STAFF; 455 } 456 457 int requestorTypeId = getRequestorTypeId(requestorType); 458 item.setRequestorTypeId(requestorTypeId); 459 if (bibInfoBean.getRequisitionSource().equals(OleSelectConstant.REQUISITON_SRC_TYPE_WEBFORM) && !bibInfoBean.getRequestersNotes().trim().equals("")) { 460 OleRequisitionNotes note = new OleRequisitionNotes(); 461 Map notes = new HashMap(); 462 String noteType = OleSelectConstant.REQUESTOR_NOTES_PRE_ORDER_SERVICE; 463 notes.put("noteType", noteType); 464 List<OleNoteType> noteTypeList = (List) businessObjectService.findMatching(org.kuali.ole.select.businessobject.OleNoteType.class, notes); 465 note.setNoteTypeId(noteTypeList.get(0).getNoteTypeId()); 466 note.setNote(bibInfoBean.getRequestersNotes()); 467 item.getNotes().add(note); 468 } 469 return item; 470 } 471 472 public int getRequestorTypeId(String requestorType) { 473 int requestorTypeId; 474 Map requestorTypeMap = new HashMap(); 475 requestorTypeMap.put("requestorType", requestorType); 476 BusinessObjectService businessObjectService = SpringContext.getBean(org.kuali.rice.krad.service.BusinessObjectService.class); 477 List<OleRequestorType> requestorTypeIdList = (List) businessObjectService.findMatching(OleRequestorType.class, requestorTypeMap); 478 Iterator itr = requestorTypeIdList.iterator(); 479 requestorTypeId = requestorTypeIdList.iterator().next().getRequestorTypeId(); 480 return requestorTypeId; 481 } 482 483/* public Integer getRequestSourceTypeId(String requestSourceType)throws Exception{ 484 Integer requestSourceTypeId = null; 485 Map requestorSourceTypeMap = new HashMap(); 486 requestorSourceTypeMap.put("requestSourceType", requestSourceType); 487 BusinessObjectService businessObjectService = SpringContext.getBean(org.kuali.rice.krad.service.BusinessObjectService.class); 488 List<OleRequestSourceType> requestorSourceTypeList = (List) businessObjectService.findMatching(OleRequestSourceType.class, requestorSourceTypeMap); 489 if(requestorSourceTypeList.iterator().hasNext()){ 490 requestSourceTypeId = requestorSourceTypeList.iterator().next().getRequestSourceTypeId(); 491 } 492 return requestSourceTypeId; 493 }*/ 494 495 /** 496 * This method will check whether Requestor exist ,if exist returns existing record if not save the requester. 497 * 498 * @param bibInfoBean 499 * @return OleRequestor 500 */ 501 protected OleRequestor checkRequestorExist(BibInfoBean bibInfoBean) { 502 503 String requestorFirstName = bibInfoBean.getRequestorsFirstName(); 504 String requestorLastName = bibInfoBean.getRequestorsLastName(); 505 String firstName; 506 String lastName; 507 Map requestorName = new HashMap(); 508 requestorName.put("requestorFirstName", requestorFirstName); 509 requestorName.put("requestorLastName", requestorLastName); 510 List<OleRequestor> requestorList = (List) businessObjectService.findMatching(OleRequestor.class, requestorName); 511 if (requestorList.size() < 1) { 512 return null; 513 } else { 514 for (int i = 0; i < requestorList.size(); i++) { 515 firstName = requestorList.get(i).getRequestorFirstName().toString(); 516 lastName = requestorList.get(i).getRequestorLastName().toString(); 517 if (requestorFirstName.equalsIgnoreCase(firstName) && requestorLastName.equalsIgnoreCase(lastName)) { 518 return requestorList.get(i); 519 } 520 } 521 return null; 522 } 523 } 524 525 /** 526 * This method will set the values on OleRequestor and save. 527 * 528 * @return OleRequestor 529 */ 530 protected OleRequestor saveRequestor(BibInfoBean bibInfoBean, OleRequestor oleRequestor) { 531 532 if ((bibInfoBean.getRequestorsFirstName() != null && bibInfoBean.getRequestorsFirstName().length() > 0) 533 || (bibInfoBean.getRequestorsLastName() != null && bibInfoBean.getRequestorsLastName().length() > 0) 534 || (bibInfoBean.getRequestorsEmail() != null && bibInfoBean.getRequestorsEmail().length() > 0)) { 535 oleRequestor.setRequestorFirstName(bibInfoBean.getRequestorsFirstName() != null ? bibInfoBean.getRequestorsFirstName() : ""); 536 oleRequestor.setRequestorLastName(bibInfoBean.getRequestorsLastName() != null ? bibInfoBean.getRequestorsLastName() : ""); 537 oleRequestor.setRequestorAddress1(bibInfoBean.getRequestorsAddress1() != null ? bibInfoBean.getRequestorsAddress1() : ""); 538 oleRequestor.setRequestorAddress2(bibInfoBean.getRequestorsAddress2() != null ? bibInfoBean.getRequestorsAddress2() : ""); 539 oleRequestor.setRequestorCityName(bibInfoBean.getRequestorsCity() != null ? bibInfoBean.getRequestorsCity() : ""); 540 oleRequestor.setRequestorStateCode(bibInfoBean.getRequestorsState() != null ? bibInfoBean.getRequestorsState() : ""); 541 oleRequestor.setRequestorPostalCode(bibInfoBean.getRequestorsZipCode() != null ? bibInfoBean.getRequestorsZipCode() : ""); 542 oleRequestor.setRequestorCountryCode(bibInfoBean.getRequestorsCountryCode() != null ? bibInfoBean.getRequestorsCountryCode() : ""); 543 oleRequestor.setRequestorPhoneNumber(bibInfoBean.getRequestorsPhone() != null ? bibInfoBean.getRequestorsPhone() : ""); 544 oleRequestor.setRequestorEmail(bibInfoBean.getRequestorsEmail() != null ? bibInfoBean.getRequestorsEmail() : ""); 545 oleRequestor.setRequestorSms(bibInfoBean.getRequestorsSMS() != null ? bibInfoBean.getRequestorsSMS() : ""); 546 oleRequestor.setRequestorTypeId(bibInfoBean.getRequestorType() != null ? Integer.toString(getRequestorTypeId(bibInfoBean.getRequestorType())) : ""); 547 getOleRequestorService().saveRequestor(oleRequestor); 548 } 549 /*else{ 550 Properties properties = loadPropertiesFromClassPath("org/kuali/ole/select/batch/service/impl/bibinfo.properties"); 551 oleRequestor.setRequestorFirstName(properties.getProperty("firstName")); 552 oleRequestor.setRequestorLastName(properties.getProperty("lastName")); 553 oleRequestor.setRequestorAddress1(properties.getProperty("address1")); 554 oleRequestor.setRequestorAddress2(properties.getProperty("address2")); 555 oleRequestor.setRequestorCityName(properties.getProperty("city")); 556 oleRequestor.setRequestorStateCode(properties.getProperty("stateCode")); 557 oleRequestor.setRequestorPostalCode(properties.getProperty("postalCode")); 558 oleRequestor.setRequestorCountryCode(properties.getProperty("countryCode")); 559 oleRequestor.setRequestorPhoneNumber(properties.getProperty("phoneNumber")); 560 oleRequestor.setRequestorEmail(properties.getProperty("email")); 561 oleRequestor.setRequestorSms(properties.getProperty("sms")); 562 } 563 getOleRequestorService().saveRequestor(oleRequestor);*/ 564 565 566 return oleRequestor; 567 } 568 569 570 /** 571 * Set the Vendor address of the given ID. 572 * 573 * @param vendorAddress VendorAddress 574 * @param requisitionDocument RequisitionDocument 575 */ 576 protected void setVendorAddress(VendorAddress vendorAddress, RequisitionDocument requisitionDocument) { 577 578 if (vendorAddress != null) { 579 requisitionDocument.setVendorAddressGeneratedIdentifier(vendorAddress.getVendorAddressGeneratedIdentifier()); 580 requisitionDocument.setVendorAddressInternationalProvinceName(vendorAddress.getVendorAddressInternationalProvinceName()); 581 requisitionDocument.setVendorLine1Address(vendorAddress.getVendorLine1Address()); 582 requisitionDocument.setVendorLine2Address(vendorAddress.getVendorLine2Address()); 583 requisitionDocument.setVendorCityName(vendorAddress.getVendorCityName()); 584 requisitionDocument.setVendorStateCode(vendorAddress.getVendorStateCode()); 585 requisitionDocument.setVendorPostalCode(vendorAddress.getVendorZipCode()); 586 requisitionDocument.setVendorCountryCode(vendorAddress.getVendorCountryCode()); 587 } 588 589 } 590 591 592}