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.tklm.api.leave.block; 17 18 import java.math.BigDecimal; 19 import java.util.Date; 20 import java.util.List; 21 22 import org.joda.time.DateTime; 23 import org.joda.time.LocalDate; 24 import org.kuali.kpme.core.api.block.CalendarBlockContract; 25 26 27 /** 28 * <p>LeaveBlockContract interface</p> 29 * 30 */ 31 public interface LeaveBlockContract extends CalendarBlockContract { 32 33 /** 34 * The AccrualCategoryRuleId associated with the LeaveBlock 35 * 36 * <p> 37 * It gets AccrualCategoryRule based on the AccrualCategory and PrincipalHRAttributes. 38 * <p> 39 * 40 * @return lmAccrualCategoryRuleId if AccrualCategoryRule is not null 41 */ 42 public String getAccrualCategoryRuleId(); 43 44 /** 45 * The AccrualCategory name associated with the LeaveBlock 46 * 47 * <p> 48 * It gets AccrualCategory based on the principal id and leave local date. 49 * <p> 50 * 51 * @return accrualCategory for LeaveBlock 52 */ 53 public String getAccrualCategory(); 54 55 /** 56 * The accrualGenerated flag to indicate if the accrual is generated or not 57 * 58 * <p> 59 * accrualGenerated of a LeaveBlock 60 * <p> 61 * 62 * @return Y if accrual is generated, N if not 63 */ 64 public Boolean getAccrualGenerated(); 65 66 /** 67 * TODO: Put a better comment 68 * The submit flag of the LeaveBlock 69 * 70 * <p> 71 * submit of a LeaveBlock 72 * <p> 73 * 74 * @return Y if submitted, N if not 75 */ 76 public boolean isSubmit(); 77 78 /** 79 * TODO: What is this used for? Different from lmLeaveBlockId?? 80 * The blockId associated with the LeaveBlock 81 * 82 * <p> 83 * blockId of a LeaveBlock 84 * <p> 85 * 86 * @return blockId for LeaveBlock 87 */ 88 public Long getBlockId(); 89 90 /** 91 * The description associated with the LeaveBlock 92 * 93 * <p> 94 * description of a LeaveBlock 95 * <p> 96 * 97 * @return description for LeaveBlock 98 */ 99 public String getDescription(); 100 101 /** 102 * The leave date (Date) associated with the LeaveBlock 103 * 104 * <p> 105 * leaveDate of a LeaveBlock 106 * <p> 107 * 108 * @return leaveDate for LeaveBlock 109 */ 110 public Date getLeaveDate(); 111 112 /** 113 * The leave date (LocalDate) associated with the LeaveBlock 114 * 115 * <p> 116 * leaveDate of a LeaveBlock 117 * <p> 118 * 119 * @return leaveDate in LocalDate for LeaveBlock 120 */ 121 public LocalDate getLeaveLocalDate(); 122 123 /** 124 * The scheduleTimeOffId associated with the LeaveBlock 125 * 126 * <p> 127 * scheduleTimeOffId of a LeaveBlock 128 * <p> 129 * 130 * @return scheduleTimeOffId for LeaveBlock 131 */ 132 public String getScheduleTimeOffId(); 133 134 /** 135 * The requestStatus associated with the LeaveBlock 136 * 137 * <p> 138 * requestStatus of a LeaveBlock 139 * <p> 140 * 141 * @return requestStatus for LeaveBlock 142 */ 143 public String getRequestStatus(); 144 145 /** 146 * The value of requestStatus associated with the LeaveBlock 147 * 148 * <p> 149 * value of requestStatus of a LeaveBlock 150 * <p> 151 * 152 * @return value for requestStatus in REQUEST_STATUS_STRINGS map if found, "usage" if not found 153 */ 154 public String getRequestStatusString(); 155 156 /** 157 * The list of LeaveBlockHistory objects associated with the LeaveBlock 158 * 159 * <p> 160 * leaveBlockHistories of a LeaveBlock 161 * <p> 162 * 163 * @return leaveBlockHistories for LeaveBlock 164 */ 165 public List<? extends LeaveBlockHistoryContract> getLeaveBlockHistories(); 166 167 /** 168 * The reason associated with the LeaveBlock 169 * 170 * <p> 171 * reason of a LeaveBlock 172 * <p> 173 * 174 * @return reason for LeaveBlock 175 */ 176 public String getReason(); 177 178 /** 179 * The assignment title associated with the LeaveBlock 180 * 181 * <p> 182 * If the work area associated with the LeaveBlock is not null, it gets its description and its task. 183 * If the task is not null and not the default task, it gets the task description. 184 * <p> 185 * 186 * @return "work area description - task description" for LeaveBlock 187 */ 188 public String getAssignmentTitle(); 189 190 /** 191 * The calendar id associated with the LeaveBlock 192 * 193 * <p> 194 * calendarId of a LeaveBlock 195 * <p> 196 * 197 * @return calendarId for LeaveBlock 198 */ 199 public String getCalendarId(); 200 201 /** 202 * The description of the earn code associated with the LeaveBlock 203 * 204 * <p> 205 * earnCodeObj.getDescription() of a LeaveBlock 206 * <p> 207 * 208 * @return earnCodeObj.getDescription() for LeaveBlock 209 */ 210 public String getEarnCodeDescription(); 211 212 /** 213 * The type of leave block associated with the LeaveBlock 214 * 215 * <p> 216 * leaveBlockType of a LeaveBlock 217 * <p> 218 * 219 * @return leaveBlockType for LeaveBlock 220 */ 221 public String getLeaveBlockType(); 222 223 /** 224 * Indicates if the principal has a permission to edit a leave block 225 * 226 * <p> 227 * <p> 228 * 229 * @return Y if the principal has a permission to edit a leave block, N if not 230 */ 231 public boolean isEditable(); 232 233 /** 234 * Indicates if the principal has a permission to delete the leave block 235 * 236 * <p> 237 * <p> 238 * 239 * @return Y if the principal has a permission to delete the leave block, N if not 240 */ 241 public boolean isDeletable(); 242 243 /** 244 * The assignment key associated with the LeaveBlock 245 * 246 * <p> 247 * The key is consisted of job number, work area number, and task number 248 * <p> 249 * 250 * @return assignmentKey for LeaveBlock 251 */ 252 public String getAssignmentKey(); 253 254 /** 255 * The document status associated with the LeaveBlock 256 * 257 * <p> 258 * documentStatus of a LeaveBlock 259 * <p> 260 * 261 * @return documentStatus for LeaveBlock 262 */ 263 public String getDocumentStatus(); 264 265 /** 266 * The document id of the leave request associated with the LeaveBlock 267 * 268 * <p> 269 * leaveRequestDocumentId of a LeaveBlock 270 * <p> 271 * 272 * @return leaveRequestDocumentId for LeaveBlock 273 */ 274 public String getLeaveRequestDocumentId(); 275 276 /** 277 * TODO: Put a better comment 278 * The planning description associated with the LeaveBlock 279 * 280 * <p> 281 * planningDescription of a LeaveBlock 282 * <p> 283 * 284 * @return planningDescription for LeaveBlock 285 */ 286 public String getPlanningDescription(); 287 288 /** 289 * TODO: Put a better comment 290 * The transactional document id associated with the LeaveBlock 291 * 292 * <p> 293 * transactionalDocId of a LeaveBlock 294 * <p> 295 * 296 * @return transactionalDocId for LeaveBlock 297 */ 298 public String getTransactionalDocId(); 299 300 /** 301 * The begin timestamp (DateTime) associated with the LeaveBlock 302 * 303 * <p> 304 * beginTimestamp of a LeaveBlock 305 * <p> 306 * 307 * @return beginTimestamp for LeaveBlock 308 */ 309 public DateTime getBeginDateTime(); 310 311 /** 312 * The end timestamp (DateTime) associated with the LeaveBlock 313 * 314 * <p> 315 * endTimestamp of a LeaveBlock 316 * <p> 317 * 318 * @return endTimestamp for LeaveBlock 319 */ 320 public DateTime getEndDateTime(); 321 322 /** 323 * The primary key of a LeaveBlock entry saved in a database 324 * 325 * <p> 326 * lmLeaveBlockId of a LeaveBlock 327 * <p> 328 * 329 * @return lmLeaveBlockId for LeaveBlock 330 */ 331 public String getLmLeaveBlockId(); 332 333 /** 334 * The leave amount associated with the LeaveBlock 335 * 336 * <p> 337 * leaveAmount of a LeaveBlock 338 * <p> 339 * 340 * @return leaveAmount for LeaveBlock 341 */ 342 public BigDecimal getLeaveAmount(); 343 344 /** 345 * The workArea number associated with the LeaveBlock 346 * 347 * <p> 348 * workArea of a LeaveBlock 349 * <p> 350 * 351 * @return workArea for LeaveBlock 352 */ 353 public Long getWorkArea(); 354 355 /** 356 * The job number associated with the LeaveBlock 357 * 358 * <p> 359 * jobNumber of a LeaveBlock 360 * <p> 361 * 362 * @return jobNumber for LeaveBlock 363 */ 364 public Long getJobNumber(); 365 366 /** 367 * The task number associated with the LeaveBlock 368 * 369 * <p> 370 * task of a LeaveBlock 371 * <p> 372 * 373 * @return task for LeaveBlock 374 */ 375 public Long getTask(); 376 377 /** 378 * The EarnCode name associated with the LeaveBlock 379 * 380 * <p> 381 * earnCode of a LeaveBlock 382 * <p> 383 * 384 * @return earnCode for LeaveBlock 385 */ 386 public String getEarnCode(); 387 388 }