/*
* 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.gl.businessobject;
import org.kuali.kfs.coa.businessobject.AccountingPeriod;
import org.kuali.rice.core.api.util.type.KualiDecimal;
/**
* Add a simple balance inquiry menu item to KFS main menu, ann extension of
* KualiLookupableImpl to support account balance lookups
*/
public class CurrentAccountBalance extends Balance {
transient private String universityFiscalPeriodCode;
transient private AccountingPeriod accountingPeriod;
transient private KualiDecimal currentBudget;
transient private KualiDecimal beginningFundBalance;
transient private KualiDecimal beginningCurrentAssets;
transient private KualiDecimal beginningCurrentLiabilities;
transient private KualiDecimal totalIncome;
transient private KualiDecimal totalExpense;
transient private KualiDecimal encumbrances;
transient private KualiDecimal budgetBalanceAvailable;
transient private KualiDecimal cashExpenditureAuthority;
transient private KualiDecimal currentFundBalance;
/**
* Instantiate a CurrentAccountBalance object using an implementation
* of a Transaction object.
*
* This is useful for following conventions in the testing framework
* where the test fixture uses a dummy PendingGeneralLedgerEntry object
* for use in various test cases.
*
*
* @param t The transaction object from which the parent Balance class
* will initilialize with.
*/
public CurrentAccountBalance(Transaction t){
super(t);
// These are not set by the parent Balance class, so we will do so here
setUniversityFiscalPeriodCode(t.getUniversityFiscalPeriodCode());
setAccount(t.getAccount());
}
/**
* Constructs a CurrentAccountBalance instance.
*/
public CurrentAccountBalance() {
super();
this.resetAmounts();
}
/**
* Reset all amounts of instance variables to KualiDecimal.ZERO.
*/
public void resetAmounts() {
this.setAccountLineAnnualBalanceAmount(KualiDecimal.ZERO);
this.setBeginningBalanceLineAmount(KualiDecimal.ZERO);
this.setContractsGrantsBeginningBalanceAmount(KualiDecimal.ZERO);
this.setMonth1Amount(KualiDecimal.ZERO);
this.setMonth2Amount(KualiDecimal.ZERO);
this.setMonth3Amount(KualiDecimal.ZERO);
this.setMonth4Amount(KualiDecimal.ZERO);
this.setMonth5Amount(KualiDecimal.ZERO);
this.setMonth6Amount(KualiDecimal.ZERO);
this.setMonth7Amount(KualiDecimal.ZERO);
this.setMonth8Amount(KualiDecimal.ZERO);
this.setMonth9Amount(KualiDecimal.ZERO);
this.setMonth10Amount(KualiDecimal.ZERO);
this.setMonth11Amount(KualiDecimal.ZERO);
this.setMonth12Amount(KualiDecimal.ZERO);
this.setMonth13Amount(KualiDecimal.ZERO);
//transient columns
this.setCurrentBudget(KualiDecimal.ZERO);
this.setBeginningFundBalance(KualiDecimal.ZERO);
this.setBeginningCurrentAssets(KualiDecimal.ZERO);
this.setBeginningCurrentLiabilities(KualiDecimal.ZERO);
this.setTotalIncome(KualiDecimal.ZERO);
this.setTotalExpense(KualiDecimal.ZERO);
this.setEncumbrances(KualiDecimal.ZERO);
this.setBudgetBalanceAvailable(KualiDecimal.ZERO);
this.setCashExpenditureAuthority(KualiDecimal.ZERO);
this.setCurrentFundBalance(KualiDecimal.ZERO);
}
/**
* Gets the universityFiscalPeriodCode attribute.
*
* @return Returns the universityFiscalPeriodCode.
*/
public String getUniversityFiscalPeriodCode() {
return universityFiscalPeriodCode;
}
/**
* Sets the universityFiscalPeriodCode attribute value.
*
* @param universityFiscalPeriodCode The universityFiscalPeriodCode to set.
*/
public void setUniversityFiscalPeriodCode(String universityFiscalPeriodCode) {
this.universityFiscalPeriodCode = universityFiscalPeriodCode;
}
/**
* Gets the accountingPeriod attribute.
*
* @return Returns the accountingPeriod.
*/
public AccountingPeriod getAccountingPeriod() {
return accountingPeriod;
}
/**
* Sets the accountingPeriod attribute value.
*
* @param accountingPeriod The accountingPeriod to set.
*/
public void setAccountingPeriod(AccountingPeriod accountingPeriod) {
this.accountingPeriod = accountingPeriod;
}
/**
* Gets the totalIncome attribute.
*
* @return Returns the totalIncome.
*/
public KualiDecimal getTotalIncome() {
return totalIncome;
}
/**
* Sets the totalIncome attribute value.
*
* @param totalIncome The totalIncome to set.
*/
public void setTotalIncome(KualiDecimal totalIncome) {
this.totalIncome = totalIncome;
}
/**
* Gets the totalExpense attribute.
*
* @return Returns the totalExpense.
*/
public KualiDecimal getTotalExpense() {
return totalExpense;
}
/**
* Sets the totalExpense attribute value.
*
* @param totalExpense The totalExpense to set.
*/
public void setTotalExpense(KualiDecimal totalExpense) {
this.totalExpense = totalExpense;
}
/**
* Gets the currentBudget attribute.
* @return Returns the currentBudget.
*/
public KualiDecimal getCurrentBudget() {
return currentBudget;
}
/**
* Sets the currentBudget attribute value.
* @param currentBudget The currentBudget to set.
*/
public void setCurrentBudget(KualiDecimal currentBudget) {
this.currentBudget = currentBudget;
}
/**
* Gets the beginningFundBalance attribute.
* @return Returns the beginningFundBalance.
*/
public KualiDecimal getBeginningFundBalance() {
return beginningFundBalance;
}
/**
* Sets the beginningFundBalance attribute value.
* @param beginningFundBalance The beginningFundBalance to set.
*/
public void setBeginningFundBalance(KualiDecimal beginningFundBalance) {
this.beginningFundBalance = beginningFundBalance;
}
/**
* Gets the beginningCurrentAssets attribute.
* @return Returns the beginningCurrentAssets.
*/
public KualiDecimal getBeginningCurrentAssets() {
return beginningCurrentAssets;
}
/**
* Sets the beginningCurrentAssets attribute value.
* @param beginningCurrentAssets The beginningCurrentAssets to set.
*/
public void setBeginningCurrentAssets(KualiDecimal beginningCurrentAssets) {
this.beginningCurrentAssets = beginningCurrentAssets;
}
/**
* Gets the beginningCurrentLiabilities attribute.
* @return Returns the beginningCurrentLiabilities.
*/
public KualiDecimal getBeginningCurrentLiabilities() {
return beginningCurrentLiabilities;
}
/**
* Sets the beginningCurrentLiabilities attribute value.
* @param beginningCurrentLiabilities The beginningCurrentLiabilities to set.
*/
public void setBeginningCurrentLiabilities(KualiDecimal beginningCurrentLiabilities) {
this.beginningCurrentLiabilities = beginningCurrentLiabilities;
}
/**
* Gets the encumbrances attribute.
* @return Returns the encumbrances.
*/
public KualiDecimal getEncumbrances() {
return encumbrances;
}
/**
* Sets the encumbrances attribute value.
* @param encumbrances The encumbrances to set.
*/
public void setEncumbrances(KualiDecimal encumbrances) {
this.encumbrances = encumbrances;
}
/**
* Gets the budgetBalanceAvailable attribute.
* @return Returns the budgetBalanceAvailable.
*/
public KualiDecimal getBudgetBalanceAvailable() {
return budgetBalanceAvailable;
}
/**
* Sets the budgetBalanceAvailable attribute value.
* @param budgetBalanceAvailable The budgetBalanceAvailable to set.
*/
public void setBudgetBalanceAvailable(KualiDecimal budgetBalanceAvailable) {
this.budgetBalanceAvailable = budgetBalanceAvailable;
}
/**
* Gets the cashExpenditureAuthority attribute.
* @return Returns the cashExpenditureAuthority.
*/
public KualiDecimal getCashExpenditureAuthority() {
return cashExpenditureAuthority;
}
/**
* Sets the cashExpenditureAuthority attribute value.
* @param cashExpenditureAuthority The cashExpenditureAuthority to set.
*/
public void setCashExpenditureAuthority(KualiDecimal cashExpenditureAuthority) {
this.cashExpenditureAuthority = cashExpenditureAuthority;
}
/**
* Gets the currentFundBalance attribute.
* @return Returns the currentFundBalance.
*/
public KualiDecimal getCurrentFundBalance() {
return currentFundBalance;
}
/**
* Sets the currentFundBalance attribute value.
* @param currentFundBalance The currentFundBalance to set.
*/
public void setCurrentFundBalance(KualiDecimal currentFundBalance) {
this.currentFundBalance = currentFundBalance;
}
}