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 }