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
020 import org.kuali.hr.core.KPMEConstants;
021 import org.kuali.hr.location.Location;
022 import org.kuali.hr.paygrade.PayGrade;
023 import org.kuali.hr.time.HrBusinessObject;
024 import org.kuali.hr.time.department.Department;
025 import org.kuali.hr.time.paytype.PayType;
026 import org.kuali.hr.time.position.Position;
027 import org.kuali.hr.time.salgroup.SalGroup;
028 import org.kuali.hr.time.util.TkConstants;
029 import org.kuali.rice.kim.api.identity.Person;
030 import org.kuali.rice.kim.api.services.KimApiServiceLocator;
031
032 public class Job extends HrBusinessObject {
033
034 private static final long serialVersionUID = 1369595897637935064L;
035
036 public static final String CACHE_NAME = KPMEConstants.APPLICATION_NAMESPACE_CODE + "/" + "Job";
037
038 private String location;
039 private String hrPayType;
040 private String payGrade;
041 private BigDecimal standardHours;
042 private String hrJobId;
043 private String principalId;
044 private String firstName;
045 private String lastName;
046 private String principalName;
047 private Long jobNumber;
048 private String dept;
049 private String hrSalGroup;
050 private Boolean primaryIndicator;
051 private Boolean history;
052 private BigDecimal compRate = new BigDecimal(0);
053 private String positionNumber;
054
055 private String hrDeptId;
056 private String hrPayTypeId;
057 private boolean eligibleForLeave;
058
059 private Person principal;
060 private Department deptObj;
061 private PayType payTypeObj;
062 private Location locationObj;
063 private PayGrade payGradeObj;
064 private SalGroup salGroupObj;
065 private Position positionObj;
066
067 private BigDecimal fte = new BigDecimal(0); //kpme1465, chen
068 private String flsaStatus;
069
070 public String getFlsaStatus() {
071 return flsaStatus;
072 }
073
074 public void setFlsaStatus(String flsaStatus) {
075 this.flsaStatus = flsaStatus;
076 }
077
078 public BigDecimal getFte() {
079 if ( this.standardHours != null ) {
080 return this.standardHours.divide(new BigDecimal(40)).setScale(2);
081 } else {
082 return fte;
083 }
084 }
085
086 public void setFte() {
087 if ( this.standardHours != null ) {
088 this.fte = this.standardHours.divide(new BigDecimal(40)).setScale(2);
089 } else {
090 this.fte = new BigDecimal(0).setScale(2);
091 }
092 }
093
094 public String getPayGrade() {
095 return payGrade;
096 }
097
098 public void setPayGrade(String payGrade) {
099 this.payGrade = payGrade;
100 }
101
102 public BigDecimal getStandardHours() {
103 return standardHours;
104 }
105
106 public void setStandardHours(BigDecimal standardHours) {
107 this.standardHours = standardHours;
108 }
109
110 public String getPrincipalId() {
111 return principalId;
112 }
113
114 public void setPrincipalId(String principalId) {
115 this.principalId = principalId;
116 }
117
118 public String getFirstName() {
119 return firstName;
120 }
121
122 public void setFirstName(String firstName) {
123 this.firstName = firstName;
124 }
125
126 public String getLastName() {
127 return lastName;
128 }
129
130 public void setLastName(String lastName) {
131 this.lastName = lastName;
132 }
133
134 public String getName() {
135 if (principal == null) {
136 principal = KimApiServiceLocator.getPersonService().getPerson(this.principalId);
137 }
138 return (principal != null) ? principal.getName() : "";
139 }
140
141 public String getPrincipalName() {
142 if(principalName == null && !this.getPrincipalId().isEmpty()) {
143 Person aPerson = KimApiServiceLocator.getPersonService().getPerson(getPrincipalId());
144 setPrincipalName(aPerson.getName());
145 }
146 return principalName;
147 }
148
149 public void setPrincipalName(String principalName) {
150 this.principalName = principalName;
151 }
152
153 public Long getJobNumber() {
154 return jobNumber;
155 }
156
157 public void setJobNumber(Long jobNumber) {
158 this.jobNumber = jobNumber;
159 }
160
161 public Boolean getHistory() {
162 return history;
163 }
164
165 public void setHistory(Boolean history) {
166 this.history = history;
167 }
168
169 public void setLocation(String location) {
170 this.location = location;
171 }
172
173 public String getLocation() {
174 return location;
175 }
176
177 public String getHrPayType() {
178 return hrPayType;
179 }
180
181 public void setHrPayType(String hrPayType) {
182 this.hrPayType = hrPayType;
183 }
184
185 public String getHrJobId() {
186 return hrJobId;
187 }
188
189 public void setHrJobId(String hrJobId) {
190 this.hrJobId = hrJobId;
191 }
192
193 public String getDept() {
194 return dept;
195 }
196
197 public void setDept(String dept) {
198 this.dept = dept;
199 }
200
201 public String getHrSalGroup() {
202 return hrSalGroup;
203 }
204
205 public void setHrSalGroup(String hrSalGroup) {
206 this.hrSalGroup = hrSalGroup;
207 }
208
209
210 public BigDecimal getCompRate() {
211 return compRate;
212 }
213
214
215 public void setCompRate(BigDecimal compRate) {
216 if(compRate != null){
217 this.compRate = compRate.setScale(TkConstants.BIG_DECIMAL_SCALE);
218 } else {
219 this.compRate = compRate;
220 }
221 }
222
223 public Department getDeptObj() {
224 return deptObj;
225 }
226
227
228 public void setDeptObj(Department deptObj) {
229 this.deptObj = deptObj;
230 }
231
232
233 public PayType getPayTypeObj() {
234 return payTypeObj;
235 }
236
237
238 public void setPayTypeObj(PayType payTypeObj) {
239 this.payTypeObj = payTypeObj;
240 }
241
242
243 public Person getPrincipal() {
244 return principal;
245 }
246
247
248 public void setPrincipal(Person principal) {
249 this.principal = principal;
250 }
251
252
253 public void setPrimaryIndicator(Boolean primaryIndicator) {
254 this.primaryIndicator = primaryIndicator;
255 }
256
257
258 public Boolean getPrimaryIndicator() {
259 return primaryIndicator;
260 }
261
262 public Location getLocationObj() {
263 return locationObj;
264 }
265
266 public void setLocationObj(Location locationObj) {
267 this.locationObj = locationObj;
268 }
269
270 public PayGrade getPayGradeObj() {
271 return payGradeObj;
272 }
273
274 public void setPayGradeObj(PayGrade payGradeObj) {
275 this.payGradeObj = payGradeObj;
276 }
277
278 public SalGroup getSalGroupObj() {
279 return salGroupObj;
280 }
281
282 public void setSalGroupObj(SalGroup salGroupObj) {
283 this.salGroupObj = salGroupObj;
284 }
285
286 public void setPositionNumber(String positionNumber) {
287 this.positionNumber = positionNumber;
288 }
289
290 public String getPositionNumber() {
291 return positionNumber;
292 }
293
294 public void setPositionObj(Position positionObj) {
295 this.positionObj = positionObj;
296 }
297
298 public Position getPositionObj() {
299 return positionObj;
300 }
301
302 public String getHrDeptId() {
303 return hrDeptId;
304 }
305
306 public void setHrDeptId(String hrDeptId) {
307 this.hrDeptId = hrDeptId;
308 }
309
310 public String getHrPayTypeId() {
311 return hrPayTypeId;
312 }
313
314 public void setHrPayTypeId(String hrPayTypeId) {
315 this.hrPayTypeId = hrPayTypeId;
316 }
317
318 @Override
319 public String getUniqueKey() {
320 return getPrincipalId() + "_" + getJobNumber();
321 }
322
323 @Override
324 public String getId() {
325 return getHrJobId();
326 }
327
328 @Override
329 public void setId(String id) {
330 setHrJobId(id);
331 }
332 public boolean isEligibleForLeave() {
333 return eligibleForLeave;
334 }
335
336 public void setEligibleForLeave(boolean eligibleForLeave) {
337 this.eligibleForLeave = eligibleForLeave;
338 }
339
340 }