/*
* 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.module.ld.businessobject;
import org.kuali.rice.core.api.util.type.KualiDecimal;
/**
* Labor business object for Account Status (Base Funds).
*/
public class AccountStatusBaseFunds extends LedgerBalance {
private KualiDecimal csfAmount;
private KualiDecimal baseBudgetAmount;
private KualiDecimal baseCSFVarianceAmount;
/**
* Default constructor.
*/
public AccountStatusBaseFunds() {
super();
this.setBaseCSFVarianceAmount(KualiDecimal.ZERO);
this.setCsfAmount(KualiDecimal.ZERO);
this.setBaseBudgetAmount(KualiDecimal.ZERO);
}
/**
* Gets the baseBudgetAmount attribute.
*
* @return Returns the baseBudgetAmount.
*/
public KualiDecimal getBaseBudgetAmount() {
return this.getAccountLineAnnualBalanceAmount().add(this.getFinancialBeginningBalanceLineAmount()).add(this.getContractsGrantsBeginningBalanceAmount());
}
/**
* Sets the baseBudgetAmount attribute value.
*
* @param baseBudgetAmount The baseBudgetAmount to set.
*/
public void setBaseBudgetAmount(KualiDecimal baseBudgetAmount) {
this.baseBudgetAmount = baseBudgetAmount;
}
/**
* Gets the baseCSFVarianceAmount attribute.
*
* @return Returns the baseCSFVarianceAmount.
*/
public KualiDecimal getBaseCSFVarianceAmount() {
return this.getBaseBudgetAmount().subtract(this.getCsfAmount());
}
/**
* Sets the baseCSFVarianceAmount attribute value.
*
* @param baseCSFVarianceAmount The baseCSFVarianceAmount to set.
*/
public void setBaseCSFVarianceAmount(KualiDecimal baseCSFVarianceAmount) {
this.baseCSFVarianceAmount = baseCSFVarianceAmount;
}
/**
* Gets the csfAmount attribute.
*
* @return Returns the csfAmount.
*/
public KualiDecimal getCsfAmount() {
return csfAmount;
}
/**
* Sets the csfAmount attribute value.
*
* @param csfAmount The csfAmount to set.
*/
public void setCsfAmount(KualiDecimal csfAmount) {
this.csfAmount = csfAmount;
}
/**
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = PRIME * result + ((getAccountNumber() == null) ? 0 : getAccountNumber().hashCode());
result = PRIME * result + ((getChartOfAccountsCode() == null) ? 0 : getChartOfAccountsCode().hashCode());
result = PRIME * result + ((getFinancialObjectCode() == null) ? 0 : getFinancialObjectCode().hashCode());
result = PRIME * result + ((getFinancialSubObjectCode() == null) ? 0 : getFinancialSubObjectCode().hashCode());
result = PRIME * result + ((getSubAccountNumber() == null) ? 0 : getSubAccountNumber().hashCode());
result = PRIME * result + ((getUniversityFiscalYear() == null) ? 0 : getUniversityFiscalYear().hashCode());
return result;
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final AccountStatusBaseFunds other = (AccountStatusBaseFunds) obj;
if (getAccountNumber() == null) {
if (other.getAccountNumber() != null)
return false;
}
else if (!getAccountNumber().equals(other.getAccountNumber())) {
return false;
}
if (getChartOfAccountsCode() == null) {
if (other.getChartOfAccountsCode() != null)
return false;
}
else if (!getChartOfAccountsCode().equals(other.getChartOfAccountsCode())) {
return false;
}
if (getFinancialObjectCode() == null) {
if (other.getFinancialObjectCode() != null)
return false;
}
else if (!getFinancialObjectCode().equals(other.getFinancialObjectCode())) {
return false;
}
if (getFinancialSubObjectCode() == null) {
if (other.getFinancialSubObjectCode() != null)
return false;
}
else if (!getFinancialSubObjectCode().equals(other.getFinancialSubObjectCode())) {
return false;
}
if (getSubAccountNumber() == null) {
if (other.getSubAccountNumber() != null)
return false;
}
else if (!getSubAccountNumber().equals(other.getSubAccountNumber())) {
return false;
}
if (getUniversityFiscalYear() == null) {
if (other.getUniversityFiscalYear() != null)
return false;
}
else if (!getUniversityFiscalYear().equals(other.getUniversityFiscalYear())) {
return false;
}
return true;
}
}