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    }