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 }