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