View Javadoc

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