001 /**
002 * Copyright 2004-2013 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.hr.time.shiftdiff.rule;
017
018 import java.math.BigDecimal;
019 import java.sql.Time;
020
021 import org.kuali.hr.core.KPMEConstants;
022 import org.kuali.hr.location.Location;
023 import org.kuali.hr.paygrade.PayGrade;
024 import org.kuali.hr.time.calendar.Calendar;
025 import org.kuali.hr.time.earncode.EarnCode;
026 import org.kuali.hr.time.earncodegroup.EarnCodeGroup;
027 import org.kuali.hr.time.rule.TkRule;
028 import org.kuali.hr.time.salgroup.SalGroup;
029
030 public class ShiftDifferentialRule extends TkRule {
031
032 private static final long serialVersionUID = -3990672795815968915L;
033
034 public static final String CACHE_NAME = KPMEConstants.APPLICATION_NAMESPACE_CODE + "/" + "ShiftDifferentialRule";
035
036 private String tkShiftDiffRuleId;
037 private String location;
038 private String hrSalGroup;
039 private String payGrade;
040 private String earnCode;
041 private Time beginTime;
042 private Time endTime;
043 private BigDecimal minHours;
044 private boolean sunday;
045 private boolean monday;
046 private boolean tuesday;
047 private boolean wednesday;
048 private boolean thursday;
049 private boolean friday;
050 private boolean saturday;
051 private String fromEarnGroup;
052 private String pyCalendarGroup;
053 private BigDecimal maxGap; // Gap is in HOURS
054 private String userPrincipalId;
055
056 private String hrSalGroupId;
057 private String hrLocationId;
058 private String hrPayGradeId;
059
060 private boolean history;
061
062 private EarnCode earnCodeObj;
063 private SalGroup salGroupObj;
064 private EarnCodeGroup fromEarnGroupObj;
065 private Calendar payCalendar;
066 private Location locationObj;
067 private PayGrade payGradeObj;
068
069 public String getTkShiftDiffRuleId() {
070 return tkShiftDiffRuleId;
071 }
072
073 public void setTkShiftDiffRuleId(String tkShiftDiffRuleId) {
074 this.tkShiftDiffRuleId = tkShiftDiffRuleId;
075 }
076
077 public String getLocation() {
078 return location;
079 }
080
081 public void setLocation(String location) {
082 this.location = location;
083 }
084
085 public String getPayGrade() {
086 return payGrade;
087 }
088
089 public void setPayGrade(String payGrade) {
090 this.payGrade = payGrade;
091 }
092
093 public String getEarnCode() {
094 return earnCode;
095 }
096
097 public void setEarnCode(String earnCode) {
098 this.earnCode = earnCode;
099 }
100
101 public BigDecimal getMinHours() {
102 return minHours;
103 }
104
105 public void setMinHours(BigDecimal minHours) {
106 this.minHours = minHours;
107 }
108
109 /**
110 * @return The maximum gap, in hours.
111 */
112 public BigDecimal getMaxGap() {
113 return maxGap;
114 }
115
116 /**
117 *
118 * @param maxGap The number of hours that can be between one time block and another for the rule to consider it part of the same shift.
119 */
120 public void setMaxGap(BigDecimal maxGap) {
121 this.maxGap = maxGap;
122 }
123
124 public String getUserPrincipalId() {
125 return userPrincipalId;
126 }
127
128 public void setUserPrincipalId(String userPrincipalId) {
129 this.userPrincipalId = userPrincipalId;
130 }
131
132 public String getHrSalGroup() {
133 return hrSalGroup;
134 }
135
136 public void setHrSalGroup(String hrSalGroup) {
137 this.hrSalGroup = hrSalGroup;
138 }
139
140 public String getPyCalendarGroup() {
141 return pyCalendarGroup;
142 }
143
144 public void setPyCalendarGroup(String pyCalendarGroup) {
145 this.pyCalendarGroup = pyCalendarGroup;
146 }
147
148 public Time getBeginTime() {
149 return beginTime;
150 }
151
152 public void setBeginTime(Time beginTime) {
153 this.beginTime = beginTime;
154 }
155
156 public Time getEndTime() {
157 return endTime;
158 }
159
160 public void setEndTime(Time endTime) {
161 this.endTime = endTime;
162 }
163
164 public String getFromEarnGroup() {
165 return fromEarnGroup;
166 }
167
168 public void setFromEarnGroup(String fromEarnGroup) {
169 this.fromEarnGroup = fromEarnGroup;
170 }
171
172 public boolean isSunday() {
173 return sunday;
174 }
175
176 public void setSunday(boolean sunday) {
177 this.sunday = sunday;
178 }
179
180 public boolean isMonday() {
181 return monday;
182 }
183
184 public void setMonday(boolean monday) {
185 this.monday = monday;
186 }
187
188 public boolean isTuesday() {
189 return tuesday;
190 }
191
192 public void setTuesday(boolean tuesday) {
193 this.tuesday = tuesday;
194 }
195
196 public boolean isWednesday() {
197 return wednesday;
198 }
199
200 public void setWednesday(boolean wednesday) {
201 this.wednesday = wednesday;
202 }
203
204 public boolean isThursday() {
205 return thursday;
206 }
207
208 public void setThursday(boolean thursday) {
209 this.thursday = thursday;
210 }
211
212 public boolean isFriday() {
213 return friday;
214 }
215
216 public void setFriday(boolean friday) {
217 this.friday = friday;
218 }
219
220 public boolean isSaturday() {
221 return saturday;
222 }
223
224 public void setSaturday(boolean saturday) {
225 this.saturday = saturday;
226 }
227
228 public EarnCode getEarnCodeObj() {
229 return earnCodeObj;
230 }
231
232 public void setEarnCodeObj(EarnCode earnCodeObj) {
233 this.earnCodeObj = earnCodeObj;
234 }
235
236 public SalGroup getSalGroupObj() {
237 return salGroupObj;
238 }
239
240 public void setSalGroupObj(SalGroup salGroupObj) {
241 this.salGroupObj = salGroupObj;
242 }
243
244 public EarnCodeGroup getFromEarnGroupObj() {
245 return fromEarnGroupObj;
246 }
247
248 public void setFromEarnGroupObj(EarnCodeGroup fromEarnGroupObj) {
249 this.fromEarnGroupObj = fromEarnGroupObj;
250 }
251
252 public Calendar getPayCalendar() {
253 return payCalendar;
254 }
255
256 public void setPayCalendar(Calendar payCalendar) {
257 this.payCalendar = payCalendar;
258 }
259
260 public Location getLocationObj() {
261 return locationObj;
262 }
263
264 public void setLocationObj(Location locationObj) {
265 this.locationObj = locationObj;
266 }
267
268 public PayGrade getPayGradeObj() {
269 return payGradeObj;
270 }
271
272 public void setPayGradeObj(PayGrade payGradeObj) {
273 this.payGradeObj = payGradeObj;
274 }
275
276 public String getHrSalGroupId() {
277 return hrSalGroupId;
278 }
279
280 public void setHrSalGroupId(String hrSalGroupId) {
281 this.hrSalGroupId = hrSalGroupId;
282 }
283
284 public String getHrLocationId() {
285 return hrLocationId;
286 }
287
288 public void setHrLocationId(String hrLocationId) {
289 this.hrLocationId = hrLocationId;
290 }
291
292 public String getHrPayGradeId() {
293 return hrPayGradeId;
294 }
295
296 public void setHrPayGradeId(String hrPayGradeId) {
297 this.hrPayGradeId = hrPayGradeId;
298 }
299
300 @Override
301 public String getUniqueKey() {
302 return location + "_" + hrSalGroup + "_" + payGrade;
303 }
304
305 @Override
306 public String getId() {
307 return getTkShiftDiffRuleId();
308 }
309
310 @Override
311 public void setId(String id) {
312 setTkShiftDiffRuleId(id);
313 }
314
315 public boolean isHistory() {
316 return history;
317 }
318
319 public void setHistory(boolean history) {
320 this.history = history;
321 }
322
323 }