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 */
016 package org.kuali.kpme.tklm.api.leave.timeoff;
017
018 import java.math.BigDecimal;
019 import java.util.Date;
020
021 import org.joda.time.LocalDate;
022 import org.kuali.kpme.core.api.accrualcategory.AccrualCategoryContract;
023 import org.kuali.kpme.core.api.bo.HrBusinessObjectContract;
024 import org.kuali.kpme.core.api.earncode.EarnCodeContract;
025 import org.kuali.kpme.core.api.leaveplan.LeavePlanContract;
026 import org.kuali.kpme.core.api.location.LocationContract;
027
028 /**
029 * <p>SystemScheduledTimeOffContract interface</p>
030 *
031 */
032 public interface SystemScheduledTimeOffContract extends HrBusinessObjectContract {
033
034 /**
035 * The primary key of a SystemScheduledTimeOff entry saved in a database
036 *
037 * <p>
038 * lmSystemScheduledTimeOffId of a SystemScheduledTimeOff
039 * <p>
040 *
041 * @return lmSystemScheduledTimeOffId for SystemScheduledTimeOff
042 */
043 public String getLmSystemScheduledTimeOffId();
044
045 /**
046 * The LeavePlan name associated with the SystemScheduledTimeOff
047 *
048 * <p>
049 * leavePlan of a SystemScheduledTimeOff
050 * <p>
051 *
052 * @return leavePlan for SystemScheduledTimeOff
053 */
054 public String getLeavePlan();
055
056 /**
057 * The AccrualCategory name associated with the SystemScheduledTimeOff
058 *
059 * <p>
060 * accrualCategory of a SystemScheduledTimeOff
061 * <p>
062 *
063 * @return accrualCategory for SystemScheduledTimeOff
064 */
065 public String getAccrualCategory();
066
067 /**
068 * The date the holiday is available to use
069 *
070 * <p>
071 * accruedDate of a SystemScheduledTimeOff
072 * <p>
073 *
074 * @return accruedDate for SystemScheduledTimeOff
075 */
076 public Date getAccruedDate();
077
078 /**
079 * The date the holiday is available to use
080 *
081 * <p>
082 * accruedDate of a SystemScheduledTimeOff
083 * <p>
084 *
085 * @return accruedDate in LocalDate format for SystemScheduledTimeOff
086 */
087 public LocalDate getAccruedLocalDate();
088
089 /**
090 * The date of the ScheduledTimeOff that is put on the calendar
091 *
092 * <p>
093 * scheduledTimeOffDate of a SystemScheduledTimeOff
094 * <p>
095 *
096 * @return scheduledTimeOffDate in Date format for SystemScheduledTimeOff
097 */
098 public Date getScheduledTimeOffDate();
099
100 /**
101 * The date of the ScheduledTimeOff that is put on the calendar
102 *
103 * <p>
104 * scheduledTimeOffDate of a SystemScheduledTimeOff
105 * <p>
106 *
107 * @return scheduledTimeOffDate in LocalDate format for SystemScheduledTimeOff
108 */
109 public LocalDate getScheduledTimeOffLocalDate();
110
111 /**
112 * The Location name associated with the SystemScheduledTimeOff
113 *
114 * <p>
115 * location of a SystemScheduledTimeOff
116 * <p>
117 *
118 * @return location for SystemScheduledTimeOff
119 */
120 public String getLocation();
121
122 /**
123 * The description of the SystemScheduledTimeOff
124 *
125 * <p>
126 * description of a SystemScheduledTimeOff
127 * <p>
128 *
129 * @return desc for SystemScheduledTimeOff
130 */
131 public String getDescr();
132
133 /**
134 * The amount of leave time taken for the ScheduledTimeOff
135 *
136 * <p>
137 * amountofTime of a SystemScheduledTimeOff
138 * <p>
139 *
140 * @return amountofTime for SystemScheduledTimeOff
141 */
142 public BigDecimal getAmountofTime();
143
144 /**
145 * Indicate how time can be banked/accrued
146 *
147 * <p>
148 * unusedTime of a SystemScheduledTimeOff
149 * <p>
150 *
151 * @return unusedTime for SystemScheduledTimeOff
152 */
153 public String getUnusedTime();
154
155 /**
156 * The conversion rate to be used to transfer the unused Amount of Time
157 *
158 * <p>
159 * unusedTime of a SystemScheduledTimeOff
160 * <p>
161 *
162 * @return unusedTime for SystemScheduledTimeOff
163 */
164 public BigDecimal getTransferConversionFactor();
165
166 /**
167 * TODO: Make sure this comment is right
168 * Indicate if the ScheduledTimeOff Date allows employees to get higher rate of pay for working it
169 *
170 * <p>
171 * premiumHoliday of a SystemScheduledTimeOff
172 * <p>
173 *
174 * @return Y if the ScheduledTimeOff Date allows employees to get higher rate of pay, N if not
175 */
176 public String getPremiumHoliday();
177
178 /**
179 * The LeavePlan object associated with the SystemScheduledTimeOff
180 *
181 * <p>
182 * leavePlanObject of a SystemScheduledTimeOff
183 * <p>
184 *
185 * @return leavePlanObj for SystemScheduledTimeOff
186 */
187 public LeavePlanContract getLeavePlanObj();
188
189 /**
190 * The AccrualCategory object associated with the SystemScheduledTimeOff
191 *
192 * <p>
193 * accrualCategoryObj of a SystemScheduledTimeOff
194 * <p>
195 *
196 * @return accrualCategoryObj for SystemScheduledTimeOff
197 */
198 public AccrualCategoryContract getAccrualCategoryObj();
199
200 /**
201 * The EarnCode name associated with the SystemScheduledTimeOff
202 *
203 * <p>
204 * earnCode of a SystemScheduledTimeOff
205 * <p>
206 *
207 * @return earnCode for SystemScheduledTimeOff
208 */
209 public String getEarnCode();
210
211 /**
212 * The EarnCode name used to transfer the unused time
213 *
214 * <p>
215 * transfertoEarnCode of a SystemScheduledTimeOff
216 * <p>
217 *
218 * @return transfertoEarnCode for SystemScheduledTimeOff
219 */
220 public String getTransfertoEarnCode();
221
222 /**
223 * The EarnCode object associated with the SystemScheduledTimeOff
224 *
225 * <p>
226 * earnCodeObject of a SystemScheduledTimeOff
227 * <p>
228 *
229 * @return earnCodeObject for SystemScheduledTimeOff
230 */
231 public EarnCodeContract getEarnCodeObj();
232
233 /**
234 * The Location object associated with the SystemScheduledTimeOff
235 *
236 * <p>
237 * locationObj of a SystemScheduledTimeOff
238 * <p>
239 *
240 * @return locationObj for SystemScheduledTimeOff
241 */
242 public LocationContract getLocationObj();
243
244 /**
245 * The history flag of the SystemScheduledTimeOff
246 *
247 * <p>
248 * history flag of a SystemScheduledTimeOff
249 * <p>
250 *
251 * @return Y if on, N if not
252 */
253 public Boolean getHistory();
254
255 }