1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package org.kuali.ole.select.document;
17  
18  import org.apache.commons.lang.StringEscapeUtils;
19  import org.kuali.ole.docstore.common.client.*;
20  import org.kuali.ole.docstore.common.document.Bib;
21  import org.kuali.ole.docstore.common.document.BibMarc;
22  import org.kuali.ole.docstore.common.document.BibTree;
23  import org.kuali.ole.DocumentUniqueIDPrefix;
24  import org.kuali.ole.docstore.model.bo.WorkBibDocument;
25  import org.kuali.ole.docstore.model.bo.WorkInstanceDocument;
26  import org.kuali.ole.docstore.model.bo.WorkItemDocument;
27  import org.kuali.ole.docstore.model.enums.DocType;
28  import org.kuali.ole.module.purap.document.LineItemReceivingDocument;
29  import org.kuali.ole.module.purap.document.PurchaseOrderDocument;
30  import org.kuali.ole.select.OleSelectConstant;
31  import org.kuali.ole.select.businessobject.*;
32  import org.kuali.ole.select.document.service.OleLineItemReceivingService;
33  import org.kuali.ole.select.document.service.OlePurchaseOrderDocumentHelperService;
34  import org.kuali.ole.select.service.BibInfoService;
35  import org.kuali.ole.select.service.BibInfoWrapperService;
36  import org.kuali.ole.select.service.FileProcessingService;
37  import org.kuali.ole.select.service.impl.BibInfoServiceImpl;
38  import org.kuali.ole.select.service.impl.exception.DocStoreConnectionException;
39  import org.kuali.ole.sys.OLEConstants;
40  import org.kuali.ole.sys.context.SpringContext;
41  import org.kuali.ole.sys.service.impl.OleParameterConstants;
42  import org.kuali.rice.core.api.config.property.ConfigurationService;
43  import org.kuali.rice.core.api.util.RiceKeyConstants;
44  import org.kuali.rice.core.api.util.type.KualiDecimal;
45  import org.kuali.rice.core.api.util.type.KualiInteger;
46  import org.kuali.rice.coreservice.framework.parameter.ParameterConstants.COMPONENT;
47  import org.kuali.rice.coreservice.framework.parameter.ParameterConstants.NAMESPACE;
48  import org.kuali.rice.krad.util.GlobalVariables;
49  import org.kuali.rice.krad.util.ObjectUtils;
50  import java.util.*;
51  
52  
53  
54  
55  @NAMESPACE(namespace = OleParameterConstants.PURCHASING_NAMESPACE)
56  @COMPONENT(component = "LineItemReceivingDocument")
57  public class OleLineItemReceivingDocument extends LineItemReceivingDocument {
58  
59      private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OleLineItemReceivingDocument.class);
60  
61      private static transient ConfigurationService kualiConfigurationService;
62      private static transient BibInfoWrapperService bibInfoWrapperService;
63      private static transient FileProcessingService fileProcessingService;
64      private static transient OleLineItemReceivingService oleLineItemReceivingService;
65      
66      private static transient BibInfoService bibInfoService;
67      private DocstoreClientLocator docstoreClientLocator;
68  
69      public DocstoreClientLocator getDocstoreClientLocator() {
70          if (docstoreClientLocator == null) {
71              docstoreClientLocator = SpringContext.getBean(DocstoreClientLocator.class);
72          }
73          return docstoreClientLocator;
74      }
75  
76      public static BibInfoService getBibInfoService() {
77          if (bibInfoService == null) {
78              bibInfoService = SpringContext.getBean(BibInfoServiceImpl.class);
79          }
80          return bibInfoService;
81      }
82  
83      public static OleLineItemReceivingService getOleLineItemReceivingService() {
84          if (oleLineItemReceivingService == null) {
85              oleLineItemReceivingService = SpringContext.getBean(OleLineItemReceivingService.class);
86          }
87          return oleLineItemReceivingService;
88      }
89  
90      public static void setOleLineItemReceivingService(OleLineItemReceivingService oleLineItemReceivingService) {
91          OleLineItemReceivingDocument.oleLineItemReceivingService = oleLineItemReceivingService;
92      }
93  
94  
95      public static ConfigurationService getConfigurationService() {
96          if (kualiConfigurationService == null) {
97              kualiConfigurationService = SpringContext.getBean(ConfigurationService.class);
98          }
99          return kualiConfigurationService;
100     }
101 
102     public static void setConfigurationService(ConfigurationService kualiConfigurationService) {
103         OleLineItemReceivingDocument.kualiConfigurationService = kualiConfigurationService;
104     }
105 
106     public static BibInfoWrapperService getBibInfoWrapperService() {
107         if (bibInfoWrapperService == null) {
108             bibInfoWrapperService = SpringContext.getBean(BibInfoWrapperService.class);
109         }
110         return bibInfoWrapperService;
111     }
112 
113     public static void setBibInfoWrapperService(BibInfoWrapperService bibInfoWrapperService) {
114         OleLineItemReceivingDocument.bibInfoWrapperService = bibInfoWrapperService;
115     }
116 
117     public static FileProcessingService getFileProcessingService() {
118         if (fileProcessingService == null) {
119             fileProcessingService = SpringContext.getBean(FileProcessingService.class);
120         }
121         return fileProcessingService;
122     }
123 
124     public static void setFileProcessingService(FileProcessingService fileProcessingService) {
125         OleLineItemReceivingDocument.fileProcessingService = fileProcessingService;
126     }
127 
128     public boolean getIsFinalReqs() {
129         if (this.getDocumentHeader().getWorkflowDocument().isFinal()) {
130             return true;
131         }
132         return false;
133     }
134 
135     
136 
137 
138     public void initiateDocument() {
139         super.initiateDocument();
140         getOleLineItemReceivingService().getInitialCollapseSections(this);
141     }
142 
143     
144 
145 
146 
147 
148     @Override
149     public void populateReceivingLineFromPurchaseOrder(PurchaseOrderDocument po) {
150         LOG.debug("Inside populateReceivingLineFromPurchaseOrder of OleLineItemReceivingDocument");
151         
152         this.setPurchaseOrderIdentifier(po.getPurapDocumentIdentifier());
153         this.getDocumentHeader().setOrganizationDocumentNumber(po.getDocumentHeader().getOrganizationDocumentNumber());
154         this.setAccountsPayablePurchasingDocumentLinkIdentifier(po.getAccountsPayablePurchasingDocumentLinkIdentifier());
155 
156         
157         this.setVendorHeaderGeneratedIdentifier(po.getVendorHeaderGeneratedIdentifier());
158         this.setVendorDetailAssignedIdentifier(po.getVendorDetailAssignedIdentifier());
159         this.setVendorName(po.getVendorName());
160         this.setVendorNumber(po.getVendorNumber());
161         this.setVendorAddressGeneratedIdentifier(po.getVendorAddressGeneratedIdentifier());
162         this.setVendorLine1Address(po.getVendorLine1Address());
163         this.setVendorLine2Address(po.getVendorLine2Address());
164         this.setVendorCityName(po.getVendorCityName());
165         this.setVendorStateCode(po.getVendorStateCode());
166         this.setVendorPostalCode(po.getVendorPostalCode());
167         this.setVendorCountryCode(po.getVendorCountryCode());
168 
169         
170         this.setAlternateVendorName(po.getAlternateVendorName());
171         this.setAlternateVendorNumber(po.getAlternateVendorNumber());
172         this.setAlternateVendorDetailAssignedIdentifier(po.getAlternateVendorDetailAssignedIdentifier());
173         this.setAlternateVendorHeaderGeneratedIdentifier(po.getAlternateVendorHeaderGeneratedIdentifier());
174 
175         
176         this.setDeliveryBuildingCode(po.getDeliveryBuildingCode());
177         this.setDeliveryBuildingLine1Address(po.getDeliveryBuildingLine1Address());
178         this.setDeliveryBuildingLine2Address(po.getDeliveryBuildingLine2Address());
179         this.setDeliveryBuildingName(po.getDeliveryBuildingName());
180         this.setDeliveryBuildingRoomNumber(po.getDeliveryBuildingRoomNumber());
181         this.setDeliveryCampusCode(po.getDeliveryCampusCode());
182         this.setDeliveryCityName(po.getDeliveryCityName());
183         this.setDeliveryCountryCode(po.getDeliveryCountryCode());
184         this.setDeliveryInstructionText(po.getDeliveryInstructionText());
185         this.setDeliveryPostalCode(po.getDeliveryPostalCode());
186         this.setDeliveryRequiredDate(po.getDeliveryRequiredDate());
187         this.setDeliveryRequiredDateReasonCode(po.getDeliveryRequiredDateReasonCode());
188         this.setDeliveryStateCode(po.getDeliveryStateCode());
189         this.setDeliveryToEmailAddress(po.getDeliveryToEmailAddress());
190         this.setDeliveryToName(po.getDeliveryToName());
191         this.setDeliveryToPhoneNumber(po.getDeliveryToPhoneNumber());
192 
193         
194         for (OlePurchaseOrderItem poi : (List<OlePurchaseOrderItem>) po.getItems()) {
195             
196             if (poi.isItemActiveIndicator() && poi.getItemType().isQuantityBasedGeneralLedgerIndicator() && poi.getItemType().isLineItemIndicator()) {
197                 this.getItems().add(new OleLineItemReceivingItem(poi, this));
198             }
199         }
200 
201         populateDocumentDescription(po);
202         LOG.debug("Leaving populateReceivingLineFromPurchaseOrder of OleLineItemReceivingDocument");
203     }
204 
205     @Override
206     public void prepareForSave() {
207         try {
208             String titleId = null;
209             List<OleLineItemReceivingItem> items = new ArrayList<OleLineItemReceivingItem>();
210             items = this.getItems();
211 
212             Iterator iterator = items.iterator();
213             HashMap dataMap = new HashMap();
214             int itemCount = 0;
215             while (iterator.hasNext()) {
216                 LOG.debug("###########inside prepareForSave item loop###########");
217                 Object object = iterator.next();
218                 if (object instanceof OleLineItemReceivingItem) {
219                     LOG.debug("###########inside prepareForSave ole requisition item###########");
220                     OleLineItemReceivingItem singleItem = (OleLineItemReceivingItem) object;
221                     if (singleItem.getItemTitleId() != null) {
222                         titleId = singleItem.getItemTitleId();
223                     } else if (singleItem.getBibInfoBean() != null) {
224                         titleId = singleItem.getBibInfoBean().getTitleId();
225                     }
226                     if (ObjectUtils.isNull(singleItem.getItemReceivedTotalParts())) {
227                         singleItem.setItemReceivedTotalParts(KualiDecimal.ZERO);
228                     } else if (ObjectUtils.isNull(singleItem.getItemReceivedTotalQuantity())) {
229                         singleItem.setItemReceivedTotalQuantity(KualiDecimal.ZERO);
230                     } else if (ObjectUtils.isNull(singleItem.getItemReturnedTotalParts())) {
231                         singleItem.setItemReturnedTotalParts(KualiDecimal.ZERO);
232                     } else if (ObjectUtils.isNull(singleItem.getItemReturnedTotalQuantity())) {
233                         singleItem.setItemReturnedTotalQuantity(KualiDecimal.ZERO);
234                     } else if (ObjectUtils.isNull(singleItem.getItemDamagedTotalParts())) {
235                         singleItem.setItemDamagedTotalParts(KualiDecimal.ZERO);
236                     } else if (ObjectUtils.isNull(singleItem.getItemDamagedTotalQuantity())) {
237                         singleItem.setItemDamagedTotalQuantity(KualiDecimal.ZERO);
238                     }
239                 }
240             }
241             super.prepareForSave();
242         } catch (DocStoreConnectionException dsce) {
243             GlobalVariables.getMessageMap().putError("error.requisition.docstore.connectionError", RiceKeyConstants.ERROR_CUSTOM, "Error while connecting to document storage server, contact system administrator.");
244         } catch (Exception e) {
245             LOG.error("Exception during prepareForSave() in OleLineItemReceivingDocument"+e);
246             throw new RuntimeException(e);
247         }
248     }
249 
250     
251 
252 
253 
254     @Override
255     public void processAfterRetrieve() {
256         try {
257             LOG.debug("Inside processAfterRetrieve of OleLineItemReceivingDocument");
258 
259             String itemDescription = "";
260             List<OleLineItemReceivingItem> items = new ArrayList<OleLineItemReceivingItem>();
261             items = this.getItems();
262             Iterator iterator = items.iterator();
263             String titleId = null;
264             int itemCount = 0;
265             boolean isBibFileExist = false;
266             boolean isBibEdit = false;
267             List receiptNoteList;
268             List specialHandlingNoteList;
269             for (OleLineItemReceivingItem item : items) {
270                 receiptNoteList = new ArrayList();
271                 specialHandlingNoteList = new ArrayList();
272                 List<OleLineItemReceivingReceiptNotes> notes = new ArrayList<OleLineItemReceivingReceiptNotes>();
273                 notes = item.getNoteList();
274                 for (OleLineItemReceivingReceiptNotes note : notes) {
275                     String noteType = note.getNoteType().getNoteType();
276                     if (noteType.equalsIgnoreCase(OLEConstants.SPECIAL_PROCESSING_INSTRUCTION_NOTE)) {
277                         specialHandlingNoteList.add(note);
278                     } else {
279                         receiptNoteList.add(note);
280                     }
281                     item.setSpecialHandlingNoteList(specialHandlingNoteList);
282                     item.setReceiptNoteList(receiptNoteList);
283                     item.setReceiptNoteListSize(receiptNoteList.size());
284                 }
285             }
286             while (iterator.hasNext()) {
287                 LOG.debug("###########inside processAfterRetrieve item loop###########");
288                 Object object = iterator.next();
289                 if (object instanceof OleLineItemReceivingItem) {
290                     LOG.debug("###########inside processAfterRetrieve ole requisition item###########");
291                     OleLineItemReceivingItem singleItem = (OleLineItemReceivingItem) object;
292                     if (LOG.isDebugEnabled()) {
293                         LOG.debug("Title id while retriving ------>" + singleItem.getItemTitleId());
294                     }
295                     BibInfoBean xmlBibInfoBean = new BibInfoBean();
296                     HashMap<String, String> dataMap = new HashMap<String, String>();
297                     
298 
299 
300 
301 
302                     if (singleItem.getItemTitleId() == null) {
303                         singleItem.setItemTitleId(getOleLineItemReceivingService().getLineItemDocItemTitleId(singleItem));
304                     }
305 
306                     if (singleItem.getItemTitleId() != null) {
307                         Bib bib = new BibMarc();
308                         if (singleItem.getItemTitleId() != null && singleItem.getItemTitleId() != "") {
309                             bib = getDocstoreClientLocator().getDocstoreClient().retrieveBib(singleItem.getItemTitleId());
310                             singleItem.setBibUUID(bib.getId());
311                         }
312                         singleItem.setDocFormat(DocumentUniqueIDPrefix.getBibFormatType(singleItem.getItemTitleId()));
313                         itemDescription = ((bib.getTitle() != null && !bib.getTitle().isEmpty()) ? bib.getTitle().trim() + ", " : "") +
314                                 ((bib.getAuthor() != null && !bib.getAuthor().isEmpty()) ? bib.getAuthor().trim() + ", " : "") +
315                                 ((bib.getPublisher() != null && !bib.getPublisher().isEmpty()) ? bib.getPublisher().trim() + ", " : "") +
316                                 ((bib.getIsbn() != null && !bib.getIsbn().isEmpty()) ? bib.getIsbn().trim() + ", " : "");
317                         if (itemDescription != null && !(itemDescription.equals(""))) {
318                             itemDescription = itemDescription.substring(0, itemDescription.lastIndexOf(","));
319                             StringEscapeUtils stringEscapeUtils = new StringEscapeUtils();
320                             itemDescription = stringEscapeUtils.unescapeXml(itemDescription);
321                             singleItem.setItemDescription(itemDescription);
322                         }
323                     }
324                     Map cpySection = new HashMap();
325                     cpySection.put("itemIdentifier", singleItem.getPurchaseOrderIdentifier());
326 
327                     List<OlePurchaseOrderItem> olePurchaseOrderItems = (List<OlePurchaseOrderItem>) getBusinessObjectService().findMatching(OlePurchaseOrderItem.class, cpySection);
328                     if (olePurchaseOrderItems.size() > 0) {
329                         for (OlePurchaseOrderItem item : olePurchaseOrderItems) {
330                             singleItem.setCopyList(item.getCopyList());
331                         }
332                     }
333                 }
334             }
335             LOG.debug("Leaving processAfterRetrieve of OleLineItemReceivingDocument");
336         } catch (Exception e) {
337             LOG.error("Exception during processAfterRetrieve() in OleLineItemReceivingDocument"+e);
338             throw new RuntimeException(e);
339         }
340     }
341 
342     
343 
344 
345     public void setEnumerationToCopies(OleLineItemReceivingItem singleItem) {
346         String partEnumerationCopy = getConfigurationService().getPropertyValueAsString(
347                 OLEConstants.PART_ENUMERATION_COPY);
348         String partEnumerationVolume = getConfigurationService().getPropertyValueAsString(
349                 OLEConstants.PART_ENUMERATION_VOLUME);
350         List<OleCopies> itemCopies = singleItem.getCopies();
351         List<OleCopies> copiesList = new ArrayList<OleCopies>();
352         for (int copies = 0; copies < itemCopies.size(); copies++) {
353             itemCopies.get(copies).setParts(new KualiInteger(singleItem.getItemReceivedTotalParts().intValue()));
354             int startingCopyNumber = itemCopies.get(copies).getStartingCopyNumber().intValue();
355             StringBuffer enumeration = new StringBuffer();
356             for (int noOfCopies = 0; noOfCopies < singleItem.getItemCopies().intValue(); noOfCopies++) {
357                 for (int noOfParts = 0; noOfParts < singleItem.getItemReceivedTotalParts().intValue(); noOfParts++) {
358                     int newNoOfCopies = startingCopyNumber + noOfCopies;
359                     int newNoOfParts = noOfParts + 1;
360                     if (noOfCopies + 1 == singleItem.getItemCopies().intValue()
361                             && newNoOfParts == singleItem.getItemReceivedTotalParts().intValue()) {
362                         enumeration = enumeration.append(
363                                 partEnumerationCopy + newNoOfCopies + OLEConstants.DOT_TO_SEPARATE_COPIES_PARTS)
364                                 .append(
365                                         partEnumerationVolume + newNoOfParts);
366                     } else {
367                         enumeration = enumeration.append(
368                                 partEnumerationCopy + newNoOfCopies + OLEConstants.DOT_TO_SEPARATE_COPIES_PARTS)
369                                 .append(partEnumerationVolume + newNoOfParts
370                                         + OLEConstants.COMMA_TO_SEPARATE_ENUMERATION);
371                     }
372                 }
373             }
374             itemCopies.get(copies).setPartEnumeration(enumeration.toString());
375         }
376     }
377 
378     
379 
380 
381 
382 
383 
384 
385     public List<OleCopies> setCopiesToLineItem(OleLineItemReceivingItem singleItem, WorkBibDocument workBibDocument) {
386         List<WorkInstanceDocument> instanceDocuments = workBibDocument.getWorkInstanceDocumentList();
387         List<OleCopies> copies = new ArrayList<OleCopies>();
388         for (WorkInstanceDocument workInstanceDocument : instanceDocuments) {
389             List<WorkItemDocument> itemDocuments = workInstanceDocument.getItemDocumentList();
390             StringBuffer enumeration = new StringBuffer();
391             for (int itemDocs = 0; itemDocs < itemDocuments.size(); itemDocs++) {
392                 if (itemDocs + 1 == itemDocuments.size()) {
393                     enumeration = enumeration.append(itemDocuments.get(itemDocs).getEnumeration());
394                 } else {
395                     enumeration = enumeration.append(itemDocuments.get(itemDocs).getEnumeration() + ",");
396                 }
397 
398             }
399             int startingCopy = 0;
400             if (singleItem.getItemReceivedTotalParts().intValue() != 0 && null != enumeration) {
401                 String enumerationSplit = enumeration.substring(1, 2);
402                 boolean isint = checkIsEnumerationSplitIsIntegerOrNot(enumerationSplit);
403                 if (isint) {
404                     startingCopy = Integer.parseInt(enumerationSplit);
405                 }
406             }
407 
408             
409 
410 
411 
412             boolean isValid = checkForEnumeration(enumeration);
413             if (isValid) {
414                 OleRequisitionCopies copy = new OleRequisitionCopies();
415                 int noOfCopies = 0;
416                 if (null != singleItem.getItemOrderedQuantity() && null != singleItem.getItemOrderedParts()) {
417                     noOfCopies = workInstanceDocument.getItemDocumentList().size()
418                             / singleItem.getItemOrderedParts().intValue();
419                     copy.setParts(new KualiInteger(singleItem.getItemOrderedParts().intValue()));
420                 } else {
421                     noOfCopies = workInstanceDocument.getItemDocumentList().size()
422                             / singleItem.getItemReceivedTotalParts().intValue();
423                     copy.setParts(new KualiInteger(singleItem.getItemReceivedTotalParts().intValue()));
424                 }
425 
426                 copy.setLocationCopies(workInstanceDocument.getHoldingsDocument().getLocationName());
427                 copy.setItemCopies(new KualiDecimal(noOfCopies));
428                 copy.setPartEnumeration(enumeration.toString());
429                 copy.setStartingCopyNumber(new KualiInteger(startingCopy));
430                 copies.add(copy);
431                 
432             }
433         }
434         return copies;
435     }
436 
437     public boolean checkForEnumeration(StringBuffer enumeration) {
438         if (null != enumeration && !(enumeration.equals("")) && !(enumeration.toString().equals("null"))) {
439             return true;
440         } else {
441             return false;
442         }
443     }
444 
445     public boolean checkIsEnumerationSplitIsIntegerOrNot(String enumerationSplit) {
446         try {
447             int startingCopy = Integer.parseInt(enumerationSplit);
448         } catch (NumberFormatException e) {
449             return false;
450         }
451         return true;
452     }
453 
454     
455 
456 
457 
458 
459 
460 
461 
462 
463 
464 
465 
466 
467 
468 
469 
470 
471 
472 
473 
474 
475 
476 
477 
478 
479 
480     
481 
482 
483     
484 
485 
486 
487 
488     public String getBibeditorCreateURL() {
489         String bibeditorCreateURL = getConfigurationService().getPropertyValueAsString(OLEConstants.BIBEDITOR_CREATE_URL_KEY);
490         return bibeditorCreateURL;
491     }
492 
493     public String getBibSearchURL() {
494         String bibSearchURL = getConfigurationService().getPropertyValueAsString(OLEConstants.BIBEDITOR_SEARCH_URL_KEY);
495         return bibSearchURL;
496     }
497 
498     
499 
500 
501 
502 
503     public String getBibeditorEditURL() {
504         String bibeditorEditURL = getConfigurationService().getPropertyValueAsString(OLEConstants.BIBEDITOR_URL_KEY);
505         return bibeditorEditURL;
506     }
507     
508 
509 
510 
511 
512     public String getDublinEditorEditURL() {
513         return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getDublinEditorEditURL();
514     }
515 
516     
517 
518 
519 
520 
521     public String getBibeditorViewURL() {
522         String bibeditorViewURL = getConfigurationService().getPropertyValueAsString(OLEConstants.DOCSTORE_APP_URL_KEY);
523         return bibeditorViewURL;
524     }
525     
526 
527 
528 
529 
530     public String getDublinEditorViewURL() {
531         return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getDublinEditorViewURL();
532 
533     }
534     
535 
536 
537 
538 
539     public String getMarcXMLFileDirLocation() throws Exception {
540         String externaleDirectory = getFileProcessingService().getMarcXMLFileDirLocation();
541         return externaleDirectory;
542     }
543 
544 
545     
546 
547 
548 
549 
550     public boolean getIsSaved() {
551         if (this.getDocumentHeader().getWorkflowDocument().isSaved() || this.getDocumentHeader().getWorkflowDocument().isInitiated()) {
552             return true;
553         }
554         return false;
555     }
556 
557     private void setItemDescription(OleLineItemReceivingItem singleItem) throws Exception {
558         if (singleItem.getOleOrderRecord() != null) {
559             Map<String, ?> bibAssociatedFieldValuesMap = singleItem.getOleOrderRecord().getOleBibRecord().getBibAssociatedFieldsValueMap();
560             List titleList = (List) bibAssociatedFieldValuesMap.get("Title_search");
561             String title = titleList != null && !titleList.isEmpty() ? (String) (titleList).get(0) : null;
562             List authorList = (List) bibAssociatedFieldValuesMap.get("Author_search");
563             String author = authorList != null && !authorList.isEmpty() ? (String) (authorList).get(0) : null;
564             List publisherList = (List) bibAssociatedFieldValuesMap.get("Publisher_search");
565             String publisher = publisherList != null && !publisherList.isEmpty() ? (String) (publisherList).get(0) : null;
566             List isbnList = (List) bibAssociatedFieldValuesMap.get("020a");
567             String isbn = isbnList != null && !isbnList.isEmpty() ? (String) (isbnList).get(0) : null;
568 
569             singleItem.setBibUUID(singleItem.getOleOrderRecord().getOleBibRecord().getBibUUID());
570             singleItem.setItemDescription(title + "," + author + "," + publisher + "," + isbn);
571         }
572     }
573 
574     public boolean getIsATypeOfRCVGDoc() {
575         return true;
576     }
577 
578     public boolean getIsATypeOfCORRDoc() {
579         return false;
580     }
581 
582 }