View Javadoc
1   /**
2    * Copyright 2004-2014 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.kpme.core.api.earncode;
17  
18  import java.math.BigDecimal;
19  
20  import org.kuali.kpme.core.api.accrualcategory.AccrualCategoryContract;
21  import org.kuali.kpme.core.api.bo.HrBusinessObjectContract;
22  import org.kuali.kpme.core.api.leaveplan.LeavePlanContract;
23  
24  /**
25   * <p>EarnCodeContract interface.</p>
26   *
27   */
28  public interface EarnCodeContract extends HrBusinessObjectContract {
29  	
30  	/**
31  	 * The flag that indicates if the worked hours under an EarnCode should be counted as regular pay
32  	 * Use this field to calculate the "Worked Hours in the Time Summary.
33  	 * 
34  	 * <p>
35  	 * countsAsRegularPay flag of EarnCode
36  	 * </p>
37  	 * 
38  	 * @return Y if has rules, N if not
39  	 */
40  	public String getCountsAsRegularPay();
41  	
42  	/**
43  	 * The flag that indicates if usage should be included or excluded toward the usage limit 
44  	 * of the AccrualCategory associated with an EarnCode
45  	 * 
46  	 * <p>
47  	 * countsAsRegularPay flag of EarnCode
48  	 * </p>
49  	 * 
50  	 * @return I if Include, E if Exclude
51  	 */
52  	public String getUsageLimit();
53  
54  	/**
55  	 * The flag that determines the value type that will be entered for the earn code 
56  	 * 
57  	 * <p>
58  	 * recordMethod of EarnCode
59  	 * </p>
60  	 * 
61  	 * @return H for Hours, T for Time, D for Days, A for Amount
62  	 */
63  	public String getRecordMethod();
64  	
65  	/**
66  	 * The earn code name of the EarnCode object that this EarnCode rolls up to
67  	 * 
68  	 * <p>
69  	 * rollupToEarnCode of EarnCode
70  	 * </p>
71  	 * 
72  	 * @return rollupToEarnCode for EarnCode
73  	 */
74  	public String getRollupToEarnCode();
75  
76  	/**
77  	 * The EarnCode Object that this EarnCode rolls up to
78  	 * 
79  	 * <p>
80  	 * rollupToEarnCodeObj of EarnCode
81  	 * </p>
82  	 * 
83  	 * @return rollupToEarnCodeObj for EarnCode
84  	 */
85  	public EarnCodeContract getRollupToEarnCodeObj();
86  
87  	/**
88  	 * The name of the LeavePlan that this EarnCode associates with
89  	 * 
90  	 * <p>
91  	 * leavePlan of EarnCode
92  	 * </p>
93  	 * 
94  	 * @return leavePlan for EarnCode
95  	 */
96  	public String getLeavePlan();
97  
98  	/**
99  	 * The action that can be taken for the balance of the AccrualCategory of an EarnCode
100 	 * 
101 	 * <p>
102 	 * accrualBalanceAction of EarnCode
103 	 * </p>
104 	 * 
105 	 * @return N for None, U for usage, A for Adjustment
106 	 */
107 	public String getAccrualBalanceAction();
108 
109 	/**
110 	 * Defines fractional unit of time used for reporting leave 
111 	 * 
112 	 * <p>
113 	 * fractionalTimeAllowed of EarnCode
114 	 * </p>
115 	 * 
116 	 * @return fractionalTimeAllowed for EarnCode
117 	 */
118 	public String getFractionalTimeAllowed() ;
119 
120 	/**
121 	 * Indicated the rounding option when calculating leave accruals and reporting.
122 	 * 
123 	 * <p>
124 	 * roundingOption of EarnCode
125 	 * </p>
126 	 * 
127 	 * @return T for Traditional, R for Truncate
128 	 */
129 	public String getRoundingOption();
130 
131 	/**
132 	 * Flag indicating this type of leave is eligible for accrual or not
133 	 * 
134 	 * <p>
135 	 * eligibleForAccrual of EarnCode
136 	 * </p>
137 	 * 
138 	 * @return Y for Yes, N for No
139 	 */
140 	public String getEligibleForAccrual();
141 
142 	/**
143 	 * Flag indicating use of this leave code will affect the employee's pay
144 	 * 
145 	 * <p>
146 	 * affectPay of EarnCode
147 	 * </p>
148 	 * 
149 	 * @return Y for Yes, N for No
150 	 */
151 	public String getAffectPay();
152 
153 	/**
154 	 * Flag indicating if scheduling of leave on calendar is allowed
155 	 * 
156 	 * <p>
157 	 * allowScheduledLeave of EarnCode
158 	 * </p>
159 	 * 
160 	 * @return Y for Yes, N for No
161 	 */
162 	public String getAllowScheduledLeave() ;
163 
164 	/**
165 	 * FLMA Leave Code indicator. If Principal Calendar is flagged for FMLA, 
166 	 * employee will have option to select this Leave Code.
167 	 * 
168 	 * <p>
169 	 * fmla flag of EarnCode
170 	 * </p>
171 	 * 
172 	 * @return Y for Yes, N for No
173 	 */
174 	public String getFmla();
175 
176 	/**
177 	 * Workman's Comp Leave Code indicator.  If Principal Calendar is flagged for Workman’s Comp, 
178 	 * employee will have option to select this Leave Code.
179 	 * 
180 	 * <p>
181 	 * workmansComp flag of EarnCode
182 	 * </p>
183 	 * 
184 	 * @return Y for Yes, N for No
185 	 */
186 	public String getWorkmansComp();
187 
188 	/**
189 	 * When a user selects leave code the specified amount of time will appear in the amount of leave taken.
190 	 * 
191 	 * <p>
192 	 * defaultAmountofTime of EarnCode
193 	 * </p>
194 	 * 
195 	 * @return defaultAmountofTime for EarnCode
196 	 */
197 	public Long getDefaultAmountofTime();
198 
199 	/**
200 	 * Flag that allows usage to take the balance of the Accrual Category into the negative.
201 	 * 
202 	 * <p>
203 	 * allowNegativeAccrualBalance flag of EarnCode
204 	 * </p>
205 	 * 
206 	 * @return Y for Yes, N for No
207 	 */
208 	public String getAllowNegativeAccrualBalance();
209 
210 	/**
211 	 * The Alpha/Numeric code used to identify an EarnCode
212 	 * 
213 	 * <p>
214 	 * earnCode of EarnCode
215 	 * </p>
216 	 * 
217 	 * @return earnCode for EarnCode
218 	 */
219 	public String getEarnCode();
220 
221 	/**
222 	 * The description of an EarnCode
223 	 * 
224 	 * <p>
225 	 * description of EarnCode
226 	 * </p>
227 	 * 
228 	 * @return description for EarnCode
229 	 */
230 	public String getDescription() ;
231 	
232 	/**
233 	 * The history flag of an EarnCode
234 	 * 
235 	 * <p>
236 	 * history flag of EarnCode
237 	 * <p>
238 	 * 
239 	 * @return history for EarnCode
240 	 */
241 	public boolean isHistory();
242 
243 	/**
244 	 * The Primary Key of an EarnCode entry saved in a database
245 	 * 
246 	 * <p>
247 	 * hrEarnCodeId of an EarnCode
248 	 * <p>
249 	 * 
250 	 * @return hrEarnCodeId for EarnCode
251 	 */
252 	public String getHrEarnCodeId();
253 
254 	/**
255 	 * The AccrualCategory name of the AccuralCategoryObject associated with an EarnCode
256 	 * 
257 	 * <p>
258 	 * accrualCategory of an EarnCode
259 	 * <p>
260 	 * 
261 	 * @return accrualCategory for EarnCode
262 	 */	
263 	public String getAccrualCategory() ;
264 
265 	/**
266 	 * The AccuralCategoryObject associated with an EarnCode
267 	 * 
268 	 * <p>
269 	 * accrualCategoryObj of an EarnCode
270 	 * <p>
271 	 * 
272 	 * @return accrualCategoryObj for EarnCode
273 	 */	
274 	public AccrualCategoryContract getAccrualCategoryObj();
275 
276 	/**
277 	 * Hours incurred will be inflated to this minimum hours value
278 	 * 
279 	 * <p>
280 	 * inflateMinHours of an EarnCode
281 	 * <p>
282 	 * 
283 	 * @return inflateMinHours for EarnCode
284 	 */	
285 	public BigDecimal getInflateMinHours();
286 	
287 	/**
288 	 * 	The hours incurred will be multiplied by this factor
289 	 * 
290 	 * <p>
291 	 * InflateFactor of an EarnCode
292 	 * <p>
293 	 * 
294 	 * @return InflateFactor for EarnCode
295 	 */	
296 	public BigDecimal getInflateFactor() ;
297 
298 	/**
299 	 * 	Indicates this EarnCode may be used for overtime
300 	 * 
301 	 * <p>
302 	 * ovtEarnCode flag of an EarnCode
303 	 * <p>
304 	 * 
305 	 * @return Y for Yes, N for No
306 	 */	
307     public Boolean getOvtEarnCode() ;
308 
309     /**
310 	 * 	The LeavePlan object associated with an EarnCode
311 	 * 
312 	 * <p>
313 	 * leavePlanObj of an EarnCode
314 	 * <p>
315 	 * 
316 	 * @return leavePlanObj for EarnCode
317 	 */	
318 	public LeavePlanContract getLeavePlanObj();
319 }