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 }