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
017package org.kuali.ole.select.document;
018
019import org.kuali.ole.module.purap.document.PurchaseOrderVoidDocument;
020import org.kuali.ole.module.purap.document.RequisitionDocument;
021import org.kuali.ole.select.document.service.OlePurchaseOrderDocumentHelperService;
022import org.kuali.ole.sys.OLEConstants;
023import org.kuali.ole.sys.context.SpringContext;
024import org.kuali.ole.vnd.businessobject.VendorAlias;
025import org.kuali.rice.krad.rules.rule.event.KualiDocumentEvent;
026
027import java.util.HashMap;
028import java.util.List;
029import java.util.Map;
030
031/**
032 * Purchase Order Void Document
033 */
034public class OlePurchaseOrderVoidDocument extends PurchaseOrderVoidDocument {
035    protected static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OlePurchaseOrderVoidDocument.class);
036    private String vendorPoNumber;
037
038    /**
039     * Default constructor.
040     */
041    public OlePurchaseOrderVoidDocument() {
042        super();
043    }
044
045    /**
046     * This method is overridden to populate newly added ole fields from requisition into Ole Purchase Order Void Document.
047     *
048     * @see org.kuali.ole.module.purap.document.PurchaseOrderDocument#populatePurchaseOrderFromRequisition(org.kuali.ole.module.purap.document.RequisitionDocument)
049     */
050    @Override
051    public void populatePurchaseOrderFromRequisition(RequisitionDocument requisitionDocument) {
052        SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).populatePurchaseOrderFromRequisition(this, requisitionDocument);
053    }
054
055    /**
056     * This method is overriden to populate bib info in Ole Purchase Order Void Document.
057     *
058     * @see org.kuali.ole.module.purap.document.PurchaseOrderCloseDocument#prepareForSave(org.kuali.rice.krad.rule.event.KualiDocumentEvent)
059     */
060    @Override
061    public void prepareForSave(KualiDocumentEvent event) {
062        SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).prepareForSave(this, event);
063        super.prepareForSave(event);
064    }
065
066    /**
067     * This method is overriden to populate bib info in Ole Purchase Order Void Document.
068     *
069     * @see org.kuali.ole.module.purap.document.PurchaseOrderCloseDocument#prepareForSave(org.kuali.rice.krad.rule.event.KualiDocumentEvent)
070     */
071    @Override
072    public void processAfterRetrieve() {
073        if (this.getVendorAliasName() == null) {
074            populateVendorAliasName();
075        }
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 OlePurchaseOrderVoidDocument");
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 dublinedtior edit url from propertie file
141     *
142     * @return Dublineditor edit url string
143     */
144    public String getDublinEditorEditURL() {
145        return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getDublinEditorEditURL();
146    }
147    /**
148     * This method is used to get the Instanceeditor url from propertie file
149     *
150     * @return Instanceeditor url string
151     */
152    public String getInstanceEditorURL() {
153        return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getInstanceEditorURL();
154    }
155
156    /**
157     * This method is used to get the bibedtior view url from propertie file
158     *
159     * @return Bibeditor view url string
160     */
161    public String getBibeditorViewURL() {
162        return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getBibeditorViewURL();
163    }
164
165    /**
166     * This method is used to get the dublinedtior view url from propertie file
167     *
168     * @return dublineditor view url string
169     */
170    public String getDublinEditorViewURL() {
171        return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getDublinEditorViewURL();
172    }
173    /**
174     * This method is used to get the directory path where the marc xml files need to be created
175     *
176     * @return Directory path string
177     */
178    public String getMarcXMLFileDirLocation() throws Exception {
179        return SpringContext.getBean(OlePurchaseOrderDocumentHelperService.class).getMarcXMLFileDirLocation();
180    }
181
182    public String getVendorPoNumber() {
183        return vendorPoNumber;
184    }
185
186    public void setVendorPoNumber(String vendorPoNumber) {
187        this.vendorPoNumber = vendorPoNumber;
188    }
189
190
191    /**
192     * This method is used to check the status of the document for displaying view and edit buttons in line item
193     *
194     * @return boolean
195     */
196    public boolean getIsSaved() {
197        if (this.getDocumentHeader().getWorkflowDocument().isSaved() || this.getDocumentHeader().getWorkflowDocument().isInitiated()) {
198            return true;
199        }
200        return false;
201    }
202
203    public boolean getIsATypeOfRCVGDoc() {
204        return false;
205    }
206
207    public boolean getIsATypeOfCORRDoc() {
208        return false;
209    }
210
211    private void populateVendorAliasName() {
212        Map vendorDetailMap = new HashMap();
213        vendorDetailMap.put(OLEConstants.VENDOR_HEADER_IDENTIFIER, this.getVendorHeaderGeneratedIdentifier());
214        vendorDetailMap.put(OLEConstants.VENDOR_DETAIL_IDENTIFIER, this.getVendorDetailAssignedIdentifier());
215        List<VendorAlias> vendorDetailList = (List) getBusinessObjectService().findMatching(VendorAlias.class, vendorDetailMap);
216        if (vendorDetailList != null && vendorDetailList.size() > 0) {
217            this.setVendorAliasName(vendorDetailList.get(0).getVendorAliasName());
218        }
219    }
220}