/* * 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.ld.dataaccess; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.kuali.kfs.module.ld.businessobject.EmployeeFunding; import org.kuali.kfs.module.ld.businessobject.LaborBalanceSummary; import org.kuali.kfs.module.ld.businessobject.LedgerBalance; import org.kuali.kfs.module.ld.businessobject.LedgerBalanceForYearEndBalanceForward; /** * This is the data access object for ledger balance. * * @see org.kuali.kfs.module.ld.businessobject.LedgerBalance */ public interface LaborLedgerBalanceDao { /** * @deprecated use {@link findBalance(Map fieldValues, boolean isConsolidated, List<String> encumbranceBalanceTypes, boolean noZeroAmounts)} instead. * * NOTE: unused * * This method finds the records of balance entries according to input fields and values * * @param fieldValues the input fields and values * @param isConsolidated consolidation option is applied or not * @return the records of balance entries */ @Deprecated public Iterator findBalance(Map fieldValues, boolean isConsolidated, List<String> encumbranceBalanceTypes); /** * This method finds the records of balance entries according to input fields and values * * @param fieldValues the input fields and values * @param isConsolidated consolidation option is applied or not * @param noZeroAmounts makes sure at least one of the 13 monthly buckets has an amount not equals to zero * @return the records of balance entries */ public Iterator<LedgerBalance> findBalance(Map fieldValues, boolean isConsolidated, List<String> encumbranceBalanceTypes, boolean noZeroAmounts); /** * @deprecated use {@link getConsolidatedBalanceRecordCount(Map fieldValues, List<String> encumbranceBalanceTypes, boolean noZeroAmounts)} instead. * * NOTE: unused * * This method gets the size collection of balance entry groups according to input fields and values if the entries are required * to be consolidated * * @param encumbranceBalanceTypes a list of encumbrance balance types * @param fieldValues the input fields and values * @return the size collection of balance entry groups */ @Deprecated public Iterator getConsolidatedBalanceRecordCount(Map fieldValues, List<String> encumbranceBalanceTypes); /** * This method gets the size collection of balance entry groups according to input fields and values if the entries are required * to be consolidated * * @param encumbranceBalanceTypes a list of encumbrance balance types * @param fieldValues the input fields and values * @param noZeroAmounts makes sure at least one of the 13 monthly buckets has an amount not equals to zero * @return the size collection of balance entry groups */ public Iterator getConsolidatedBalanceRecordCount(Map fieldValues, List<String> encumbranceBalanceTypes, boolean noZeroAmounts); /** * @param fiscalYear the given fiscal year * @return an iterator over all balances for a given fiscal year */ public Iterator<LedgerBalance> findBalancesForFiscalYear(Integer fiscalYear); /** * retrieve the current funds according to the given field values * * @param fieldValues the given field values * @return the current funds according to the given field values */ public List<LedgerBalance> findCurrentFunds(Map fieldValues); /** * retrieve the encumbrance funds according to the given field values * * @param fieldValues the given field values * @return the encumbrance funds according to the given field values */ public List<LedgerBalance> findEncumbranceFunds(Map fieldValues); /** * retrieve the current funds according to the given field values * * @param fieldValues the given field values * @return the current funds according to the given field values */ public List<EmployeeFunding> findCurrentEmployeeFunds(Map fieldValues); /** * retrieve the encumbrance funds according to the given field values * * @param fieldValues the given field values * @return the encumbrance funds according to the given field values */ public List<EmployeeFunding> findEncumbranceEmployeeFunds(Map fieldValues); /** * find the summary of the ledger balances for the given fiscal year and balance types * * @param fiscalYear the given fiscal year * @param balanceTypes the given balance type codes * @return the ledger balances for the given fiscal year and balance types */ public List<LaborBalanceSummary> findBalanceSummary(Integer fiscalYear, Collection<String> balanceTypes); /** * @param fiscalYear the given fiscal year * @param fieldValues the given field values * @param encumbranceBalanceTypes a list of encumbrance balance types * @return an iterator over all balances for a given fiscal year */ public Iterator<LedgerBalance> findBalancesForFiscalYear(Integer fiscalYear, Map<String, String> fieldValues, List<String> encumbranceBalanceTypes); /** * @param fiscalYear the given fiscal year * @param fieldValues the input fields and values * @param subFundGroupCodes the given list of qualified sub fund group codes * @param fundGroupCodes the given list of qualified group codes * @return an Iterator over all balances for a given year and search criteria that include the accounts of balances must belong * to the given sub fund group or fund group */ public Iterator<LedgerBalanceForYearEndBalanceForward> findBalancesForFiscalYear(Integer fiscalYear, Map<String, String> fieldValues, List<String> subFundGroupCodes, List<String> fundGroupCodes); /** * find the accounts (chart of accounts code + account number) in the given fund groups * * @param fiscalYear the given fiscal year * @param fieldValues the input fields and values * @param subFundGroupCodes the given list of qualified sub fund group codes * @param fundGroupCodes the given list of qualified group codes * @return the accounts (chart of accounts code + account number) in the given fund groups */ public List<List<String>> findAccountsInFundGroups(Integer fiscalYear, Map<String, String> fieldValues, List<String> subFundGroupCodes, List<String> fundGroupCodes); /** * find all ledger balances matching the given criteria within the given fiscal years * * @param fieldValues the given field values * @param excludedFieldValues the given field values that must not be matched * @param fiscalYears the given fiscal years * @param balanceTypeList the given balance type code list * @param positionObjectGroupCodes the specified position obejct group codes * @return all ledger balances matching the given criteria within the given fiscal years */ public Collection<LedgerBalance> findLedgerBalances(Map<String, List<String>> fieldValues, Map<String, List<String>> excludedFieldValues, Set<Integer> fiscalYears, List<String> balanceTypeList, List<String> positionObjectGroupCodes); /** * delete the ledger balance records that were posted prior to the given fiscal year * * @param fiscalYear the given fiscal year * @param chartOfAccountsCode the given chart of account code */ public void deleteLedgerBalancesPriorToYear(Integer fiscalYear, String chartOfAccountsCode); }