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.summary;
17
18 import java.math.BigDecimal;
19 import java.util.SortedMap;
20
21
22
23 /**
24 * <p>LeaveSummaryRowContract interface</p>
25 *
26 */
27 public interface LeaveSummaryRowContract {
28
29 /**
30 * The AccrualCategory name associated with the LeaveSummaryRow
31 *
32 * <p>
33 * accrualCategory of a LeaveSummaryRow
34 * <p>
35 *
36 * @return accrualCategory for LeaveSummaryRow
37 */
38 public String getAccrualCategory();
39
40 /**
41 * The AccrualCategory id associated with the LeaveSummaryRow
42 *
43 * <p>
44 * accrualCategoryId of a LeaveSummaryRow - used as a very simple means of getting the AccrualCategory object
45 * <p>
46 *
47 * @return accrualCategoryId for LeaveSummaryRow
48 */
49 public String getAccrualCategoryId();
50
51 /**
52 * The AccrualCategoryRule id associated with the LeaveSummaryRow
53 *
54 * <p>
55 * accrualCategoryRuleId of a LeaveSummaryRow
56 * <p>
57 *
58 * @return accrualCategoryRuleId for LeaveSummaryRow
59 */
60 public String getAccrualCategoryRuleId();
61
62 /**
63 * TODO: Make sure this comment is right
64 * The amount user can carry over to next year associated with the LeaveSummaryRow
65 *
66 * <p>
67 * carryOver of a LeaveSummaryRow
68 * <p>
69 *
70 * @return carryOver for LeaveSummaryRow
71 */
72 public BigDecimal getCarryOver();
73
74 /**
75 * The year to date accrued balance associated with the LeaveSummaryRow
76 *
77 * <p>
78 * ytdAccruedBalance of a LeaveSummaryRow
79 * <p>
80 *
81 * @return ytdAccruedBalance for LeaveSummaryRow
82 */
83 public BigDecimal getYtdAccruedBalance();
84
85 /**
86 * The year to date approved usage associated with the LeaveSummaryRow
87 *
88 * <p>
89 * ytdApprovedUsage of a LeaveSummaryRow
90 * <p>
91 *
92 * @return ytdApprovedUsage for LeaveSummaryRow
93 */
94 public BigDecimal getYtdApprovedUsage();
95
96 /**
97 * The leave balance associated with the LeaveSummaryRow
98 *
99 * <p>
100 * leaveBalance of a LeaveSummaryRow
101 * <p>
102 *
103 * @return leaveBalance for LeaveSummaryRow
104 */
105 public BigDecimal getLeaveBalance();
106
107 /**
108 * The pending leave accrual associated with the LeaveSummaryRow
109 *
110 * <p>
111 * pendingLeaveAccrual of a LeaveSummaryRow
112 * <p>
113 *
114 * @return pendingLeaveAccrual for LeaveSummaryRow
115 */
116 public BigDecimal getPendingLeaveAccrual();
117
118 /**
119 * The pending leave requests associated with the LeaveSummaryRow
120 *
121 * <p>
122 * pendingLeaveRequests of a LeaveSummaryRow
123 * <p>
124 *
125 * @return pendingLeaveRequests for LeaveSummaryRow
126 */
127 public BigDecimal getPendingLeaveRequests();
128
129 /**
130 * The pending leave balance associated with the LeaveSummaryRow
131 *
132 * <p>
133 * pendingLeaveBalance of a LeaveSummaryRow
134 * <p>
135 *
136 * @return pendingLeaveBalance for LeaveSummaryRow
137 */
138 public BigDecimal getPendingLeaveBalance();
139
140 /**
141 * The pending available usage associated with the LeaveSummaryRow
142 *
143 * <p>
144 * pendingAvailableUsage of a LeaveSummaryRow
145 * <p>
146 *
147 * @return pendingAvailableUsage for LeaveSummaryRow
148 */
149 public BigDecimal getPendingAvailableUsage();
150
151 /**
152 * The usage limit associated with the LeaveSummaryRow
153 *
154 * <p>
155 * usageLimit of a LeaveSummaryRow
156 * <p>
157 *
158 * @return usageLimit for LeaveSummaryRow
159 */
160 public BigDecimal getUsageLimit();
161
162 /**
163 * The fmla usage associated with the LeaveSummaryRow
164 *
165 * <p>
166 * fmlaUsage of a LeaveSummaryRow
167 * <p>
168 *
169 * @return fmlaUsage for LeaveSummaryRow
170 */
171 public BigDecimal getFmlaUsage();
172
173 /**
174 * The accrued balance associated with the LeaveSummaryRow
175 *
176 * <p>
177 * carryOver + ytdAccruedBalance - ytdApprovedUsage
178 * <p>
179 *
180 * @return accrued balance for LeaveSummaryRow
181 */
182 public BigDecimal getAccruedBalance();
183
184 /**
185 * The flag that indicates if accrued balance is eligible for transfer
186 *
187 * <p>
188 * transferable flag of a ShiftDifferentialRule
189 * </p>
190 *
191 * @return Y if accrued balance is eligible for transfer, N if not
192 */
193 public boolean isTransferable();
194
195 /**
196 * The flag that indicates if accrued balance is eligible for payout
197 *
198 * <p>
199 * payoutable flag of a ShiftDifferentialRule
200 * </p>
201 *
202 * @return Y if accrued balance is eligible for payout, N if not
203 */
204 public boolean isPayoutable();
205
206 /**
207 * The map of prior year usage associated with the LeaveSummaryRow
208 *
209 * <p>
210 * priorYearsUsage of a LeaveSummaryRow
211 * <p>
212 *
213 * @return priorYearsUsage for LeaveSummaryRow
214 */
215 public SortedMap<String, BigDecimal> getPriorYearsUsage();
216
217 /**
218 * The map of prior years accrued total associated with the LeaveSummaryRow
219 *
220 * <p>
221 * priorYearsTotalAccrued of a LeaveSummaryRow
222 * <p>
223 *
224 * @return priorYearsTotalAccrued for LeaveSummaryRow
225 */
226 public SortedMap<String, BigDecimal> getPriorYearsTotalAccrued();
227
228 /**
229 * The max carry over associated with the LeaveSummaryRow
230 *
231 * <p>
232 * maxCarryOver of a LeaveSummaryRow
233 * <p>
234 *
235 * @return maxCarryOver for LeaveSummaryRow
236 */
237 public BigDecimal getMaxCarryOver();
238
239 /**
240 * TODO: Put a better comment
241 * The infractingLeaveBlockId associated with the LeaveSummaryRow
242 *
243 * <p>
244 * infractingLeaveBlockId of a LeaveSummaryRow
245 * <p>
246 *
247 * @return infractingLeaveBlockId for LeaveSummaryRow
248 */
249 public String getInfractingLeaveBlockId();
250
251 }