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.module.endow.businessobject;
017
018 import java.math.BigDecimal;
019 import java.sql.Date;
020 import java.util.LinkedHashMap;
021
022 import org.kuali.kfs.module.endow.EndowConstants;
023 import org.kuali.kfs.module.endow.EndowPropertyConstants;
024 import org.kuali.kfs.module.endow.document.service.KEMService;
025 import org.kuali.kfs.sys.context.SpringContext;
026 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
027
028 public class KEMIDCurrentBalanceDetail extends PersistableBusinessObjectBase {
029
030 private String kemid;
031 private String incomePrincipalIndicator;
032 private String reportingGroupCode;
033 private BigDecimal valueAtMarket;
034 private BigDecimal annualEstimatedIncome;
035 private BigDecimal remainderOfFYEstimatedIncome;
036 private BigDecimal nextFYEstimatedIncome;
037
038 // not persisted; used to tell whether there will be a drill down on value at market
039 private boolean noDrillDownOnMarketVal;
040
041 private KEMID kemidObj;
042 private SecurityReportingGroup reportingGroup;
043 private IncomePrincipalIndicator ipIndicator;
044
045 /**
046 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
047 */
048 @Override
049 protected LinkedHashMap toStringMapper() {
050 LinkedHashMap m = new LinkedHashMap();
051 m.put(EndowPropertyConstants.KEMID, this.kemid);
052 return m;
053 }
054
055
056 /**
057 * Gets the ipIndicator
058 *
059 * @return ipIndicator
060 */
061 public IncomePrincipalIndicator getIpIndicator() {
062 return ipIndicator;
063 }
064
065
066 /**
067 * Sets the ipIndicator
068 *
069 * @param ipIndicator
070 */
071 public void setIpIndicator(IncomePrincipalIndicator ipIndicator) {
072 this.ipIndicator = ipIndicator;
073 }
074
075
076 /**
077 * Gets the kemidObj.
078 *
079 * @return kemidObj
080 */
081 public KEMID getKemidObj() {
082 return kemidObj;
083 }
084
085
086 /**
087 * Sets the kemidObj.
088 *
089 * @param kemidObj
090 */
091 public void setKemidObj(KEMID kemidObj) {
092 this.kemidObj = kemidObj;
093 }
094
095
096 /**
097 * Gets the annualEstimatedIncome.
098 *
099 * @return annualEstimatedIncome
100 */
101 public BigDecimal getAnnualEstimatedIncome() {
102 return annualEstimatedIncome;
103 }
104
105
106 /**
107 * Sets the annualEstimatedIncome.
108 *
109 * @param annualEstimatedIncome
110 */
111 public void setAnnualEstimatedIncome(BigDecimal annualEstimatedIncome) {
112 this.annualEstimatedIncome = annualEstimatedIncome;
113 }
114
115
116 /**
117 * Gets the incomePrincipalIndicator.
118 *
119 * @return incomePrincipalIndicator
120 */
121 public String getIncomePrincipalIndicator() {
122 return incomePrincipalIndicator;
123 }
124
125
126 /**
127 * Sets the incomePrincipalIndicator.
128 *
129 * @param incomePrincipalIndicator
130 */
131 public void setIncomePrincipalIndicator(String incomePrincipalIndicator) {
132 this.incomePrincipalIndicator = incomePrincipalIndicator;
133 }
134
135
136 /**
137 * Gets the nextFYEstimatedIncome.
138 *
139 * @return nextFYEstimatedIncome
140 */
141 public BigDecimal getNextFYEstimatedIncome() {
142 return nextFYEstimatedIncome;
143 }
144
145
146 /**
147 * Sets the nextFYEstimatedIncome.
148 *
149 * @param nextFYEstimatedIncome
150 */
151 public void setNextFYEstimatedIncome(BigDecimal nextFYEstimatedIncome) {
152 this.nextFYEstimatedIncome = nextFYEstimatedIncome;
153 }
154
155
156 /**
157 * Gets the remainderOfFYEstimatedIncome.
158 *
159 * @return remainderOfFYEstimatedIncome
160 */
161 public BigDecimal getRemainderOfFYEstimatedIncome() {
162 return remainderOfFYEstimatedIncome;
163 }
164
165
166 /**
167 * Sets the remainderOfFYEstimatedIncome.
168 *
169 * @param remainderOfFYEstimatedIncome
170 */
171 public void setRemainderOfFYEstimatedIncome(BigDecimal remainderOfFYEstimatedIncome) {
172 this.remainderOfFYEstimatedIncome = remainderOfFYEstimatedIncome;
173 }
174
175
176 /**
177 * Gets the reportingGroupCode.
178 *
179 * @return reportingGroupCode
180 */
181 public String getReportingGroupCode() {
182 return reportingGroupCode;
183 }
184
185
186 /**
187 * Sets the reportingGroupCode.
188 *
189 * @param reportingGroupCode
190 */
191 public void setReportingGroupCode(String reportingGroupCode) {
192 this.reportingGroupCode = reportingGroupCode;
193 }
194
195
196 /**
197 * Gets the valueAtMarket.
198 *
199 * @return valueAtMarket
200 */
201 public BigDecimal getValueAtMarket() {
202 return valueAtMarket;
203 }
204
205
206 /**
207 * Sets the valueAtMarket.
208 *
209 * @param valueAtMarket
210 */
211 public void setValueAtMarket(BigDecimal valueAtMarket) {
212 this.valueAtMarket = valueAtMarket;
213 }
214
215 /**
216 * Gets the incomeAtMarket. If income principal indicator is 'I' then the valueAtMarket represents the incomeAtMarket. Otherwise
217 * the incomeAtMarket will be zero.
218 *
219 * @return incomeAtMarket
220 */
221 public BigDecimal getIncomeAtMarket() {
222 BigDecimal incomeAtMarket = BigDecimal.ZERO.setScale(2);
223 if (EndowConstants.IncomePrincipalIndicator.INCOME.equalsIgnoreCase(incomePrincipalIndicator)) {
224 incomeAtMarket = valueAtMarket;
225 }
226 return incomeAtMarket;
227 }
228
229 /**
230 * Gets the principalAtMarket. If income principal indicator is 'P' then the valueAtMarket represents the principalAtMarket.
231 * Otherwise the principalAtMarket will be zero.
232 *
233 * @return
234 */
235 public BigDecimal getPrincipalAtMarket() {
236 BigDecimal principalAtMarket = BigDecimal.ZERO.setScale(2);
237 if (EndowConstants.IncomePrincipalIndicator.PRINCIPAL.equalsIgnoreCase(incomePrincipalIndicator)) {
238 principalAtMarket = valueAtMarket;
239 }
240 return principalAtMarket;
241 }
242
243
244 /**
245 * Gets the kemid.
246 *
247 * @return kemid
248 */
249 public String getKemid() {
250 return kemid;
251 }
252
253
254 /**
255 * Sets the kemid.
256 *
257 * @param kemid
258 */
259 public void setKemid(String kemid) {
260 this.kemid = kemid;
261 }
262
263 /**
264 * Gets the Balance Date which is the Current System Process date
265 *
266 * @return the Balance Date
267 */
268 public Date getBalanceDate() {
269
270 return SpringContext.getBean(KEMService.class).getCurrentDate();
271 }
272
273
274 /**
275 * Gets the reportingGroup.
276 *
277 * @return reportingGroup
278 */
279 public SecurityReportingGroup getReportingGroup() {
280 return reportingGroup;
281 }
282
283
284 /**
285 * Sets the reportingGroup.
286 *
287 * @param reportingGroup
288 */
289 public void setReportingGroup(SecurityReportingGroup reportingGroup) {
290 this.reportingGroup = reportingGroup;
291 }
292
293
294 /**
295 * Gets the noDrillDownOnMarketVal.
296 *
297 * @return noDrillDownOnMarketVal
298 */
299 public boolean isNoDrillDownOnMarketVal() {
300 return noDrillDownOnMarketVal;
301 }
302
303
304 /**
305 * Sets the noDrillDownOnMarketVal.
306 *
307 * @param noDrillDownOnMarketVal
308 */
309 public void setNoDrillDownOnMarketVal(boolean noDrillDownOnMarketVal) {
310 this.noDrillDownOnMarketVal = noDrillDownOnMarketVal;
311 }
312
313 }