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    }