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 */
016 package org.kuali.kfs.module.purap.document;
017
018 import java.sql.Date;
019 import java.util.ArrayList;
020 import java.util.Iterator;
021 import java.util.List;
022
023 import org.apache.commons.lang.StringUtils;
024 import org.kuali.kfs.coa.businessobject.Account;
025 import org.kuali.kfs.coa.businessobject.Chart;
026 import org.kuali.kfs.coa.businessobject.Organization;
027 import org.kuali.kfs.integration.purap.CapitalAssetLocation;
028 import org.kuali.kfs.integration.purap.CapitalAssetSystem;
029 import org.kuali.kfs.integration.purap.ItemCapitalAsset;
030 import org.kuali.kfs.module.purap.PurapConstants;
031 import org.kuali.kfs.module.purap.PurapPropertyConstants;
032 import org.kuali.kfs.module.purap.businessobject.BillingAddress;
033 import org.kuali.kfs.module.purap.businessobject.CapitalAssetSystemState;
034 import org.kuali.kfs.module.purap.businessobject.CapitalAssetSystemType;
035 import org.kuali.kfs.module.purap.businessobject.DeliveryRequiredDateReason;
036 import org.kuali.kfs.module.purap.businessobject.FundingSource;
037 import org.kuali.kfs.module.purap.businessobject.PurApItem;
038 import org.kuali.kfs.module.purap.businessobject.PurchaseOrderTransmissionMethod;
039 import org.kuali.kfs.module.purap.businessobject.PurchasingCapitalAssetItem;
040 import org.kuali.kfs.module.purap.businessobject.PurchasingItem;
041 import org.kuali.kfs.module.purap.businessobject.PurchasingItemBase;
042 import org.kuali.kfs.module.purap.businessobject.ReceivingAddress;
043 import org.kuali.kfs.module.purap.businessobject.RecurringPaymentType;
044 import org.kuali.kfs.module.purap.businessobject.RequisitionSource;
045 import org.kuali.kfs.module.purap.document.service.PurapService;
046 import org.kuali.kfs.module.purap.document.service.PurchasingDocumentSpecificService;
047 import org.kuali.kfs.module.purap.document.service.PurchasingService;
048 import org.kuali.kfs.module.purap.document.service.ReceivingAddressService;
049 import org.kuali.kfs.module.purap.util.ItemParser;
050 import org.kuali.kfs.module.purap.util.ItemParserBase;
051 import org.kuali.kfs.sys.context.SpringContext;
052 import org.kuali.kfs.vnd.VendorPropertyConstants;
053 import org.kuali.kfs.vnd.businessobject.CampusParameter;
054 import org.kuali.kfs.vnd.businessobject.CommodityCode;
055 import org.kuali.kfs.vnd.businessobject.PurchaseOrderCostSource;
056 import org.kuali.kfs.vnd.businessobject.VendorAddress;
057 import org.kuali.kfs.vnd.businessobject.VendorContract;
058 import org.kuali.kfs.vnd.businessobject.VendorDetail;
059 import org.kuali.kfs.vnd.document.service.VendorService;
060 import org.kuali.rice.kns.bo.Country;
061 import org.kuali.rice.kns.rule.event.ApproveDocumentEvent;
062 import org.kuali.rice.kns.rule.event.KualiDocumentEvent;
063 import org.kuali.rice.kns.rule.event.RouteDocumentEvent;
064 import org.kuali.rice.kns.service.CountryService;
065 import org.kuali.rice.kns.service.DateTimeService;
066 import org.kuali.rice.kns.util.GlobalVariables;
067 import org.kuali.rice.kns.util.KualiDecimal;
068 import org.kuali.rice.kns.util.ObjectUtils;
069 import org.kuali.rice.kns.util.TypedArrayList;
070
071 /**
072 * Base class for Purchasing Documents.
073 */
074 public abstract class PurchasingDocumentBase extends PurchasingAccountsPayableDocumentBase implements PurchasingDocument {
075 protected static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(PurchasingDocumentBase.class);
076
077 // SHARED FIELDS BETWEEN REQUISITION AND PURCHASE ORDER
078 protected String documentFundingSourceCode;
079 protected String requisitionSourceCode;
080 protected String purchaseOrderTransmissionMethodCode;
081 protected String purchaseOrderCostSourceCode;
082 protected String deliveryRequiredDateReasonCode;
083 protected String recurringPaymentTypeCode;
084 protected String chartOfAccountsCode;
085 protected String organizationCode;
086 protected String deliveryCampusCode;
087 protected KualiDecimal purchaseOrderTotalLimit;
088 protected Boolean vendorRestrictedIndicator;
089 protected String vendorPhoneNumber;
090 protected String vendorFaxNumber;
091 protected Integer vendorContractGeneratedIdentifier;
092 protected String vendorNoteText;
093 protected String requestorPersonName;
094 protected String requestorPersonEmailAddress;
095 protected String requestorPersonPhoneNumber;
096 protected String nonInstitutionFundOrgChartOfAccountsCode;
097 protected String nonInstitutionFundOrganizationCode;
098 protected String nonInstitutionFundChartOfAccountsCode;
099 protected String nonInstitutionFundAccountNumber;
100 protected boolean deliveryBuildingOtherIndicator;
101 protected String deliveryBuildingCode;
102 protected String deliveryBuildingName;
103 protected String deliveryBuildingRoomNumber;
104 protected String deliveryBuildingLine1Address;
105 protected String deliveryBuildingLine2Address;
106 protected String deliveryCityName;
107 protected String deliveryStateCode;
108 protected String deliveryPostalCode;
109 protected String deliveryCountryCode;
110 protected String deliveryToName;
111 protected String deliveryToEmailAddress;
112 protected String deliveryToPhoneNumber;
113 protected Date deliveryRequiredDate;
114 protected String deliveryInstructionText;
115 protected Date purchaseOrderBeginDate;
116 protected Date purchaseOrderEndDate;
117 protected String institutionContactName;
118 protected String institutionContactPhoneNumber;
119 protected String institutionContactEmailAddress;
120 protected String billingName;
121 protected String billingLine1Address;
122 protected String billingLine2Address;
123 protected String billingCityName;
124 protected String billingStateCode;
125 protected String billingPostalCode;
126 protected String billingCountryCode;
127 protected String billingPhoneNumber;
128 protected String receivingName;
129 protected String receivingLine1Address;
130 protected String receivingLine2Address;
131 protected String receivingCityName;
132 protected String receivingStateCode;
133 protected String receivingPostalCode;
134 protected String receivingCountryCode;
135 protected boolean addressToVendorIndicator; // if true, use receiving address
136 protected String externalOrganizationB2bSupplierIdentifier;
137 protected boolean purchaseOrderAutomaticIndicator;
138 protected String vendorPaymentTermsCode;
139 protected String vendorShippingTitleCode;
140 protected String vendorShippingPaymentTermsCode;
141 protected String capitalAssetSystemTypeCode;
142 protected String capitalAssetSystemStateCode;
143
144 // NOT PERSISTED IN DB
145 protected String supplierDiversityLabel;
146 protected String vendorContactsLabel;
147
148 // REFERENCE OBJECTS
149 protected FundingSource fundingSource;
150 protected RequisitionSource requisitionSource;
151 protected PurchaseOrderTransmissionMethod purchaseOrderTransmissionMethod;
152 protected PurchaseOrderCostSource purchaseOrderCostSource;
153 protected DeliveryRequiredDateReason deliveryRequiredDateReason;
154 protected RecurringPaymentType recurringPaymentType;
155 protected Organization organization;
156 protected Chart chartOfAccounts;
157 protected CampusParameter deliveryCampus;
158 protected Chart nonInstitutionFundOrgChartOfAccounts;
159 protected Organization nonInstitutionFundOrganization;
160 protected Account nonInstitutionFundAccount;
161 protected Chart nonInstitutionFundChartOfAccounts;
162 protected VendorContract vendorContract;
163 protected CapitalAssetSystemType capitalAssetSystemType;
164 protected CapitalAssetSystemState capitalAssetSystemState;
165 protected List<CapitalAssetSystem> purchasingCapitalAssetSystems;
166 protected List<PurchasingCapitalAssetItem> purchasingCapitalAssetItems;
167
168 protected boolean receivingDocumentRequiredIndicator;
169 protected boolean paymentRequestPositiveApprovalIndicator;
170
171 protected List<CommodityCode> commodityCodesForRouting;
172
173 /**
174 * Default Constructor.
175 */
176 public PurchasingDocumentBase() {
177 super();
178
179 purchasingCapitalAssetItems = new TypedArrayList(getPurchasingCapitalAssetItemClass());
180 purchasingCapitalAssetSystems = new TypedArrayList(getPurchasingCapitalAssetSystemClass());
181 }
182
183 public abstract PurchasingDocumentSpecificService getDocumentSpecificService();
184
185 /**
186 * @see org.kuali.kfs.module.purap.document.PurchasingDocument#templateVendorDetail(org.kuali.kfs.vnd.businessobject.VendorDetail)
187 */
188 public void templateVendorDetail(VendorDetail vendorDetail) {
189 if (ObjectUtils.isNotNull(vendorDetail)) {
190 this.setVendorDetail(vendorDetail);
191 this.setVendorName(vendorDetail.getVendorName());
192 this.setVendorShippingTitleCode(vendorDetail.getVendorShippingTitleCode());
193 this.setVendorPaymentTermsCode(vendorDetail.getVendorPaymentTermsCode());
194 this.setVendorShippingPaymentTermsCode(vendorDetail.getVendorShippingPaymentTermsCode());
195 this.setVendorCustomerNumber("");
196 }
197 }
198 /**
199 * @see org.kuali.kfs.module.purap.document.PurchasingDocument#templateVendorContract(org.kuali.kfs.vnd.businessobject.VendorContract)
200 */
201 public void templateVendorContract(VendorContract vendorContract) {
202 if (ObjectUtils.isNotNull(vendorContract)) {
203 this.setVendorContract(vendorContract);
204 this.setVendorContractGeneratedIdentifier(vendorContract.getVendorContractGeneratedIdentifier());
205 this.setVendorShippingTitleCode(vendorContract.getVendorShippingTitleCode());
206 this.setVendorPaymentTermsCode(vendorContract.getVendorPaymentTermsCode());
207 this.setVendorShippingPaymentTermsCode(vendorContract.getVendorShippingPaymentTermsCode());
208 this.setPurchaseOrderCostSourceCode(vendorContract.getPurchaseOrderCostSourceCode());
209 }
210 }
211
212 /**
213 * @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocumentBase#templateVendorAddress(org.kuali.kfs.vnd.businessobject.VendorAddress)
214 */
215 public void templateVendorAddress(VendorAddress vendorAddress) {
216 super.templateVendorAddress(vendorAddress);
217 if (vendorAddress != null) {
218 this.setVendorFaxNumber(vendorAddress.getVendorFaxNumber());
219 this.setVendorAttentionName(vendorAddress.getVendorAttentionName());
220 }
221 }
222
223 /**
224 * @see org.kuali.kfs.module.purap.document.PurchasingDocumentBase#templateBillingAddress(org.kuali.kfs.module.purap.businessobject.BillingAddress).
225 */
226 public void templateBillingAddress(BillingAddress billingAddress) {
227 if (ObjectUtils.isNotNull(billingAddress)) {
228 this.setBillingName(billingAddress.getBillingName());
229 this.setBillingLine1Address(billingAddress.getBillingLine1Address());
230 this.setBillingLine2Address(billingAddress.getBillingLine2Address());
231 this.setBillingCityName(billingAddress.getBillingCityName());
232 this.setBillingStateCode(billingAddress.getBillingStateCode());
233 this.setBillingPostalCode(billingAddress.getBillingPostalCode());
234 this.setBillingCountryCode(billingAddress.getBillingCountryCode());
235 this.setBillingPhoneNumber(billingAddress.getBillingPhoneNumber());
236 }
237 }
238
239 /**
240 * @see org.kuali.kfs.module.purap.document.PurchasingDocumentBase#templateReceivingAddress(org.kuali.kfs.module.purap.businessobject.ReceivingAddress).
241 */
242 public void templateReceivingAddress(ReceivingAddress receivingAddress) {
243 if (receivingAddress != null) {
244 this.setReceivingName(receivingAddress.getReceivingName());
245 this.setReceivingLine1Address(receivingAddress.getReceivingLine1Address());
246 this.setReceivingLine2Address(receivingAddress.getReceivingLine2Address());
247 this.setReceivingCityName(receivingAddress.getReceivingCityName());
248 this.setReceivingStateCode(receivingAddress.getReceivingStateCode());
249 this.setReceivingPostalCode(receivingAddress.getReceivingPostalCode());
250 this.setReceivingCountryCode(receivingAddress.getReceivingCountryCode());
251 this.setAddressToVendorIndicator(receivingAddress.isUseReceivingIndicator());
252 }
253 else {
254 this.setReceivingName(null);
255 this.setReceivingLine1Address(null);
256 this.setReceivingLine2Address(null);
257 this.setReceivingCityName(null);
258 this.setReceivingStateCode(null);
259 this.setReceivingPostalCode(null);
260 this.setReceivingCountryCode(null);
261 this.setAddressToVendorIndicator(false);
262 }
263 }
264
265 /**
266 * Loads the default receiving address from database corresponding to the chart/org of this document.
267 */
268 public void loadReceivingAddress() {
269 /*
270 Map criteria = new HashMap();
271 criteria.put(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, this.getChartOfAccountsCode());
272 criteria.put(KFSPropertyConstants.ORGANIZATION_CODE, this.getOrganizationCode());
273 criteria.put(PurapPropertyConstants.RCVNG_ADDR_DFLT_IND, true);
274 criteria.put(PurapPropertyConstants.RCVNG_ADDR_ACTIVE, true);
275 List<ReceivingAddress> addresses = (List)SpringContext.getBean(BusinessObjectService.class).findMatching(ReceivingAddress.class, criteria);
276 if (addresses != null && addresses.size()>0 )
277 this.templateReceivingAddress(addresses.get(0));
278 else // if no address is found, fill with null
279 this.templateReceivingAddress(null);
280 */
281 String chartCode = getChartOfAccountsCode();
282 String orgCode = getOrganizationCode();
283 ReceivingAddress address = SpringContext.getBean(ReceivingAddressService.class).findUniqueDefaultByChartOrg(chartCode, orgCode);
284 // if default address for chart/org not found, look for chart default
285 if (address == null && orgCode != null) {
286 address = SpringContext.getBean(ReceivingAddressService.class).findUniqueDefaultByChartOrg(chartCode, null);
287 }
288 this.templateReceivingAddress(address);
289 }
290
291 /**
292 * Iterates through the purchasingCapitalAssetItems of the document and returns the purchasingCapitalAssetItem with the item id equal to the number given, or null if a
293 * match is not found.
294 *
295 * @param itemIdentifier item id to match on.
296 * @return the PurchasingCapitalAssetItem if a match is found, else null.
297 */
298 public PurchasingCapitalAssetItem getPurchasingCapitalAssetItemByItemIdentifier(int itemIdentifier) {
299 for (Iterator iter = purchasingCapitalAssetItems.iterator(); iter.hasNext();) {
300 PurchasingCapitalAssetItem camsItem = (PurchasingCapitalAssetItem) iter.next();
301 if (camsItem.getItemIdentifier().intValue() == itemIdentifier) {
302 return camsItem;
303 }
304 }
305 return null;
306 }
307
308
309 /**
310 * @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocumentBase#addItem(org.kuali.kfs.module.purap.businessobject.PurApItem)
311 */
312 @Override
313 public void addItem(PurApItem item) {
314 item.refreshReferenceObject(PurapPropertyConstants.COMMODITY_CODE);
315 super.addItem(item);
316 }
317
318 /**
319 * @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocumentBase#populateDocumentForRouting()
320 */
321 @Override
322 public void populateDocumentForRouting() {
323 commodityCodesForRouting = new ArrayList<CommodityCode>();
324 for (PurchasingItemBase item : (List<PurchasingItemBase>)this.getItems()) {
325 if (item.getCommodityCode() != null && !commodityCodesForRouting.contains(item.getCommodityCode())) {
326 commodityCodesForRouting.add(item.getCommodityCode());
327 }
328 }
329 super.populateDocumentForRouting();
330 }
331
332 // GETTERS AND SETTERS
333
334 /**
335 * @see org.kuali.kfs.module.purap.document.PurchasingDocument.getItemParser().
336 */
337 public ItemParser getItemParser() {
338 return new ItemParserBase();
339 }
340
341 public String getBillingCityName() {
342 return billingCityName;
343 }
344
345 public void setBillingCityName(String billingCityName) {
346 this.billingCityName = billingCityName;
347 }
348
349 public String getBillingCountryCode() {
350 return billingCountryCode;
351 }
352
353 public void setBillingCountryCode(String billingCountryCode) {
354 this.billingCountryCode = billingCountryCode;
355 }
356
357 public String getBillingCountryName() {
358 Country country = SpringContext.getBean(CountryService.class).getByPrimaryId(getBillingCountryCode());
359 //if (country == null)
360 // country = SpringContext.getBean(CountryService.class).getDefaultCountry();
361 if (country != null)
362 return country.getPostalCountryName();
363 return null;
364 }
365
366 public String getBillingLine1Address() {
367 return billingLine1Address;
368 }
369
370 public void setBillingLine1Address(String billingLine1Address) {
371 this.billingLine1Address = billingLine1Address;
372 }
373
374 public String getBillingLine2Address() {
375 return billingLine2Address;
376 }
377
378 public void setBillingLine2Address(String billingLine2Address) {
379 this.billingLine2Address = billingLine2Address;
380 }
381
382 public String getBillingName() {
383 return billingName;
384 }
385
386 public void setBillingName(String billingName) {
387 this.billingName = billingName;
388 }
389
390 public String getBillingPhoneNumber() {
391 return billingPhoneNumber;
392 }
393
394 public void setBillingPhoneNumber(String billingPhoneNumber) {
395 this.billingPhoneNumber = billingPhoneNumber;
396 }
397
398 public String getBillingPostalCode() {
399 return billingPostalCode;
400 }
401
402 public void setBillingPostalCode(String billingPostalCode) {
403 this.billingPostalCode = billingPostalCode;
404 }
405
406 public String getBillingStateCode() {
407 return billingStateCode;
408 }
409
410 public void setBillingStateCode(String billingStateCode) {
411 this.billingStateCode = billingStateCode;
412 }
413
414 public String getReceivingCityName() {
415 return receivingCityName;
416 }
417
418 public void setReceivingCityName(String receivingCityName) {
419 this.receivingCityName = receivingCityName;
420 }
421
422 public String getReceivingCountryCode() {
423 return receivingCountryCode;
424 }
425
426 public void setReceivingCountryCode(String receivingCountryCode) {
427 this.receivingCountryCode = receivingCountryCode;
428 }
429
430 public String getReceivingCountryName() {
431 Country country = SpringContext.getBean(CountryService.class).getByPrimaryId(getReceivingCountryCode());
432 //if (country == null)
433 // country = SpringContext.getBean(CountryService.class).getDefaultCountry();
434 if (country != null)
435 return country.getPostalCountryName();
436 return null;
437 }
438
439 public String getReceivingLine1Address() {
440 return receivingLine1Address;
441 }
442
443 public void setReceivingLine1Address(String receivingLine1Address) {
444 this.receivingLine1Address = receivingLine1Address;
445 }
446
447 public String getReceivingLine2Address() {
448 return receivingLine2Address;
449 }
450
451 public void setReceivingLine2Address(String receivingLine2Address) {
452 this.receivingLine2Address = receivingLine2Address;
453 }
454
455 public String getReceivingName() {
456 return receivingName;
457 }
458
459 public void setReceivingName(String receivingName) {
460 this.receivingName = receivingName;
461 }
462
463 public String getReceivingPostalCode() {
464 return receivingPostalCode;
465 }
466
467 public void setReceivingPostalCode(String receivingPostalCode) {
468 this.receivingPostalCode = receivingPostalCode;
469 }
470
471 public String getReceivingStateCode() {
472 return receivingStateCode;
473 }
474
475 public void setReceivingStateCode(String receivingStateCode) {
476 this.receivingStateCode = receivingStateCode;
477 }
478
479 public boolean getAddressToVendorIndicator() {
480 return addressToVendorIndicator;
481 }
482
483 public void setAddressToVendorIndicator(boolean addressToVendor) {
484 this.addressToVendorIndicator = addressToVendor;
485 }
486
487 public String getChartOfAccountsCode() {
488 return chartOfAccountsCode;
489 }
490
491 public void setChartOfAccountsCode(String chartOfAccountsCode) {
492 this.chartOfAccountsCode = chartOfAccountsCode;
493 }
494
495 public String getDeliveryBuildingCode() {
496 return deliveryBuildingCode;
497 }
498
499 public void setDeliveryBuildingCode(String deliveryBuildingCode) {
500 this.deliveryBuildingCode = deliveryBuildingCode;
501 }
502
503 public String getDeliveryBuildingLine1Address() {
504 return deliveryBuildingLine1Address;
505 }
506
507 public void setDeliveryBuildingLine1Address(String deliveryBuildingLine1Address) {
508 this.deliveryBuildingLine1Address = deliveryBuildingLine1Address;
509 }
510
511 public String getDeliveryBuildingLine2Address() {
512 return deliveryBuildingLine2Address;
513 }
514
515 public void setDeliveryBuildingLine2Address(String deliveryBuildingLine2Address) {
516 this.deliveryBuildingLine2Address = deliveryBuildingLine2Address;
517 }
518
519 public String getDeliveryBuildingName() {
520 return deliveryBuildingName;
521 }
522
523 public void setDeliveryBuildingName(String deliveryBuildingName) {
524 this.deliveryBuildingName = deliveryBuildingName;
525 }
526
527 public boolean isDeliveryBuildingOtherIndicator() {
528 return deliveryBuildingOtherIndicator;
529 }
530
531 public void setDeliveryBuildingOtherIndicator(boolean deliveryBuildingOtherIndicator) {
532 this.deliveryBuildingOtherIndicator = deliveryBuildingOtherIndicator;
533 }
534
535 public String getDeliveryBuildingRoomNumber() {
536 return deliveryBuildingRoomNumber;
537 }
538
539 public void setDeliveryBuildingRoomNumber(String deliveryBuildingRoomNumber) {
540 this.deliveryBuildingRoomNumber = deliveryBuildingRoomNumber;
541 }
542
543 public String getDeliveryCampusCode() {
544 return deliveryCampusCode;
545 }
546
547 public void setDeliveryCampusCode(String deliveryCampusCode) {
548 this.deliveryCampusCode = deliveryCampusCode;
549 }
550
551 public String getDeliveryCityName() {
552 return deliveryCityName;
553 }
554
555 public void setDeliveryCityName(String deliveryCityName) {
556 this.deliveryCityName = deliveryCityName;
557 }
558
559 public String getDeliveryCountryCode() {
560 return deliveryCountryCode;
561 }
562
563 public String getDeliveryCountryName() {
564 Country country = SpringContext.getBean(CountryService.class).getByPrimaryId(getDeliveryCountryCode());
565 if (country != null)
566 return country.getPostalCountryName();
567 return null;
568 }
569
570 public void setDeliveryCountryCode(String deliveryCountryCode) {
571 this.deliveryCountryCode = deliveryCountryCode;
572 }
573
574
575 public String getDeliveryInstructionText() {
576 return deliveryInstructionText;
577 }
578
579 public void setDeliveryInstructionText(String deliveryInstructionText) {
580 this.deliveryInstructionText = deliveryInstructionText;
581 }
582
583 public String getDeliveryPostalCode() {
584 return deliveryPostalCode;
585 }
586
587 public void setDeliveryPostalCode(String deliveryPostalCode) {
588 this.deliveryPostalCode = deliveryPostalCode;
589 }
590
591 public Date getDeliveryRequiredDate() {
592 return deliveryRequiredDate;
593 }
594
595 public void setDeliveryRequiredDate(Date deliveryRequiredDate) {
596 this.deliveryRequiredDate = deliveryRequiredDate;
597 }
598
599 public String getDeliveryRequiredDateReasonCode() {
600 return deliveryRequiredDateReasonCode;
601 }
602
603 public void setDeliveryRequiredDateReasonCode(String deliveryRequiredDateReasonCode) {
604 this.deliveryRequiredDateReasonCode = deliveryRequiredDateReasonCode;
605 }
606
607 public String getDeliveryStateCode() {
608 return deliveryStateCode;
609 }
610
611 public void setDeliveryStateCode(String deliveryStateCode) {
612 this.deliveryStateCode = deliveryStateCode;
613 }
614
615 public String getDeliveryToEmailAddress() {
616 return deliveryToEmailAddress;
617 }
618
619 public void setDeliveryToEmailAddress(String deliveryToEmailAddress) {
620 this.deliveryToEmailAddress = deliveryToEmailAddress;
621 }
622
623 public String getDeliveryToName() {
624 return deliveryToName;
625 }
626
627 public void setDeliveryToName(String deliveryToName) {
628 this.deliveryToName = deliveryToName;
629 }
630
631 public String getDeliveryToPhoneNumber() {
632 return deliveryToPhoneNumber;
633 }
634
635 public void setDeliveryToPhoneNumber(String deliveryToPhoneNumber) {
636 this.deliveryToPhoneNumber = deliveryToPhoneNumber;
637 }
638
639 public String getExternalOrganizationB2bSupplierIdentifier() {
640 return externalOrganizationB2bSupplierIdentifier;
641 }
642
643 public void setExternalOrganizationB2bSupplierIdentifier(String externalOrganizationB2bSupplierIdentifier) {
644 this.externalOrganizationB2bSupplierIdentifier = externalOrganizationB2bSupplierIdentifier;
645 }
646
647 public String getDocumentFundingSourceCode() {
648 return documentFundingSourceCode;
649 }
650
651 public void setDocumentFundingSourceCode(String documentFundingSourceCode) {
652 this.documentFundingSourceCode = documentFundingSourceCode;
653 }
654
655 public String getInstitutionContactEmailAddress() {
656 return institutionContactEmailAddress;
657 }
658
659 public void setInstitutionContactEmailAddress(String institutionContactEmailAddress) {
660 this.institutionContactEmailAddress = institutionContactEmailAddress;
661 }
662
663 public String getInstitutionContactName() {
664 return institutionContactName;
665 }
666
667 public void setInstitutionContactName(String institutionContactName) {
668 this.institutionContactName = institutionContactName;
669 }
670
671 public String getInstitutionContactPhoneNumber() {
672 return institutionContactPhoneNumber;
673 }
674
675 public void setInstitutionContactPhoneNumber(String institutionContactPhoneNumber) {
676 this.institutionContactPhoneNumber = institutionContactPhoneNumber;
677 }
678
679 public String getNonInstitutionFundAccountNumber() {
680 return nonInstitutionFundAccountNumber;
681 }
682
683 public void setNonInstitutionFundAccountNumber(String nonInstitutionFundAccountNumber) {
684 this.nonInstitutionFundAccountNumber = nonInstitutionFundAccountNumber;
685 }
686
687 public String getNonInstitutionFundChartOfAccountsCode() {
688 return nonInstitutionFundChartOfAccountsCode;
689 }
690
691 public void setNonInstitutionFundChartOfAccountsCode(String nonInstitutionFundChartOfAccountsCode) {
692 this.nonInstitutionFundChartOfAccountsCode = nonInstitutionFundChartOfAccountsCode;
693 }
694
695 public String getNonInstitutionFundOrganizationCode() {
696 return nonInstitutionFundOrganizationCode;
697 }
698
699 public void setNonInstitutionFundOrganizationCode(String nonInstitutionFundOrganizationCode) {
700 this.nonInstitutionFundOrganizationCode = nonInstitutionFundOrganizationCode;
701 }
702
703 public String getNonInstitutionFundOrgChartOfAccountsCode() {
704 return nonInstitutionFundOrgChartOfAccountsCode;
705 }
706
707 public void setNonInstitutionFundOrgChartOfAccountsCode(String nonInstitutionFundOrgChartOfAccountsCode) {
708 this.nonInstitutionFundOrgChartOfAccountsCode = nonInstitutionFundOrgChartOfAccountsCode;
709 }
710
711 public String getOrganizationCode() {
712 return organizationCode;
713 }
714
715 public void setOrganizationCode(String organizationCode) {
716 this.organizationCode = organizationCode;
717 }
718
719 public boolean getPurchaseOrderAutomaticIndicator() {
720 return purchaseOrderAutomaticIndicator;
721 }
722
723 public void setPurchaseOrderAutomaticIndicator(boolean purchaseOrderAutomaticIndicator) {
724 this.purchaseOrderAutomaticIndicator = purchaseOrderAutomaticIndicator;
725 }
726
727 public Date getPurchaseOrderBeginDate() {
728 return purchaseOrderBeginDate;
729 }
730
731 public void setPurchaseOrderBeginDate(Date purchaseOrderBeginDate) {
732 this.purchaseOrderBeginDate = purchaseOrderBeginDate;
733 }
734
735 public String getPurchaseOrderCostSourceCode() {
736 return purchaseOrderCostSourceCode;
737 }
738
739 public void setPurchaseOrderCostSourceCode(String purchaseOrderCostSourceCode) {
740 this.purchaseOrderCostSourceCode = purchaseOrderCostSourceCode;
741 }
742
743 public Date getPurchaseOrderEndDate() {
744 return purchaseOrderEndDate;
745 }
746
747 public void setPurchaseOrderEndDate(Date purchaseOrderEndDate) {
748 this.purchaseOrderEndDate = purchaseOrderEndDate;
749 }
750
751 public KualiDecimal getPurchaseOrderTotalLimit() {
752 return purchaseOrderTotalLimit;
753 }
754
755 public void setPurchaseOrderTotalLimit(KualiDecimal purchaseOrderTotalLimit) {
756 this.purchaseOrderTotalLimit = purchaseOrderTotalLimit;
757 }
758
759 public String getPurchaseOrderTransmissionMethodCode() {
760 return purchaseOrderTransmissionMethodCode;
761 }
762
763 public void setPurchaseOrderTransmissionMethodCode(String purchaseOrderTransmissionMethodCode) {
764 this.purchaseOrderTransmissionMethodCode = purchaseOrderTransmissionMethodCode;
765 }
766
767 public String getRecurringPaymentTypeCode() {
768 return recurringPaymentTypeCode;
769 }
770
771 public void setRecurringPaymentTypeCode(String recurringPaymentTypeCode) {
772 this.recurringPaymentTypeCode = recurringPaymentTypeCode;
773 }
774
775 public String getRequestorPersonEmailAddress() {
776 return requestorPersonEmailAddress;
777 }
778
779 public void setRequestorPersonEmailAddress(String requestorPersonEmailAddress) {
780 this.requestorPersonEmailAddress = requestorPersonEmailAddress;
781 }
782
783 public String getRequestorPersonName() {
784 return requestorPersonName;
785 }
786
787 public void setRequestorPersonName(String requestorPersonName) {
788 this.requestorPersonName = requestorPersonName;
789 }
790
791 public String getRequestorPersonPhoneNumber() {
792 return requestorPersonPhoneNumber;
793 }
794
795 public void setRequestorPersonPhoneNumber(String requestorPersonPhoneNumber) {
796 this.requestorPersonPhoneNumber = requestorPersonPhoneNumber;
797 }
798
799 public String getRequisitionSourceCode() {
800 return requisitionSourceCode;
801 }
802
803 public void setRequisitionSourceCode(String requisitionSourceCode) {
804 this.requisitionSourceCode = requisitionSourceCode;
805 }
806
807 public String getVendorContactsLabel() {
808 return vendorContactsLabel;
809 }
810
811 public void setVendorContactsLabel(String vendorContactsLabel) {
812 this.vendorContactsLabel = vendorContactsLabel;
813 }
814
815 public VendorContract getVendorContract() {
816 if (ObjectUtils.isNull(vendorContract))
817 refreshReferenceObject(PurapPropertyConstants.VENDOR_CONTRACT);
818 return vendorContract;
819 }
820
821 public void setVendorContract(VendorContract vendorContract) {
822 this.vendorContract = vendorContract;
823 }
824
825 public Integer getVendorContractGeneratedIdentifier() {
826 return vendorContractGeneratedIdentifier;
827 }
828
829 public void setVendorContractGeneratedIdentifier(Integer vendorContractGeneratedIdentifier) {
830 this.vendorContractGeneratedIdentifier = vendorContractGeneratedIdentifier;
831 }
832
833 public String getVendorContractName() {
834 getVendorContract();
835 if (ObjectUtils.isNull(vendorContract)) {
836 return "";
837 }
838 else {
839 return vendorContract.getVendorContractName();
840 }
841 }
842
843 public String getVendorFaxNumber() {
844 return vendorFaxNumber;
845 }
846
847 public void setVendorFaxNumber(String vendorFaxNumber) {
848 this.vendorFaxNumber = vendorFaxNumber;
849 }
850
851 public String getVendorNoteText() {
852 return vendorNoteText;
853 }
854
855 public void setVendorNoteText(String vendorNoteText) {
856 this.vendorNoteText = vendorNoteText;
857 }
858
859 public String getVendorPaymentTermsCode() {
860 return vendorPaymentTermsCode;
861 }
862
863 public void setVendorPaymentTermsCode(String vendorPaymentTermsCode) {
864 this.vendorPaymentTermsCode = vendorPaymentTermsCode;
865 }
866
867 public String getVendorPhoneNumber() {
868 return vendorPhoneNumber;
869 }
870
871 public void setVendorPhoneNumber(String vendorPhoneNumber) {
872 this.vendorPhoneNumber = vendorPhoneNumber;
873 }
874
875 public Boolean getVendorRestrictedIndicator() {
876 return vendorRestrictedIndicator;
877 }
878
879 public void setVendorRestrictedIndicator(Boolean vendorRestrictedIndicator) {
880 this.vendorRestrictedIndicator = vendorRestrictedIndicator;
881 }
882
883 public String getVendorShippingPaymentTermsCode() {
884 return vendorShippingPaymentTermsCode;
885 }
886
887 public void setVendorShippingPaymentTermsCode(String vendorShippingPaymentTermsCode) {
888 this.vendorShippingPaymentTermsCode = vendorShippingPaymentTermsCode;
889 }
890
891 public String getVendorShippingTitleCode() {
892 return vendorShippingTitleCode;
893 }
894
895 public void setVendorShippingTitleCode(String vendorShippingTitleCode) {
896 this.vendorShippingTitleCode = vendorShippingTitleCode;
897 }
898
899 public Chart getChartOfAccounts() {
900 return chartOfAccounts;
901 }
902
903 public CampusParameter getDeliveryCampus() {
904 return deliveryCampus;
905 }
906
907 public DeliveryRequiredDateReason getDeliveryRequiredDateReason() {
908 return deliveryRequiredDateReason;
909 }
910
911 public FundingSource getFundingSource() {
912 return fundingSource;
913 }
914
915 public Account getNonInstitutionFundAccount() {
916 return nonInstitutionFundAccount;
917 }
918
919 public Chart getNonInstitutionFundChartOfAccounts() {
920 return nonInstitutionFundChartOfAccounts;
921 }
922
923 public Organization getNonInstitutionFundOrganization() {
924 return nonInstitutionFundOrganization;
925 }
926
927 public Chart getNonInstitutionFundOrgChartOfAccounts() {
928 return nonInstitutionFundOrgChartOfAccounts;
929 }
930
931 public Organization getOrganization() {
932 return organization;
933 }
934
935 public PurchaseOrderTransmissionMethod getPurchaseOrderTransmissionMethod() {
936 return purchaseOrderTransmissionMethod;
937 }
938
939 public RecurringPaymentType getRecurringPaymentType() {
940 return recurringPaymentType;
941 }
942
943 public RequisitionSource getRequisitionSource() {
944 return requisitionSource;
945 }
946
947 public String getSupplierDiversityLabel() {
948 return supplierDiversityLabel;
949 }
950
951 public PurchaseOrderCostSource getPurchaseOrderCostSource() {
952 if (ObjectUtils.isNull(purchaseOrderCostSource))
953 refreshReferenceObject(PurapPropertyConstants.PURCHASE_ORDER_COST_SOURCE);
954 return purchaseOrderCostSource;
955 }
956
957 /**
958 * @deprecated
959 */
960 public void setChartOfAccounts(Chart chartOfAccounts) {
961 this.chartOfAccounts = chartOfAccounts;
962 }
963
964 /**
965 * @deprecated
966 */
967 public void setDeliveryCampus(CampusParameter deliveryCampus) {
968 this.deliveryCampus = deliveryCampus;
969 }
970
971 /**
972 * @deprecated
973 */
974 public void setDeliveryRequiredDateReason(DeliveryRequiredDateReason deliveryRequiredDateReason) {
975 this.deliveryRequiredDateReason = deliveryRequiredDateReason;
976 }
977
978 /**
979 * @deprecated
980 */
981 public void setFundingSource(FundingSource fundingSource) {
982 this.fundingSource = fundingSource;
983 }
984
985 /**
986 * @deprecated
987 */
988 public void setNonInstitutionFundAccount(Account nonInstitutionFundAccount) {
989 this.nonInstitutionFundAccount = nonInstitutionFundAccount;
990 }
991
992 /**
993 * @deprecated
994 */
995 public void setNonInstitutionFundChartOfAccounts(Chart nonInstitutionFundChartOfAccounts) {
996 this.nonInstitutionFundChartOfAccounts = nonInstitutionFundChartOfAccounts;
997 }
998
999 /**
1000 * @deprecated
1001 */
1002 public void setNonInstitutionFundOrganization(Organization nonInstitutionFundOrganization) {
1003 this.nonInstitutionFundOrganization = nonInstitutionFundOrganization;
1004 }
1005
1006 /**
1007 * @deprecated
1008 */
1009 public void setNonInstitutionFundOrgChartOfAccounts(Chart nonInstitutionFundOrgChartOfAccounts) {
1010 this.nonInstitutionFundOrgChartOfAccounts = nonInstitutionFundOrgChartOfAccounts;
1011 }
1012
1013 /**
1014 * @deprecated
1015 */
1016 public void setOrganization(Organization organization) {
1017 this.organization = organization;
1018 }
1019
1020 /**
1021 * @deprecated
1022 */
1023 public void setPurchaseOrderCostSource(PurchaseOrderCostSource purchaseOrderCostSource) {
1024 this.purchaseOrderCostSource = purchaseOrderCostSource;
1025 }
1026
1027 /**
1028 * @deprecated
1029 */
1030 public void setPurchaseOrderTransmissionMethod(PurchaseOrderTransmissionMethod purchaseOrderTransmissionMethod) {
1031 this.purchaseOrderTransmissionMethod = purchaseOrderTransmissionMethod;
1032 }
1033
1034 /**
1035 * @deprecated
1036 */
1037 public void setRecurringPaymentType(RecurringPaymentType recurringPaymentType) {
1038 this.recurringPaymentType = recurringPaymentType;
1039 }
1040
1041 /**
1042 * @deprecated
1043 */
1044 public void setRequisitionSource(RequisitionSource requisitionSource) {
1045 this.requisitionSource = requisitionSource;
1046 }
1047
1048 /**
1049 * Gets the receivingDocumentRequiredIndicator attribute.
1050 * @return Returns the receivingDocumentRequiredIndicator.
1051 */
1052 public boolean isReceivingDocumentRequiredIndicator() {
1053 return receivingDocumentRequiredIndicator;
1054 }
1055
1056 /**
1057 * Sets the receivingDocumentRequiredIndicator attribute value.
1058 * @param receivingDocumentRequiredIndicator The receivingDocumentRequiredIndicator to set.
1059 */
1060 public void setReceivingDocumentRequiredIndicator(boolean receivingDocumentRequiredIndicator) {
1061 this.receivingDocumentRequiredIndicator = receivingDocumentRequiredIndicator;
1062 }
1063
1064 public boolean isPaymentRequestPositiveApprovalIndicator() {
1065 return paymentRequestPositiveApprovalIndicator;
1066 }
1067
1068 public void setPaymentRequestPositiveApprovalIndicator(boolean paymentRequestPositiveApprovalIndicator) {
1069 this.paymentRequestPositiveApprovalIndicator = paymentRequestPositiveApprovalIndicator;
1070 }
1071
1072 public List<CommodityCode> getCommodityCodesForRouting() {
1073 return commodityCodesForRouting;
1074 }
1075
1076 public void setCommodityCodesForRouting(List<CommodityCode> commodityCodesForRouting) {
1077 this.commodityCodesForRouting = commodityCodesForRouting;
1078 }
1079
1080 public String getCapitalAssetSystemTypeCode() {
1081 return capitalAssetSystemTypeCode;
1082 }
1083
1084 public void setCapitalAssetSystemTypeCode(String capitalAssetSystemTypeCode) {
1085 this.capitalAssetSystemTypeCode = capitalAssetSystemTypeCode;
1086 }
1087
1088 public String getCapitalAssetSystemStateCode() {
1089 return capitalAssetSystemStateCode;
1090 }
1091
1092 public void setCapitalAssetSystemStateCode(String capitalAssetSystemStateCode) {
1093 this.capitalAssetSystemStateCode = capitalAssetSystemStateCode;
1094 }
1095
1096 public CapitalAssetSystemType getCapitalAssetSystemType() {
1097 if(ObjectUtils.isNull(capitalAssetSystemType)){
1098 this.refreshReferenceObject("capitalAssetSystemType");
1099 }
1100 return capitalAssetSystemType;
1101 }
1102
1103 public void setCapitalAssetSystemType(CapitalAssetSystemType capitalAssetSystemType) {
1104 this.capitalAssetSystemType = capitalAssetSystemType;
1105 }
1106
1107 public CapitalAssetSystemState getCapitalAssetSystemState() {
1108 if(ObjectUtils.isNull(capitalAssetSystemState)){
1109 this.refreshReferenceObject("capitalAssetSystemState");
1110 }
1111 return capitalAssetSystemState;
1112 }
1113
1114 public void setCapitalAssetSystemState(CapitalAssetSystemState capitalAssetSystemState) {
1115 this.capitalAssetSystemState = capitalAssetSystemState;
1116 }
1117
1118 public List<CapitalAssetSystem> getPurchasingCapitalAssetSystems() {
1119 return purchasingCapitalAssetSystems;
1120 }
1121
1122 public void setPurchasingCapitalAssetSystems(List<CapitalAssetSystem> purchasingCapitalAssetSystems) {
1123 this.purchasingCapitalAssetSystems = purchasingCapitalAssetSystems;
1124 }
1125
1126 public List<PurchasingCapitalAssetItem> getPurchasingCapitalAssetItems() {
1127 return purchasingCapitalAssetItems;
1128 }
1129
1130 public void setPurchasingCapitalAssetItems(List<PurchasingCapitalAssetItem> purchasingCapitalAssetItems) {
1131 this.purchasingCapitalAssetItems = purchasingCapitalAssetItems;
1132 }
1133
1134 public abstract Class getPurchasingCapitalAssetItemClass();
1135
1136 public abstract Class getPurchasingCapitalAssetSystemClass();
1137
1138 public PurchasingItem getPurchasingItem(Integer itemIdentifier){
1139
1140 if(ObjectUtils.isNull(itemIdentifier)) return null;
1141
1142 PurchasingItem item = null;
1143
1144 for(PurchasingItem pi: (List<PurchasingItem>)this.getItems()){
1145 if(itemIdentifier.equals(pi.getItemIdentifier())){
1146 item = pi;
1147 break;
1148 }
1149 }
1150
1151 return item;
1152 }
1153
1154 public PurchasingCapitalAssetItem getPurchasingCapitalAssetItem(Integer itemIdentifier){
1155
1156 if(ObjectUtils.isNull(itemIdentifier)) return null;
1157
1158 PurchasingCapitalAssetItem item = null;
1159
1160 for(PurchasingCapitalAssetItem pcai: this.getPurchasingCapitalAssetItems()){
1161 if(itemIdentifier.equals(pcai.getItemIdentifier())){
1162 item = pcai;
1163 break;
1164 }
1165 }
1166
1167 return item;
1168 }
1169
1170 /**
1171 * @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocumentBase#buildListOfDeletionAwareLists()
1172 */
1173 @Override
1174 public List buildListOfDeletionAwareLists() {
1175 List managedLists = super.buildListOfDeletionAwareLists();
1176 if (allowDeleteAwareCollection) {
1177 List<ItemCapitalAsset> assetLists = new ArrayList<ItemCapitalAsset>();
1178 List<CapitalAssetLocation>capitalAssetLocationLists = new ArrayList<CapitalAssetLocation>();
1179 if (StringUtils.equals(this.getCapitalAssetSystemTypeCode(),PurapConstants.CapitalAssetSystemTypes.INDIVIDUAL)) {
1180 for (PurchasingCapitalAssetItem capitalAssetItem : this.getPurchasingCapitalAssetItems()) {
1181 //We only need to add the itemCapitalAssets to assetLists if the system is not null, otherwise
1182 //just let the assetLists be empty ArrayList.
1183 if (capitalAssetItem.getPurchasingCapitalAssetSystem() != null) {
1184 assetLists.addAll(capitalAssetItem.getPurchasingCapitalAssetSystem().getItemCapitalAssets());
1185 capitalAssetLocationLists.addAll(capitalAssetItem.getPurchasingCapitalAssetSystem().getCapitalAssetLocations());
1186 }
1187 }
1188 }
1189 else {
1190 for (CapitalAssetSystem system : this.getPurchasingCapitalAssetSystems()) {
1191 assetLists.addAll(system.getItemCapitalAssets());
1192 capitalAssetLocationLists.addAll(system.getCapitalAssetLocations());
1193 }
1194 }
1195 managedLists.add(assetLists);
1196 managedLists.add(capitalAssetLocationLists);
1197 managedLists.add(this.getPurchasingCapitalAssetSystems());
1198 managedLists.add(this.getPurchasingCapitalAssetItems());
1199 }
1200 return managedLists;
1201 }
1202
1203 /**
1204 * Overrides the method in PurchasingAccountsPayableDocumentBase to remove the
1205 * purchasingCapitalAssetSystem when the system type is either ONE or MULT.
1206 *
1207 * @see org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocumentBase#prepareForSave(org.kuali.rice.kns.rule.event.KualiDocumentEvent)
1208 */
1209 @Override
1210 public void prepareForSave(KualiDocumentEvent event) {
1211 super.prepareForSave(event);
1212 if (StringUtils.isNotBlank(this.getCapitalAssetSystemTypeCode())) {
1213 if (this.getCapitalAssetSystemTypeCode().equals(PurapConstants.CapitalAssetSystemTypes.ONE_SYSTEM) || this.getCapitalAssetSystemTypeCode().equals(PurapConstants.CapitalAssetSystemTypes.MULTIPLE)) {
1214 //If the system state is ONE or MULT, we have to remove all the systems on the items because it's not applicable.
1215 for (PurchasingCapitalAssetItem camsItem : this.getPurchasingCapitalAssetItems()) {
1216 camsItem.setPurchasingCapitalAssetSystem(null);
1217 }
1218 }
1219 }
1220 if (event instanceof RouteDocumentEvent || event instanceof ApproveDocumentEvent) {
1221
1222 boolean defaultUseTaxIndicatorValue = SpringContext.getBean(PurchasingService.class).getDefaultUseTaxIndicatorValue(this);
1223 SpringContext.getBean(PurapService.class).updateUseTaxIndicator(this, defaultUseTaxIndicatorValue);
1224 }
1225 }
1226
1227 public Date getTransactionTaxDate() {
1228 return SpringContext.getBean(DateTimeService.class).getCurrentSqlDate();
1229 }
1230
1231 public void clearCapitalAssetFields() {
1232 this.setPurchasingCapitalAssetItems(new TypedArrayList(getPurchasingCapitalAssetItemClass()));
1233 this.setPurchasingCapitalAssetSystems(new TypedArrayList(getPurchasingCapitalAssetSystemClass()));
1234 this.setCapitalAssetSystemStateCode(null);
1235 this.setCapitalAssetSystemTypeCode(null);
1236 this.setCapitalAssetSystemState(null);
1237 this.setCapitalAssetSystemType(null);
1238
1239 }
1240
1241 /**
1242 * @return the payment request positive approval indicator
1243 */
1244 public boolean getPaymentRequestPositiveApprovalIndicatorForSearching() {
1245 return paymentRequestPositiveApprovalIndicator;
1246 }
1247
1248 /**
1249 * @return the receiving document required indicator
1250 */
1251 public boolean getReceivingDocumentRequiredIndicatorForSearching() {
1252 return receivingDocumentRequiredIndicator;
1253 }
1254
1255 public String getDocumentChartOfAccountsCodeForSearching(){
1256 return chartOfAccountsCode;
1257 }
1258
1259 public String getDocumentOrganizationCodeForSearching(){
1260 return organizationCode;
1261 }
1262
1263 public boolean shouldGiveErrorForEmptyAccountsProration() {
1264 return true;
1265 }
1266
1267 public String getChartAndOrgCodeForResult(){
1268 return getChartOfAccountsCode() + "-" + getOrganizationCode();
1269 }
1270
1271 public String getDeliveryCampusCodeForSearch(){
1272 return getDeliveryCampusCode();
1273 }
1274
1275 public boolean getHasB2BVendor() {
1276 if (getVendorHeaderGeneratedIdentifier() != null) {
1277 refreshReferenceObject(VendorPropertyConstants.VENDOR_DETAIL);
1278 String campusCode = GlobalVariables.getUserSession().getPerson().getCampusCode();
1279 VendorDetail vendorDetail = getVendorDetail();
1280 if (vendorDetail == null || StringUtils.isEmpty(campusCode))
1281 return false; // this should never happen
1282 return SpringContext.getBean(VendorService.class).getVendorB2BContract(vendorDetail, campusCode) != null;
1283 }
1284 return false;
1285 }
1286 }