1 /**
2 * Copyright 2004-2015 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.payout;
17
18 import java.math.BigDecimal;
19 import java.util.List;
20
21 import org.kuali.kpme.core.api.accrualcategory.AccrualCategoryContract;
22 import org.kuali.kpme.core.api.bo.HrBusinessObjectContract;
23 import org.kuali.kpme.core.api.earncode.EarnCodeContract;
24 import org.kuali.kpme.core.api.principal.PrincipalHRAttributesContract;
25 import org.kuali.kpme.tklm.api.leave.block.LeaveBlockContract;
26 import org.kuali.rice.kim.api.identity.Person;
27
28 /**
29 * <p>LeaveDonationContract interface</p>
30 *
31 */
32 public interface LeavePayoutContract extends HrBusinessObjectContract {
33
34 /**
35 * The EarnCode name associated with the LeavePayout
36 *
37 * <p>
38 * earnCode of a LeavePayout
39 * </p>
40 *
41 * @return earnCode for LeavePayout
42 */
43 public String getEarnCode();
44
45 /**
46 * The EarnCode object associated with the LeavePayout
47 *
48 * <p>
49 * earnCodeObject of a LeavePayout
50 * <p>
51 *
52 * @return earnCodeObject for LeavePayout
53 */
54 public EarnCodeContract getEarnCodeObj();
55
56 /**
57 * The principalID of the employee whom accruals are payed out to
58 *
59 * <p>
60 * principalId of a LeavePayout
61 * </p>
62 *
63 * @return principalId for LeavePayout
64 */
65 public String getPrincipalId();
66
67 /**
68 * The Person object associated with the LeavePayout
69 *
70 * <p>
71 * principal of a LeavePayout
72 * <p>
73 *
74 * @return principal for LeavePayout
75 */
76 public Person getPrincipal();
77
78 /**
79 * The principalName of the employee
80 *
81 * <p>
82 * principal.getName() of a LeavePayout
83 * <p>
84 *
85 * @return principal.getName() for LeavePayout
86 */
87 public String getName();
88
89 /**
90 * The LeavePlan name of the PrincipalHRAttributes of the employee
91 *
92 * <p>
93 * principalHRAttrObj.getLeavePlan() of a LeavePayout
94 * <p>
95 *
96 * @return principalHRAttrObj.getLeavePlan() for LeavePayout
97 */
98 public String getLeavePlan();
99
100 /**
101 * The AccrualCategory name that leave payout is made from
102 *
103 * <p>
104 * fromAccrualCategory of a LeavePayout
105 * </p>
106 *
107 * @return fromAccrualCategory for LeavePayout
108 */
109 public String getFromAccrualCategory();
110
111 /**
112 * The descripton of the LeavePayout
113 *
114 * <p>
115 * description of a LeavePayout
116 * </p>
117 *
118 * @return description for LeavePayout
119 */
120 public String getDescription();
121
122 /**
123 * The amount of accrued leave to payout
124 *
125 * <p>
126 * payoutAmount of a LeavePayout
127 * </p>
128 *
129 * @return payoutAmount for LeavePayout
130 */
131 public BigDecimal getPayoutAmount();
132
133 /**
134 * The computed amount of accrued leave that will be forfeited
135 *
136 * <p>
137 * forfeitedAmount of a LeavePayout
138 * </p>
139 *
140 * @return forfeitedAmount for LeavePayout
141 */
142 public BigDecimal getForfeitedAmount();
143
144 /**
145 * The AccuralCategory object associated with the LeavePayout
146 *
147 * <p>
148 * accrualCategoryObj of a LeavePayout
149 * <p>
150 *
151 * @return accrualCategoryObj for LeavePayout
152 */
153 public AccrualCategoryContract getFromAccrualCategoryObj();
154
155 /**
156 * The primary key of a LeavePayout entry saved in a database
157 *
158 * <p>
159 * hrEarnCodeId of a LeavePayout
160 * <p>
161 *
162 * @return lmLeavePlanId for LeavePayout
163 */
164 public String getLmLeavePayoutId();
165
166 /**
167 * The PrincipalHRAttributes object associated with the LeavePayout
168 *
169 * <p>
170 * principalHRAttrObj of a LeavePayout
171 * <p>
172 *
173 * @return principalHRAttrObj for LeavePayout
174 */
175 public PrincipalHRAttributesContract getPrincipalHRAttrObj();
176
177 /**
178 * The AccrualCategoryRule name associated with the LeavePayout
179 *
180 * <p>
181 * accrualCategoryRule of a LeavePayout
182 * <p>
183 *
184 * @return accrualCategoryRule for LeavePayout
185 */
186 public String getAccrualCategoryRule();
187
188 /**
189 * The forfeitedLeaveBlockId associated with the LeavePayout
190 *
191 * <p>
192 * forfeitedLeaveBlockId of a LeavePayout
193 * <p>
194 *
195 * @return forfeitedLeaveBlockId for LeavePayout
196 */
197 public String getForfeitedLeaveBlockId();
198
199 /**
200 * The payoutFromLeaveBlockId associated with the LeavePayout
201 *
202 * <p>
203 * payoutFromLeaveBlockId of a LeavePayout
204 * <p>
205 *
206 * @return payoutFromLeaveBlockId for LeavePayout
207 */
208 public String getPayoutLeaveBlockId();
209
210 /**
211 * The payoutLeaveBlockId associated with the LeavePayout
212 *
213 * <p>
214 * payoutLeaveBlockId of a LeavePayout
215 * <p>
216 *
217 * @return payoutLeaveBlockId for LeavePayout
218 */
219 public String getPayoutFromLeaveBlockId();
220
221 /**
222 * The list of LeaveBlock objects associated with the LeavePayout
223 *
224 * <p>
225 * a list of LeaveBlock objects
226 * <p>
227 *
228 * @return a list that contains LeaveBlock objects based on forfeitedLeaveBlockId, payoutLeaveBlockId, and payoutFromLeaveBlockId
229 */
230 public List<? extends LeaveBlockContract> getLeaveBlocks();
231
232 /**
233 * The leaveCalendarDocumentId associated with the LeavePayout
234 *
235 * <p>
236 * leaveCalendarDocumentId of a LeavePayout
237 * <p>
238 *
239 * @return leaveCalendarDocumentId for LeavePayout
240 */
241 public String getLeaveCalendarDocumentId();
242
243 /**
244 * The status associated with the LeavePayout
245 *
246 * <p>
247 * status of a LeavePayout
248 * <p>
249 *
250 * @return status for LeavePayout
251 */
252 public String getStatus();
253
254 /**
255 * The documentHeaderId associated with the LeavePayout
256 *
257 * <p>
258 * documentHeaderId of a LeavePayout
259 * <p>
260 *
261 * @return documentHeaderId for LeavePayout
262 */
263 public String getDocumentHeaderId();
264
265 }