/* * 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.sys.dataaccess; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import org.kuali.kfs.coa.businessobject.Account; import org.kuali.kfs.gl.businessobject.Balance; import org.kuali.kfs.gl.businessobject.Encumbrance; import org.kuali.kfs.sys.businessobject.SystemOptions; import org.kuali.rice.core.api.util.type.KualiDecimal; /** * This interface defines basic methods that GeneralLedgerPendingEntry Dao's must provide */ public interface GeneralLedgerPendingEntryDao { /** * Get summary of amounts in the pending entry table * * @param universityFiscalYear * @param chartOfAccountsCode * @param accountNumber * @param objectCodes * @param balanceTypeCodes * @param isDebit * @return */ public KualiDecimal getTransactionSummary(Collection universityFiscalYears, String chartOfAccountsCode, String accountNumber, Collection objectCodes, Collection balanceTypeCodes, boolean isDebit); /** * Get summary of amounts in the pending entry table * * @param universityFiscalYear * @param chartOfAccountsCode * @param accountNumber * @param objectTypeCodes * @param balanceTypeCodes * @param acctSufficientFundsFinObjCd * @param isDebit * @param isYearEnd * @return */ public KualiDecimal getTransactionSummary(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, Collection objectTypeCodes, Collection balanceTypeCodes, String acctSufficientFundsFinObjCd, boolean isDebit, boolean isYearEnd); /** * Get summary of amounts in the pending entry table * * @param universityFiscalYear * @param chartOfAccountsCode * @param accountNumber * @param objectTypeCodes * @param balanceTypeCodes * @param acctSufficientFundsFinObjCd * @param isYearEnd * @return */ public KualiDecimal getTransactionSummary(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, Collection objectTypeCodes, Collection balanceTypeCodes, String acctSufficientFundsFinObjCd, boolean isYearEnd); /** * Find Pending Entries * * @param fieldValues * @param isApproved * @param currentFiscalPeriodCode * @param currentFiscalYear * @param encumbranceBalanceTypes a list of encumbranceBalanceTypes for the given universityFiscalYear if this is passed in the * fieldValues or the Current Year Encumbrance Balance Types if universityFiscalYear is not present * @return */ public Collection findPendingEntries(Map fieldValues, boolean isApproved, String currentFiscalPeriodCode, int currentFiscalYear, List<String> encumbranceBalanceTypes); /** * Delete all pending entries for a given document * * @param documentHeaderId */ public void delete(String documentHeaderId); /** * Delete all pending entries based on the document approved code * * @param financialDocumentApprovedCode */ public void deleteByFinancialDocumentApprovedCode(String financialDocumentApprovedCode); /** * This method retrieves all approved pending ledger entries * * @return all approved pending ledger entries */ public Iterator findApprovedPendingLedgerEntries(); /** * This method counts all approved pending ledger entries by account * * @param account the given account * @return count of entries */ public int countPendingLedgerEntries(Account account); /** * This method retrieves all pending ledger entries for the given encumbrance * * @param encumbrance the encumbrance entry in the GL_Encumbrance_T table * @param isApproved the flag that indicates whether the pending entries are approved or don't care * @return all pending ledger entries of the given encumbrance */ public Iterator findPendingLedgerEntries(Encumbrance encumbrance, boolean isApproved); /** * This method retrieves all pending ledger entries for the given encumbrance * * @param balance the balance entry * @param isApproved the flag that indicates whether the pending entries are approved or don't care * @param isConsolidated consolidation option is applied or not * @return all pending ledger entries of the given balance */ public Iterator findPendingLedgerEntries(Balance balance, boolean isApproved, boolean isConsolidated); /** * This method retrieves all pending ledger entries matching the given entry criteria * * @param isApproved the flag that indicates whether the pending entries are approved or don't care * @param fieldValues the input fields and values * @param currentFiscalPeriodCode current fiscal year period code * @param currentFY current fiscal year * @param encumbranceBalanceTypes a list of encumbranceBalanceTypes * @return all pending ledger entries matching the given balance criteria */ public Iterator findPendingLedgerEntriesForEntry(Map fieldValues, boolean isApproved, String currentFiscalPeriodCode, int currentFY, List<String> encumbranceBalanceTypes); /** * This method retrieves all pending ledger entries matching the given balance criteria * * @param isApproved the flag that indicates whether the pending entries are approved or don't care * @param fieldValues the input fields and values * @param currentFiscalPeriodCode current fiscal year period code * @param currentFY current fiscal year * @param encumbranceBalanceTypes a list of encumbranceBalanceTypes * @return all pending ledger entries matching the given balance criteria */ public Iterator findPendingLedgerEntriesForBalance(Map fieldValues, boolean isApproved, String currentFiscalPeriodCode, int currentFY, List<String> encumbranceBalanceTypes); /** * This method retrieves all pending ledger entries matching the given cash balance criteria * * @param isApproved the flag that indicates whether the pending entries are approved or don't care * @param fieldValues the input fields and values * @param currentFiscalPeriodCode current fiscal year period code * @param currentFY current fiscal year * @param encumbranceBalanceTypes a list of encumbranceBalanceTypes for the given universityFiscalYear if this is passed in the * fieldValues or the Current Year Encumbrance Balance Types if universityFiscalYear is not present * @return all pending ledger entries matching the given cash balance criteria */ public Iterator findPendingLedgerEntriesForCashBalance(Map fieldValues, boolean isApproved, String currentFiscalPeriodCode, int currentFY, List<String> encumbranceBalanceTypes); /** * This method retrieves all pending ledger entries that may belong to encumbrance table in the future * * @param isApproved the flag that indicates whether the pending entries are approved or don't care * @param fieldValues the input fields and values * @param currentFiscalPeriodCode current fiscal year period code * @param currentFY current fiscal year * @param currentYearOptions the current year system options * @param encumbranceBalanceTypes a list of encumbranceBalanceTypes for the given universityFiscalYear if this is passed in the * fieldValues or the Current Year Encumbrance Balance Types if universityFiscalYear is not present * @return all pending ledger entries that may belong to encumbrance table */ public Iterator findPendingLedgerEntriesForEncumbrance(Map fieldValues, boolean isApproved, String currentFiscalPeriodCode, int currentFiscalYear, SystemOptions currentYearOptions, List<String> encumbranceBalanceTypes); /** * This method retrieves all pending ledger entries that may belong to the given account balance record in the future * * @param fieldValues the input fields and values * @param isApproved the flag that indicates whether the pending entries are approved or don't care * @param currentFiscalPeriodCode current fiscal year period code * @param currentFY current fiscal year * @param encumbranceBalanceTypes a list of encumbranceBalanceTypes for the given universityFiscalYear if this is passed in the * fieldValues or the Current Year Encumbrance Balance Types if universityFiscalYear is not present * @return all pending ledger entries that may belong to encumbrance table */ public Iterator findPendingLedgerEntrySummaryForAccountBalance(Map fieldValues, boolean isApproved, String currentFiscalPeriodCode, int currentFiscalYear, List<String> encumbranceBalanceTypes); /** * This method retrieves all pending ledger entries that may belong to the given account balance record in the future * * @param fieldValues the input fields and values * @param isApproved the flag that indicates whether the pending entries are approved or don't care * @param currentFiscalPeriodCode current fiscal year period code * @param currentFY current fiscal year * @param encumbranceBalanceTypes a list of encumbranceBalanceTypes for the given universityFiscalYear if this is passed in the * fieldValues or the Current Year Encumbrance Balance Types if universityFiscalYear is not present * @return all pending ledger entries that may belong to encumbrance table */ public Iterator findPendingLedgerEntriesForAccountBalance(Map fieldValues, boolean isApproved, String currentFiscalPeriodCode, int currentFiscalYear, List<String> encumbranceBalanceTypes); }