View Javadoc

1   /*
2    * Copyright 2005 The Kuali Foundation
3    * 
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    * http://www.opensource.org/licenses/ecl2.php
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.ole.gl.dataaccess;
17  
18  import java.util.Collection;
19  import java.util.Iterator;
20  import java.util.List;
21  import java.util.Map;
22  
23  import org.kuali.ole.coa.businessobject.Account;
24  import org.kuali.ole.gl.businessobject.Balance;
25  import org.kuali.ole.gl.businessobject.Transaction;
26  import org.kuali.ole.sys.businessobject.SystemOptions;
27  import org.kuali.rice.core.api.parameter.ParameterEvaluator;
28  
29  /**
30   * The DAO interface that declares methods needed to query the database about balances
31   */
32  public interface BalanceDao {
33  
34      /**
35       * Get the GL Summary data
36       * 
37       * @param universityFiscalYear the fiscal year of balances to search for
38       * @param balanceTypeCodes a list of balance type codes of balances to search for
39       * @return iterator of reported on java.lang.Object arrays with the report data
40       */
41      public Iterator<Object[]> getGlSummary(int universityFiscalYear, Collection<String> balanceTypeCodes);
42  
43      /**
44       * Given a transaction, finds the balance record it would affect
45       * 
46       * @param t a transaction
47       * @return the balance record it would affect
48       */
49      public Balance getBalanceByTransaction(Transaction t);
50  
51      /**
52       * Based on specific query types, return an Iterator of balance records
53       * 
54       * @param account the account of balances to find
55       * @param fiscalYear the fiscal year of balances to find
56       * @param includedObjectCodes a Collection of object codes found balances should have one of
57       * @param excludedObjectCodes a Collection of object codes found balances should not have one of
58       * @param objectTypeCodes a Collection of object type codes found balances should have one of
59       * @param balanceTypeCodes a Collection of balance type codes found balances should have one of
60       * @return an Iterator of Balances
61       */
62      public Iterator findBalances(Account account, Integer fiscalYear, Collection includedObjectCodes, Collection excludedObjectCodes, Collection objectTypeCodes, Collection balanceTypeCodes);
63  
64      /**
65       * This method finds the cash balance entries according to input fields and values. The results will be limited to the system
66       * lookup results limit.
67       * 
68       * @param fieldValues the input fields and values
69       * @param isConsolidated consolidation option is applied or not
70       * @param encumbranceBalanceTypes a list of encumbrance Balance Types
71       * @return the records of cash balance entries
72       */
73      public Iterator<Balance> lookupCashBalance(Map fieldValues, boolean isConsolidated, Collection<String> encumbranceBalanceTypes);
74  
75      /**
76       * This method gets the size collection of cash balance entries or entry groups according to input fields and values
77       * 
78       * @param fieldValues the input fields and values
79       * @param isConsolidated consolidation option is applied or not
80       * @param encumbranceBalanceTypes a list of encumbrance balance types
81       * @return the size collection of cash balance entry groups
82       */
83      public Integer getDetailedCashBalanceRecordCount(Map fieldValues, Collection<String> encumbranceBalanceTypes);
84  
85      /**
86       * This method gets the size collection of cash balance entry groups according to input fields and values if the entries are
87       * required to be consolidated
88       * 
89       * @param fieldValues the input fields and values
90       * @param encumbranceBalanceTypes a list of encumbrance balance types
91       * @return the size collection of cash balance entry groups
92       */
93      public int getConsolidatedCashBalanceRecordCount(Map fieldValues, Collection<String> encumbranceBalanceTypes);
94  
95      /**
96       * This method finds the records of balance entries according to input fields and values
97       * 
98       * @param fieldValues the input fields and values
99       * @param isConsolidated consolidation option is applied or not
100      * @param encumbranceBalanceTypes a list of encumbrance balance types
101      * @return the records of balance entries
102      */
103     public Iterator findBalance(Map fieldValues, boolean isConsolidated, Collection<String> encumbranceBalanceTypes);
104 
105     /**
106      * This method gets the size collection of balance entry groups according to input fields and values if the entries are required
107      * to be consolidated
108      * 
109      * @param fieldValues the input fields and values
110      * @param encumbranceBalanceTypes a list of encumbrance balance types
111      * @return the size collection of balance entry groups
112      */
113     public Iterator getConsolidatedBalanceRecordCount(Map fieldValues, Collection<String> encumbranceBalanceTypes);
114 
115     /**
116      * Returns the balance entries for the given year, chart, and account.
117      * 
118      * @param universityFiscalYear the unversity fiscal year of balances to return
119      * @param chartOfAccountsCode the chart of accounts code of balances to return
120      * @param accountNumber the account number of balances to return
121      * @param sfCode Sufficient Funds Code (used to determine sorting)
122      * @return balance entries matching above
123      */
124     public Iterator<Balance> findAccountBalances(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String sfCode);
125 
126     /**
127      * Returns the balance entries for the given year, chart, and account.
128      * 
129      * @param universityFiscalYear the fiscal year of balances to return
130      * @param chartOfAccountsCode the chart of accounts code of balances to return
131      * @param accountNumber the account number of balances to return
132      * @return balance entries matching above sorted by object code
133      */
134     public Iterator<Balance> findAccountBalances(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber);
135 
136     /**
137      * Returns the CB (current budget) record for the given year, chart, account, and object code if one is found.
138      * 
139      * @param universityFiscalYear the fiscal year of the CB balance to return
140      * @param chartOfAccountsCode the chart of the accounts code of the CB balanes to return
141      * @param accountNumber the account number of the CB balance to return
142      * @param objectCode the object code of the CB balance to return
143      * @return the CB Balance record
144      */
145     public Balance getCurrentBudgetForObjectCode(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String objectCode);
146 
147     /**
148      * Purge the sufficient funds balance table by year/chart
149      * 
150      * @param chart the chart of balances to purge
151      * @param year the university fiscal year of balances to purge
152      */
153     public void purgeYearByChart(String chart, int year);
154 
155     /**
156      * Returns all of the balances of a given fiscal year
157      * 
158      * @param year the university fiscal year of balances to return
159      * @return an iterator over all balances for a given fiscal year
160      */
161     public Iterator<Balance> findBalancesForFiscalYear(Integer year);
162 
163     /**
164      * This method returns the total count of balances for a fiscal year
165      * 
166      * @param year fiscal year to check
167      * @return the count of balances
168      */
169     public int countBalancesForFiscalYear(Integer year);
170 
171     /**
172      * This method returns all of the balances specifically for the nominal activity closing job
173      * 
174      * @param year year to find balances for
175      * @param nominalActivityObjectTypeCodes a List of nominal activity object type codes
176      * @param currentYearOptions current year options
177      * @return an Iterator of nominal activity balances
178      */
179     public Iterator<Balance> findNominalActivityBalancesForFiscalYear(Integer year, Collection<String> nominalActivityObjectTypeCodes, SystemOptions currentYearOptions);
180 
181     /**
182      * Returns the balances specifically to be forwarded to the next fiscal year, based on the "general" rule
183      * 
184      * @param year the fiscal year to find balances for
185      * @param generalForwardBalanceObjectTypes a List of general Forward Balance Object Types
186      * @param generalBalanceForwardBalanceTypesArray an array of general Balance Forward Balance Types
187      * @return an Iterator full of Balances
188      */
189     public Iterator<Balance> findGeneralBalancesToForwardForFiscalYear(Integer year, Collection<String> generalForwardBalanceObjectTypes, Collection<String> generalBalanceForwardBalanceTypesArray);
190 
191     /**
192      * Returns the C&G balances specifically to be forwarded to the next fiscal year, based on the "cumulative" rule
193      * 
194      * @param year the fiscal year to find balances for
195      * @param cumulativeForwardBalanceObjectTypes a List of cumulative Forward Balance Object Types
196      * @param contractsAndGrantsDenotingValues a List of contracts And Grants Denoting Values
197      * @param subFundGroupsForCumulativeBalanceForwardingArray an array of sub Fund Groups For Cumulative Balance Forwarding
198      * @param cumulativeBalanceForwardBalanceTypesArray an array of cumulative Balance Forward Balance Types
199      * @return and Iterator chuck full of Balances
200      */
201     public Iterator<Balance> findCumulativeBalancesToForwardForFiscalYear(Integer year, Collection<String> cumulativeForwardBalanceObjectTypes, Collection<String> contractsAndGrantsDenotingValues, Collection<String> subFundGroupsForCumulativeBalanceForwardingArray, Collection<String> cumulativeBalanceForwardBalanceTypesArray, boolean fundGroupDenotesCGInd);
202 
203     /**
204      * Returns the balances that would specifically be picked up by the Organization Reversion year end process
205      * 
206      * @param year the year to find balances for
207      * @param endOfYear
208      * @param options
209      * @param parameterEvaluators a list of parameter evaluators
210      * @return an iterator of the balances to process
211      */
212     public Iterator<Balance> findOrganizationReversionBalancesForFiscalYear(Integer year, boolean endOfYear, SystemOptions options, List<ParameterEvaluator> parameterEvaluators);
213 }