001 /**
002 * Copyright 2004-2013 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.hr.job;
017
018 import java.math.BigDecimal;
019 import java.sql.Date;
020 import java.sql.Timestamp;
021
022 import org.kuali.hr.core.KPMEConstants;
023 import org.kuali.hr.location.Location;
024 import org.kuali.hr.paygrade.PayGrade;
025 import org.kuali.hr.time.HrBusinessObject;
026 import org.kuali.hr.time.department.Department;
027 import org.kuali.hr.time.paytype.PayType;
028 import org.kuali.hr.time.position.Position;
029 import org.kuali.hr.time.salgroup.SalGroup;
030 import org.kuali.hr.time.util.TkConstants;
031 import org.kuali.rice.kim.api.identity.Person;
032 import org.kuali.rice.kim.api.services.KimApiServiceLocator;
033 /**
034 *
035 * Job representation
036 *
037 */
038 public class Job extends HrBusinessObject {
039 public static final String CACHE_NAME = KPMEConstants.APPLICATION_NAMESPACE_CODE + "/" + "Job";
040 /*
041 * Standard field included for serialization support
042 */
043 private static final long serialVersionUID = 1L;
044
045 private String location;
046 private String hrPayType;
047 private String payGrade;
048 private BigDecimal standardHours;
049 private String hrJobId;
050 private String principalId;
051 private String firstName;
052 private String lastName;
053 private String principalName;
054 private Long jobNumber;
055 private String dept;
056 private String hrSalGroup;
057 private Boolean primaryIndicator;
058 private Boolean history;
059 private BigDecimal compRate = new BigDecimal(0);
060 private String positionNumber;
061
062 private String hrDeptId;
063 private String hrPayTypeId;
064
065 private Person principal;
066 private Department deptObj;
067 private PayType payTypeObj;
068 private Location locationObj;
069 private PayGrade payGradeObj;
070 private SalGroup salGroupObj;
071 private Position positionObj;
072
073 private BigDecimal fte = new BigDecimal(0); //kpme1465, chen
074 private String flsaStatus;
075
076 public String getFlsaStatus() {
077 return flsaStatus;
078 }
079
080 public void setFlsaStatus(String flsaStatus) {
081 this.flsaStatus = flsaStatus;
082 }
083
084 public BigDecimal getFte() {
085 if ( this.standardHours != null ) {
086 return this.standardHours.divide(new BigDecimal(40)).setScale(2);
087 } else {
088 return fte;
089 }
090 }
091
092 public void setFte() {
093 if ( this.standardHours != null ) {
094 this.fte = this.standardHours.divide(new BigDecimal(40)).setScale(2);
095 } else {
096 this.fte = new BigDecimal(0).setScale(2);
097 }
098 }
099
100 public String getPayGrade() {
101 return payGrade;
102 }
103
104 public void setPayGrade(String payGrade) {
105 this.payGrade = payGrade;
106 }
107
108 public BigDecimal getStandardHours() {
109 return standardHours;
110 }
111
112 public void setStandardHours(BigDecimal standardHours) {
113 this.standardHours = standardHours;
114 }
115
116 public String getPrincipalId() {
117 return principalId;
118 }
119
120 public void setPrincipalId(String principalId) {
121 this.principalId = principalId;
122 }
123
124 public String getFirstName() {
125 return firstName;
126 }
127
128 public void setFirstName(String firstName) {
129 this.firstName = firstName;
130 }
131
132 public String getLastName() {
133 return lastName;
134 }
135
136 public void setLastName(String lastName) {
137 this.lastName = lastName;
138 }
139
140 public String getName() {
141 if (principal == null) {
142 principal = KimApiServiceLocator.getPersonService().getPerson(this.principalId);
143 }
144 return (principal != null) ? principal.getName() : "";
145 }
146
147 public String getPrincipalName() {
148 if(principalName == null && !this.getPrincipalId().isEmpty()) {
149 Person aPerson = KimApiServiceLocator.getPersonService().getPerson(getPrincipalId());
150 setPrincipalName(aPerson.getName());
151 }
152 return principalName;
153 }
154
155 public void setPrincipalName(String principalName) {
156 this.principalName = principalName;
157 }
158
159 public Long getJobNumber() {
160 return jobNumber;
161 }
162
163 public void setJobNumber(Long jobNumber) {
164 this.jobNumber = jobNumber;
165 }
166
167 public Date getEffectiveDate() {
168 return effectiveDate;
169 }
170
171 public void setEffectiveDate(Date effectiveDate) {
172 this.effectiveDate = effectiveDate;
173 }
174
175 public Timestamp getTimestamp() {
176 return timestamp;
177 }
178
179 public void setTimestamp(Timestamp timestamp) {
180 this.timestamp = timestamp;
181 }
182
183 public Boolean getHistory() {
184 return history;
185 }
186
187 public void setHistory(Boolean history) {
188 this.history = history;
189 }
190
191 public Boolean getActive() {
192 return active;
193 }
194
195 public void setActive(Boolean active) {
196 this.active = active;
197 }
198
199 public void setLocation(String location) {
200 this.location = location;
201 }
202
203 public String getLocation() {
204 return location;
205 }
206
207 public String getHrPayType() {
208 return hrPayType;
209 }
210
211 public void setHrPayType(String hrPayType) {
212 this.hrPayType = hrPayType;
213 }
214
215 public String getHrJobId() {
216 return hrJobId;
217 }
218
219 public void setHrJobId(String hrJobId) {
220 this.hrJobId = hrJobId;
221 }
222
223 public String getDept() {
224 return dept;
225 }
226
227 public void setDept(String dept) {
228 this.dept = dept;
229 }
230
231 public String getHrSalGroup() {
232 return hrSalGroup;
233 }
234
235 public void setHrSalGroup(String hrSalGroup) {
236 this.hrSalGroup = hrSalGroup;
237 }
238
239
240 public BigDecimal getCompRate() {
241 return compRate;
242 }
243
244
245 public void setCompRate(BigDecimal compRate) {
246 if(compRate != null){
247 this.compRate = compRate.setScale(TkConstants.BIG_DECIMAL_SCALE);
248 } else {
249 this.compRate = compRate;
250 }
251 }
252
253 public Department getDeptObj() {
254 return deptObj;
255 }
256
257
258 public void setDeptObj(Department deptObj) {
259 this.deptObj = deptObj;
260 }
261
262
263 public PayType getPayTypeObj() {
264 return payTypeObj;
265 }
266
267
268 public void setPayTypeObj(PayType payTypeObj) {
269 this.payTypeObj = payTypeObj;
270 }
271
272
273 public Person getPrincipal() {
274 return principal;
275 }
276
277
278 public void setPrincipal(Person principal) {
279 this.principal = principal;
280 }
281
282
283 public void setPrimaryIndicator(Boolean primaryIndicator) {
284 this.primaryIndicator = primaryIndicator;
285 }
286
287
288 public Boolean getPrimaryIndicator() {
289 return primaryIndicator;
290 }
291
292 public Location getLocationObj() {
293 return locationObj;
294 }
295
296 public void setLocationObj(Location locationObj) {
297 this.locationObj = locationObj;
298 }
299
300 public PayGrade getPayGradeObj() {
301 return payGradeObj;
302 }
303
304 public void setPayGradeObj(PayGrade payGradeObj) {
305 this.payGradeObj = payGradeObj;
306 }
307
308 public SalGroup getSalGroupObj() {
309 return salGroupObj;
310 }
311
312 public void setSalGroupObj(SalGroup salGroupObj) {
313 this.salGroupObj = salGroupObj;
314 }
315
316 public void setPositionNumber(String positionNumber) {
317 this.positionNumber = positionNumber;
318 }
319
320 public String getPositionNumber() {
321 return positionNumber;
322 }
323
324 public void setPositionObj(Position positionObj) {
325 this.positionObj = positionObj;
326 }
327
328 public Position getPositionObj() {
329 return positionObj;
330 }
331
332 public String getHrDeptId() {
333 return hrDeptId;
334 }
335
336 public void setHrDeptId(String hrDeptId) {
337 this.hrDeptId = hrDeptId;
338 }
339
340 public String getHrPayTypeId() {
341 return hrPayTypeId;
342 }
343
344 public void setHrPayTypeId(String hrPayTypeId) {
345 this.hrPayTypeId = hrPayTypeId;
346 }
347
348 @Override
349 public String getUniqueKey() {
350 return getPrincipalId() + "_" + getJobNumber();
351 }
352
353 @Override
354 public String getId() {
355 return getHrJobId();
356 }
357
358 @Override
359 public void setId(String id) {
360 setHrJobId(id);
361 }
362
363 }