/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.purap.document; import java.sql.Timestamp; import org.kuali.kfs.module.purap.businessobject.AccountsPayableItem; import org.kuali.kfs.module.purap.businessobject.PurApItemUseTax; import org.kuali.kfs.module.purap.businessobject.PurchaseOrderItem; import org.kuali.kfs.module.purap.document.service.AccountsPayableDocumentSpecificService; import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySequenceHelper; import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail; import org.kuali.kfs.vnd.businessobject.CampusParameter; import org.kuali.rice.core.api.util.type.KualiDecimal; /** * Accounts Payable Document Interface */ public interface AccountsPayableDocument extends PurchasingAccountsPayableDocument { public Integer getPurchaseOrderIdentifier(); public void setPurchaseOrderIdentifier(Integer purchaseOrderIdentifier); public String getAccountsPayableProcessorIdentifier(); public void setAccountsPayableProcessorIdentifier(String accountsPayableProcessorIdentifier); public String getLastActionPerformedByPersonId(); public void setLastActionPerformedByPersonId(String lastActionPerformedByPersonId); public String getProcessingCampusCode(); public void setProcessingCampusCode(String processingCampusCode); public Timestamp getAccountsPayableApprovalTimestamp(); public void setAccountsPayableApprovalTimestamp(Timestamp accountsPayableApprovalTimestamp); public Timestamp getExtractedTimestamp(); public void setExtractedTimestamp(Timestamp extractedTimestamp); public boolean isHoldIndicator(); public void setHoldIndicator(boolean holdIndicator); public String getNoteLine1Text(); public void setNoteLine1Text(String noteLine1Text); public String getNoteLine2Text(); public void setNoteLine2Text(String noteLine2Text); public String getNoteLine3Text(); public void setNoteLine3Text(String noteLine3Text); public CampusParameter getProcessingCampus(); public PurchaseOrderDocument getPurchaseOrderDocument(); public void setPurchaseOrderDocument(PurchaseOrderDocument purchaseOrderDocument); /** * Determines if review route node is required. * * @return - true if review is required, false otherwise. */ public boolean requiresAccountsPayableReviewRouting(); /** * Determines if approval is an option during review. * * @return - true if approval is available during review, false otherwise. */ public boolean approvalAtAccountsPayableReviewAllowed(); public boolean isUnmatchedOverride(); public void setUnmatchedOverride(boolean unmatchedOverride); /** * Retrieves grand total amount for document. * * @return - grand total */ public KualiDecimal getGrandTotal(); /** * * This method returns the amount of tax to remit to the vendor * @return total of document tax to remit to the vendor null if none */ public KualiDecimal getTotalRemitTax(); /** * Returns the amount entered on the initial screen. * * @return - amount entered by user on initial screen */ public KualiDecimal getInitialAmount(); public boolean isContinuationAccountIndicator(); public void setContinuationAccountIndicator(boolean continuationAccountIndicator); /** * Determines if document has been extracted. * * @return - true if document has been extracted, false otherwise. */ public boolean isExtracted(); public AccountsPayableItem getAPItemFromPOItem(PurchaseOrderItem poi); public abstract AccountsPayableDocumentSpecificService getDocumentSpecificService(); public abstract boolean generateGeneralLedgerPendingEntries(GeneralLedgerPendingEntrySourceDetail glpeSourceDetail, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, PurApItemUseTax offsetUseTax); }