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.gl.batch.dataaccess;
017    
018    import java.util.List;
019    
020    import org.kuali.rice.kns.util.KualiDecimal;
021    
022    /**
023     * A DAO interface.  This one seems to refer to an old FIS issue, M113, which was: "On account sufficient funds checking, what needs to be done between beginning of fiscal year and loading of beginning balances?"
024     * Therefore, this DAO is to find year end balance totals, as far as I can tell
025     */
026    public interface SufficientFundsDao {
027        /**
028         * Calculate the Prior Fiscal Year Budget total
029         * 
030         * @param universityFiscalYear the university fiscal year of sufficient funds balances that will be summarized
031         * @param chartOfAccountCode the chart of accounts code of sufficient fund balance records that will be summarized
032         * @param accountNumber the account number of sufficient fund balances that will be summarized
033         * @return the sum of the prior fiscal year budget
034         */
035        public KualiDecimal calculateM113PfyrBudget(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber);
036    
037        /**
038         * Calculate the prior fiscal year encumbrnace total
039         * 
040         * 
041         * @param universityFiscalYear the university fiscal year of sufficient funds balances to summarize
042         * @param chartOfAccountsCode the chart of accounts code of sufficient funds balances to summarize
043         * @param accountNumber the account number of sufficient fund balances to summarize
044         * @return the prior fiscal year encumbrance total
045         */
046        public KualiDecimal calculateM113PfyrEncum(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber);
047    
048        /**
049         * Calculate the prior fiscal year pending actual amount
050         * 
051         * @param universityFiscalYear the university fiscal year of sufficient funds balances to summarize
052         * @param chartOfAccountsCode the chart of accounts code of sufficient funds balances to summarize
053         * @param accountNumber the account number of sufficient fund balances to summarize
054         * @param specialFinancialObjectCodes include only these financial object codes
055         * @param financialObjectCodeForCashInBank the object code for cash in the bank
056         * @return the prior fiscal year pending actual amount
057         */
058        public KualiDecimal calculateM113PendActual(boolean financialBeginBalanceLoadInd, Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, List specialFinancialObjectCodes, String financialObjectCodeForCashInBank);
059    
060        /**
061         * Calculates the current pending actual
062         * 
063         * @param isYearEndDocument should year end documents be included?
064         * @param actualFinancialBalanceTypeCd the actual balance type code
065         * @param universityFiscalYear the university fiscal year of sufficient funds balances to summarize
066         * @param chartOfAccountsCode the chart of accounts code of sufficient funds balances to summarize
067         * @param accountNumber the account number of sufficient fund balances to summarize
068         * @param acctSufficientFundsFinObjCd the object code for sufficient funds
069         * @param expenditureCodes object codes that represent expenditures
070         * @return the current pending actual total
071         */
072        public KualiDecimal calculatePendActual(boolean isYearEndDocument, String actualFinancialBalanceTypeCd, Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String acctSufficientFundsFinObjCd, List expenditureCodes);
073    
074        /**
075         * calculates the current year pending budget total
076         * 
077         * @param isYearEndDocument should year end documents be included?
078         * @param budgetCheckingBalanceTypeCd the budget balance type code
079         * @param universityFiscalYear the university fiscal year of sufficient funds balances to summarize
080         * @param chartOfAccountsCode the chart of accounts code of sufficient funds balances to summarize
081         * @param accountNumber the account number of sufficient fund balances to summarize
082         * @param acctSufficientFundsFinObjCd the object code for sufficient funds
083         * @param expenditureCodes object codes that represent expenditures
084         * @return calculates the current year pending budget total
085         */
086        public KualiDecimal calculatePendBudget(boolean isYearEndDocument, String budgetCheckingBalanceTypeCd, Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String acctSufficientFundsFinObjCd, List expenditureCodes);
087    
088        /**
089         * Calculates the current year pending encumbrance total
090         * 
091         * @param isYearEndDocument should year end documents be included?
092         * @param extrnlEncumFinBalanceTypCd the external encumbrance balance type
093         * @param intrnlEncumFinBalanceTypCd the internal encumbrance balance type
094         * @param preencumbranceFinBalTypeCd the pre-encumbrance balance type
095         * @param universityFiscalYear the university fiscal year of sufficient funds balances to summarize
096         * @param chartOfAccountsCode the chart of accounts code of sufficient funds balances to summarize
097         * @param accountNumber the account number of sufficient fund balances to summarize
098         * @param acctSufficientFundsFinObjCd the object code for sufficient funds
099         * @param expenditureCodes object codes that represent expenditures
100         * @return the current year pending encumbrance total
101         */
102        public KualiDecimal calculatePendEncum(boolean isYearEndDocument, String extrnlEncumFinBalanceTypCd, String intrnlEncumFinBalanceTypCd, String preencumbranceFinBalTypeCd, Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String acctSufficientFundsFinObjCd, List expenditureCodes);
103    
104        /**
105         * Purge table by year/chart
106         * 
107         * @param chart the chart of sufficient fund records to purge
108         * @param year the year of sufficient fund records to purge
109         */
110        public void purgeYearByChart(String chart, int year);
111    }