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 }