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.bc.businessobject;
018
019 import java.math.BigDecimal;
020 import java.text.MessageFormat;
021 import java.util.HashMap;
022 import java.util.LinkedHashMap;
023 import java.util.List;
024 import java.util.Map;
025
026 import org.apache.ojb.broker.PersistenceBroker;
027 import org.apache.ojb.broker.PersistenceBrokerException;
028 import org.kuali.kfs.coa.businessobject.Account;
029 import org.kuali.kfs.coa.businessobject.Chart;
030 import org.kuali.kfs.coa.businessobject.ObjectCode;
031 import org.kuali.kfs.coa.businessobject.SubAccount;
032 import org.kuali.kfs.coa.businessobject.SubObjectCode;
033 import org.kuali.kfs.module.bc.util.SalarySettingCalculator;
034 import org.kuali.kfs.sys.KFSPropertyConstants;
035 import org.kuali.kfs.sys.context.SpringContext;
036 import org.kuali.rice.kim.bo.Person;
037 import org.kuali.rice.kim.service.PersonService;
038 import org.kuali.rice.kns.bo.Inactivateable;
039 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
040 import org.kuali.rice.kns.util.KualiDecimal;
041 import org.kuali.rice.kns.util.KualiInteger;
042 import org.kuali.rice.kns.util.TypedArrayList;
043
044 /**
045 *
046 */
047 public class PendingBudgetConstructionAppointmentFunding extends PersistableBusinessObjectBase implements Inactivateable {
048
049 private Integer universityFiscalYear;
050 private String chartOfAccountsCode;
051 private String accountNumber;
052 private String subAccountNumber;
053 private String financialObjectCode;
054 private String financialSubObjectCode;
055 private String positionNumber;
056 private String emplid;
057 private String appointmentFundingDurationCode;
058 private KualiInteger appointmentRequestedCsfAmount;
059 private BigDecimal appointmentRequestedCsfFteQuantity;
060 private BigDecimal appointmentRequestedCsfTimePercent;
061 private KualiInteger appointmentTotalIntendedAmount;
062 private BigDecimal appointmentTotalIntendedFteQuantity;
063 private KualiInteger appointmentRequestedAmount;
064 private BigDecimal appointmentRequestedTimePercent;
065 private BigDecimal appointmentRequestedFteQuantity;
066 private BigDecimal appointmentRequestedPayRate;
067 private boolean appointmentFundingDeleteIndicator;
068 private Integer appointmentFundingMonth;
069 private boolean positionObjectChangeIndicator;
070 private boolean positionSalaryChangeIndicator;
071 private boolean active;
072
073 private ObjectCode financialObject;
074 private Chart chartOfAccounts;
075 private Account account;
076 private SubAccount subAccount;
077 private SubObjectCode financialSubObject;
078 private BudgetConstructionPosition budgetConstructionPosition;
079 private BudgetConstructionAdministrativePost budgetConstructionAdministrativePost;
080 private BudgetConstructionAccountReports budgetConstructionAccountReports;
081 private BudgetConstructionIntendedIncumbent budgetConstructionIntendedIncumbent;
082 private BudgetConstructionDuration budgetConstructionDuration;
083
084 private List<BudgetConstructionCalculatedSalaryFoundationTracker> bcnCalculatedSalaryFoundationTracker;
085 private List<BudgetConstructionSalaryFunding> budgetConstructionSalaryFunding;
086 private List<BudgetConstructionAppointmentFundingReason> budgetConstructionAppointmentFundingReason;
087
088 private KualiDecimal percentChange;
089 private String adjustmentMeasurement;
090 private KualiDecimal adjustmentAmount;
091
092 private boolean persistedDeleteIndicator;
093 private boolean vacatable;
094 private boolean newLineIndicator;
095
096 private boolean displayOnlyMode;
097 private boolean budgetable;
098 private boolean hourlyPaid;
099 private boolean excludedFromTotal;
100 private boolean override2PlugMode;
101 private boolean purged;
102
103 /**
104 * Default constructor.
105 */
106 public PendingBudgetConstructionAppointmentFunding() {
107 budgetConstructionSalaryFunding = new TypedArrayList(BudgetConstructionSalaryFunding.class);
108 bcnCalculatedSalaryFoundationTracker = new TypedArrayList(BudgetConstructionCalculatedSalaryFoundationTracker.class);
109 budgetConstructionAppointmentFundingReason = new TypedArrayList(BudgetConstructionAppointmentFundingReason.class);
110 positionObjectChangeIndicator = false; // assume pos change indicators false until set
111 positionSalaryChangeIndicator = false;
112 active = true; // assume active is true until set otherwise
113 }
114
115 /**
116 * Gets(sets) the percentChange based on the current values of csf and request amounts Checks to see if a CSF object exists
117 *
118 * @return Returns percentChange
119 */
120 public KualiDecimal getPercentChange() {
121 percentChange = null;
122
123 BudgetConstructionCalculatedSalaryFoundationTracker csfTracker = this.getEffectiveCSFTracker();
124 if (csfTracker != null) {
125 KualiInteger baseAmount = csfTracker.getCsfAmount();
126 KualiInteger requestedAmount = this.getAppointmentRequestedAmount();
127
128 percentChange = SalarySettingCalculator.getPercentChange(baseAmount, requestedAmount);
129 }
130 return percentChange;
131 }
132
133 /**
134 * Sets the percentChange attribute value.
135 *
136 * @param percentChange The percentChange to set.
137 * @deprecated
138 */
139 public void setPercentChange(KualiDecimal percentChange) {
140 this.percentChange = percentChange;
141 }
142
143 /**
144 * Gets the universityFiscalYear attribute.
145 *
146 * @return Returns the universityFiscalYear
147 */
148 public Integer getUniversityFiscalYear() {
149 return universityFiscalYear;
150 }
151
152 /**
153 * Sets the universityFiscalYear attribute.
154 *
155 * @param universityFiscalYear The universityFiscalYear to set.
156 */
157 public void setUniversityFiscalYear(Integer universityFiscalYear) {
158 this.universityFiscalYear = universityFiscalYear;
159 }
160
161 /**
162 * Gets the chartOfAccountsCode attribute.
163 *
164 * @return Returns the chartOfAccountsCode
165 */
166 public String getChartOfAccountsCode() {
167 return chartOfAccountsCode;
168 }
169
170 /**
171 * Sets the chartOfAccountsCode attribute.
172 *
173 * @param chartOfAccountsCode The chartOfAccountsCode to set.
174 */
175 public void setChartOfAccountsCode(String chartOfAccountsCode) {
176 this.chartOfAccountsCode = chartOfAccountsCode;
177 }
178
179 /**
180 * Gets the accountNumber attribute.
181 *
182 * @return Returns the accountNumber
183 */
184 public String getAccountNumber() {
185 return accountNumber;
186 }
187
188 /**
189 * Sets the accountNumber attribute.
190 *
191 * @param accountNumber The accountNumber to set.
192 */
193 public void setAccountNumber(String accountNumber) {
194 this.accountNumber = accountNumber;
195 }
196
197 /**
198 * Gets the subAccountNumber attribute.
199 *
200 * @return Returns the subAccountNumber
201 */
202 public String getSubAccountNumber() {
203 return subAccountNumber;
204 }
205
206 /**
207 * Sets the subAccountNumber attribute.
208 *
209 * @param subAccountNumber The subAccountNumber to set.
210 */
211 public void setSubAccountNumber(String subAccountNumber) {
212 this.subAccountNumber = subAccountNumber;
213 }
214
215 /**
216 * Gets the financialObjectCode attribute.
217 *
218 * @return Returns the financialObjectCode
219 */
220 public String getFinancialObjectCode() {
221 return financialObjectCode;
222 }
223
224 /**
225 * Sets the financialObjectCode attribute.
226 *
227 * @param financialObjectCode The financialObjectCode to set.
228 */
229 public void setFinancialObjectCode(String financialObjectCode) {
230 this.financialObjectCode = financialObjectCode;
231 }
232
233 /**
234 * Gets the financialSubObjectCode attribute.
235 *
236 * @return Returns the financialSubObjectCode
237 */
238 public String getFinancialSubObjectCode() {
239 return financialSubObjectCode;
240 }
241
242 /**
243 * Sets the financialSubObjectCode attribute.
244 *
245 * @param financialSubObjectCode The financialSubObjectCode to set.
246 */
247 public void setFinancialSubObjectCode(String financialSubObjectCode) {
248 this.financialSubObjectCode = financialSubObjectCode;
249 }
250
251 /**
252 * Gets the positionNumber attribute.
253 *
254 * @return Returns the positionNumber
255 */
256 public String getPositionNumber() {
257 return positionNumber;
258 }
259
260 /**
261 * Sets the positionNumber attribute.
262 *
263 * @param positionNumber The positionNumber to set.
264 */
265 public void setPositionNumber(String positionNumber) {
266 this.positionNumber = positionNumber;
267 }
268
269 /**
270 * Gets the emplid attribute.
271 *
272 * @return Returns the emplid
273 */
274 public String getEmplid() {
275 return emplid;
276 }
277
278 /**
279 * Sets the emplid attribute.
280 *
281 * @param emplid The emplid to set.
282 */
283 public void setEmplid(String emplid) {
284 this.emplid = emplid;
285 }
286
287 /**
288 * Gets the appointmentFundingDurationCode attribute.
289 *
290 * @return Returns the appointmentFundingDurationCode
291 */
292 public String getAppointmentFundingDurationCode() {
293 return appointmentFundingDurationCode;
294 }
295
296 /**
297 * Sets the appointmentFundingDurationCode attribute.
298 *
299 * @param appointmentFundingDurationCode The appointmentFundingDurationCode to set.
300 */
301 public void setAppointmentFundingDurationCode(String appointmentFundingDurationCode) {
302 this.appointmentFundingDurationCode = appointmentFundingDurationCode;
303 }
304
305 /**
306 * Gets the appointmentRequestedCsfAmount attribute.
307 *
308 * @return Returns the appointmentRequestedCsfAmount.
309 */
310 public KualiInteger getAppointmentRequestedCsfAmount() {
311 return appointmentRequestedCsfAmount;
312 }
313
314 /**
315 * Sets the appointmentRequestedCsfAmount attribute value.
316 *
317 * @param appointmentRequestedCsfAmount The appointmentRequestedCsfAmount to set.
318 */
319 public void setAppointmentRequestedCsfAmount(KualiInteger appointmentRequestedCsfAmount) {
320 this.appointmentRequestedCsfAmount = appointmentRequestedCsfAmount;
321 }
322
323 /**
324 * Gets the appointmentRequestedCsfFteQuantity attribute.
325 *
326 * @return Returns the appointmentRequestedCsfFteQuantity
327 */
328 public BigDecimal getAppointmentRequestedCsfFteQuantity() {
329 return appointmentRequestedCsfFteQuantity;
330 }
331
332 /**
333 * Sets the appointmentRequestedCsfFteQuantity attribute.
334 *
335 * @param appointmentRequestedCsfFteQuantity The appointmentRequestedCsfFteQuantity to set.
336 */
337 public void setAppointmentRequestedCsfFteQuantity(BigDecimal appointmentRequestedCsfFteQuantity) {
338 this.appointmentRequestedCsfFteQuantity = appointmentRequestedCsfFteQuantity;
339 }
340
341 /**
342 * Gets the appointmentRequestedCsfTimePercent attribute.
343 *
344 * @return Returns the appointmentRequestedCsfTimePercent
345 */
346 public BigDecimal getAppointmentRequestedCsfTimePercent() {
347 return appointmentRequestedCsfTimePercent;
348 }
349
350 /**
351 * Sets the appointmentRequestedCsfTimePercent attribute.
352 *
353 * @param appointmentRequestedCsfTimePercent The appointmentRequestedCsfTimePercent to set.
354 */
355 public void setAppointmentRequestedCsfTimePercent(BigDecimal appointmentRequestedCsfTimePercent) {
356 this.appointmentRequestedCsfTimePercent = appointmentRequestedCsfTimePercent;
357 }
358
359 /**
360 * Gets the appointmentTotalIntendedAmount attribute.
361 *
362 * @return Returns the appointmentTotalIntendedAmount.
363 */
364 public KualiInteger getAppointmentTotalIntendedAmount() {
365 return appointmentTotalIntendedAmount;
366 }
367
368 /**
369 * Sets the appointmentTotalIntendedAmount attribute value.
370 *
371 * @param appointmentTotalIntendedAmount The appointmentTotalIntendedAmount to set.
372 */
373 public void setAppointmentTotalIntendedAmount(KualiInteger appointmentTotalIntendedAmount) {
374 this.appointmentTotalIntendedAmount = appointmentTotalIntendedAmount;
375 }
376
377 /**
378 * Gets the appointmentTotalIntendedFteQuantity attribute.
379 *
380 * @return Returns the appointmentTotalIntendedFteQuantity
381 */
382 public BigDecimal getAppointmentTotalIntendedFteQuantity() {
383 return appointmentTotalIntendedFteQuantity;
384 }
385
386 /**
387 * Sets the appointmentTotalIntendedFteQuantity attribute.
388 *
389 * @param appointmentTotalIntendedFteQuantity The appointmentTotalIntendedFteQuantity to set.
390 */
391 public void setAppointmentTotalIntendedFteQuantity(BigDecimal appointmentTotalIntendedFteQuantity) {
392 this.appointmentTotalIntendedFteQuantity = appointmentTotalIntendedFteQuantity;
393 }
394
395 /**
396 * Gets the appointmentRequestedAmount attribute.
397 *
398 * @return Returns the appointmentRequestedAmount
399 */
400 public KualiInteger getAppointmentRequestedAmount() {
401 return appointmentRequestedAmount;
402 }
403
404 /**
405 * Sets the appointmentRequestedAmount attribute.
406 *
407 * @param appointmentRequestedAmount The appointmentRequestedAmount to set.
408 */
409 public void setAppointmentRequestedAmount(KualiInteger appointmentRequestedAmount) {
410 this.appointmentRequestedAmount = appointmentRequestedAmount;
411 }
412
413 /**
414 * Gets the appointmentRequestedTimePercent attribute.
415 *
416 * @return Returns the appointmentRequestedTimePercent
417 */
418 public BigDecimal getAppointmentRequestedTimePercent() {
419 return appointmentRequestedTimePercent;
420 }
421
422 /**
423 * Sets the appointmentRequestedTimePercent attribute.
424 *
425 * @param appointmentRequestedTimePercent The appointmentRequestedTimePercent to set.
426 */
427 public void setAppointmentRequestedTimePercent(BigDecimal appointmentRequestedTimePercent) {
428 this.appointmentRequestedTimePercent = appointmentRequestedTimePercent;
429 }
430
431 /**
432 * Gets the appointmentRequestedFteQuantity attribute.
433 *
434 * @return Returns the appointmentRequestedFteQuantity
435 */
436 public BigDecimal getAppointmentRequestedFteQuantity() {
437 return appointmentRequestedFteQuantity;
438 }
439
440 /**
441 * Sets the appointmentRequestedFteQuantity attribute.
442 *
443 * @param appointmentRequestedFteQuantity The appointmentRequestedFteQuantity to set.
444 */
445 public void setAppointmentRequestedFteQuantity(BigDecimal appointmentRequestedFteQuantity) {
446 this.appointmentRequestedFteQuantity = appointmentRequestedFteQuantity;
447 }
448
449 /**
450 * Gets the appointmentRequestedPayRate attribute.
451 *
452 * @return Returns the appointmentRequestedPayRate
453 */
454 public BigDecimal getAppointmentRequestedPayRate() {
455 return appointmentRequestedPayRate;
456 }
457
458 /**
459 * Sets the appointmentRequestedPayRate attribute.
460 *
461 * @param appointmentRequestedPayRate The appointmentRequestedPayRate to set.
462 */
463 public void setAppointmentRequestedPayRate(BigDecimal appointmentRequestedPayRate) {
464 this.appointmentRequestedPayRate = appointmentRequestedPayRate;
465 }
466
467 /**
468 * Gets the active attribute.
469 *
470 * @return Returns the active
471 */
472 public boolean isActive() {
473 return active;
474 }
475
476 /**
477 * Sets the active attribute.
478 *
479 * @param active The active to set.
480 */
481 public void setActive(boolean active) {
482 this.active = active;
483 }
484
485 /**
486 * Gets the appointmentFundingDeleteIndicator attribute.
487 *
488 * @return Returns the appointmentFundingDeleteIndicator
489 */
490 public boolean isAppointmentFundingDeleteIndicator() {
491 return !this.active;
492 // return appointmentFundingDeleteIndicator;
493 }
494
495 /**
496 * Sets the appointmentFundingDeleteIndicator attribute.
497 *
498 * @param appointmentFundingDeleteIndicator The appointmentFundingDeleteIndicator to set.
499 */
500 public void setAppointmentFundingDeleteIndicator(boolean appointmentFundingDeleteIndicator) {
501 this.active = !appointmentFundingDeleteIndicator;
502 // this.appointmentFundingDeleteIndicator = appointmentFundingDeleteIndicator;
503 }
504
505 /**
506 * Gets the appointmentFundingMonth attribute.
507 *
508 * @return Returns the appointmentFundingMonth
509 */
510 public Integer getAppointmentFundingMonth() {
511 return appointmentFundingMonth;
512 }
513
514 /**
515 * Sets the appointmentFundingMonth attribute.
516 *
517 * @param appointmentFundingMonth The appointmentFundingMonth to set.
518 */
519 public void setAppointmentFundingMonth(Integer appointmentFundingMonth) {
520 this.appointmentFundingMonth = appointmentFundingMonth;
521 }
522
523 /**
524 * Gets the positionObjectChangeIndicator attribute.
525 *
526 * @return Returns the positionObjectChangeIndicator
527 */
528 public boolean isPositionObjectChangeIndicator() {
529 return positionObjectChangeIndicator;
530 }
531
532 /**
533 * Sets the positionObjectChangeIndicator attribute.
534 *
535 * @param positionObjectChangeIndicator The positionObjectChangeIndicator to set.
536 */
537 public void setPositionObjectChangeIndicator(boolean positionObjectChangeIndicator) {
538 this.positionObjectChangeIndicator = positionObjectChangeIndicator;
539 }
540
541 /**
542 * Gets the positionSalaryChangeIndicator attribute.
543 *
544 * @return Returns the positionSalaryChangeIndicator
545 */
546 public boolean isPositionSalaryChangeIndicator() {
547 return positionSalaryChangeIndicator;
548 }
549
550 /**
551 * Sets the positionSalaryChangeIndicator attribute.
552 *
553 * @param positionSalaryChangeIndicator The positionSalaryChangeIndicator to set.
554 */
555 public void setPositionSalaryChangeIndicator(boolean positionSalaryChangeIndicator) {
556 this.positionSalaryChangeIndicator = positionSalaryChangeIndicator;
557 }
558
559 /**
560 * gets the boolean positionSalaryChangeIndicator or positionObjectChangeIndicator
561 *
562 * @return positionSalaryChangeIndicator or positionObjectChangeIndicator
563 */
564 public boolean isPositionChangeIndicator() {
565
566 return (this.isPositionSalaryChangeIndicator() || this.isPositionObjectChangeIndicator());
567 }
568
569 /**
570 * Gets the financialObject attribute.
571 *
572 * @return Returns the financialObject
573 */
574 public ObjectCode getFinancialObject() {
575 return financialObject;
576 }
577
578 /**
579 * Sets the financialObject attribute.
580 *
581 * @param financialObject The financialObject to set.
582 * @deprecated
583 */
584 public void setFinancialObject(ObjectCode financialObject) {
585 this.financialObject = financialObject;
586 }
587
588 /**
589 * Gets the chartOfAccounts attribute.
590 *
591 * @return Returns the chartOfAccounts
592 */
593 public Chart getChartOfAccounts() {
594 return chartOfAccounts;
595 }
596
597 /**
598 * Sets the chartOfAccounts attribute.
599 *
600 * @param chartOfAccounts The chartOfAccounts to set.
601 * @deprecated
602 */
603 public void setChartOfAccounts(Chart chartOfAccounts) {
604 this.chartOfAccounts = chartOfAccounts;
605 }
606
607 /**
608 * Gets the account attribute.
609 *
610 * @return Returns the account
611 */
612 public Account getAccount() {
613 return account;
614 }
615
616 /**
617 * Sets the account attribute.
618 *
619 * @param account The account to set.
620 * @deprecated
621 */
622 public void setAccount(Account account) {
623 this.account = account;
624 }
625
626 /**
627 * Gets the financialSubObject attribute.
628 *
629 * @return Returns the financialSubObject.
630 */
631 public SubObjectCode getFinancialSubObject() {
632 return financialSubObject;
633 }
634
635 /**
636 * Sets the financialSubObject attribute value.
637 *
638 * @param financialSubObject The financialSubObject to set.
639 * @deprecated
640 */
641 public void setFinancialSubObject(SubObjectCode financialSubObject) {
642 this.financialSubObject = financialSubObject;
643 }
644
645 /**
646 * Gets the subAccount attribute.
647 *
648 * @return Returns the subAccount.
649 */
650 public SubAccount getSubAccount() {
651 return subAccount;
652 }
653
654 /**
655 * Sets the subAccount attribute value.
656 *
657 * @param subAccount The subAccount to set.
658 * @deprecated
659 */
660 public void setSubAccount(SubAccount subAccount) {
661 this.subAccount = subAccount;
662 }
663
664 /**
665 * Gets the budgetConstructionPosition attribute.
666 *
667 * @return Returns the budgetConstructionPosition
668 */
669 public BudgetConstructionPosition getBudgetConstructionPosition() {
670 return budgetConstructionPosition;
671 }
672
673 /**
674 * Sets the budgetConstructionPosition attribute.
675 *
676 * @param budgetConstructionPosition The budgetConstructionPosition to set.
677 * @deprecated
678 */
679 public void setBudgetConstructionPosition(BudgetConstructionPosition budgetConstructionPosition) {
680 this.budgetConstructionPosition = budgetConstructionPosition;
681 }
682
683
684 /**
685 * Gets the budgetConstructionSalaryFunding attribute.
686 *
687 * @return Returns the budgetConstructionSalaryFunding.
688 */
689 public List<BudgetConstructionSalaryFunding> getBudgetConstructionSalaryFunding() {
690 return budgetConstructionSalaryFunding;
691 }
692
693 /**
694 * Sets the budgetConstructionSalaryFunding attribute value.
695 *
696 * @param budgetConstructionSalaryFunding The budgetConstructionSalaryFunding to set.
697 */
698 @Deprecated
699 public void setBudgetConstructionSalaryFunding(List<BudgetConstructionSalaryFunding> budgetConstructionSalaryFunding) {
700 this.budgetConstructionSalaryFunding = budgetConstructionSalaryFunding;
701 }
702
703 /**
704 * Gets the budgetConstructionAppointmentFundingReason attribute.
705 *
706 * @return Returns the budgetConstructionAppointmentFundingReason.
707 */
708 public List<BudgetConstructionAppointmentFundingReason> getBudgetConstructionAppointmentFundingReason() {
709 return budgetConstructionAppointmentFundingReason;
710 }
711
712 /**
713 * Sets the budgetConstructionAppointmentFundingReason attribute value.
714 *
715 * @param budgetConstructionAppointmentFundingReason The budgetConstructionAppointmentFundingReason to set.
716 */
717 @Deprecated
718 public void setBudgetConstructionAppointmentFundingReason(List<BudgetConstructionAppointmentFundingReason> budgetConstructionAppointmentFundingReason) {
719 this.budgetConstructionAppointmentFundingReason = budgetConstructionAppointmentFundingReason;
720 }
721
722 /**
723 * Gets the budgetConstructionAdministrativePost attribute.
724 *
725 * @return Returns the budgetConstructionAdministrativePost.
726 */
727 public BudgetConstructionAdministrativePost getBudgetConstructionAdministrativePost() {
728 return budgetConstructionAdministrativePost;
729 }
730
731 /**
732 * Sets the budgetConstructionAdministrativePost attribute value.
733 *
734 * @param budgetConstructionAdministrativePost The budgetConstructionAdministrativePost to set.
735 * @deprecated
736 */
737 public void setBudgetConstructionAdministrativePost(BudgetConstructionAdministrativePost budgetConstructionAdministrativePost) {
738 this.budgetConstructionAdministrativePost = budgetConstructionAdministrativePost;
739 }
740
741 /**
742 * Gets the budgetConstructionAccountReports attribute.
743 *
744 * @return Returns the budgetConstructionAccountReports.
745 */
746 public BudgetConstructionAccountReports getBudgetConstructionAccountReports() {
747 return budgetConstructionAccountReports;
748 }
749
750 /**
751 * Sets the budgetConstructionAccountReports attribute value.
752 *
753 * @param budgetConstructionAccountReports The budgetConstructionAccountReports to set.
754 * @deprecated
755 */
756 public void setBudgetConstructionAccountReports(BudgetConstructionAccountReports budgetConstructionAccountReports) {
757 this.budgetConstructionAccountReports = budgetConstructionAccountReports;
758 }
759
760 /**
761 * Gets the budgetConstructionDuration attribute.
762 *
763 * @return Returns the budgetConstructionDuration.
764 */
765 public BudgetConstructionDuration getBudgetConstructionDuration() {
766 return budgetConstructionDuration;
767 }
768
769 /**
770 * Sets the budgetConstructionDuration attribute value.
771 *
772 * @param budgetConstructionDuration The budgetConstructionDuration to set.
773 */
774 public void setBudgetConstructionDuration(BudgetConstructionDuration budgetConstructionDuration) {
775 this.budgetConstructionDuration = budgetConstructionDuration;
776 }
777
778 /**
779 * Gets the budgetConstructionIntendedIncumbent attribute.
780 *
781 * @return Returns the budgetConstructionIntendedIncumbent.
782 */
783 public BudgetConstructionIntendedIncumbent getBudgetConstructionIntendedIncumbent() {
784 return budgetConstructionIntendedIncumbent;
785 }
786
787 /**
788 * Sets the budgetConstructionIntendedIncumbent attribute value.
789 *
790 * @param budgetConstructionIntendedIncumbent The budgetConstructionIntendedIncumbent to set.
791 * @deprecated
792 */
793 public void setBudgetConstructionIntendedIncumbent(BudgetConstructionIntendedIncumbent budgetConstructionIntendedIncumbent) {
794 this.budgetConstructionIntendedIncumbent = budgetConstructionIntendedIncumbent;
795 }
796
797 /**
798 * Gets the bcnCalculatedSalaryFoundationTracker attribute.
799 *
800 * @return Returns the bcnCalculatedSalaryFoundationTracker.
801 */
802 public List<BudgetConstructionCalculatedSalaryFoundationTracker> getBcnCalculatedSalaryFoundationTracker() {
803 return bcnCalculatedSalaryFoundationTracker;
804 }
805
806 /**
807 * Sets the bcnCalculatedSalaryFoundationTracker attribute value.
808 *
809 * @param bcnCalculatedSalaryFoundationTracker The bcnCalculatedSalaryFoundationTracker to set.
810 * @deprecated
811 */
812 public void setBcnCalculatedSalaryFoundationTracker(List<BudgetConstructionCalculatedSalaryFoundationTracker> bcnCalculatedSalaryFoundationTracker) {
813 this.bcnCalculatedSalaryFoundationTracker = bcnCalculatedSalaryFoundationTracker;
814 }
815
816 /**
817 * Gets the adjustmentAmount attribute.
818 *
819 * @return Returns the adjustmentAmount.
820 */
821 public KualiDecimal getAdjustmentAmount() {
822 return adjustmentAmount;
823 }
824
825 /**
826 * Sets the adjustmentAmount attribute value.
827 *
828 * @param adjustmentAmount The adjustmentAmount to set.
829 */
830 public void setAdjustmentAmount(KualiDecimal adjustmentAmount) {
831 this.adjustmentAmount = adjustmentAmount;
832 }
833
834 /**
835 * Gets the adjustmentMeasurement attribute.
836 *
837 * @return Returns the adjustmentMeasurement.
838 */
839 public String getAdjustmentMeasurement() {
840 return adjustmentMeasurement;
841 }
842
843 /**
844 * Sets the adjustmentMeasurement attribute value.
845 *
846 * @param adjustmentMeasurement The adjustmentMeasurement to set.
847 */
848 public void setAdjustmentMeasurement(String adjustmentMeasurement) {
849 this.adjustmentMeasurement = adjustmentMeasurement;
850 }
851
852 /**
853 * get the effective calculated salary fundation for current appionment funding if any
854 *
855 * @return the the effective calculated salary fundation for current appionment funding if any; otherwise, null
856 */
857 public BudgetConstructionCalculatedSalaryFoundationTracker getEffectiveCSFTracker() {
858 if (bcnCalculatedSalaryFoundationTracker == null || bcnCalculatedSalaryFoundationTracker.size() <= 0) {
859 return null;
860 }
861
862 return bcnCalculatedSalaryFoundationTracker.get(0);
863 }
864
865 /**
866 * Gets the vacatable attribute.
867 *
868 * @return Returns the vacatable.
869 */
870 public boolean isVacatable() {
871 return vacatable;
872 }
873
874 /**
875 * Sets the vacatable attribute value.
876 *
877 * @param vacatable The vacatable to set.
878 */
879 public void setVacatable(boolean vacatable) {
880 this.vacatable = vacatable;
881 }
882
883 /**
884 * Gets the persistedDeleteIndicator attribute.
885 *
886 * @return Returns the persistedDeleteIndicator.
887 */
888 public boolean isPersistedDeleteIndicator() {
889 return persistedDeleteIndicator;
890 }
891
892 /**
893 * Sets the persistedDeleteIndicator attribute value.
894 *
895 * @param persistedDeleteIndicator The persistedDeleteIndicator to set.
896 */
897 public void setPersistedDeleteIndicator(boolean persistedDeleteIndicator) {
898 this.persistedDeleteIndicator = persistedDeleteIndicator;
899 }
900
901 /**
902 * Returns a map with the primitive field names as the key and the primitive values as the map value.
903 *
904 * @return Map a map with the primitive field names as the key and the primitive values as the map value.
905 */
906 public Map<String, Object> getValuesMap() {
907 Map<String, Object> valuesMap = new HashMap<String, Object>();
908
909 valuesMap.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, getUniversityFiscalYear());
910 valuesMap.put(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, getChartOfAccountsCode());
911 valuesMap.put(KFSPropertyConstants.ACCOUNT_NUMBER, getAccountNumber());
912 valuesMap.put(KFSPropertyConstants.SUB_ACCOUNT_NUMBER, getSubAccountNumber());
913 valuesMap.put(KFSPropertyConstants.FINANCIAL_OBJECT_CODE, getFinancialObjectCode());
914 valuesMap.put(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE, getFinancialSubObjectCode());
915 valuesMap.put(KFSPropertyConstants.POSITION_NUMBER, getPositionNumber());
916 valuesMap.put(KFSPropertyConstants.EMPLID, getEmplid());
917
918 return valuesMap;
919 }
920
921 /**
922 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
923 */
924 protected LinkedHashMap toStringMapper() {
925 LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
926
927 if (this.universityFiscalYear != null) {
928 map.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, getUniversityFiscalYear().toString());
929 }
930
931 map.put(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, getChartOfAccountsCode());
932 map.put(KFSPropertyConstants.ACCOUNT_NUMBER, getAccountNumber());
933 map.put(KFSPropertyConstants.SUB_ACCOUNT_NUMBER, getSubAccountNumber());
934 map.put(KFSPropertyConstants.FINANCIAL_OBJECT_CODE, getFinancialObjectCode());
935 map.put(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE, getFinancialSubObjectCode());
936 map.put(KFSPropertyConstants.POSITION_NUMBER, getPositionNumber());
937 map.put(KFSPropertyConstants.EMPLID, getEmplid());
938
939 return map;
940 }
941
942 /**
943 * build the given appointment funding key string
944 */
945 public String getAppointmentFundingString() {
946 String pattern = " {0}, {1}, {2}, {3}, {4}, {5}, {6}";
947
948 return MessageFormat.format(pattern, chartOfAccountsCode, accountNumber, subAccountNumber, financialObjectCode, financialSubObjectCode, emplid, positionNumber);
949 }
950
951 /**
952 * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#afterLookup(org.apache.ojb.broker.PersistenceBroker)
953 */
954 @Override
955 public void afterLookup(PersistenceBroker persistenceBroker) throws PersistenceBrokerException {
956 super.afterLookup(persistenceBroker);
957
958 this.setPersistedDeleteIndicator(this.isAppointmentFundingDeleteIndicator());
959 this.setNewLineIndicator(false);
960 }
961
962 /**
963 * Gets the newLineIndicator attribute.
964 *
965 * @return Returns the newLineIndicator.
966 */
967 public boolean isNewLineIndicator() {
968 return newLineIndicator;
969 }
970
971 /**
972 * Gets the hourlyPaid attribute.
973 *
974 * @return Returns the hourlyPaid.
975 */
976 public boolean isHourlyPaid() {
977 return hourlyPaid;
978 }
979
980 /**
981 * Gets the displayOnlyMode attribute.
982 *
983 * @return Returns the displayOnlyMode.
984 */
985 public boolean isDisplayOnlyMode() {
986 return displayOnlyMode;
987 }
988
989 /**
990 * Gets the budgetable attribute.
991 *
992 * @return Returns the budgetable.
993 */
994 public boolean isBudgetable() {
995 return budgetable;
996 }
997
998 /**
999 * Gets the excludedFromTotal attribute.
1000 *
1001 * @return Returns the excludedFromTotal.
1002 */
1003 public boolean isExcludedFromTotal() {
1004 return excludedFromTotal;
1005 }
1006
1007 /**
1008 * Gets the override2PlugMode attribute.
1009 *
1010 * @return Returns the override2PlugMode.
1011 */
1012 public boolean isOverride2PlugMode() {
1013 return override2PlugMode;
1014 }
1015
1016 /**
1017 * Sets the displayOnlyMode attribute value.
1018 *
1019 * @param displayOnlyMode The displayOnlyMode to set.
1020 */
1021 public void setDisplayOnlyMode(boolean displayOnlyMode) {
1022 this.displayOnlyMode = displayOnlyMode;
1023 }
1024
1025 /**
1026 * Sets the budgetable attribute value.
1027 *
1028 * @param budgetable The budgetable to set.
1029 */
1030 public void setBudgetable(boolean budgetable) {
1031 this.budgetable = budgetable;
1032 }
1033
1034 /**
1035 * Sets the excludedFromTotal attribute value.
1036 *
1037 * @param excludedFromTotal The excludedFromTotal to set.
1038 */
1039 public void setExcludedFromTotal(boolean excludedFromTotal) {
1040 this.excludedFromTotal = excludedFromTotal;
1041 }
1042
1043 /**
1044 * Sets the override2PlugMode attribute value.
1045 *
1046 * @param override2PlugMode The override2PlugMode to set.
1047 */
1048 public void setOverride2PlugMode(boolean override2PlugMode) {
1049 this.override2PlugMode = override2PlugMode;
1050 }
1051
1052 /**
1053 * Sets the newLineIndicator attribute value.
1054 *
1055 * @param newLineIndicator The newLineIndicator to set.
1056 */
1057 public void setNewLineIndicator(boolean newLineIndicator) {
1058 this.newLineIndicator = newLineIndicator;
1059 }
1060
1061 /**
1062 * Sets the hourlyPaid attribute value.
1063 *
1064 * @param hourlyPaid The hourlyPaid to set.
1065 */
1066 public void setHourlyPaid(boolean hourlyPaid) {
1067 this.hourlyPaid = hourlyPaid;
1068 }
1069
1070 /**
1071 * Gets the purged attribute.
1072 *
1073 * @return Returns the purged.
1074 */
1075 public boolean isPurged() {
1076 return purged;
1077 }
1078
1079 /**
1080 * Sets the purged attribute value.
1081 *
1082 * @param purged The purged to set.
1083 */
1084 public void setPurged(boolean purged) {
1085 this.purged = purged;
1086 }
1087
1088 /**
1089 * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#buildListOfDeletionAwareLists()
1090 */
1091 @Override
1092 public List buildListOfDeletionAwareLists() {
1093 List managedLists = super.buildListOfDeletionAwareLists();
1094 managedLists.add(getBudgetConstructionAppointmentFundingReason());
1095 return managedLists;
1096
1097 }
1098 }
1099