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