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.time.approval.summaryrow; 17 18 import java.math.BigDecimal; 19 import java.util.List; 20 import java.util.Map; 21 import java.util.Set; 22 23 import org.kuali.kpme.tklm.api.time.timeblock.TimeBlockContract; 24 import org.kuali.kpme.tklm.api.time.timesummary.TimeSummaryContract; 25 import org.kuali.rice.kew.api.note.Note; 26 27 28 29 /** 30 * <p>ApprovalTimeSummaryRowContract interface</p> 31 * 32 */ 33 public interface ApprovalTimeSummaryRowContract { 34 35 /** 36 * The principalId associated with the ApprovalTimeSummaryRow 37 * 38 * <p> 39 * principalId of an ApprovalTimeSummaryRow 40 * <p> 41 * 42 * @return principalId for ApprovalTimeSummaryRow 43 */ 44 public String getApprovalStatusMessage() ; 45 46 /** 47 * The map of assignment descriptions associated with the ApprovalTimeSummaryRow 48 * 49 * <p> 50 * A String (AssignmentDescriptionKey) to Description mapping for all assignments on this summary row 51 * <p> 52 * 53 * @return assignmentDescriptions for ApprovalTimeSummaryRow 54 */ 55 public Map<String, String> getAssignmentDescriptions(); 56 57 /** 58 * The map of approver hours associated with the ApprovalTimeSummaryRow 59 * 60 * <p> 61 * A Map (Assignment key) of Mapped totals (pay label mapping) 62 * <p> 63 * 64 * @return approverHoursByAssignment for ApprovalTimeSummaryRow 65 */ 66 public Map<String, Map<String, BigDecimal>> getApproverHoursByAssignment(); 67 68 /** 69 * The map of other hours associated with the ApprovalTimeSummaryRow 70 * 71 * <p> 72 * A Map (Assignment key) of Mapped totals (pay label mapping) 73 * <p> 74 * 75 * @return otherHoursByAssignment for ApprovalTimeSummaryRow 76 */ 77 public Map<String, Map<String, BigDecimal>> getOtherHoursByAssignment(); 78 79 /** 80 * The name associated with the ApprovalTimeSummaryRow 81 * 82 * <p> 83 * name of an ApprovalTimeSummaryRow 84 * <p> 85 * 86 * @return name for ApprovalTimeSummaryRow 87 */ 88 public String getName(); 89 90 /** 91 * The list of TimeBlock objects associated with the ApprovalTimeSummaryRow 92 * 93 * <p> 94 * lstTimeBlocks of an ApprovalTimeSummaryRow 95 * <p> 96 * 97 * @return lstTimeBlocks for ApprovalTimeSummaryRow 98 */ 99 public List<? extends TimeBlockContract> getLstTimeBlocks(); 100 101 /** 102 * The approvalStatus associated with the ApprovalTimeSummaryRow 103 * 104 * <p> 105 * approvalStatus of an ApprovalTimeSummaryRow 106 * <p> 107 * 108 * @return approvalStatus for ApprovalTimeSummaryRow 109 */ 110 public String getApprovalStatus(); 111 112 /** 113 * The documentId associated with the ApprovalTimeSummaryRow 114 * 115 * <p> 116 * documentId of an ApprovalTimeSummaryRow 117 * <p> 118 * 119 * @return documentId for ApprovalTimeSummaryRow 120 */ 121 public String getDocumentId(); 122 123 /** 124 * The hoursToPayLabelMap associated with the ApprovalTimeSummaryRow 125 * 126 * <p> 127 * hoursToPayLabelMap of an ApprovalTimeSummaryRow 128 * <p> 129 * 130 * @return hoursToPayLabelMap for ApprovalTimeSummaryRow 131 */ 132 public Map<String,BigDecimal> getHoursToPayLabelMap(); 133 134 /** 135 * The hoursToFlsaPayLabelMap associated with the ApprovalTimeSummaryRow 136 * 137 * <p> 138 * hoursToFlsaPayLabelMap of an ApprovalTimeSummaryRow 139 * <p> 140 * 141 * @return hoursToFlsaPayLabelMap for ApprovalTimeSummaryRow 142 */ 143 public Map<String,BigDecimal> getHoursToFlsaPayLabelMap(); 144 145 /** 146 * The clockStatusMessage associated with the ApprovalTimeSummaryRow 147 * 148 * <p> 149 * clockStatusMessage of an ApprovalTimeSummaryRow 150 * <p> 151 * 152 * @return clockStatusMessage for ApprovalTimeSummaryRow 153 */ 154 public String getClockStatusMessage(); 155 156 /** 157 * The payCalendarGroup associated with the ApprovalTimeSummaryRow 158 * 159 * <p> 160 * payCalendarGroup of an ApprovalTimeSummaryRow 161 * <p> 162 * 163 * @return payCalendarGroup for ApprovalTimeSummaryRow 164 */ 165 public String getPayCalendarGroup(); 166 167 /** 168 * Indicates if this record is initiated or not 169 * 170 * <p> 171 * Is this record initiated? 172 * <p> 173 * 174 * @return true if initiated, false if not 175 */ 176 public boolean isRoutable(); 177 178 /** 179 * Indicates if this record is read to be approved. 180 * 181 * <p> 182 * Is this record ready to be approved? 183 * <p> 184 * 185 * @return true if a valid TK_APPROVER / TK_PROCESSOR can approve, false otherwise. 186 */ 187 public boolean isApprovable(); 188 189 /** 190 * The URL parameters associated with the ApprovalTimeSummaryRow 191 * 192 * <p> 193 * Helper method to grab the URL parameters for setting target mode for a 194 * user/documentID timesheet. 195 * <p> 196 * 197 * @return parameter portion of a URL, usable to initiate target mode. 198 */ 199 public String getTimesheetUserTargetURLParams(); 200 201 /** 202 * The list of Note objects associated with the ApprovalTimeSummaryRow 203 * 204 * <p> 205 * notes of an ApprovalTimeSummaryRow 206 * <p> 207 * 208 * @return notes for ApprovalTimeSummaryRow 209 */ 210 public List<Note> getNotes(); 211 212 /** 213 * The list of warning strings associated with the ApprovalTimeSummaryRow 214 * 215 * <p> 216 * warnings of an ApprovalTimeSummaryRow 217 * <p> 218 * 219 * @return warnings for ApprovalTimeSummaryRow 220 */ 221 public List<String> getWarnings(); 222 223 /** 224 * The set of work area strings associated with the ApprovalTimeSummaryRow 225 * 226 * <p> 227 * workAreas of an ApprovalTimeSummaryRow 228 * <p> 229 * 230 * @return workAreas for ApprovalTimeSummaryRow 231 */ 232 public Set<String> getWorkAreas(); 233 234 /** 235 * The principalId associated with the ApprovalTimeSummaryRow 236 * 237 * <p> 238 * principalId of an ApprovalTimeSummaryRow 239 * <p> 240 * 241 * @return principalId for ApprovalTimeSummaryRow 242 */ 243 public String getPrincipalId(); 244 245 /** 246 * TODO: Put a better comment 247 * The clockedInOverThreshold flag of the ApprovalTimeSummaryRow 248 * 249 * <p> 250 * clockedInOverThreshold flag of an ApprovalTimeSummaryRow 251 * <p> 252 * 253 * @return Y if, N if not 254 */ 255 public Boolean getClockedInOverThreshold(); 256 257 /** 258 * TODO: Put a better comment 259 * The selected associated with the ApprovalTimeSummaryRow 260 * 261 * <p> 262 * selected of an ApprovalTimeSummaryRow 263 * <p> 264 * 265 * @return selected for ApprovalTimeSummaryRow 266 */ 267 public String getSelected(); 268 269 /** 270 * The TimeSummary object associated with the ApprovalTimeSummaryRow 271 * 272 * <p> 273 * timeSummary of an ApprovalTimeSummaryRow 274 * <p> 275 * 276 * @return timeSummary for ApprovalTimeSummaryRow 277 */ 278 public TimeSummaryContract getTimeSummary(); 279 280 /** 281 * The periodTotal associated with the ApprovalTimeSummaryRow 282 * 283 * <p> 284 * periodTotal of an ApprovalTimeSummaryRow 285 * <p> 286 * 287 * @return periodTotal for ApprovalTimeSummaryRow 288 */ 289 public BigDecimal getPeriodTotal(); 290 291 /** 292 * The outputString associated with the ApprovalTimeSummaryRow 293 * 294 * <p> 295 * outputString of an ApprovalTimeSummaryRow 296 * <p> 297 * 298 * @return outputString for ApprovalTimeSummaryRow 299 */ 300 public String getOutputString(); 301 302 /** 303 * The color associated with the ApprovalTimeSummaryRow 304 * 305 * <p> 306 * color of an ApprovalTimeSummaryRow 307 * <p> 308 * 309 * @return color for ApprovalTimeSummaryRow 310 */ 311 public String getColor(); 312 313 /** 314 * The map of week totals associated with the ApprovalTimeSummaryRow 315 * 316 * <p> 317 * weekTotalMap of an ApprovalTimeSummaryRow 318 * <p> 319 * 320 * @return weekTotalMap for ApprovalTimeSummaryRow 321 */ 322 public Map<String, BigDecimal> getWeekTotalMap(); 323 324 /** 325 * The map of role names associated with the ApprovalTimeSummaryRow 326 * 327 * <p> 328 * roleNames of an ApprovalTimeSummaryRow 329 * <p> 330 * 331 * @return roleNames for ApprovalTimeSummaryRow 332 */ 333 public Map<String, String> getRoleNames(); 334 335 /** 336 * The role name of principalId associated with the ApprovalTimeSummaryRow 337 * 338 * <p> 339 * role name of principalId of an ApprovalTimeSummaryRow 340 * <p> 341 * 342 * @return getRoleNames().get(HrContext.getPrincipalId() for ApprovalTimeSummaryRow 343 */ 344 public String getRoleName(); 345 346 }