001 /**
002 * Copyright 2004-2013 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.kpme.tklm.api.leave.transfer;
017
018 import java.math.BigDecimal;
019 import java.util.List;
020
021 import org.kuali.kpme.core.api.accrualcategory.AccrualCategoryContract;
022 import org.kuali.kpme.core.api.bo.HrBusinessObjectContract;
023 import org.kuali.kpme.tklm.api.leave.block.LeaveBlockContract;
024 import org.kuali.rice.kim.api.identity.Person;
025
026 /**
027 * <p>BalanceTransferContract interface.</p>
028 *
029 */
030 public interface BalanceTransferContract extends HrBusinessObjectContract {
031
032 /**
033 * The principalId of the user associated with the BalanceTransfer
034 *
035 * <p>
036 * principalId of a BalanceTransfer
037 * <p>
038 *
039 * @return principalId for BalanceTransfer
040 */
041 public String getPrincipalId();
042
043 /**
044 * The AccrualCategory name that the leave is transfered to
045 *
046 * <p>
047 * toAccrualCategory of a BalanceTransfer
048 * <p>
049 *
050 * @return toAccrualCategory for BalanceTransfer
051 */
052 public String getToAccrualCategory();
053
054 /**
055 * The AccrualCategory name that the leave is transfered from
056 *
057 * <p>
058 * fromAccrualCategory of a BalanceTransfer
059 * <p>
060 *
061 * @return fromAccrualCategory for BalanceTransfer
062 */
063 public String getFromAccrualCategory();
064
065 /**
066 * The amount of accrued leave to transfer
067 *
068 * <p>
069 * transferAmount of a BalanceTransfer
070 * <p>
071 *
072 * @return transferAmount for BalanceTransfer
073 */
074 public BigDecimal getTransferAmount();
075
076 /**
077 * The computed amount of accrued leave that will be forfeited
078 *
079 * <p>
080 * forfeitedAmount of a BalanceTransfer
081 * <p>
082 *
083 * @return forfeitedAmount for BalanceTransfer
084 */
085 public BigDecimal getForfeitedAmount();
086
087 /**
088 * The primary key of a BalanceTransfer entry saved in a database
089 *
090 * <p>
091 * balanceTransferId of a BalanceTransfer
092 * <p>
093 *
094 * @return balanceTransferId for BalanceTransfer
095 */
096 public String getBalanceTransferId();
097
098 /**
099 * 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 }