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.transfer;
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.tklm.api.leave.block.LeaveBlockContract;
24 import org.kuali.rice.kim.api.identity.Person;
25
26 /**
27 * <p>BalanceTransferContract interface.</p>
28 *
29 */
30 public interface BalanceTransferContract extends HrBusinessObjectContract {
31
32 /**
33 * The principalId of the user associated with the BalanceTransfer
34 *
35 * <p>
36 * principalId of a BalanceTransfer
37 * <p>
38 *
39 * @return principalId for BalanceTransfer
40 */
41 public String getPrincipalId();
42
43 /**
44 * The AccrualCategory name that the leave is transfered to
45 *
46 * <p>
47 * toAccrualCategory of a BalanceTransfer
48 * <p>
49 *
50 * @return toAccrualCategory for BalanceTransfer
51 */
52 public String getToAccrualCategory();
53
54 /**
55 * The AccrualCategory name that the leave is transfered from
56 *
57 * <p>
58 * fromAccrualCategory of a BalanceTransfer
59 * <p>
60 *
61 * @return fromAccrualCategory for BalanceTransfer
62 */
63 public String getFromAccrualCategory();
64
65 /**
66 * The amount of accrued leave to transfer
67 *
68 * <p>
69 * transferAmount of a BalanceTransfer
70 * <p>
71 *
72 * @return transferAmount for BalanceTransfer
73 */
74 public BigDecimal getTransferAmount();
75
76 /**
77 * The computed amount of accrued leave that will be forfeited
78 *
79 * <p>
80 * forfeitedAmount of a BalanceTransfer
81 * <p>
82 *
83 * @return forfeitedAmount for BalanceTransfer
84 */
85 public BigDecimal getForfeitedAmount();
86
87 /**
88 * The primary key of a BalanceTransfer entry saved in a database
89 *
90 * <p>
91 * balanceTransferId of a BalanceTransfer
92 * <p>
93 *
94 * @return balanceTransferId for BalanceTransfer
95 */
96 public String getBalanceTransferId();
97
98 /**
99 * The AccrualCategoryRule name associated with the BalanceTransfer
100 *
101 * <p>
102 * accrualCategoryRule of a BalanceTransfer
103 * <p>
104 *
105 * @return accrualCategoryRule for BalanceTransfer
106 */
107 public String getAccrualCategoryRule();
108
109 /**
110 * The Person object of the user associated with the BalanceTransfer
111 *
112 * <p>
113 * principal of a BalanceTransfer
114 * <p>
115 *
116 * @return principal for BalanceTransfer
117 */
118 public Person getPrincipal();
119
120 /**
121 * The AccrualCategory object that the leave is transfered to
122 *
123 * <p>
124 * AccrualCategory object based on toAccrualCategory
125 * <p>
126 *
127 * @return AccrualCategory object based on toAccrualCategory
128 */
129 public AccrualCategoryContract getCreditedAccrualCategory();
130
131 /**
132 * The AccrualCategory object that the leave is transfered from
133 *
134 * <p>
135 * AccrualCategory object based on fromAccrualCategory
136 * <p>
137 *
138 * @return AccrualCategory object based on fromAccrualCategory
139 */
140 public AccrualCategoryContract getDebitedAccrualCategory();
141
142 /**
143 * The leave calendar document id associated with the BalanceTransfer
144 *
145 * <p>
146 * leaveCalendarDocumentId of a BalanceTransfer
147 * <p>
148 *
149 * @return leaveCalendarDocumentId for BalanceTransfer
150 */
151 public String getLeaveCalendarDocumentId();
152
153 /**
154 * The list of LeaveBlock objects associated with the BalanceTransfer
155 *
156 * <p>
157 * The list contains LeaveBlock objects based on forfeitedLeaveBlockId, accruedLeaveBlockId, and debitedLeaveBlockId
158 * <p>
159 *
160 * @return a list of LeaveBlock objects for BalanceTransfer
161 */
162 public List<? extends LeaveBlockContract> getLeaveBlocks();
163
164 /**
165 * The status associated with the BalanceTransfer
166 *
167 * <p>
168 * status of a BalanceTransfer
169 * <p>
170 *
171 * @return status for BalanceTransfer
172 */
173 public String getStatus();
174
175 /**
176 * The accrued leave block id associated with the BalanceTransfer
177 *
178 * <p>
179 * accruedLeaveBlockId of a BalanceTransfer
180 * <p>
181 *
182 * @return accruedLeaveBlockId for BalanceTransfer
183 */
184 public String getAccruedLeaveBlockId();
185
186 /**
187 * The forfeited leave block id associated with the BalanceTransfer
188 *
189 * <p>
190 * forfeitedLeaveBlockId of a BalanceTransfer
191 * <p>
192 *
193 * @return forfeitedLeaveBlockId for BalanceTransfer
194 */
195 public String getForfeitedLeaveBlockId();
196
197 /**
198 * The debited leave block id associated with the BalanceTransfer
199 *
200 * <p>
201 * debitedLeaveBlockId of a BalanceTransfer
202 * <p>
203 *
204 * @return debitedLeaveBlockId for BalanceTransfer
205 */
206 public String getDebitedLeaveBlockId();
207
208 /**
209 * The amount transfered
210 *
211 * <p>
212 * amountTransferred of a BalanceTransfer
213 * <p>
214 *
215 * @return amountTransferred for BalanceTransfer
216 */
217 public BigDecimal getAmountTransferred();
218
219 /**
220 * TODO: Put a better comment
221 *
222 * <p>
223 * sstoId of a BalanceTransfer
224 * <p>
225 *
226 * @return sstoId for BalanceTransfer
227 */
228 public String getSstoId();
229
230 /**
231 * The document header id associated with the BalanceTransfer
232 *
233 * <p>
234 * documentHeaderId of a BalanceTransfer
235 * <p>
236 *
237 * @return documentHeaderId for BalanceTransfer
238 */
239 public String getDocumentHeaderId();
240
241 }