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 }