001 /** 002 * Copyright 2004-2013 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.hr.lm.leaveSummary; 017 018 import java.math.BigDecimal; 019 import java.util.SortedMap; 020 021 public class LeaveSummaryRow { 022 private String accrualCategory; 023 //adding this to have a very simple means of getting the Accrual Category object 024 private String accrualCategoryId; 025 private String accrualCategoryRuleId; 026 private BigDecimal carryOver; 027 private BigDecimal ytdAccruedBalance; 028 private BigDecimal ytdApprovedUsage; 029 private BigDecimal leaveBalance; 030 private BigDecimal pendingLeaveAccrual; 031 private BigDecimal pendingLeaveRequests; 032 private BigDecimal pendingLeaveBalance; 033 private BigDecimal pendingAvailableUsage; 034 private BigDecimal usageLimit; 035 private BigDecimal fmlaUsage; 036 037 private boolean transferable; 038 private boolean payoutable; 039 private BigDecimal maxCarryOver; 040 private SortedMap<String, BigDecimal> priorYearsTotalAccrued; 041 private SortedMap<String, BigDecimal> priorYearsUsage; 042 private SortedMap<String, BigDecimal> yearlyCarryOver; //key is year 043 044 public String getAccrualCategory() { 045 return accrualCategory; 046 } 047 public void setAccrualCategory(String accrualCategory) { 048 this.accrualCategory = accrualCategory; 049 } 050 public String getAccrualCategoryId() { 051 return accrualCategoryId; 052 } 053 public void setAccrualCategoryId(String accrualCategoryId) { 054 this.accrualCategoryId = accrualCategoryId; 055 } 056 public String getAccrualCategoryRuleId() { 057 return accrualCategoryRuleId; 058 } 059 060 public void setAccrualCategoryRuleId(String accrualCategoryRuleId) { 061 this.accrualCategoryRuleId = accrualCategoryRuleId; 062 } 063 public BigDecimal getCarryOver() { 064 return carryOver; 065 } 066 public void setCarryOver(BigDecimal carryOver) { 067 this.carryOver = carryOver; 068 } 069 public BigDecimal getYtdAccruedBalance() { 070 return ytdAccruedBalance; 071 } 072 public void setYtdAccruedBalance(BigDecimal ytdAccruedBalance) { 073 this.ytdAccruedBalance = ytdAccruedBalance; 074 } 075 public BigDecimal getYtdApprovedUsage() { 076 return ytdApprovedUsage; 077 } 078 public void setYtdApprovedUsage(BigDecimal ytdApprovedUsage) { 079 this.ytdApprovedUsage = ytdApprovedUsage; 080 } 081 public BigDecimal getLeaveBalance() { 082 return leaveBalance; 083 } 084 public void setLeaveBalance(BigDecimal leaveBalance) { 085 this.leaveBalance = leaveBalance; 086 } 087 public BigDecimal getPendingLeaveAccrual() { 088 return pendingLeaveAccrual; 089 } 090 public void setPendingLeaveAccrual(BigDecimal pendingLeaveAccrual) { 091 this.pendingLeaveAccrual = pendingLeaveAccrual; 092 } 093 public BigDecimal getPendingLeaveRequests() { 094 return pendingLeaveRequests; 095 } 096 public void setPendingLeaveRequests(BigDecimal pendingLeaveRequests) { 097 this.pendingLeaveRequests = pendingLeaveRequests; 098 } 099 public BigDecimal getPendingLeaveBalance() { 100 return pendingLeaveBalance; 101 } 102 public void setPendingLeaveBalance(BigDecimal pendingLeaveBalance) { 103 this.pendingLeaveBalance = pendingLeaveBalance; 104 } 105 public BigDecimal getPendingAvailableUsage() { 106 return pendingAvailableUsage; 107 } 108 public void setPendingAvailableUsage(BigDecimal pendingAvailableUsage) { 109 this.pendingAvailableUsage = pendingAvailableUsage; 110 } 111 public BigDecimal getUsageLimit() { 112 return usageLimit; 113 } 114 public void setUsageLimit(BigDecimal usageLimit) { 115 this.usageLimit = usageLimit; 116 } 117 public BigDecimal getFmlaUsage() { 118 return fmlaUsage; 119 } 120 public void setFmlaUsage(BigDecimal fmlaUsage) { 121 this.fmlaUsage = fmlaUsage; 122 } 123 public BigDecimal getAccruedBalance() { 124 BigDecimal carryOver = getCarryOver() == null ? BigDecimal.ZERO : getCarryOver(); 125 BigDecimal ytdAccruedBalance = getYtdAccruedBalance() == null ? BigDecimal.ZERO : getYtdAccruedBalance(); 126 BigDecimal ytdApproved = getYtdApprovedUsage() == null ? BigDecimal.ZERO : getYtdApprovedUsage(); 127 return carryOver.add(ytdAccruedBalance).subtract(ytdApproved); 128 } 129 public boolean isTransferable() { 130 //Leave summary row has all the necessary information to answer the question 131 //"Is my accrued balance eligible for transfer?". Should implement this method 132 //to check for rule presence, max balance flag = Y, action at max bal = T 133 //essentially move logic from BalanceTransferService.getAccrualCategoryRuleIdsForEligibleTransfers. 134 //having this implemented might be less costly to call on. 135 return transferable; 136 } 137 public void setTransferable(boolean transferable) { 138 this.transferable = transferable; 139 } 140 public boolean isPayoutable() { 141 return payoutable; 142 } 143 public void setPayoutable(boolean payoutable) { 144 this.payoutable = payoutable; 145 } 146 147 148 public SortedMap<String, BigDecimal> getPriorYearsUsage() { 149 return priorYearsUsage; 150 } 151 152 public void setPriorYearsUsage(SortedMap<String, BigDecimal> priorYearsUsage) { 153 this.priorYearsUsage = priorYearsUsage; 154 } 155 156 public SortedMap<String, BigDecimal> getPriorYearsTotalAccrued() { 157 return priorYearsTotalAccrued; 158 } 159 160 public void setPriorYearsTotalAccrued(SortedMap<String, BigDecimal> priorYearsTotalAccrued) { 161 this.priorYearsTotalAccrued = priorYearsTotalAccrued; 162 } 163 164 public BigDecimal getMaxCarryOver() { 165 return maxCarryOver; 166 } 167 168 public void setMaxCarryOver(BigDecimal maxCarryOver) { 169 this.maxCarryOver = maxCarryOver; 170 } 171 }