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 }