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.leavecode; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.kuali.hr.core.KPMEConstants; 020 import org.kuali.hr.lm.accrual.AccrualCategory; 021 import org.kuali.hr.lm.leaveplan.LeavePlan; 022 import org.kuali.hr.time.HrBusinessObject; 023 import org.kuali.hr.time.earncode.EarnCode; 024 import org.kuali.hr.time.service.base.TkServiceLocator; 025 026 public class LeaveCode extends HrBusinessObject { 027 028 private static final long serialVersionUID = -759700327943760962L; 029 030 public static final String CACHE_NAME = KPMEConstants.APPLICATION_NAMESPACE_CODE + "/" + "LeaveCode"; 031 032 private String lmLeaveCodeId; 033 private String leavePlan; 034 private String eligibleForAccrual; 035 private String affectPay; // kpme1464, chen 036 private String accrualCategory; 037 private String earnCode; 038 private String leaveCode; 039 private String displayName; 040 private String unitOfTime; 041 private String fractionalTimeAllowed; 042 private String roundingOption; 043 private String allowScheduledLeave; 044 private String fmla; 045 private String workmansComp; 046 private Long defaultAmountofTime; 047 private Boolean employee; 048 private Boolean approver; 049 private Boolean departmentAdmin; 050 private String allowNegativeAccrualBalance; 051 private Boolean history; 052 053 private LeavePlan leavePlanObj; 054 private EarnCode earnCodeObj; 055 private AccrualCategory accrualCategoryObj; 056 057 public String getAffectPay() { 058 return affectPay; 059 } 060 061 public void setAffectPay(String affectPay) { 062 this.affectPay = affectPay; 063 } 064 065 public EarnCode getEarnCodeObj() { 066 return earnCodeObj; 067 } 068 069 public void setEarnCodeObj(EarnCode earnCodeObj) { 070 this.earnCodeObj = earnCodeObj; 071 } 072 073 public AccrualCategory getAccrualCategoryObj() { 074 return accrualCategoryObj; 075 } 076 077 public void setAccrualCategoryObj(AccrualCategory accrualCategoryObj) { 078 this.accrualCategoryObj = accrualCategoryObj; 079 } 080 081 public LeavePlan getLeavePlanObj() { 082 return leavePlanObj; 083 } 084 085 public void setLeavePlanObj(LeavePlan leavePlanObj) { 086 this.leavePlanObj = leavePlanObj; 087 } 088 089 public String getLmLeaveCodeId() { 090 return lmLeaveCodeId; 091 } 092 093 public void setLmLeaveCodeId(String lmLeaveCodeId) { 094 this.lmLeaveCodeId = lmLeaveCodeId; 095 } 096 097 //KPME 1453 and 1541 moved pre-existing logic for getLeavePlan to else clause below and removed side effect of setting AccrualCategoryObj on BO 098 public String getLeavePlan() { 099 if (StringUtils.isNotEmpty(this.leavePlan)) { 100 return leavePlan; 101 }else{ 102 AccrualCategory myAccrualCategoryObj = new AccrualCategory(); 103 if (!StringUtils.isEmpty(this.accrualCategory) && getEffectiveDate() != null) { 104 105 myAccrualCategoryObj = TkServiceLocator.getAccrualCategoryService().getAccrualCategory(accrualCategory, getEffectiveDate()); 106 107 } 108 return (myAccrualCategoryObj != null) ? myAccrualCategoryObj.getLeavePlan() : ""; 109 } 110 } 111 112 public void setLeavePlan(String leavePlan) { 113 this.leavePlan = leavePlan; 114 } 115 116 public String getEligibleForAccrual() { 117 return eligibleForAccrual; 118 } 119 120 public void setEligibleForAccrual(String eligibleForAccrual) { 121 this.eligibleForAccrual = eligibleForAccrual; 122 } 123 124 public String getAccrualCategory() { 125 return accrualCategory; 126 } 127 128 public void setAccrualCategory(String accrualCategory) { 129 this.accrualCategory = accrualCategory; 130 } 131 132 public String getEarnCode() { 133 return earnCode; 134 } 135 136 public void setEarnCode(String earnCode) { 137 this.earnCode = earnCode; 138 } 139 140 public String getLeaveCode() { 141 return leaveCode; 142 } 143 144 public void setLeaveCode(String leaveCode) { 145 this.leaveCode = leaveCode; 146 } 147 148 public String getDisplayName() { 149 return displayName; 150 } 151 152 public void setDisplayName(String displayName) { 153 this.displayName = displayName; 154 } 155 156 public String getUnitOfTime() { 157 return unitOfTime; 158 } 159 160 public void setUnitOfTime(String unitOfTime) { 161 this.unitOfTime = unitOfTime; 162 } 163 164 public String getFractionalTimeAllowed() { 165 return fractionalTimeAllowed; 166 } 167 168 public void setFractionalTimeAllowed(String fractionalTimeAllowed) { 169 this.fractionalTimeAllowed = fractionalTimeAllowed; 170 } 171 172 public String getRoundingOption() { 173 return roundingOption; 174 } 175 176 public void setRoundingOption(String roundingOption) { 177 this.roundingOption = roundingOption; 178 } 179 180 public String getAllowScheduledLeave() { 181 return allowScheduledLeave; 182 } 183 184 public void setAllowScheduledLeave(String allowScheduledLeave) { 185 this.allowScheduledLeave = allowScheduledLeave; 186 } 187 188 public String getFmla() { 189 return fmla; 190 } 191 192 public void setFmla(String fmla) { 193 this.fmla = fmla; 194 } 195 196 public String getWorkmansComp() { 197 return workmansComp; 198 } 199 200 public void setWorkmansComp(String workmansComp) { 201 this.workmansComp = workmansComp; 202 } 203 204 public Long getDefaultAmountofTime() { 205 return defaultAmountofTime; 206 } 207 208 public void setDefaultAmountofTime(Long defaultAmountofTime) { 209 this.defaultAmountofTime = defaultAmountofTime; 210 } 211 212 public Boolean getEmployee() { 213 return employee; 214 } 215 216 public void setEmployee(Boolean employee) { 217 this.employee = employee; 218 } 219 220 public Boolean getApprover() { 221 return approver; 222 } 223 224 public void setApprover(Boolean approver) { 225 this.approver = approver; 226 } 227 228 public Boolean getDepartmentAdmin() { 229 return departmentAdmin; 230 } 231 232 public void setDepartmentAdmin(Boolean departmentAdmin) { 233 this.departmentAdmin = departmentAdmin; 234 } 235 236 public Boolean getHistory() { 237 return history; 238 } 239 240 public void setHistory(Boolean history) { 241 this.history = history; 242 } 243 244 @Override 245 protected String getUniqueKey() { 246 String leaveCodeKey = getLeaveCode() +"_"+ getLeavePlan() +"_"+ getAccrualCategory() +"_"+ getEarnCode(); 247 return leaveCodeKey; 248 } 249 250 @Override 251 public String getId() { 252 return getLmLeaveCodeId(); 253 } 254 255 public String getLeaveCodeKeyForDisplay() { 256 // String unitTime = null; 257 // AccrualCategory acObj = null; 258 // if(this.accrualCategory != null) { 259 // acObj = TkServiceLocator.getAccrualCategoryService().getAccrualCategory(accrualCategory, TKUtils.getCurrentDate()); 260 // } 261 // unitTime = (acObj!= null ? acObj.getUnitOfTime() : unitOfTime) ; 262 // return lmLeaveCodeId + ":" +unitTime; 263 return lmLeaveCodeId; 264 } 265 266 public String getLeaveCodeValueForDisplay() { 267 return leaveCode + " : " + displayName; 268 } 269 270 @Override 271 public void setId(String id) { 272 setLmLeaveCodeId(id); 273 } 274 275 public String getAllowNegativeAccrualBalance() { 276 return allowNegativeAccrualBalance; 277 } 278 279 public void setAllowNegativeAccrualBalance(String allowNegativeAccrualBalance) { 280 this.allowNegativeAccrualBalance = allowNegativeAccrualBalance; 281 } 282 }