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
017 package org.kuali.kfs.module.ld.businessobject;
018
019 import org.kuali.rice.kns.util.KualiDecimal;
020
021 /**
022 * Labor business object for Account Status (Base Funds).
023 */
024 public class AccountStatusBaseFunds extends LedgerBalance {
025 private KualiDecimal csfAmount;
026 private KualiDecimal baseBudgetAmount;
027 private KualiDecimal baseCSFVarianceAmount;
028
029 /**
030 * Default constructor.
031 */
032 public AccountStatusBaseFunds() {
033 super();
034 this.setBaseCSFVarianceAmount(KualiDecimal.ZERO);
035 this.setCsfAmount(KualiDecimal.ZERO);
036 this.setBaseBudgetAmount(KualiDecimal.ZERO);
037 }
038
039 /**
040 * Gets the baseBudgetAmount attribute.
041 *
042 * @return Returns the baseBudgetAmount.
043 */
044 public KualiDecimal getBaseBudgetAmount() {
045 return this.getAccountLineAnnualBalanceAmount().add(this.getFinancialBeginningBalanceLineAmount()).add(this.getContractsGrantsBeginningBalanceAmount());
046 }
047
048 /**
049 * Sets the baseBudgetAmount attribute value.
050 *
051 * @param baseBudgetAmount The baseBudgetAmount to set.
052 */
053 public void setBaseBudgetAmount(KualiDecimal baseBudgetAmount) {
054 this.baseBudgetAmount = baseBudgetAmount;
055 }
056
057 /**
058 * Gets the baseCSFVarianceAmount attribute.
059 *
060 * @return Returns the baseCSFVarianceAmount.
061 */
062 public KualiDecimal getBaseCSFVarianceAmount() {
063 return this.getBaseBudgetAmount().subtract(this.getCsfAmount());
064 }
065
066 /**
067 * Sets the baseCSFVarianceAmount attribute value.
068 *
069 * @param baseCSFVarianceAmount The baseCSFVarianceAmount to set.
070 */
071 public void setBaseCSFVarianceAmount(KualiDecimal baseCSFVarianceAmount) {
072 this.baseCSFVarianceAmount = baseCSFVarianceAmount;
073 }
074
075 /**
076 * Gets the csfAmount attribute.
077 *
078 * @return Returns the csfAmount.
079 */
080 public KualiDecimal getCsfAmount() {
081 return csfAmount;
082 }
083
084 /**
085 * Sets the csfAmount attribute value.
086 *
087 * @param csfAmount The csfAmount to set.
088 */
089 public void setCsfAmount(KualiDecimal csfAmount) {
090 this.csfAmount = csfAmount;
091 }
092
093 /**
094 * @see java.lang.Object#hashCode()
095 */
096 @Override
097 public int hashCode() {
098 final int PRIME = 31;
099 int result = 1;
100 result = PRIME * result + ((getAccountNumber() == null) ? 0 : getAccountNumber().hashCode());
101 result = PRIME * result + ((getChartOfAccountsCode() == null) ? 0 : getChartOfAccountsCode().hashCode());
102 result = PRIME * result + ((getFinancialObjectCode() == null) ? 0 : getFinancialObjectCode().hashCode());
103 result = PRIME * result + ((getFinancialSubObjectCode() == null) ? 0 : getFinancialSubObjectCode().hashCode());
104 result = PRIME * result + ((getSubAccountNumber() == null) ? 0 : getSubAccountNumber().hashCode());
105 result = PRIME * result + ((getUniversityFiscalYear() == null) ? 0 : getUniversityFiscalYear().hashCode());
106
107 return result;
108 }
109
110 /**
111 * @see java.lang.Object#equals(java.lang.Object)
112 */
113 @Override
114 public boolean equals(Object obj) {
115 if (this == obj)
116 return true;
117 if (obj == null)
118 return false;
119 if (getClass() != obj.getClass())
120 return false;
121
122 final AccountStatusBaseFunds other = (AccountStatusBaseFunds) obj;
123 if (getAccountNumber() == null) {
124 if (other.getAccountNumber() != null)
125 return false;
126 }
127 else if (!getAccountNumber().equals(other.getAccountNumber())) {
128 return false;
129 }
130
131 if (getChartOfAccountsCode() == null) {
132 if (other.getChartOfAccountsCode() != null)
133 return false;
134 }
135 else if (!getChartOfAccountsCode().equals(other.getChartOfAccountsCode())) {
136 return false;
137 }
138
139 if (getFinancialObjectCode() == null) {
140 if (other.getFinancialObjectCode() != null)
141 return false;
142 }
143 else if (!getFinancialObjectCode().equals(other.getFinancialObjectCode())) {
144 return false;
145 }
146
147 if (getFinancialSubObjectCode() == null) {
148 if (other.getFinancialSubObjectCode() != null)
149 return false;
150 }
151 else if (!getFinancialSubObjectCode().equals(other.getFinancialSubObjectCode())) {
152 return false;
153 }
154
155 if (getSubAccountNumber() == null) {
156 if (other.getSubAccountNumber() != null)
157 return false;
158 }
159 else if (!getSubAccountNumber().equals(other.getSubAccountNumber())) {
160 return false;
161 }
162
163 if (getUniversityFiscalYear() == null) {
164 if (other.getUniversityFiscalYear() != null)
165 return false;
166 }
167 else if (!getUniversityFiscalYear().equals(other.getUniversityFiscalYear())) {
168 return false;
169 }
170
171 return true;
172 }
173 }