1 /* 2 * The Kuali Financial System, a comprehensive financial management system for higher education. 3 * 4 * Copyright 2005-2014 The Kuali Foundation 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Affero General Public License as 8 * published by the Free Software Foundation, either version 3 of the 9 * License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Affero General Public License for more details. 15 * 16 * You should have received a copy of the GNU Affero General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 package org.kuali.kfs.sys.document; 20 21 import java.util.List; 22 23 import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry; 24 import org.kuali.kfs.sys.businessobject.SufficientFundsItem; 25 26 /** 27 * Defines methods that must be implements for a general ledger posting document. 28 */ 29 public interface GeneralLedgerPostingDocument extends LedgerPostingDocument { 30 /** 31 * This method retrieves the list of GLPEs for the document. 32 * 33 * @return A list of pending entries. 34 */ 35 List<GeneralLedgerPendingEntry> getGeneralLedgerPendingEntries(); 36 37 /** 38 * This method retrieves a particular pending entry instance, automatically instantiating any missing intervening instances. 39 * This behavior is coupled tightly with some underlying issues that the Struts PojoProcessor plugin has with how objects get 40 * instantiated within lists. This behavior is required because otherwise when the PojoProcessor tries to automatically inject 41 * values into the list, it will get an index out of bounds error if the instance at an index is being called and prior 42 * instances at indices before that one are not being instantiated. 43 * 44 * @param index 45 * @return The GLPE instance at the passed in index. 46 */ 47 GeneralLedgerPendingEntry getGeneralLedgerPendingEntry(int index); 48 49 /** 50 * This method sets the list of pending entries for this document. 51 * 52 * @param generalLedgerPendingEntries 53 */ 54 void setGeneralLedgerPendingEntries(List<GeneralLedgerPendingEntry> generalLedgerPendingEntries); 55 56 /** 57 * This method will check sufficient funds for the document 58 * 59 * @return a list of sufficientfundsitems that do not have sufficient funds. It returns an empty list if there is sufficient 60 * funds for the entire document 61 */ 62 public List<SufficientFundsItem> checkSufficientFunds(); 63 64 /** 65 * This method will return only PLEs that should be checked for SF. Normally this will be all PLEs, but some docs (such as BA) 66 * have additional requirements. 67 * 68 * @return a list of sufficientfundsitems that do not have sufficient funds. It returns an empty list if there is sufficient 69 * funds for the entire document 70 */ 71 public List<GeneralLedgerPendingEntry> getPendingLedgerEntriesForSufficientFundsChecking(); 72 }