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 }