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.core.api.job;
17  
18  import java.math.BigDecimal;
19  
20  import org.kuali.kpme.core.api.bo.HrBusinessObjectContract;
21  import org.kuali.kpme.core.api.department.DepartmentContract;
22  import org.kuali.kpme.core.api.location.LocationContract;
23  import org.kuali.kpme.core.api.paygrade.PayGradeContract;
24  import org.kuali.kpme.core.api.paytype.PayTypeContract;
25  import org.kuali.kpme.core.api.position.PositionBaseContract;
26  import org.kuali.kpme.core.api.salarygroup.SalaryGroupContract;
27  import org.kuali.rice.core.api.util.type.KualiDecimal;
28  import org.kuali.rice.kim.api.identity.Person;
29  
30  /**
31   * <p>JobContract interface.</p>
32   *
33   */
34  public interface JobContract extends HrBusinessObjectContract {
35  	
36  	/**
37  	 * Indicates if Job is FLSA exempt or non-exempt. 
38  	 * 
39  	 * <p>
40  	 * flsaStatus of Job
41  	 * </p>
42  	 * 
43  	 * @return flsaStatus for Job
44  	 */
45  	public String getFlsaStatus();
46  
47  	/**
48  	 * Rate used by the accrual service for calculating leave accrued by on FTE. 
49  	 * 
50  	 * <p>
51  	 * fte of Job
52  	 * </p>
53  	 * 
54  	 * @return fte for Job
55  	 */
56  	public BigDecimal getFte();
57  	
58  	/**
59  	 * The pay grade field of the PayGrad object associated with the Job
60  	 * 
61  	 * <p>
62  	 * payGrade of Job
63  	 * </p>
64  	 * 
65  	 * @return payGrade for Job
66  	 */
67  	public String getPayGrade();
68  
69  	/**
70  	 * The standard hours for this job. This drives holiday proration and “ready to approve criteria” for the timesheet
71  	 * (only timesheets meeting standard hours can be approved). Hourly jobs can have 0 standard hours
72  	 * 
73  	 * <p>
74  	 * standardHours of Job
75  	 * </p>
76  	 * 
77  	 * @return standardHours for Job
78  	 */
79  	public BigDecimal getStandardHours();
80  
81  	/**
82  	 * Identifier of the employee that holds the Job
83  	 * 
84  	 * <p>
85  	 * principalId of Job
86  	 * </p>
87  	 * 
88  	 * @return principalId for Job
89  	 */
90  	public String getPrincipalId();
91  	
92  	/**
93  	 * First name of the employee that holds the Job
94  	 * 
95  	 * <p>
96  	 * firstName of Job
97  	 * </p>
98  	 * 
99  	 * @return firstName for Job
100 	 */
101 	public String getFirstName();
102 
103 	/**
104 	 * Last name of the employee that holds the Job
105 	 * 
106 	 * <p>
107 	 * lastName of Job
108 	 * </p>
109 	 * 
110 	 * @return lastName for Job
111 	 */
112 	public String getLastName();
113 
114 	/**
115 	 * Name of the employee that holds the Job
116 	 * 
117 	 * <p>
118 	 * name of Job
119 	 * </p>
120 	 * 
121 	 * @return name for Job
122 	 */
123 	public String getName();
124 	
125 	/**
126 	 * CompositeName the employee that holds the Job
127 	 * 
128 	 * <p>
129 	 * principalName of Job
130 	 * </p>
131 	 * 
132 	 * @return principalName for Job
133 	 */
134 	public String getPrincipalName();
135 	
136 	/**
137 	 * Sequential number which uniquely identify the job occurrence for the employee. 
138 	 * 
139 	 * <p>
140 	 * jobNumber of Job
141 	 * </p>
142 	 * 
143 	 * @return jobNumber for Job
144 	 */
145 	public Long getJobNumber();
146 	
147 	/**
148 	 * History flag for Job lookups 
149 	 * 
150 	 * <p>
151 	 * history of Job
152 	 * </p>
153 	 * 
154 	 * @return true if want to show history, false if not
155 	 */
156 	public Boolean getHistory();
157 	
158 	/**
159 	 * The location the job is associated with. 
160 	 * 
161 	 * <p>
162 	 * location of Job
163 	 * </p>
164 	 * 
165 	 * @return location for Job
166 	 */
167 	public String getLocation();
168 	
169 	/**
170 	 * The pay type value of the PayType object associated with the Job
171 	 * 
172 	 * <p>
173 	 * payType of Job
174 	 * </p>
175 	 * 
176 	 * @return payType for Job
177 	 */
178 	public String getHrPayType() ;
179 
180 	/**
181 	 * The Primary Key of a Job entry saved in a database
182 	 * 
183 	 * <p>
184 	 * hrJobId of a Job
185 	 * <p>
186 	 * 
187 	 * @return hrJobId for Job
188 	 */
189 	public String getHrJobId() ;
190 
191 	/**
192 	 * The name of the Department associated with the Job
193 	 * 
194 	 * <p>
195 	 * dept of a Job
196 	 * <p>
197 	 * 
198 	 * @return dept for Job
199 	 */
200 	public String getDept();
201 
202 	/**
203 	 * The name of the SalaryGroup associated with the Job
204 	 * 
205 	 * <p>
206 	 * hrSalGroup of a Job
207 	 * <p>
208 	 * 
209 	 * @return hrSalGroup for Job
210 	 */
211 	public String getHrSalGroup();
212 
213 	/**
214 	 * The hourly rate for this job
215 	 * 
216 	 * <p>
217 	 * compRate of a Job
218 	 * <p>
219 	 * 
220 	 * @return compRate for Job
221 	 */
222 	public KualiDecimal getCompRate();
223 
224 	/**
225 	 * The Department object associated with the Job
226 	 * 
227 	 * <p>
228 	 * deptObj of a Job
229 	 * <p>
230 	 * 
231 	 * @return deptObj for Job
232 	 */
233 	public DepartmentContract getDeptObj();
234 
235 	/**
236 	 * The PayType object associated with the Job
237 	 * 
238 	 * <p>
239 	 * payTypeObj of a Job
240 	 * <p>
241 	 * 
242 	 * @return payTypeObj for Job
243 	 */
244 	public PayTypeContract getPayTypeObj();
245 
246 	/**
247 	 * The employee that holds this job
248 	 * 
249 	 * <p>
250 	 * principal of a Job
251 	 * <p>
252 	 * 
253 	 * @return principal for Job
254 	 */
255 	public Person getPrincipal();
256 	
257 	/**
258 	 * Indicates if the Job is the primary job for the employee
259 	 * 
260 	 * <p>
261 	 * primaryIndicator of a Job
262 	 * <p>
263 	 * 
264 	 * @return true if is primary, false if not
265 	 */
266 	public Boolean getPrimaryIndicator();
267 	
268 	/**
269 	 * The Location object associated with the Job
270 	 * 
271 	 * <p>
272 	 * locationObj of a Job
273 	 * <p>
274 	 * 
275 	 * @return locationObj for Job
276 	 */
277 	public LocationContract getLocationObj();
278 
279 	/**
280 	 * The PayGrade object associated with the Job
281 	 * 
282 	 * <p>
283 	 * payGradeObj of a Job
284 	 * <p>
285 	 * 
286 	 * @return payGradeObj for Job
287 	 */
288 	public PayGradeContract getPayGradeObj();
289 
290 	/**
291 	 * The SalaryGroup object associated with the Job
292 	 * 
293 	 * <p>
294 	 * salaryGroupObj of a Job
295 	 * <p>
296 	 * 
297 	 * @return salaryGroupObj for Job
298 	 */
299 	public SalaryGroupContract getSalaryGroupObj();
300 	
301 	/**
302 	 * Position associated with the job. 
303 	 * 
304 	 * <p>
305 	 * positionNumber of a Job
306 	 * <p>
307 	 * 
308 	 * @return positionNumber for Job
309 	 */
310 	public String getPositionNumber();
311 
312 	/**
313 	 * PositionBase Object associated with the job. 
314 	 * 
315 	 * <p>
316 	 * positionObj of a Job
317 	 * <p>
318 	 * 
319 	 * @return positionObj for Job
320 	 */
321 	public PositionBaseContract getPositionObj() ;
322 
323 	/**
324 	 * Combination of multiple string fields to identify the job. 
325 	 * 
326 	 * <p>
327 	 * uniqueKey of a Job
328 	 * <p>
329 	 * 
330 	 * @return uniqueKey for Job
331 	 */
332 	public String getUniqueKey();
333 	
334 	/**
335 	 * Id of the job. 
336 	 * 
337 	 * <p>
338 	 * id of a Job
339 	 * <p>
340 	 * 
341 	 * @return id for Job
342 	 */
343 	public String getId();
344 	
345 	/**
346 	 * Indicates if the Job is eligible for leave benefits
347 	 * 
348 	 * <p>
349 	 * eligibleForLeave of a Job
350 	 * <p>
351 	 * 
352 	 * @return true if yes, false if not
353 	 */
354 	public boolean isEligibleForLeave();
355 	
356 }