1 /** 2 * Copyright 2004-2013 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.tklm.api.time.rules.shiftdifferential; 17 18 import java.math.BigDecimal; 19 import java.sql.Time; 20 21 import org.kuali.kpme.core.api.calendar.CalendarContract; 22 import org.kuali.kpme.core.api.earncode.EarnCodeContract; 23 import org.kuali.kpme.core.api.earncode.group.EarnCodeGroupContract; 24 import org.kuali.kpme.core.api.location.LocationContract; 25 import org.kuali.kpme.core.api.paygrade.PayGradeContract; 26 import org.kuali.kpme.core.api.salarygroup.SalaryGroupContract; 27 import org.kuali.kpme.tklm.api.time.rules.TkRuleContract; 28 29 /** 30 * <p>ShiftDifferentialRuleContract interface</p> 31 * 32 */ 33 public interface ShiftDifferentialRuleContract extends TkRuleContract { 34 35 /** 36 * The primary key of a ShiftDifferentialRule entry saved in a database 37 * 38 * <p> 39 * tkShiftDiffRuleId of a ShiftDifferentialRule 40 * <p> 41 * 42 * @return tkShiftDiffRuleId for ShiftDifferentialRule 43 */ 44 public String getTkShiftDiffRuleId(); 45 46 /** 47 * The location associated with the ShiftDifferentialRule 48 * 49 * <p> 50 * If a location is defined, only entries associated with a job in this location will be subject to the shift rule. 51 * <p> 52 * 53 * @return location for ShiftDifferentialRule 54 */ 55 public String getLocation(); 56 57 /** 58 * The pay grade associated with the ShiftDifferentialRule 59 * 60 * <p> 61 * If a pay grade is defined, only entries associated with a job in this pay grade will be subject to the shift rule. 62 * <p> 63 * 64 * @return payGrade for ShiftDifferentialRule 65 */ 66 public String getPayGrade(); 67 68 /** 69 * The earn code associated with the ShiftDifferentialRule 70 * 71 * <p> 72 * The earn code that will be applied to the eligible shift and result in additional earnings. 73 * <p> 74 * 75 * @return earnCode for ShiftDifferentialRule 76 */ 77 public String getEarnCode(); 78 79 /** 80 * The minimum hours associated with the ShiftDifferentialRule 81 * 82 * <p> 83 * The minimum number of hours a shift must be in order to qualify for shift differential. 84 * <p> 85 * 86 * @return minHours for ShiftDifferentialRule 87 */ 88 public BigDecimal getMinHours(); 89 90 /** 91 * The max gap associated with the ShiftDifferentialRule 92 * 93 * <p> 94 * The maximum number of minutes which can separate time blocks, and still qualify as an eligible shift. 95 * <p> 96 * 97 * @return maxGap for ShiftDifferentialRule 98 */ 99 public BigDecimal getMaxGap(); 100 101 /** 102 * The user that sets up the ShiftDifferentialRule 103 * 104 * <p> 105 * userPrincipalId of a ShiftDifferentialRule 106 * <p> 107 * 108 * @return userPrincipalId for ShiftDifferentialRule 109 */ 110 public String getUserPrincipalId(); 111 112 /** 113 * The salary group associated with the ShiftDifferentialRule 114 * 115 * <p> 116 * If a salary group is defined, only entries associated with a job in this salary group will be subject to the shift rule. 117 * <p> 118 * 119 * @return hrSalGroup for ShiftDifferentialRule 120 */ 121 public String getHrSalGroup(); 122 123 /** 124 * Pay Calendar record that defines the FLSA period 125 * 126 * <p> 127 * pyCalendarGroup of a ShiftDifferentialRule 128 * <p> 129 * 130 * @return pyCalendarGroup for ShiftDifferentialRule 131 */ 132 public String getPyCalendarGroup(); 133 134 /** 135 * The beginning time of the eligible shift 136 * 137 * <p> 138 * beginTime of a ShiftDifferentialRule 139 * <p> 140 * 141 * @return beginTime for ShiftDifferentialRule 142 */ 143 public Time getBeginTime(); 144 145 /** 146 * The end time of the eligible shift. 147 * 148 * <p> 149 * This could be on the following day if the eligible shift is overnight. 150 * <p> 151 * 152 * @return endTime for ShiftDifferentialRule 153 */ 154 public Time getEndTime(); 155 156 /** 157 * The earn group associated with the ShiftDifferentialRule 158 * 159 * <p> 160 * The earn group defined (using the Earn Group maint doc) to represent the earn codes to be converted to Shift Differential Earn Code. 161 * <p> 162 * 163 * @return fromEarnGroup for ShiftDifferentialRule 164 */ 165 public String getFromEarnGroup(); 166 167 /** 168 * The flag that indicates if Sunday is eligible for shift differential 169 * 170 * <p> 171 * sunday flag of a ShiftDifferentialRule 172 * </p> 173 * 174 * @return Y if Sunday is eligible, N if not 175 */ 176 public boolean isSunday(); 177 178 /** 179 * The flag that indicates if Monday is eligible for shift differential. 180 * 181 * <p> 182 * monday flag of a ShiftDifferentialRule 183 * </p> 184 * 185 * @return Y if Monday is eligible, N if not 186 */ 187 public boolean isMonday(); 188 189 /** 190 * The flag that indicates if Tuesday is eligible for shift differential. 191 * 192 * <p> 193 * tuesday flag of a ShiftDifferentialRule 194 * </p> 195 * 196 * @return Y if Tuesday is eligible, N if not 197 */ 198 public boolean isTuesday(); 199 200 /** 201 * The flag that indicates if Wednesday is eligible for shift differential. 202 * 203 * <p> 204 * wednesday flag of a ShiftDifferentialRule 205 * </p> 206 * 207 * @return Y if Wednesday is eligible, N if not 208 */ 209 public boolean isWednesday(); 210 211 /** 212 * The flag that indicates if Thursday is eligible for shift differential. 213 * 214 * <p> 215 * thursday flag of a ShiftDifferentialRule 216 * </p> 217 * 218 * @return Y if Thursday is eligible, N if not 219 */ 220 public boolean isThursday(); 221 222 /** 223 * The flag that indicates if Friday is eligible for shift differential. 224 * 225 * <p> 226 * friday flag of a ShiftDifferentialRule 227 * </p> 228 * 229 * @return Y if Friday is eligible, N if not 230 */ 231 public boolean isFriday(); 232 233 /** 234 * The flag that indicates if Saturday is eligible for shift differential. 235 * 236 * <p> 237 * saturday flag of a ShiftDifferentialRule 238 * </p> 239 * 240 * @return Y if Saturday is eligible, N if not 241 */ 242 public boolean isSaturday(); 243 244 /** 245 * The EarnCode object associated with the ShiftDifferentialRule 246 * 247 * <p> 248 * The earn code that will be applied to the eligible shift and result in additional earnings. 249 * <p> 250 * 251 * @return earnCodeObj for ShiftDifferentialRule 252 */ 253 public EarnCodeContract getEarnCodeObj(); 254 255 /** 256 * The SalaryGroup object associated with the ShiftDifferentialRule 257 * 258 * <p> 259 * If a salary group is defined, only entries associated with a job in this salary group will be subject to the shift rule. 260 * <p> 261 * 262 * @return salaryGroupObj for ShiftDifferentialRule 263 */ 264 public SalaryGroupContract getSalaryGroupObj(); 265 266 /** 267 * The EarnCodeGroup object associated with the ShiftDifferentialRule 268 * 269 * <p> 270 * The earn group defined (using the Earn Group maint doc) to represent the earn codes to be converted to Shift Differential Earn Code. 271 * <p> 272 * 273 * @return fromEarnGroupObj for ShiftDifferentialRule 274 */ 275 public EarnCodeGroupContract getFromEarnGroupObj(); 276 277 /** 278 * The Calendar object associated with the ShiftDifferentialRule 279 * 280 * <p> 281 * payCalendar for a ShiftDifferentialRule 282 * <p> 283 * 284 * @return payCalendar for ShiftDifferentialRule 285 */ 286 public CalendarContract getPayCalendar(); 287 288 /** 289 * The Location object associated with the ShiftDifferentialRule 290 * 291 * <p> 292 * If a location is defined, only entries associated with a job in this location will be subject to the shift rule. 293 * <p> 294 * 295 * @return locationObj for a ShiftDifferentialRule 296 */ 297 public LocationContract getLocationObj(); 298 299 /** 300 * The PayGrade object associated with the ShiftDifferentialRule 301 * 302 * <p> 303 * If a pay grade is defined, only entries associated with a job in this pay grade will be subject to the shift rule. 304 * <p> 305 * 306 * @return payGradeObj for a ShiftDifferentialRule 307 */ 308 public PayGradeContract getPayGradeObj(); 309 310 /** 311 * The id of the SalaryGroup object associated with the ShiftDifferentialRule 312 * 313 * <p> 314 * hrSalGroupId for a ShiftDifferentialRule 315 * <p> 316 * 317 * @return hrSalGroupId for ShiftDifferentialRule 318 */ 319 public String getHrSalGroupId(); 320 321 /** 322 * The id of the Location object associated with the ShiftDifferentialRule 323 * 324 * <p> 325 * hrLocationId for a ShiftDifferentialRule 326 * <p> 327 * 328 * @return hrLocationId for ShiftDifferentialRule 329 */ 330 public String getHrLocationId(); 331 332 /** 333 * The id of the PayGrade object associated with the ShiftDifferentialRule 334 * 335 * <p> 336 * hrPayGradeId for a ShiftDifferentialRule 337 * <p> 338 * 339 * @return hrPayGradeId for ShiftDifferentialRule 340 */ 341 public String getHrPayGradeId(); 342 343 /** 344 * The history flag of the ShiftDifferentialRule 345 * 346 * <p> 347 * history flag of a ShiftDifferentialRule 348 * <p> 349 * 350 * @return Y if on, N if not 351 */ 352 public boolean isHistory(); 353 }