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.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 }