001: /*
002: * Copyright 2006-2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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/ecl1.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.module.labor.bo;
018:
019: import java.math.BigDecimal;
020: import java.sql.Date;
021: import java.sql.Timestamp;
022: import java.util.LinkedHashMap;
023:
024: import org.kuali.core.bo.PersistableBusinessObjectBase;
025: import org.kuali.core.bo.user.PersonPayrollId;
026: import org.kuali.core.bo.user.UniversalUser;
027: import org.kuali.core.bo.user.UserId;
028: import org.kuali.core.exceptions.UserNotFoundException;
029: import org.kuali.core.service.UniversalUserService;
030: import org.kuali.core.util.KualiDecimal;
031: import org.kuali.kfs.bo.Options;
032: import org.kuali.kfs.context.SpringContext;
033: import org.kuali.module.chart.bo.Account;
034: import org.kuali.module.chart.bo.Chart;
035: import org.kuali.module.chart.bo.ObjectCode;
036: import org.kuali.module.chart.bo.SubAccount;
037: import org.kuali.module.chart.bo.SubObjCd;
038: import org.kuali.module.labor.LaborConstants;
039:
040: /**
041: * Calculated Salary Foundation Tracker Business Object.
042: */
043: public class CalculatedSalaryFoundationTracker extends
044: PersistableBusinessObjectBase {
045:
046: private Integer universityFiscalYear;
047: private String chartOfAccountsCode;
048: private String accountNumber;
049: private String subAccountNumber;
050: private String financialObjectCode;
051: private String financialSubObjectCode;
052: private String positionNumber;
053: private String emplid;
054: private String personName;
055: private Timestamp csfCreateTimestamp;
056: private String csfDeleteCode;
057: private KualiDecimal csfAmount;
058: private BigDecimal csfFullTimeEmploymentQuantity;
059: private BigDecimal csfTimePercent;
060: private String csfFundingStatusCode;
061: private Integer employeeRecord;
062: private String earnCode;
063: private Integer additionalSequence;
064: private Date effectiveDate;
065: private Integer effectiveSequence;
066:
067: private ObjectCode financialObject;
068: private Chart chartOfAccounts;
069: private Account account;
070: private SubAccount subAccount;
071: private SubObjCd financialSubObject;
072: private transient Options universityFiscal;
073: private final int PERCENTAGE_SCALE = 2;
074:
075: /**
076: * Default constructor.
077: */
078: public CalculatedSalaryFoundationTracker() {
079:
080: }
081:
082: /**
083: * Gets the universityFiscalYear attribute.
084: *
085: * @return Returns the universityFiscalYear
086: */
087: public Integer getUniversityFiscalYear() {
088: return universityFiscalYear;
089: }
090:
091: /**
092: * Sets the universityFiscalYear attribute.
093: *
094: * @param universityFiscalYear The universityFiscalYear to set.
095: */
096: public void setUniversityFiscalYear(Integer universityFiscalYear) {
097: this .universityFiscalYear = universityFiscalYear;
098: }
099:
100: /**
101: * Gets the chartOfAccountsCode attribute.
102: *
103: * @return Returns the chartOfAccountsCode
104: */
105: public String getChartOfAccountsCode() {
106: return chartOfAccountsCode;
107: }
108:
109: /**
110: * Sets the chartOfAccountsCode attribute.
111: *
112: * @param chartOfAccountsCode The chartOfAccountsCode to set.
113: */
114: public void setChartOfAccountsCode(String chartOfAccountsCode) {
115: this .chartOfAccountsCode = chartOfAccountsCode;
116: }
117:
118: /**
119: * Gets the accountNumber attribute.
120: *
121: * @return Returns the accountNumber
122: */
123: public String getAccountNumber() {
124: return accountNumber;
125: }
126:
127: /**
128: * Sets the accountNumber attribute.
129: *
130: * @param accountNumber The accountNumber to set.
131: */
132: public void setAccountNumber(String accountNumber) {
133: this .accountNumber = accountNumber;
134: }
135:
136: /**
137: * Gets the subAccountNumber attribute.
138: *
139: * @return Returns the subAccountNumber
140: */
141: public String getSubAccountNumber() {
142: return subAccountNumber;
143: }
144:
145: /**
146: * Sets the subAccountNumber attribute.
147: *
148: * @param subAccountNumber The subAccountNumber to set.
149: */
150: public void setSubAccountNumber(String subAccountNumber) {
151: this .subAccountNumber = subAccountNumber;
152: }
153:
154: /**
155: * Gets the financialObjectCode attribute.
156: *
157: * @return Returns the financialObjectCode
158: */
159: public String getFinancialObjectCode() {
160: return financialObjectCode;
161: }
162:
163: /**
164: * Sets the financialObjectCode attribute.
165: *
166: * @param financialObjectCode The financialObjectCode to set.
167: */
168: public void setFinancialObjectCode(String financialObjectCode) {
169: this .financialObjectCode = financialObjectCode;
170: }
171:
172: /**
173: * Gets the financialSubObjectCode attribute.
174: *
175: * @return Returns the financialSubObjectCode
176: */
177: public String getFinancialSubObjectCode() {
178: return financialSubObjectCode;
179: }
180:
181: /**
182: * Sets the financialSubObjectCode attribute.
183: *
184: * @param financialSubObjectCode The financialSubObjectCode to set.
185: */
186: public void setFinancialSubObjectCode(String financialSubObjectCode) {
187: this .financialSubObjectCode = financialSubObjectCode;
188: }
189:
190: /**
191: * Gets the positionNumber attribute.
192: *
193: * @return Returns the positionNumber
194: */
195: public String getPositionNumber() {
196: return positionNumber;
197: }
198:
199: /**
200: * Sets the positionNumber attribute.
201: *
202: * @param positionNumber The positionNumber to set.
203: */
204: public void setPositionNumber(String positionNumber) {
205: this .positionNumber = positionNumber;
206: }
207:
208: /**
209: * Gets the emplid attribute.
210: *
211: * @return Returns the emplid
212: */
213: public String getEmplid() {
214: return emplid;
215: }
216:
217: /**
218: * Sets the emplid attribute.
219: *
220: * @param emplid The emplid to set.
221: */
222: public void setEmplid(String emplid) {
223: this .emplid = emplid;
224: }
225:
226: /**
227: * Gets the csfCreateTimestamp attribute.
228: *
229: * @return Returns the csfCreateTimestamp
230: */
231: public Timestamp getCsfCreateTimestamp() {
232: return csfCreateTimestamp;
233: }
234:
235: /**
236: * Sets the csfCreateTimestamp attribute.
237: *
238: * @param csfCreateTimestamp The csfCreateTimestamp to set.
239: */
240: public void setCsfCreateTimestamp(Timestamp csfCreateTimestamp) {
241: this .csfCreateTimestamp = csfCreateTimestamp;
242: }
243:
244: /**
245: * Gets the csfDeleteCode attribute.
246: *
247: * @return Returns the csfDeleteCode
248: */
249: public String getCsfDeleteCode() {
250: return csfDeleteCode;
251: }
252:
253: /**
254: * Sets the csfDeleteCode attribute.
255: *
256: * @param csfDeleteCode The csfDeleteCode to set.
257: */
258: public void setCsfDeleteCode(String csfDeleteCode) {
259: this .csfDeleteCode = csfDeleteCode;
260: }
261:
262: /**
263: * Gets the csfAmount attribute.
264: *
265: * @return Returns the csfAmount
266: */
267: public KualiDecimal getCsfAmount() {
268: return csfAmount;
269: }
270:
271: /**
272: * Sets the csfAmount attribute.
273: *
274: * @param csfAmount The csfAmount to set.
275: */
276: public void setCsfAmount(KualiDecimal csfAmount) {
277: this .csfAmount = csfAmount;
278: }
279:
280: /**
281: * Gets the csfFullTimeEmploymentQuantity attribute.
282: *
283: * @return Returns the csfFullTimeEmploymentQuantity
284: */
285: public BigDecimal getCsfFullTimeEmploymentQuantity() {
286: return csfFullTimeEmploymentQuantity;
287: }
288:
289: /**
290: * Sets the csfFullTimeEmploymentQuantity attribute.
291: *
292: * @param csfFullTimeEmploymentQuantity The csfFullTimeEmploymentQuantity to set.
293: */
294: public void setCsfFullTimeEmploymentQuantity(
295: BigDecimal csfFullTimeEmploymentQuantity) {
296: this .csfFullTimeEmploymentQuantity = csfFullTimeEmploymentQuantity;
297: }
298:
299: /**
300: * Gets the csfTimePercent attribute. Returns 2 decimal places, reguardless.
301: *
302: * @return Returns the csfTimePercent
303: */
304: public BigDecimal getCsfTimePercent() {
305:
306: BigDecimal bigDecValue = (BigDecimal) this .csfTimePercent;
307: bigDecValue = bigDecValue.setScale(PERCENTAGE_SCALE,
308: BigDecimal.ROUND_HALF_UP);
309: return bigDecValue;
310: }
311:
312: /**
313: * Sets the csfTimePercent attribute.
314: *
315: * @param csfTimePercent The csfTimePercent to set.
316: */
317: public void setCsfTimePercent(BigDecimal csfTimePercent) {
318: this .csfTimePercent = csfTimePercent;
319: }
320:
321: /**
322: * Gets the csfFundingStatusCode attribute.
323: *
324: * @return Returns the csfFundingStatusCode
325: */
326: public String getCsfFundingStatusCode() {
327: return csfFundingStatusCode;
328: }
329:
330: /**
331: * Sets the csfFundingStatusCode attribute.
332: *
333: * @param csfFundingStatusCode The csfFundingStatusCode to set.
334: */
335: public void setCsfFundingStatusCode(String csfFundingStatusCode) {
336: this .csfFundingStatusCode = csfFundingStatusCode;
337: }
338:
339: /**
340: * Gets the employeeRecord attribute.
341: *
342: * @return Returns the employeeRecord
343: */
344: public Integer getEmployeeRecord() {
345: return employeeRecord;
346: }
347:
348: /**
349: * Sets the employeeRecord attribute.
350: *
351: * @param employeeRecord The employeeRecord to set.
352: */
353: public void setEmployeeRecord(Integer employeeRecord) {
354: this .employeeRecord = employeeRecord;
355: }
356:
357: /**
358: * Gets the earnCode attribute.
359: *
360: * @return Returns the earnCode
361: */
362: public String getEarnCode() {
363: return earnCode;
364: }
365:
366: /**
367: * Sets the earnCode attribute.
368: *
369: * @param earnCode The earnCode to set.
370: */
371: public void setEarnCode(String earnCode) {
372: this .earnCode = earnCode;
373: }
374:
375: /**
376: * Gets the additionalSequence attribute.
377: *
378: * @return Returns the additionalSequence
379: */
380: public Integer getAdditionalSequence() {
381: return additionalSequence;
382: }
383:
384: /**
385: * Sets the additionalSequence attribute.
386: *
387: * @param additionalSequence The additionalSequence to set.
388: */
389: public void setAdditionalSequence(Integer additionalSequence) {
390: this .additionalSequence = additionalSequence;
391: }
392:
393: /**
394: * Gets the effectiveDate attribute.
395: *
396: * @return Returns the effectiveDate
397: */
398: public Date getEffectiveDate() {
399: return effectiveDate;
400: }
401:
402: /**
403: * Sets the effectiveDate attribute.
404: *
405: * @param effectiveDate The effectiveDate to set.
406: */
407: public void setEffectiveDate(Date effectiveDate) {
408: this .effectiveDate = effectiveDate;
409: }
410:
411: /**
412: * Gets the effectiveSequence attribute.
413: *
414: * @return Returns the effectiveSequence
415: */
416: public Integer getEffectiveSequence() {
417: return effectiveSequence;
418: }
419:
420: /**
421: * Sets the effectiveSequence attribute.
422: *
423: * @param effectiveSequence The effectiveSequence to set.
424: */
425: public void setEffectiveSequence(Integer effectiveSequence) {
426: this .effectiveSequence = effectiveSequence;
427: }
428:
429: /**
430: * Gets the financialObject attribute.
431: *
432: * @return Returns the financialObject
433: */
434: public ObjectCode getFinancialObject() {
435: return financialObject;
436: }
437:
438: /**
439: * Sets the financialObject attribute.
440: *
441: * @param financialObject The financialObject to set.
442: * @deprecated
443: */
444: public void setFinancialObject(ObjectCode financialObject) {
445: this .financialObject = financialObject;
446: }
447:
448: /**
449: * Gets the chartOfAccounts attribute.
450: *
451: * @return Returns the chartOfAccounts
452: */
453: public Chart getChartOfAccounts() {
454: return chartOfAccounts;
455: }
456:
457: /**
458: * Sets the chartOfAccounts attribute.
459: *
460: * @param chartOfAccounts The chartOfAccounts to set.
461: * @deprecated
462: */
463: public void setChartOfAccounts(Chart chartOfAccounts) {
464: this .chartOfAccounts = chartOfAccounts;
465: }
466:
467: /**
468: * Gets the account attribute.
469: *
470: * @return Returns the account
471: */
472: public Account getAccount() {
473: return account;
474: }
475:
476: /**
477: * Sets the account attribute.
478: *
479: * @param account The account to set.
480: * @deprecated
481: */
482: public void setAccount(Account account) {
483: this .account = account;
484: }
485:
486: /**
487: * @return Returns the subAccount.
488: */
489: public SubAccount getSubAccount() {
490: return subAccount;
491: }
492:
493: /**
494: * @param subAccount The subAccount to set.
495: * @deprecated
496: */
497: public void setSubAccount(SubAccount subAccount) {
498: this .subAccount = subAccount;
499: }
500:
501: /**
502: * Gets the universityFiscal attribute.
503: *
504: * @return Returns the universityFiscal.
505: */
506: public Options getUniversityFiscal() {
507: return universityFiscal;
508: }
509:
510: /**
511: * Sets the universityFiscal attribute value.
512: *
513: * @param universityFiscal The universityFiscal to set.
514: */
515: public void setUniversityFiscal(Options universityFiscal) {
516: this .universityFiscal = universityFiscal;
517: }
518:
519: /**
520: * @see org.kuali.core.bo.BusinessObjectBase#toStringMapper()
521: */
522: protected LinkedHashMap toStringMapper() {
523: LinkedHashMap m = new LinkedHashMap();
524: if (this .universityFiscalYear != null) {
525: m.put("universityFiscalYear", this .universityFiscalYear
526: .toString());
527: }
528: m.put("chartOfAccountsCode", this .chartOfAccountsCode);
529: m.put("accountNumber", this .accountNumber);
530: m.put("subAccountNumber", this .subAccountNumber);
531: m.put("financialObjectCode", this .financialObjectCode);
532: m.put("financialSubObjectCode", this .financialSubObjectCode);
533: m.put("positionNumber", this .positionNumber);
534: m.put("emplid", this .emplid);
535: if (this .csfCreateTimestamp != null) {
536: m.put("csfCreateTimestamp", this .csfCreateTimestamp
537: .toString());
538: }
539: return m;
540: }
541:
542: public String getPersonName() {
543: UserId empl = new PersonPayrollId(getEmplid());
544: UniversalUser universalUser = null;
545:
546: try {
547: universalUser = SpringContext.getBean(
548: UniversalUserService.class).getUniversalUser(empl);
549: } catch (UserNotFoundException e) {
550: return LaborConstants.BalanceInquiries.UnknownPersonName;
551: }
552:
553: return universalUser.getPersonName();
554: }
555:
556: public void setPersonName(String personName) {
557: this .personName = personName;
558: }
559:
560: /**
561: * Gets the financialSubObject attribute.
562: *
563: * @return Returns the financialSubObject.
564: */
565: public SubObjCd getFinancialSubObject() {
566: return financialSubObject;
567: }
568:
569: /**
570: * Sets the financialSubObject attribute value.
571: *
572: * @param financialSubObject The financialSubObject to set.
573: * @deprecated
574: */
575: public void setFinancialSubObject(SubObjCd financialSubObject) {
576: this.financialSubObject = financialSubObject;
577: }
578: }
|