001/** 002 * Copyright 2004-2014 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 */ 016package org.kuali.kpme.tklm.api.leave.transfer; 017 018import java.math.BigDecimal; 019import java.util.List; 020 021import org.kuali.kpme.core.api.accrualcategory.AccrualCategoryContract; 022import org.kuali.kpme.core.api.bo.HrBusinessObjectContract; 023import org.kuali.kpme.tklm.api.leave.block.LeaveBlockContract; 024import org.kuali.rice.kim.api.identity.Person; 025 026/** 027 * <p>BalanceTransferContract interface.</p> 028 * 029 */ 030public 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}