View Javadoc
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 }