001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.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/ecl2.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.kfs.module.ld.dataaccess; 017 018 import java.util.Collection; 019 import java.util.Iterator; 020 import java.util.List; 021 import java.util.Map; 022 import java.util.Set; 023 024 import org.kuali.kfs.module.ld.businessobject.EmployeeFunding; 025 import org.kuali.kfs.module.ld.businessobject.LaborBalanceSummary; 026 import org.kuali.kfs.module.ld.businessobject.LedgerBalance; 027 import org.kuali.kfs.module.ld.businessobject.LedgerBalanceForYearEndBalanceForward; 028 029 /** 030 * This is the data access object for ledger balance. 031 * 032 * @see org.kuali.kfs.module.ld.businessobject.LedgerBalance 033 */ 034 public interface LaborLedgerBalanceDao { 035 036 /** 037 * This method finds the records of balance entries according to input fields and values 038 * 039 * @param fieldValues the input fields and values 040 * @param isConsolidated consolidation option is applied or not 041 * @return the records of balance entries 042 */ 043 public Iterator findBalance(Map fieldValues, boolean isConsolidated); 044 045 /** 046 * This method gets the size collection of balance entry groups according to input fields and values if the entries are required 047 * to be consolidated 048 * 049 * @param fieldValues the input fields and values 050 * @return the size collection of balance entry groups 051 */ 052 public Iterator getConsolidatedBalanceRecordCount(Map fieldValues); 053 054 /** 055 * @param fiscalYear the given fiscal year 056 * @return an iterator over all balances for a given fiscal year 057 */ 058 public Iterator<LedgerBalance> findBalancesForFiscalYear(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(Map fieldValues); 083 084 /** 085 * retrieve the encumbrance funds according to the given field values 086 * 087 * @param fieldValues the given field values 088 * @return the encumbrance funds according to the given field values 089 */ 090 public List<EmployeeFunding> findEncumbranceEmployeeFunds(Map fieldValues); 091 092 /** 093 * find the summary of the ledger balances for the given fiscal year and balance types 094 * 095 * @param fiscalYear the given fiscal year 096 * @param balanceTypes the given balance type codes 097 * @return the ledger balances for the given fiscal year and balance types 098 */ 099 public List<LaborBalanceSummary> findBalanceSummary(Integer fiscalYear, Collection<String> balanceTypes); 100 101 /** 102 * save the given ledger balance into the underlying data store 103 * 104 * @param ledgerBalance the given ledger balance 105 */ 106 public void save(LedgerBalance ledgerBalance); 107 108 /** 109 * @param fiscalYear the given fiscal year 110 * @param fieldValues the given field values 111 * @return an iterator over all balances for a given fiscal year 112 */ 113 public Iterator<LedgerBalance> findBalancesForFiscalYear(Integer fiscalYear, Map<String, String> fieldValues); 114 115 /** 116 * @param fiscalYear the given fiscal year 117 * @param fieldValues the input fields and values 118 * @param subFundGroupCodes the given list of qualified sub fund group codes 119 * @param fundGroupCodes the given list of qualified group codes 120 * @return an Iterator over all balances for a given year and search criteria that include the accounts of balances must belong 121 * to the given sub fund group or fund group 122 */ 123 public Iterator<LedgerBalanceForYearEndBalanceForward> findBalancesForFiscalYear(Integer fiscalYear, Map<String, String> fieldValues, List<String> subFundGroupCodes, List<String> fundGroupCodes); 124 125 /** 126 * find the accounts (chart of accounts code + account number) in the given fund groups 127 * 128 * @param fiscalYear the given fiscal year 129 * @param fieldValues the input fields and values 130 * @param subFundGroupCodes the given list of qualified sub fund group codes 131 * @param fundGroupCodes the given list of qualified group codes 132 * @return the accounts (chart of accounts code + account number) in the given fund groups 133 */ 134 public List<List<String>> findAccountsInFundGroups(Integer fiscalYear, Map<String, String> fieldValues, List<String> subFundGroupCodes, List<String> fundGroupCodes); 135 136 /** 137 * find all ledger balances matching the given criteria within the given fiscal years 138 * 139 * @param fieldValues the given field values 140 * @param excludedFieldValues the given field values that must not be matched 141 * @param fiscalYears the given fiscal years 142 * @param balanceTypeList the given balance type code list 143 * @param positionObjectGroupCodes the specified position obejct group codes 144 * @return all ledger balances matching the given criteria within the given fiscal years 145 */ 146 public Collection<LedgerBalance> findLedgerBalances(Map<String, List<String>> fieldValues, Map<String, List<String>> excludedFieldValues, Set<Integer> fiscalYears, List<String> balanceTypeList, List<String> positionObjectGroupCodes); 147 148 /** 149 * delete the ledger balance records that were posted prior to the given fiscal year 150 * 151 * @param fiscalYear the given fiscal year 152 * @param chartOfAccountsCode the given chart of account code 153 */ 154 public void deleteLedgerBalancesPriorToYear(Integer fiscalYear, String chartOfAccountsCode); 155 }