1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.hr.time.approval.service;
17
18 import java.math.BigDecimal;
19 import java.util.Date;
20 import java.util.List;
21 import java.util.Map;
22 import java.util.Set;
23 import java.util.SortedSet;
24
25 import org.joda.time.DateTimeZone;
26 import org.joda.time.Interval;
27 import org.kuali.hr.core.KPMEConstants;
28 import org.kuali.hr.time.approval.web.ApprovalTimeSummaryRow;
29 import org.kuali.hr.time.calendar.Calendar;
30 import org.kuali.hr.time.calendar.CalendarEntries;
31 import org.kuali.hr.time.person.TKPerson;
32 import org.kuali.hr.time.timeblock.TimeBlock;
33 import org.kuali.hr.time.workflow.TimesheetDocumentHeader;
34 import org.kuali.rice.kew.api.note.Note;
35 import org.kuali.rice.kew.routeheader.DocumentRouteHeaderValue;
36 import org.springframework.cache.annotation.Cacheable;
37
38 import com.google.common.collect.Multimap;
39
40
41 public interface TimeApproveService {
42
43
44
45
46
47
48
49
50
51
52 public List<ApprovalTimeSummaryRow> getApprovalSummaryRows(Date payBeginDate, Date payEndDate, String calGroup, List<TKPerson> principalIds, List<String> payCalendarLabels, CalendarEntries payCalendarEntries);
53
54
55
56
57
58 @Cacheable(value= KPMEConstants.KPME_GLOBAL_CACHE_NAME, key="'{PayCalendarLabelsForApprovalTab}' + 'payBeginDate=' + #p0 + '|' + 'payEndDate=' + #p1")
59 public List<String> getPayCalendarLabelsForApprovalTab(Date payBeginDate, Date payEndDate);
60
61
62
63
64
65
66
67
68
69
70
71
72 public SortedSet<String> getApproverPayCalendarGroups(Date payBeginDate, Date payEndDate);
73
74
75
76
77
78
79 public List<Note> getNotesForDocument(String documentNumber);
80
81 public Map<String, BigDecimal> getHoursToPayDayMap(String principalId, Date payEndDate, List<String> payCalendarLabels, List<TimeBlock> lstTimeBlocks, Long workArea, CalendarEntries payCalendarEntries, Calendar payCalendar, DateTimeZone dateTimeZone, List<Interval> dayIntervals);
82
83 public Map<String, BigDecimal> getHoursToFlsaWeekMap(String principalId, Date payEndDate, List<String> payCalendarLabels, List<TimeBlock> lstTimeBlocks, Long workArea, CalendarEntries payCalendarEntries, Calendar payCalendar, DateTimeZone dateTimeZone, List<Interval> dayIntervals);
84
85
86
87
88
89
90
91
92
93
94 public Map<String,CalendarEntries> getPayCalendarEntriesForApprover(String principalId, Date currentDate, String dept);
95
96
97
98
99 public List<CalendarEntries> getAllPayCalendarEntriesForApprover(String principalId, Date currentDate);
100
101
102
103 public boolean doesApproverHavePrincipalsForCalendarGroup(Date asOfDate, String calGroup);
104 public Map<String,CalendarEntries> getPayCalendarEntriesForDept(String dept, Date currentDate);
105
106
107
108
109
110
111
112
113 Map<String, TimesheetDocumentHeader> getPrincipalDocumehtHeader(List<TKPerson> person, Date payBeginDate, Date payEndDate);
114
115
116
117
118
119
120
121 Multimap<String, Long> getDeptWorkAreasByWorkAreas(Set<Long> approverWorkAres);
122
123
124
125
126
127
128
129 Multimap<String, Long> getDeptWorkAreasByDepts(Set<String> userDepts);
130
131 public DocumentRouteHeaderValue getRouteHeader(String documentId);
132
133
134
135
136
137
138
139
140
141
142
143 public List<String> getTimePrincipalIdsWithSearchCriteria(List<String> workAreaList, String calendarGroup, java.sql.Date effdt, java.sql.Date beginDate, java.sql.Date endDate);
144 }