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.tklm.api.time.rules.overtime.daily; 17 18 import java.math.BigDecimal; 19 20 import org.kuali.kpme.core.api.department.DepartmentContract; 21 import org.kuali.kpme.core.api.earncode.EarnCodeContract; 22 import org.kuali.kpme.core.api.earncode.group.EarnCodeGroupContract; 23 import org.kuali.kpme.core.api.location.LocationContract; 24 import org.kuali.kpme.core.api.paytype.PayTypeContract; 25 import org.kuali.kpme.core.api.task.TaskContract; 26 import org.kuali.kpme.core.api.workarea.WorkAreaContract; 27 import org.kuali.kpme.tklm.api.time.rules.TkRuleContract; 28 import org.kuali.kpme.tklm.api.time.rules.TkRuleKeyedContract; 29 30 /** 31 * <p>DailyOvertimeRuleContract interface</p> 32 * 33 */ 34 public interface DailyOvertimeRuleContract extends TkRuleKeyedContract { //TkRuleContract 35 36 /** 37 * The primary key of a DailyOvertimeRule entry saved in a database 38 * 39 * <p> 40 * tkDailyOvertimeRuleId of a DailyOvertimeRule 41 * <p> 42 * 43 * @return tkDailyOvertimeRuleId for DailyOvertimeRule 44 */ 45 public String getTkDailyOvertimeRuleId(); 46 47 /** 48 * The Location name associated with the DailyOvertimeRule 49 * 50 * <p> 51 * If a location is defined, only entries associated with a job in this location will be subject to the defined rule. 52 * <p> 53 * 54 * @return location for DailyOvertimeRule 55 */ 56 public String getLocation(); 57 58 /** 59 * The maximum gap of time in minutes that is allowed before daily overtime is considered invalid 60 * 61 * <p> 62 * For example, a rule that states daily overtime is given for working over 8 hours with a max gap of 30 minutes 63 * implies that employee must work a total of 8 hours in the day and have a gap of no more than 30 minutes 64 * in the reporting of those hours to be eligible 65 * <p> 66 * 67 * @return maxGap for DailyOvertimeRule 68 */ 69 public BigDecimal getMaxGap(); 70 71 /** 72 * The userPrincipalId associated with the DailyOvertimeRule 73 * 74 * <p> 75 * userPrincipalId of a DailyOvertimeRule 76 * <p> 77 * 78 * @return userPrincipalId for DailyOvertimeRule 79 */ 80 public String getUserPrincipalId(); 81 82 /** 83 * The Department object associated with the DailyOvertimeRule 84 * 85 * <p> 86 * If a department is defined, only entries associated with a job in this department will be subject to the defined rule. 87 * <p> 88 * 89 * @return departmentObj for DailyOvertimeRule 90 */ 91 public DepartmentContract getDepartmentObj(); 92 93 /** 94 * The PayType name associated with the DailyOvertimeRule 95 * 96 * <p> 97 * If a paytype is defined, only entries associated with a job of this pay type will be subject to the defined rule 98 * <p> 99 * 100 * @return paytype for DailyOvertimeRule 101 */ 102 public String getPaytype(); 103 104 /** 105 * The Department name associated with the DailyOvertimeRule 106 * 107 * <p> 108 * If a department is defined, only entries associated with a job in this department will be subject to the defined rule. 109 * <p> 110 * 111 * @return dept for DailyOvertimeRule 112 */ 113 public String getDept(); 114 115 /** 116 * TODO: Make sure this comment is right 117 * The Task object associated with the DailyOvertimeRule 118 * 119 * <p> 120 * If a task is defined, only entries associated with a job that has this task will be subject to the defined rule. 121 * <p> 122 * 123 * @return taskObj for DailyOvertimeRule 124 */ 125 public TaskContract getTaskObj(); 126 127 /** 128 * The WorkArea object associated with the DailyOvertimeRule 129 * 130 * <p> 131 * If a work area is defined, only entries associated with a job that has this work area will be subject to the defined rule. 132 * <p> 133 * 134 * @return workAreaObj for DailyOvertimeRule 135 */ 136 public WorkAreaContract getWorkAreaObj(); 137 138 /** 139 * The WorkArea name(long) associated with the DailyOvertimeRule 140 * 141 * <p> 142 * If a work area is defined, only entries associated with a job that has this work area will be subject to the defined rule. 143 * <p> 144 * 145 * @return workArea for DailyOvertimeRule 146 */ 147 public Long getWorkArea(); 148 149 /** 150 * The PayType object associated with the DailyOvertimeRule 151 * 152 * <p> 153 * If a paytype is defined, only entries associated with a job of this pay type will be subject to the defined rule 154 * <p> 155 * 156 * @return payTypeObj for DailyOvertimeRule 157 */ 158 public PayTypeContract getPayTypeObj(); 159 160 /** 161 * The earn group defined (using the Earn Group maint doc) which contains the list of earn codes 162 * that are summed to the daily max hours to be converted to overtime 163 * 164 * <p> 165 * fromEarnGroup of a DailyOvertimeRule 166 * <p> 167 * 168 * @return fromEarnGroup for DailyOvertimeRule 169 */ 170 public String getFromEarnGroup(); 171 172 /** 173 * The EarnCode name associated with the DailyOvertimeRule 174 * 175 * <p> 176 * earnCode of a DailyOvertimeRule 177 * <p> 178 * 179 * @return earnCode for DailyOvertimeRule 180 */ 181 public String getEarnCode(); 182 183 /** 184 * The minimum hours associated with the DailyOvertimeRule 185 * 186 * <p> 187 * minHours of a DailyOvertimeRule 188 * <p> 189 * 190 * @return minHours for DailyOvertimeRule 191 */ 192 public BigDecimal getMinHours(); 193 194 /** 195 * The EarnCodeGroup object associated with the DailyOvertimeRule 196 * 197 * <p> 198 * fromEarnGroupObj of a DailyOvertimeRule 199 * <p> 200 * 201 * @return fromEarnGroupObj for DailyOvertimeRule 202 */ 203 public EarnCodeGroupContract getFromEarnGroupObj(); 204 205 /** 206 * The EarnCode object associated with the DailyOvertimeRule 207 * 208 * <p> 209 * earnCodeObj of a DailyOvertimeRule 210 * <p> 211 * 212 * @return earnCodeObj for DailyOvertimeRule 213 */ 214 public EarnCodeContract getEarnCodeObj(); 215 216 /** 217 * The Location object associated with the DailyOvertimeRule 218 * 219 * <p> 220 * If a location is defined, only entries associated with a job in this location will be subject to the defined rule. 221 * <p> 222 * 223 * @return location for DailyOvertimeRule 224 */ 225 public LocationContract getLocationObj(); 226 227 /** 228 * The history flag of the DailyOvertimeRule 229 * 230 * <p> 231 * history flag of a DailyOvertimeRule 232 * <p> 233 * 234 * @return Y if on, N if not 235 */ 236 public boolean isHistory(); 237 238 /** 239 * Indicates if this earn code may be used for overtime 240 * 241 * <p> 242 * ovtEarnCode falg of a DailyOvertimeRule 243 * <p> 244 * 245 * @return Y if used for overtime, N if not 246 */ 247 public boolean isOvtEarnCode(); 248 249 /** 250 * The id of the WorkArea object associated wtih the DailyOvertimeRule 251 * 252 * <p> 253 * tkWorkAreaId of a DailyOvertimeRule 254 * <p> 255 * 256 * @return tkWorkAreaId for DailyOvertimeRule 257 */ 258 public String getTkWorkAreaId(); 259 260 /** 261 * The id of the Department object associated wtih the DailyOvertimeRule 262 * 263 * <p> 264 * hrDeptId of a DailyOvertimeRule 265 * <p> 266 * 267 * @return hrDeptId for DailyOvertimeRule 268 */ 269 public String getHrDeptId(); 270 271 /** 272 * The id of the Location object associated wtih the DailyOvertimeRule 273 * 274 * <p> 275 * hrLocationId of a DailyOvertimeRule 276 * <p> 277 * 278 * @return hrLocationId for DailyOvertimeRule 279 */ 280 public String getHrLocationId(); 281 282 }