View Javadoc

1   /*
2    * Copyright 2008 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.module.purap.document;
17  
18  import org.apache.commons.lang.StringUtils;
19  import org.kuali.ole.module.purap.businessobject.Carrier;
20  import org.kuali.ole.module.purap.businessobject.DeliveryRequiredDateReason;
21  import org.kuali.ole.module.purap.businessobject.PurchaseOrderView;
22  import org.kuali.ole.module.purap.businessobject.SensitiveData;
23  import org.kuali.ole.module.purap.document.service.PurchaseOrderService;
24  import org.kuali.ole.module.purap.document.service.ReceivingService;
25  import org.kuali.ole.module.purap.service.SensitiveDataService;
26  import org.kuali.ole.module.purap.util.PurApRelatedViews;
27  import org.kuali.ole.module.purap.util.PurapSearchUtils;
28  import org.kuali.ole.select.service.OleUrlResolver;
29  import org.kuali.ole.sys.context.SpringContext;
30  import org.kuali.ole.sys.document.FinancialSystemTransactionalDocumentBase;
31  import org.kuali.ole.vnd.businessobject.CampusParameter;
32  import org.kuali.ole.vnd.businessobject.VendorDetail;
33  import org.kuali.rice.core.api.config.property.ConfigContext;
34  import org.kuali.rice.kew.api.KewApiServiceLocator;
35  import org.kuali.rice.kew.api.WorkflowDocument;
36  import org.kuali.rice.kew.api.action.ActionRequestType;
37  import org.kuali.rice.kew.api.exception.WorkflowException;
38  import org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange;
39  import org.kuali.rice.krad.service.KualiModuleService;
40  import org.kuali.rice.krad.service.ModuleService;
41  import org.kuali.rice.krad.util.NoteType;
42  import org.kuali.rice.krad.util.ObjectUtils;
43  import org.kuali.rice.location.api.LocationConstants;
44  import org.kuali.rice.location.api.country.Country;
45  import org.kuali.rice.location.api.country.CountryService;
46  import org.kuali.rice.location.framework.country.CountryEbo;
47  
48  import java.sql.Date;
49  import java.util.HashMap;
50  import java.util.List;
51  import java.util.Map;
52  import java.util.Set;
53  
54  public abstract class ReceivingDocumentBase extends FinancialSystemTransactionalDocumentBase implements ReceivingDocument {
55  
56      protected String carrierCode;
57      protected String shipmentPackingSlipNumber;
58      protected String shipmentReferenceNumber;
59      protected String shipmentBillOfLadingNumber;
60      protected Date shipmentReceivedDate;
61      protected Integer vendorHeaderGeneratedIdentifier;
62      protected Integer vendorDetailAssignedIdentifier;
63      protected String vendorName;
64      protected String vendorLine1Address;
65      protected String vendorLine2Address;
66      protected String vendorCityName;
67      protected String vendorStateCode;
68      protected String vendorPostalCode;
69      protected String vendorCountryCode;
70      protected String deliveryCampusCode;
71      protected boolean deliveryBuildingOtherIndicator;
72      protected String deliveryBuildingCode;
73      protected String deliveryBuildingName;
74      protected String deliveryBuildingRoomNumber;
75      protected String deliveryBuildingLine1Address;
76      protected String deliveryBuildingLine2Address;
77      protected String deliveryCityName;
78      protected String deliveryStateCode;
79      protected String deliveryPostalCode;
80      protected String deliveryCountryCode;
81      protected String deliveryToName;
82      protected String deliveryToEmailAddress;
83      protected String deliveryToPhoneNumber;
84      protected Date deliveryRequiredDate;
85      protected String deliveryInstructionText;
86      protected String deliveryRequiredDateReasonCode;
87  
88      protected Integer alternateVendorHeaderGeneratedIdentifier;
89      protected Integer alternateVendorDetailAssignedIdentifier;
90      protected String alternateVendorName;
91  
92      //not persisted in db
93      protected String vendorNumber;
94      protected Integer vendorAddressGeneratedIdentifier;
95      protected String alternateVendorNumber;
96      protected boolean sensitive;
97  
98      protected CampusParameter deliveryCampus;
99      protected CountryEbo vendorCountry;
100     protected Carrier carrier;
101     protected VendorDetail vendorDetail;
102     protected DeliveryRequiredDateReason deliveryRequiredDateReason;
103     protected Integer purchaseOrderIdentifier;
104     protected Integer accountsPayablePurchasingDocumentLinkIdentifier;
105     protected transient PurchaseOrderDocument purchaseOrderDocument;
106 
107     protected transient PurApRelatedViews relatedViews;
108     //license request document number
109     /*public transient String licenseRequestDocNum = null;*/
110     private transient OleUrlResolver oleUrlResolver;
111 
112     public ReceivingDocumentBase() {
113         super();
114     }
115 
116     public boolean isSensitive() {
117         List<SensitiveData> sensitiveData = SpringContext.getBean(SensitiveDataService.class).getSensitiveDatasAssignedByRelatedDocId(getAccountsPayablePurchasingDocumentLinkIdentifier());
118         if (ObjectUtils.isNotNull(sensitiveData) && !sensitiveData.isEmpty()) {
119             return true;
120         }
121         return false;
122     }
123 
124     @Override
125     public String getCarrierCode() {
126         return carrierCode;
127     }
128 
129     @Override
130     public void setCarrierCode(String carrierCode) {
131         this.carrierCode = carrierCode;
132     }
133 
134     @Override
135     public String getShipmentPackingSlipNumber() {
136         return shipmentPackingSlipNumber;
137     }
138 
139     @Override
140     public void setShipmentPackingSlipNumber(String shipmentPackingSlipNumber) {
141         this.shipmentPackingSlipNumber = shipmentPackingSlipNumber;
142     }
143 
144     @Override
145     public String getShipmentReferenceNumber() {
146         return shipmentReferenceNumber;
147     }
148 
149     @Override
150     public void setShipmentReferenceNumber(String shipmentReferenceNumber) {
151         this.shipmentReferenceNumber = shipmentReferenceNumber;
152     }
153 
154     @Override
155     public String getShipmentBillOfLadingNumber() {
156         return shipmentBillOfLadingNumber;
157     }
158 
159     @Override
160     public void setShipmentBillOfLadingNumber(String shipmentBillOfLadingNumber) {
161         this.shipmentBillOfLadingNumber = shipmentBillOfLadingNumber;
162     }
163 
164     @Override
165     public Date getShipmentReceivedDate() {
166         return shipmentReceivedDate;
167     }
168 
169     @Override
170     public void setShipmentReceivedDate(Date shipmentReceivedDate) {
171         this.shipmentReceivedDate = shipmentReceivedDate;
172     }
173 
174     @Override
175     public Integer getVendorHeaderGeneratedIdentifier() {
176         return vendorHeaderGeneratedIdentifier;
177     }
178 
179     @Override
180     public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) {
181         this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
182     }
183 
184     @Override
185     public Integer getVendorDetailAssignedIdentifier() {
186         return vendorDetailAssignedIdentifier;
187     }
188 
189     @Override
190     public void setVendorDetailAssignedIdentifier(Integer vendorDetailAssignedIdentifier) {
191         this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier;
192     }
193 
194     @Override
195     public String getVendorName() {
196         return vendorName;
197     }
198 
199     @Override
200     public void setVendorName(String vendorName) {
201         this.vendorName = vendorName;
202     }
203 
204     @Override
205     public String getVendorLine1Address() {
206         return vendorLine1Address;
207     }
208 
209     @Override
210     public void setVendorLine1Address(String vendorLine1Address) {
211         this.vendorLine1Address = vendorLine1Address;
212     }
213 
214     @Override
215     public String getVendorLine2Address() {
216         return vendorLine2Address;
217     }
218 
219     @Override
220     public void setVendorLine2Address(String vendorLine2Address) {
221         this.vendorLine2Address = vendorLine2Address;
222     }
223 
224     @Override
225     public String getVendorCityName() {
226         return vendorCityName;
227     }
228 
229     @Override
230     public void setVendorCityName(String vendorCityName) {
231         this.vendorCityName = vendorCityName;
232     }
233 
234     @Override
235     public String getVendorStateCode() {
236         return vendorStateCode;
237     }
238 
239     @Override
240     public void setVendorStateCode(String vendorStateCode) {
241         this.vendorStateCode = vendorStateCode;
242     }
243 
244     @Override
245     public String getVendorPostalCode() {
246         return vendorPostalCode;
247     }
248 
249     @Override
250     public void setVendorPostalCode(String vendorPostalCode) {
251         this.vendorPostalCode = vendorPostalCode;
252     }
253 
254     @Override
255     public String getVendorCountryCode() {
256         return vendorCountryCode;
257     }
258 
259     @Override
260     public void setVendorCountryCode(String vendorCountryCode) {
261         this.vendorCountryCode = vendorCountryCode;
262     }
263 
264     @Override
265     public String getDeliveryCampusCode() {
266         return deliveryCampusCode;
267     }
268 
269     @Override
270     public void setDeliveryCampusCode(String deliveryCampusCode) {
271         this.deliveryCampusCode = deliveryCampusCode;
272     }
273 
274     @Override
275     public String getDeliveryBuildingCode() {
276         return deliveryBuildingCode;
277     }
278 
279     @Override
280     public void setDeliveryBuildingCode(String deliveryBuildingCode) {
281         this.deliveryBuildingCode = deliveryBuildingCode;
282     }
283 
284     @Override
285     public String getDeliveryBuildingName() {
286         return deliveryBuildingName;
287     }
288 
289     @Override
290     public void setDeliveryBuildingName(String deliveryBuildingName) {
291         this.deliveryBuildingName = deliveryBuildingName;
292     }
293 
294     @Override
295     public String getDeliveryBuildingRoomNumber() {
296         return deliveryBuildingRoomNumber;
297     }
298 
299     @Override
300     public void setDeliveryBuildingRoomNumber(String deliveryBuildingRoomNumber) {
301         this.deliveryBuildingRoomNumber = deliveryBuildingRoomNumber;
302     }
303 
304     @Override
305     public String getDeliveryBuildingLine1Address() {
306         return deliveryBuildingLine1Address;
307     }
308 
309     @Override
310     public void setDeliveryBuildingLine1Address(String deliveryBuildingLine1Address) {
311         this.deliveryBuildingLine1Address = deliveryBuildingLine1Address;
312     }
313 
314     @Override
315     public String getDeliveryBuildingLine2Address() {
316         return deliveryBuildingLine2Address;
317     }
318 
319     @Override
320     public void setDeliveryBuildingLine2Address(String deliveryBuildingLine2Address) {
321         this.deliveryBuildingLine2Address = deliveryBuildingLine2Address;
322     }
323 
324     @Override
325     public String getDeliveryCityName() {
326         return deliveryCityName;
327     }
328 
329     @Override
330     public void setDeliveryCityName(String deliveryCityName) {
331         this.deliveryCityName = deliveryCityName;
332     }
333 
334     @Override
335     public String getDeliveryStateCode() {
336         return deliveryStateCode;
337     }
338 
339     @Override
340     public void setDeliveryStateCode(String deliveryStateCode) {
341         this.deliveryStateCode = deliveryStateCode;
342     }
343 
344     @Override
345     public String getDeliveryPostalCode() {
346         return deliveryPostalCode;
347     }
348 
349     @Override
350     public void setDeliveryPostalCode(String deliveryPostalCode) {
351         this.deliveryPostalCode = deliveryPostalCode;
352     }
353 
354     @Override
355     public String getDeliveryCountryCode() {
356         return deliveryCountryCode;
357     }
358 
359     @Override
360     public void setDeliveryCountryCode(String deliveryCountryCode) {
361         this.deliveryCountryCode = deliveryCountryCode;
362     }
363 
364     @Override
365     public String getDeliveryCountryName() {
366         if (StringUtils.isNotBlank(getDeliveryCountryCode())) {
367             Country country = SpringContext.getBean(CountryService.class).getCountry(getDeliveryCountryCode());
368             if (country != null) {
369                 return country.getName();
370             }
371         }
372         return null;
373     }
374 
375     @Override
376     public String getDeliveryToName() {
377         return deliveryToName;
378     }
379 
380     @Override
381     public void setDeliveryToName(String deliveryToName) {
382         this.deliveryToName = deliveryToName;
383     }
384 
385     @Override
386     public String getDeliveryToEmailAddress() {
387         return deliveryToEmailAddress;
388     }
389 
390     @Override
391     public void setDeliveryToEmailAddress(String deliveryToEmailAddress) {
392         this.deliveryToEmailAddress = deliveryToEmailAddress;
393     }
394 
395     @Override
396     public String getDeliveryToPhoneNumber() {
397         return deliveryToPhoneNumber;
398     }
399 
400     @Override
401     public void setDeliveryToPhoneNumber(String deliveryToPhoneNumber) {
402         this.deliveryToPhoneNumber = deliveryToPhoneNumber;
403     }
404 
405     @Override
406     public Date getDeliveryRequiredDate() {
407         return deliveryRequiredDate;
408     }
409 
410     @Override
411     public void setDeliveryRequiredDate(Date deliveryRequiredDate) {
412         this.deliveryRequiredDate = deliveryRequiredDate;
413     }
414 
415     @Override
416     public String getDeliveryInstructionText() {
417         return deliveryInstructionText;
418     }
419 
420     @Override
421     public void setDeliveryInstructionText(String deliveryInstructionText) {
422         this.deliveryInstructionText = deliveryInstructionText;
423     }
424 
425     @Override
426     public String getDeliveryRequiredDateReasonCode() {
427         return deliveryRequiredDateReasonCode;
428     }
429 
430     @Override
431     public void setDeliveryRequiredDateReasonCode(String deliveryRequiredDateReasonCode) {
432         this.deliveryRequiredDateReasonCode = deliveryRequiredDateReasonCode;
433     }
434 
435     @Override
436     public CampusParameter getDeliveryCampus() {
437         return deliveryCampus;
438     }
439 
440     /**
441      * @deprecated
442      */
443     @Deprecated
444     public void setDeliveryCampus(CampusParameter deliveryCampus) {
445         this.deliveryCampus = deliveryCampus;
446     }
447 
448     @Override
449     public Carrier getCarrier() {
450         return carrier;
451     }
452 
453     /**
454      * @deprecated
455      */
456     @Deprecated
457     public void setCarrier(Carrier carrier) {
458         this.carrier = carrier;
459     }
460 
461     @Override
462     public DeliveryRequiredDateReason getDeliveryRequiredDateReason() {
463         return deliveryRequiredDateReason;
464     }
465 
466     /**
467      * @deprecated
468      */
469     @Deprecated
470     public void setDeliveryRequiredDateReason(DeliveryRequiredDateReason deliveryRequiredDateReason) {
471         this.deliveryRequiredDateReason = deliveryRequiredDateReason;
472     }
473 
474     /**
475      * Gets the vendorCountryCode attribute.
476      *
477      * @return Returns the vendorCountryCode.
478      */
479     @Override
480     public CountryEbo getVendorCountry() {
481         if (StringUtils.isBlank(vendorCountryCode)) {
482             vendorCountry = null;
483         } else {
484             if (vendorCountry == null || !StringUtils.equals(vendorCountry.getCode(), vendorCountryCode)) {
485                 ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CountryEbo.class);
486                 if (moduleService != null) {
487                     Map<String, Object> keys = new HashMap<String, Object>(1);
488                     keys.put(LocationConstants.PrimaryKeyConstants.CODE, vendorCountryCode);
489                     vendorCountry = moduleService.getExternalizableBusinessObject(CountryEbo.class, keys);
490                 } else {
491                     throw new RuntimeException("CONFIGURATION ERROR: No responsible module found for EBO class.  Unable to proceed.");
492                 }
493             }
494         }
495 
496         return vendorCountry;
497     }
498 
499     /**
500      * @deprecated
501      */
502     @Deprecated
503     public void setVendorCountry(CountryEbo vendorCountry) {
504         this.vendorCountry = vendorCountry;
505     }
506 
507     @Override
508     public VendorDetail getVendorDetail() {
509         return vendorDetail;
510     }
511 
512     /**
513      * @deprecated
514      */
515     @Deprecated
516     public void setVendorDetail(VendorDetail vendorDetail) {
517         this.vendorDetail = vendorDetail;
518     }
519 
520     @Override
521     public String getVendorNumber() {
522         if (StringUtils.isNotEmpty(vendorNumber)) {
523             return vendorNumber;
524         } else if (ObjectUtils.isNotNull(vendorDetail)) {
525             return vendorDetail.getVendorNumber();
526         } else {
527             return "";
528         }
529     }
530 
531     @Override
532     public void setVendorNumber(String vendorNumber) {
533         this.vendorNumber = vendorNumber;
534     }
535 
536     @Override
537     public Integer getVendorAddressGeneratedIdentifier() {
538         return vendorAddressGeneratedIdentifier;
539     }
540 
541     @Override
542     public void setVendorAddressGeneratedIdentifier(Integer vendorAddressGeneratedIdentifier) {
543         this.vendorAddressGeneratedIdentifier = vendorAddressGeneratedIdentifier;
544     }
545 
546     @Override
547     public Integer getAlternateVendorDetailAssignedIdentifier() {
548         return alternateVendorDetailAssignedIdentifier;
549     }
550 
551     @Override
552     public void setAlternateVendorDetailAssignedIdentifier(Integer alternateVendorDetailAssignedIdentifier) {
553         this.alternateVendorDetailAssignedIdentifier = alternateVendorDetailAssignedIdentifier;
554     }
555 
556     @Override
557     public Integer getAlternateVendorHeaderGeneratedIdentifier() {
558         return alternateVendorHeaderGeneratedIdentifier;
559     }
560 
561     @Override
562     public void setAlternateVendorHeaderGeneratedIdentifier(Integer alternateVendorHeaderGeneratedIdentifier) {
563         this.alternateVendorHeaderGeneratedIdentifier = alternateVendorHeaderGeneratedIdentifier;
564     }
565 
566     @Override
567     public String getAlternateVendorName() {
568         return alternateVendorName;
569     }
570 
571     @Override
572     public void setAlternateVendorName(String alternateVendorName) {
573         this.alternateVendorName = alternateVendorName;
574     }
575 
576     @Override
577     public String getAlternateVendorNumber() {
578         return alternateVendorNumber;
579     }
580 
581     @Override
582     public void setAlternateVendorNumber(String alternateVendorNumber) {
583         this.alternateVendorNumber = alternateVendorNumber;
584     }
585 
586     @Override
587     public boolean isDeliveryBuildingOtherIndicator() {
588         return deliveryBuildingOtherIndicator;
589     }
590 
591     @Override
592     public void setDeliveryBuildingOtherIndicator(boolean deliveryBuildingOtherIndicator) {
593         this.deliveryBuildingOtherIndicator = deliveryBuildingOtherIndicator;
594     }
595 
596     @Override
597     public void doRouteStatusChange(DocumentRouteStatusChange statusChangeEvent) {
598         super.doRouteStatusChange(statusChangeEvent);
599         if (!(this instanceof BulkReceivingDocument)) {
600             if (this.getFinancialSystemDocumentHeader().getWorkflowDocument().isProcessed()) {
601                 //delete unentered items and update po totals and save po
602                 SpringContext.getBean(ReceivingService.class).completeReceivingDocument(this);
603             }
604         }
605     }
606 
607     @Override
608     public abstract Class getItemClass();
609 
610     public Integer getPurchaseOrderIdentifier() {
611         return purchaseOrderIdentifier;
612     }
613 
614     public void setPurchaseOrderIdentifier(Integer purchaseOrderIdentifier) {
615         this.purchaseOrderIdentifier = purchaseOrderIdentifier;
616     }
617 
618     @Override
619     public Integer getAccountsPayablePurchasingDocumentLinkIdentifier() {
620         return accountsPayablePurchasingDocumentLinkIdentifier;
621     }
622 
623     @Override
624     public void setAccountsPayablePurchasingDocumentLinkIdentifier(Integer accountsPayablePurchasingDocumentLinkIdentifier) {
625         this.accountsPayablePurchasingDocumentLinkIdentifier = accountsPayablePurchasingDocumentLinkIdentifier;
626     }
627 
628     @Override
629     public PurchaseOrderDocument getPurchaseOrderDocument() {
630         if ((ObjectUtils.isNull(this.purchaseOrderDocument) || ObjectUtils.isNull(this.purchaseOrderDocument.getPurapDocumentIdentifier())) && (ObjectUtils.isNotNull(getPurchaseOrderIdentifier()))) {
631             setPurchaseOrderDocument(SpringContext.getBean(PurchaseOrderService.class).getCurrentPurchaseOrder(this.getPurchaseOrderIdentifier()));
632         }
633         return this.purchaseOrderDocument;
634     }
635 
636     @Override
637     public void setPurchaseOrderDocument(PurchaseOrderDocument purchaseOrderDocument) {
638         if (ObjectUtils.isNull(purchaseOrderDocument)) {
639             this.purchaseOrderDocument = null;
640         } else {
641             if (ObjectUtils.isNotNull(purchaseOrderDocument.getPurapDocumentIdentifier())) {
642                 setPurchaseOrderIdentifier(purchaseOrderDocument.getPurapDocumentIdentifier());
643             }
644             this.purchaseOrderDocument = purchaseOrderDocument;
645         }
646     }
647 
648     public PurApRelatedViews getRelatedViews() {
649         if (relatedViews == null) {
650             relatedViews = new PurApRelatedViews(this.documentNumber, this.accountsPayablePurchasingDocumentLinkIdentifier);
651         }
652         return relatedViews;
653     }
654 
655     public void setRelatedViews(PurApRelatedViews relatedViews) {
656         this.relatedViews = relatedViews;
657     }
658 
659     public void initiateDocument() {
660         //initiate code
661     }
662 
663     /**
664      * FIXME: this is same as PurchaseOrderDoc please move somewhere appropriate
665      * Sends FYI workflow request to the given user on this document.
666      *
667      * @param workflowDocument the associated workflow document.
668      * @param userNetworkId    the network ID of the user to be sent to.
669      * @param annotation       the annotation notes contained in this document.
670      * @param responsibility   the responsibility specified in the request.
671      * @throws WorkflowException
672      */
673     @Override
674     public void appSpecificRouteDocumentToUser(WorkflowDocument workflowDocument, String routePrincipalId, String annotation, String responsibility) throws WorkflowException {
675         if (ObjectUtils.isNotNull(workflowDocument)) {
676             String annotationNote = (ObjectUtils.isNull(annotation)) ? "" : annotation;
677             String responsibilityNote = (ObjectUtils.isNull(responsibility)) ? "" : responsibility;
678             String currentNodeName = getCurrentRouteNodeName(workflowDocument);
679             workflowDocument.adHocToPrincipal(ActionRequestType.FYI, currentNodeName, annotationNote, routePrincipalId, responsibilityNote, true);
680         }
681     }
682 
683     /**
684      * FIXME: this is same as PurchaseOrderDoc please move somewhere appropriate
685      * Returns the name of the current route node.
686      *
687      * @param wd the current workflow document.
688      * @return the name of the current route node.
689      * @throws WorkflowException
690      */
691     protected String getCurrentRouteNodeName(WorkflowDocument wd) throws WorkflowException {
692         Set<String> nodeNames = wd.getCurrentNodeNames();
693         if ((nodeNames == null) || (nodeNames.size() == 0)) {
694             return null;
695         } else {
696             return (String) nodeNames.toArray()[0];
697         }
698     }
699 
700     public boolean isBoNotesSupport() {
701         return true;
702     }
703 
704     @Override
705     public String getAppDocStatus() {
706         return this.getApplicationDocumentStatus();
707     }
708 
709     @Override
710     public void setAppDocStatus(String appDocStatus) {
711         this.setApplicationDocumentStatus(appDocStatus);
712     }
713 
714     /**
715      * Always returns true.
716      * This method is needed here because it's called by some tag files shared with PurAp documents.
717      */
718     @Override
719     public boolean getIsATypeOfPurAPRecDoc() {
720         return true;
721     }
722 
723     /**
724      * Always returns false.
725      * This method is needed here because it's called by some tag files shared with PurAp documents.
726      */
727     @Override
728     public boolean getIsATypeOfPurDoc() {
729         return false;
730     }
731 
732     /**
733      * Always returns false.
734      * This method is needed here because it's called by some tag files shared with PurAp documents.
735      */
736     @Override
737     public boolean getIsATypeOfPODoc() {
738         return false;
739     }
740 
741     /**
742      * Always returns false.
743      * This method is needed here because it's called by some tag files shared with PurAp documents.
744      */
745     @Override
746     public boolean getIsPODoc() {
747         return false;
748     }
749 
750     /**
751      * Always returns false.
752      * This method is needed here because it's called by some tag files shared with PurAp documents.
753      */
754     @Override
755     public boolean getIsReqsDoc() {
756         return false;
757     }
758 
759     public String getWorkflowStatusForResult() {
760         return PurapSearchUtils.getWorkFlowStatusString(getDocumentHeader());
761     }
762 
763     public java.util.Date getCreateDateForResult() {
764         return new java.util.Date(this.getFinancialSystemDocumentHeader().getWorkflowDocument().getDateCreated().getMillis());
765     }
766 
767     public String getDocumentTitleForResult() throws WorkflowException {
768         return KewApiServiceLocator.getDocumentTypeService().getDocumentTypeByName(this.getFinancialSystemDocumentHeader().getWorkflowDocument().getDocumentTypeName()).getLabel();
769     }
770 
771     /**
772      * Checks whether the related purchase order views need a warning to be displayed,
773      * i.e. if at least one of the purchase orders has never been opened.
774      *
775      * @return true if at least one related purchase order needs a warning; false otherwise
776      */
777     public boolean getNeedWarningRelatedPOs() {
778         List<PurchaseOrderView> poViews = getRelatedViews().getRelatedPurchaseOrderViews();
779         for (PurchaseOrderView poView : poViews) {
780             if (poView.getNeedWarning()) {
781                 return true;
782             }
783         }
784         return false;
785     }
786 
787     /**
788      * This method returns the licenserequest web service url
789      *
790      * @return url
791      */
792     public String getLicenseURL() {
793         return ConfigContext.getCurrentContextConfig().getProperty("license.web.service.url");
794 
795         //	String environment = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(OLEConstants.ENVIRONMENT_KEY);
796         //    String url  = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(environment + "."+OLEConstants.LICENSE_WEB_SERVICE_URL);
797         //    return url;
798     }
799 
800     /*@Override
801     public void setLicenseRequestDocNum(String licenseRequestDocNum) {
802         this.licenseRequestDocNum = licenseRequestDocNum;
803     }*/
804 
805     /**
806      * This method gets the licenseRequest document number for the corresponding requisition document
807      *
808      * @return licenseRequestDocNum
809      * @see org.kuali.ole.module.purap.document.PurchasingAccountsPayableDocument#getLicenseRequestDocnum()
810      */
811    /* @Override
812     public String getLicenseRequestDocNum(){
813         String licenseRequestDocNum = "";
814         *//*OleWebServiceProvider oleWebServiceProvider = (OleWebServiceProvider) GlobalResourceLoader.getService(OLEConstants.OLE_WEB_SERVICE_PROVIDER);
815         OleLicenseRequestWebService oleLicenseRequestWebService =
816                 (OleLicenseRequestWebService) oleWebServiceProvider.
817                         getService("org.kuali.ole.select.document.service.OleLicenseRequestWebService", "oleLicenseRequestWebService", getOleUrlResolver().getLicenseURL());
818         String reqDocNum = "";
819         if(this instanceof LineItemReceivingDocument) {
820             reqDocNum = this.getDocumentNumber();
821         }
822         else if (this instanceof CorrectionReceivingDocument) {
823 
824         }
825         licenseRequestDocNum = oleLicenseRequestWebService.getLicenseRequestDocNumber(reqDocNum);        *//*
826         return licenseRequestDocNum;
827     }*/
828     @Override
829     public NoteType getNoteType() {
830         return NoteType.BUSINESS_OBJECT;
831     }
832 }