001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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/ecl1.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.module.labor.dao;
017:
018: import java.util.Collection;
019: import java.util.Iterator;
020: import java.util.List;
021: import java.util.Map;
022:
023: import org.kuali.module.labor.bo.EmployeeFunding;
024: import org.kuali.module.labor.bo.LaborBalanceSummary;
025: import org.kuali.module.labor.bo.LedgerBalance;
026: import org.kuali.module.labor.bo.LedgerBalanceForYearEndBalanceForward;
027:
028: /**
029: * This is the data access object for ledger balance.
030: *
031: * @see org.kuali.module.labor.bo.LedgerBalance
032: */
033: public interface LaborLedgerBalanceDao {
034:
035: /**
036: * This method finds the records of balance entries according to input fields and values
037: *
038: * @param fieldValues the input fields and values
039: * @param isConsolidated consolidation option is applied or not
040: * @return the records of balance entries
041: */
042: public Iterator findBalance(Map fieldValues, boolean isConsolidated);
043:
044: /**
045: * This method gets the size collection of balance entry groups according to input fields and values if the entries are required
046: * to be consolidated
047: *
048: * @param fieldValues the input fields and values
049: * @return the size collection of balance entry groups
050: */
051: public Iterator getConsolidatedBalanceRecordCount(Map fieldValues);
052:
053: /**
054: * @param fiscalYear the given fiscal year
055: * @return an iterator over all balances for a given fiscal year
056: */
057: public Iterator<LedgerBalance> findBalancesForFiscalYear(
058: Integer fiscalYear);
059:
060: /**
061: * retrieve the current funds according to the given field values
062: *
063: * @param fieldValues the given field values
064: * @return the current funds according to the given field values
065: */
066: public List<LedgerBalance> findCurrentFunds(Map fieldValues);
067:
068: /**
069: * retrieve the encumbrance funds according to the given field values
070: *
071: * @param fieldValues the given field values
072: * @return the encumbrance funds according to the given field values
073: */
074: public List<LedgerBalance> findEncumbranceFunds(Map fieldValues);
075:
076: /**
077: * retrieve the current funds according to the given field values
078: *
079: * @param fieldValues the given field values
080: * @return the current funds according to the given field values
081: */
082: public List<EmployeeFunding> findCurrentEmployeeFunds(
083: Map fieldValues);
084:
085: /**
086: * retrieve the encumbrance funds according to the given field values
087: *
088: * @param fieldValues the given field values
089: * @return the encumbrance funds according to the given field values
090: */
091: public List<EmployeeFunding> findEncumbranceEmployeeFunds(
092: Map fieldValues);
093:
094: /**
095: * find the summary of the ledger balances for the given fiscal year and balance types
096: *
097: * @param fiscalYear the given fiscal year
098: * @param balanceTypes the given balance type codes
099: * @return the ledger balances for the given fiscal year and balance types
100: */
101: public List<LaborBalanceSummary> findBalanceSummary(
102: Integer fiscalYear, Collection<String> balanceTypes);
103:
104: /**
105: * save the given ledger balance into the underlying data store
106: *
107: * @param ledgerBalance the given ledger balance
108: */
109: public void save(LedgerBalance ledgerBalance);
110:
111: /**
112: * @param fiscalYear the given fiscal year
113: * @param fieldValues the given field values
114: * @return an iterator over all balances for a given fiscal year
115: */
116: public Iterator<LedgerBalance> findBalancesForFiscalYear(
117: Integer fiscalYear, Map<String, String> fieldValues);
118:
119: /**
120: * @param fiscalYear the given fiscal year
121: * @param fieldValues the input fields and values
122: * @param subFundGroupCodes the given list of qualified sub fund group codes
123: * @param fundGroupCodes the given list of qualified group codes
124: * @return an Iterator over all balances for a given year and search criteria that include the accounts of balances must belong
125: * to the given sub fund group or fund group
126: */
127: public Iterator<LedgerBalanceForYearEndBalanceForward> findBalancesForFiscalYear(
128: Integer fiscalYear, Map<String, String> fieldValues,
129: List<String> subFundGroupCodes, List<String> fundGroupCodes);
130:
131: /**
132: * find the accounts (chart of accounts code + account number) in the given fund groups
133: *
134: * @param fiscalYear the given fiscal year
135: * @param fieldValues the input fields and values
136: * @param subFundGroupCodes the given list of qualified sub fund group codes
137: * @param fundGroupCodes the given list of qualified group codes
138: * @return the accounts (chart of accounts code + account number) in the given fund groups
139: */
140: public List<List<String>> findAccountsInFundGroups(
141: Integer fiscalYear, Map<String, String> fieldValues,
142: List<String> subFundGroupCodes, List<String> fundGroupCodes);
143: }
|