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