001/* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.ole.select.document; 017 018import org.kuali.ole.module.purap.document.PurchaseOrderCloseDocument; 019import org.kuali.ole.module.purap.document.RequisitionDocument; 020import org.kuali.ole.select.document.service.OlePurchaseOrderDocumentHelperService; 021import org.kuali.ole.sys.OLEConstants; 022import org.kuali.ole.sys.context.SpringContext; 023import org.kuali.ole.vnd.businessobject.VendorAlias; 024import org.kuali.rice.krad.rules.rule.event.KualiDocumentEvent; 025 026import java.util.HashMap; 027import java.util.List; 028import java.util.Map; 029 030/** 031 * This class is the document class for Ole Purchase Order Close Document 032 */ 033public class OlePurchaseOrderCloseDocument extends PurchaseOrderCloseDocument { 034 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OlePurchaseOrderCloseDocument.class); 035 private String vendorPoNumber; 036 037 /** 038 * Default constructor. 039 */ 040 public OlePurchaseOrderCloseDocument() { 041 super(); 042 } 043 044 /** 045 * This method is overridden to populate newly added ole fields from requisition into Ole Purchase Order Close Document. 046 * 047 * @see org.kuali.ole.module.purap.document.PurchaseOrderDocument#populatePurchaseOrderFromRequisition(org.kuali.ole.module.purap.document.RequisitionDocument) 048 */ 049 @Override 050 public void populatePurchaseOrderFromRequisition(RequisitionDocument requisitionDocument) { 051 SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).populatePurchaseOrderFromRequisition(this, requisitionDocument); 052 } 053 054 /** 055 * This method is overriden to populate bib info in Ole Purchase Order Close Document. 056 * 057 * @see org.kuali.ole.module.purap.document.PurchaseOrderCloseDocument#prepareForSave(org.kuali.rice.krad.rule.event.KualiDocumentEvent) 058 */ 059 @Override 060 public void prepareForSave(KualiDocumentEvent event) { 061 SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).prepareForSave(this, event); 062 super.prepareForSave(event); 063 } 064 065 /** 066 * This method is overriden to populate bib info in Ole Purchase Order Close Document. 067 * 068 * @see org.kuali.ole.module.purap.document.PurchaseOrderCloseDocument#prepareForSave(org.kuali.rice.krad.rule.event.KualiDocumentEvent) 069 */ 070 @Override 071 public void processAfterRetrieve() { 072 if (this.getVendorAliasName() == null) { 073 populateVendorAliasName(); 074 } 075 // super.processAfterRetrieve(); 076 SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).processAfterRetrieve(this); 077 } 078 079 @Override 080 public List getItemsActiveOnly() { 081 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getItemsActiveOnly(this); 082 } 083 084 /** 085 * Gets the active items in this Purchase Order, and sets up the alternate amount for GL entry creation. 086 * 087 * @return the list of all active items in this Purchase Order. 088 */ 089 @Override 090 public List getItemsActiveOnlySetupAlternateAmount() { 091 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getItemsActiveOnlySetupAlternateAmount(this); 092 } 093 094 @Override 095 public boolean getAdditionalChargesExist() { 096 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getAdditionalChargesExist(this); 097 } 098 099 /** 100 * This method returns if Purchase Order Document created is in Final Status 101 * 102 * @return 103 */ 104 public boolean getIsFinalReqs() { 105 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getIsFinalReqs(this); 106 } 107 108 public boolean getIsSplitPO() { 109 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getIsSplitPO(this); 110 } 111 112 public boolean getIsReOpenPO() { 113 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getIsReOpenPO(this); 114 } 115 116 /** 117 * This method is used to get the bibedtior creat url from propertie file 118 * 119 * @return Bibeditor creat url string 120 */ 121 public String getBibeditorCreateURL() { 122 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getBibeditorCreateURL(); 123 } 124 125 public String getBibSearchURL() { 126 LOG.debug("Inside getBibSearchURL of OlePurchaseOrderCloseDocument"); 127 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getBibSearchURL(); 128 } 129 130 /** 131 * This method is used to get the bibedtior edit url from propertie file 132 * 133 * @return Bibeditor edit url string 134 */ 135 public String getBibeditorEditURL() { 136 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getBibeditorEditURL(); 137 } 138 139 /** 140 * This method is used to get the Instanceeditor url from propertie file 141 * 142 * @return Instanceeditor url string 143 */ 144 public String getInstanceEditorURL() { 145 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getInstanceEditorURL(); 146 } 147 148 /** 149 * This method is used to get the bibedtior view url from propertie file 150 * 151 * @return Bibeditor view url string 152 */ 153 public String getBibeditorViewURL() { 154 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getBibeditorViewURL(); 155 } 156 157 /** 158 * This method is used to get the directory path where the marc xml files need to be created 159 * 160 * @return Directory path string 161 */ 162 public String getMarcXMLFileDirLocation() throws Exception { 163 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getMarcXMLFileDirLocation(); 164 } 165 166 public String getVendorPoNumber() { 167 return vendorPoNumber; 168 } 169 170 public void setVendorPoNumber(String vendorPoNumber) { 171 this.vendorPoNumber = vendorPoNumber; 172 } 173 174 /** 175 * This method is used to check the status of the document for displaying view and edit buttons in line item 176 * 177 * @return boolean 178 */ 179 public boolean getIsSaved() { 180 if (this.getDocumentHeader().getWorkflowDocument().isSaved() || this.getDocumentHeader().getWorkflowDocument().isInitiated()) { 181 return true; 182 } 183 return false; 184 } 185 186 /** 187 * This method is used to get the dublin editor edit url from property file 188 * 189 * @return Dublineditor edit url string 190 */ 191 public String getDublinEditorEditURL() { 192 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getDublinEditorEditURL(); 193 } 194 195 /** 196 * This method is used to get the dublin editor view url from property file 197 * 198 * @return dublineditor view url string 199 */ 200 public String getDublinEditorViewURL() { 201 return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getDublinEditorViewURL(); 202 } 203 204 public boolean getIsATypeOfRCVGDoc() { 205 return false; 206 } 207 208 public boolean getIsATypeOfCORRDoc() { 209 return false; 210 } 211 212 private void populateVendorAliasName() { 213 Map vendorDetailMap = new HashMap(); 214 vendorDetailMap.put(OLEConstants.VENDOR_HEADER_IDENTIFIER, this.getVendorHeaderGeneratedIdentifier()); 215 vendorDetailMap.put(OLEConstants.VENDOR_HEADER_IDENTIFIER, this.getVendorDetailAssignedIdentifier()); 216 List<VendorAlias> vendorDetailList = (List) getBusinessObjectService().findMatching(VendorAlias.class, vendorDetailMap); 217 if (vendorDetailList != null && vendorDetailList.size() > 0) { 218 this.setVendorAliasName(vendorDetailList.get(0).getVendorAliasName()); 219 } 220 } 221}