1 /** 2 * Copyright 2004-2014 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.kpme.core.api.earncode; 17 18 import java.math.BigDecimal; 19 20 import org.kuali.kpme.core.api.accrualcategory.AccrualCategoryContract; 21 import org.kuali.kpme.core.api.bo.HrBusinessObjectContract; 22 import org.kuali.kpme.core.api.leaveplan.LeavePlanContract; 23 24 /** 25 * <p>EarnCodeContract interface.</p> 26 * 27 */ 28 public interface EarnCodeContract extends HrBusinessObjectContract { 29 30 /** 31 * The flag that indicates if the worked hours under an EarnCode should be counted as regular pay 32 * Use this field to calculate the "Worked Hours in the Time Summary. 33 * 34 * <p> 35 * countsAsRegularPay flag of EarnCode 36 * </p> 37 * 38 * @return Y if has rules, N if not 39 */ 40 public String getCountsAsRegularPay(); 41 42 /** 43 * The flag that indicates if usage should be included or excluded toward the usage limit 44 * of the AccrualCategory associated with an EarnCode 45 * 46 * <p> 47 * countsAsRegularPay flag of EarnCode 48 * </p> 49 * 50 * @return I if Include, E if Exclude 51 */ 52 public String getUsageLimit(); 53 54 /** 55 * The flag that determines the value type that will be entered for the earn code 56 * 57 * <p> 58 * recordMethod of EarnCode 59 * </p> 60 * 61 * @return H for Hours, T for Time, D for Days, A for Amount 62 */ 63 public String getRecordMethod(); 64 65 /** 66 * The earn code name of the EarnCode object that this EarnCode rolls up to 67 * 68 * <p> 69 * rollupToEarnCode of EarnCode 70 * </p> 71 * 72 * @return rollupToEarnCode for EarnCode 73 */ 74 public String getRollupToEarnCode(); 75 76 /** 77 * The EarnCode Object that this EarnCode rolls up to 78 * 79 * <p> 80 * rollupToEarnCodeObj of EarnCode 81 * </p> 82 * 83 * @return rollupToEarnCodeObj for EarnCode 84 */ 85 public EarnCodeContract getRollupToEarnCodeObj(); 86 87 /** 88 * The name of the LeavePlan that this EarnCode associates with 89 * 90 * <p> 91 * leavePlan of EarnCode 92 * </p> 93 * 94 * @return leavePlan for EarnCode 95 */ 96 public String getLeavePlan(); 97 98 /** 99 * The action that can be taken for the balance of the AccrualCategory of an EarnCode 100 * 101 * <p> 102 * accrualBalanceAction of EarnCode 103 * </p> 104 * 105 * @return N for None, U for usage, A for Adjustment 106 */ 107 public String getAccrualBalanceAction(); 108 109 /** 110 * Defines fractional unit of time used for reporting leave 111 * 112 * <p> 113 * fractionalTimeAllowed of EarnCode 114 * </p> 115 * 116 * @return fractionalTimeAllowed for EarnCode 117 */ 118 public String getFractionalTimeAllowed() ; 119 120 /** 121 * Indicated the rounding option when calculating leave accruals and reporting. 122 * 123 * <p> 124 * roundingOption of EarnCode 125 * </p> 126 * 127 * @return T for Traditional, R for Truncate 128 */ 129 public String getRoundingOption(); 130 131 /** 132 * Flag indicating this type of leave is eligible for accrual or not 133 * 134 * <p> 135 * eligibleForAccrual of EarnCode 136 * </p> 137 * 138 * @return Y for Yes, N for No 139 */ 140 public String getEligibleForAccrual(); 141 142 /** 143 * Flag indicating use of this leave code will affect the employee's pay 144 * 145 * <p> 146 * affectPay of EarnCode 147 * </p> 148 * 149 * @return Y for Yes, N for No 150 */ 151 public String getAffectPay(); 152 153 /** 154 * Flag indicating if scheduling of leave on calendar is allowed 155 * 156 * <p> 157 * allowScheduledLeave of EarnCode 158 * </p> 159 * 160 * @return Y for Yes, N for No 161 */ 162 public String getAllowScheduledLeave() ; 163 164 /** 165 * FLMA Leave Code indicator. If Principal Calendar is flagged for FMLA, 166 * employee will have option to select this Leave Code. 167 * 168 * <p> 169 * fmla flag of EarnCode 170 * </p> 171 * 172 * @return Y for Yes, N for No 173 */ 174 public String getFmla(); 175 176 /** 177 * Workman's Comp Leave Code indicator. If Principal Calendar is flagged for Workman’s Comp, 178 * employee will have option to select this Leave Code. 179 * 180 * <p> 181 * workmansComp flag of EarnCode 182 * </p> 183 * 184 * @return Y for Yes, N for No 185 */ 186 public String getWorkmansComp(); 187 188 /** 189 * When a user selects leave code the specified amount of time will appear in the amount of leave taken. 190 * 191 * <p> 192 * defaultAmountofTime of EarnCode 193 * </p> 194 * 195 * @return defaultAmountofTime for EarnCode 196 */ 197 public Long getDefaultAmountofTime(); 198 199 /** 200 * Flag that allows usage to take the balance of the Accrual Category into the negative. 201 * 202 * <p> 203 * allowNegativeAccrualBalance flag of EarnCode 204 * </p> 205 * 206 * @return Y for Yes, N for No 207 */ 208 public String getAllowNegativeAccrualBalance(); 209 210 /** 211 * The Alpha/Numeric code used to identify an EarnCode 212 * 213 * <p> 214 * earnCode of EarnCode 215 * </p> 216 * 217 * @return earnCode for EarnCode 218 */ 219 public String getEarnCode(); 220 221 /** 222 * The description of an EarnCode 223 * 224 * <p> 225 * description of EarnCode 226 * </p> 227 * 228 * @return description for EarnCode 229 */ 230 public String getDescription() ; 231 232 /** 233 * The history flag of an EarnCode 234 * 235 * <p> 236 * history flag of EarnCode 237 * <p> 238 * 239 * @return history for EarnCode 240 */ 241 public boolean isHistory(); 242 243 /** 244 * The Primary Key of an EarnCode entry saved in a database 245 * 246 * <p> 247 * hrEarnCodeId of an EarnCode 248 * <p> 249 * 250 * @return hrEarnCodeId for EarnCode 251 */ 252 public String getHrEarnCodeId(); 253 254 /** 255 * The AccrualCategory name of the AccuralCategoryObject associated with an EarnCode 256 * 257 * <p> 258 * accrualCategory of an EarnCode 259 * <p> 260 * 261 * @return accrualCategory for EarnCode 262 */ 263 public String getAccrualCategory() ; 264 265 /** 266 * The AccuralCategoryObject associated with an EarnCode 267 * 268 * <p> 269 * accrualCategoryObj of an EarnCode 270 * <p> 271 * 272 * @return accrualCategoryObj for EarnCode 273 */ 274 public AccrualCategoryContract getAccrualCategoryObj(); 275 276 /** 277 * Hours incurred will be inflated to this minimum hours value 278 * 279 * <p> 280 * inflateMinHours of an EarnCode 281 * <p> 282 * 283 * @return inflateMinHours for EarnCode 284 */ 285 public BigDecimal getInflateMinHours(); 286 287 /** 288 * The hours incurred will be multiplied by this factor 289 * 290 * <p> 291 * InflateFactor of an EarnCode 292 * <p> 293 * 294 * @return InflateFactor for EarnCode 295 */ 296 public BigDecimal getInflateFactor() ; 297 298 /** 299 * Indicates this EarnCode may be used for overtime 300 * 301 * <p> 302 * ovtEarnCode flag of an EarnCode 303 * <p> 304 * 305 * @return Y for Yes, N for No 306 */ 307 public Boolean getOvtEarnCode() ; 308 309 /** 310 * The LeavePlan object associated with an EarnCode 311 * 312 * <p> 313 * leavePlanObj of an EarnCode 314 * <p> 315 * 316 * @return leavePlanObj for EarnCode 317 */ 318 public LeavePlanContract getLeavePlanObj(); 319 }