View Javadoc
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 }