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.Timestamp;
019
020 import org.kuali.kfs.module.purap.businessobject.AccountsPayableItem;
021 import org.kuali.kfs.module.purap.businessobject.PurApItemUseTax;
022 import org.kuali.kfs.module.purap.businessobject.PurchaseOrderItem;
023 import org.kuali.kfs.module.purap.document.service.AccountsPayableDocumentSpecificService;
024 import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySequenceHelper;
025 import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail;
026 import org.kuali.kfs.vnd.businessobject.CampusParameter;
027 import org.kuali.rice.kns.util.KualiDecimal;
028
029 /**
030 * Accounts Payable Document Interface
031 */
032 public interface AccountsPayableDocument extends PurchasingAccountsPayableDocument {
033
034 public Integer getPurchaseOrderIdentifier();
035
036 public void setPurchaseOrderIdentifier(Integer purchaseOrderIdentifier);
037
038 public String getAccountsPayableProcessorIdentifier();
039
040 public void setAccountsPayableProcessorIdentifier(String accountsPayableProcessorIdentifier);
041
042 public String getLastActionPerformedByPersonId();
043
044 public void setLastActionPerformedByPersonId(String lastActionPerformedByPersonId);
045
046 public String getProcessingCampusCode();
047
048 public void setProcessingCampusCode(String processingCampusCode);
049
050 public Timestamp getAccountsPayableApprovalTimestamp();
051
052 public void setAccountsPayableApprovalTimestamp(Timestamp accountsPayableApprovalTimestamp);
053
054 public Timestamp getExtractedTimestamp();
055
056 public void setExtractedTimestamp(Timestamp extractedTimestamp);
057
058 public boolean isHoldIndicator();
059
060 public void setHoldIndicator(boolean holdIndicator);
061
062 public String getNoteLine1Text();
063
064 public void setNoteLine1Text(String noteLine1Text);
065
066 public String getNoteLine2Text();
067
068 public void setNoteLine2Text(String noteLine2Text);
069
070 public String getNoteLine3Text();
071
072 public void setNoteLine3Text(String noteLine3Text);
073
074 public CampusParameter getProcessingCampus();
075
076 public PurchaseOrderDocument getPurchaseOrderDocument();
077
078 public void setPurchaseOrderDocument(PurchaseOrderDocument purchaseOrderDocument);
079
080 /**
081 * Determines if review route node is required.
082 *
083 * @return - true if review is required, false otherwise.
084 */
085 public boolean requiresAccountsPayableReviewRouting();
086
087 /**
088 * Determines if approval is an option during review.
089 *
090 * @return - true if approval is available during review, false otherwise.
091 */
092 public boolean approvalAtAccountsPayableReviewAllowed();
093
094 public boolean isUnmatchedOverride();
095
096 public void setUnmatchedOverride(boolean unmatchedOverride);
097
098 /**
099 * Retrieves grand total amount for document.
100 *
101 * @return - grand total
102 */
103 public KualiDecimal getGrandTotal();
104
105 /**
106 *
107 * This method returns the amount of tax to remit to the vendor
108 * @return total of document tax to remit to the vendor null if none
109 */
110 public KualiDecimal getTotalRemitTax();
111
112 /**
113 * Returns the amount entered on the initial screen.
114 *
115 * @return - amount entered by user on initial screen
116 */
117 public KualiDecimal getInitialAmount();
118
119 public boolean isContinuationAccountIndicator();
120
121 public void setContinuationAccountIndicator(boolean continuationAccountIndicator);
122
123 /**
124 * Determines if document has been extracted.
125 *
126 * @return - true if document has been extracted, false otherwise.
127 */
128 public boolean isExtracted();
129
130 public AccountsPayableItem getAPItemFromPOItem(PurchaseOrderItem poi);
131
132 public abstract AccountsPayableDocumentSpecificService getDocumentSpecificService();
133
134 public abstract boolean generateGeneralLedgerPendingEntries(GeneralLedgerPendingEntrySourceDetail glpeSourceDetail, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, PurApItemUseTax offsetUseTax);
135
136 }
137