/*
* 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 java.math.BigDecimal;
import org.apache.commons.lang.ObjectUtils;
import org.kuali.kfs.module.ld.LaborConstants;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.kim.api.identity.Person;
/**
* Labor business object for Employee Funding.
*/
public class EmployeeFunding extends LedgerBalance {
private String name;
private String csfDeleteCode;
private String csfFundingStatusCode;
private BigDecimal csfTimePercent;
private BigDecimal csfFullTimeEmploymentQuantity;
private KualiDecimal csfAmount;
private KualiDecimal currentAmount;
private KualiDecimal outstandingEncumbrance;
private KualiDecimal totalAmount;
/**
* Although the title of this class is EmployeeFunding, it is really a representation of the AccountStatusCurrentFunds business
* object, however it is generated using the fiscal year and employee ID.
*/
public EmployeeFunding() {
super();
this.setMonth1Amount(KualiDecimal.ZERO);
this.setCurrentAmount(KualiDecimal.ZERO);
this.setOutstandingEncumbrance(KualiDecimal.ZERO);
this.setTotalAmount(KualiDecimal.ZERO);
}
/**
* Gets the person name.
*
* @return Returns the PersonName.
*/
public String getName() {
Person person = this.getLedgerPerson();
if (person == null) {
return LaborConstants.BalanceInquiries.UnknownPersonName;
}
return person.getName();
}
/**
* Sets the persons name.
*
* @param personName The personName to set.
*/
public void setName(String personName) {
this.name = personName;
}
/**
* Gets the csfAmount
*
* @return Returns the csfAmount.
*/
public KualiDecimal getCsfAmount() {
return csfAmount;
}
/**
* Sets the csfAmount.
*
* @param csfAmount The csfAmount to set.
*/
public void setCsfAmount(KualiDecimal csfAmount) {
this.csfAmount = csfAmount;
}
/**
* Gets the csfDeleteCode.
*
* @return Returns the csfDeleteCode.
*/
public String getCsfDeleteCode() {
return csfDeleteCode;
}
/**
* Sets the csfDeleteCode.
*
* @param csfDeleteCode The csfDeleteCode to set.
*/
public void setCsfDeleteCode(String csfDeleteCode) {
this.csfDeleteCode = csfDeleteCode;
}
/**
* Gets the csfFundingStatusCode.
*
* @return Returns the csfFundingStatusCode.
*/
public String getCsfFundingStatusCode() {
return csfFundingStatusCode;
}
/**
* Sets the csfFundingStatusCode.
*
* @param csfFundingStatusCode The csfFundingStatusCode to set.
*/
public void setCsfFundingStatusCode(String csfFundingStatusCode) {
this.csfFundingStatusCode = csfFundingStatusCode;
}
/**
* Gets the csfTimePercent.
*
* @return Returns the csfTimePercent.
*/
public BigDecimal getCsfTimePercent() {
return csfTimePercent;
}
/**
* Sets the csfTimePercent.
*
* @param csfTimePercent The csfTimePercent to set.
*/
public void setCsfTimePercent(BigDecimal csfTimePercent) {
this.csfTimePercent = csfTimePercent;
}
/**
* Gets the currentAmount.
*
* @return Returns the currentAmount.
*/
public KualiDecimal getCurrentAmount() {
return currentAmount;
}
/**
* Sets the currentAmount.
*
* @param currentAmount The currentAmount to set.
*/
public void setCurrentAmount(KualiDecimal currentAmount) {
this.currentAmount = currentAmount;
}
/**
* Gets the outstandingEncumbrance.
*
* @return Returns the outstandingEncumbrance.
*/
public KualiDecimal getOutstandingEncumbrance() {
return outstandingEncumbrance;
}
/**
* Sets the outstandingEncumbrance.
*
* @param outstandingEncumbrance The outstandingEncumbrance to set.
*/
public void setOutstandingEncumbrance(KualiDecimal outstandingEncumbrance) {
this.outstandingEncumbrance = outstandingEncumbrance;
}
/**
* Returns a total amount based upon adding any outstanding encumberence records to the annual balance amount.
*
* @return TotalAmount
*/
public KualiDecimal getTotalAmount() {
return this.currentAmount.add(this.outstandingEncumbrance);
}
/**
* Sets the total amount.
*
* @param totalAmount The totalAmount to set.
*/
public void setTotalAmount(KualiDecimal totalAmount) {
this.totalAmount = totalAmount;
}
/**
* @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());
result = PRIME * result + ((getEmplid() == null) ? 0 : getEmplid().hashCode());
result = PRIME * result + ((getPositionNumber() == null) ? 0 : getPositionNumber().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 EmployeeFunding other = (EmployeeFunding) obj;
if (!ObjectUtils.equals(getAccountNumber(), other.getAccountNumber())) {
return false;
}
else if (!ObjectUtils.equals(getChartOfAccountsCode(), other.getChartOfAccountsCode())) {
return false;
}
else if (!ObjectUtils.equals(getFinancialObjectCode(), other.getFinancialObjectCode())) {
return false;
}
else if (!ObjectUtils.equals(getFinancialSubObjectCode(), other.getFinancialSubObjectCode())) {
return false;
}
else if (!ObjectUtils.equals(getSubAccountNumber(), other.getSubAccountNumber())) {
return false;
}
else if (!ObjectUtils.equals(getUniversityFiscalYear(), other.getUniversityFiscalYear())) {
return false;
}
else if (!ObjectUtils.equals(getEmplid(), other.getEmplid())) {
return false;
}
else if (!ObjectUtils.equals(getPositionNumber(), other.getPositionNumber())) {
return false;
}
return true;
}
/**
* Gets the csfFullTimeEmploymentQuantity.
*
* @return Returns the csfFullTimeEmploymentQuantity.
*/
public BigDecimal getCsfFullTimeEmploymentQuantity() {
return csfFullTimeEmploymentQuantity;
}
/**
* Sets the csfFullTimeEmploymentQuantity.
*
* @param csfFullTimeEmploymentQuantity The csfFullTimeEmploymentQuantity to set.
*/
public void setCsfFullTimeEmploymentQuantity(BigDecimal csfFullTimeEmploymentQuantity) {
this.csfFullTimeEmploymentQuantity = csfFullTimeEmploymentQuantity;
}
}