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