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.calendar;
017
018 import java.util.Date;
019
020 import org.joda.time.DateTime;
021 import org.joda.time.LocalDate;
022 import org.joda.time.LocalDateTime;
023 import org.joda.time.LocalTime;
024 import org.kuali.hr.core.KPMEConstants;
025 import org.kuali.hr.time.service.base.TkServiceLocator;
026 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
027
028 /**
029 * This class uses java.sql.Time and java.sql.Date because for each respective component
030 * we are only interested in a partial Date or Time, that is for example:
031 * <p/>
032 * 3:55 pm (at any date)
033 * 6/22/2010 (at any time)
034 *
035 * Make sure you are aware of whether or not you need a Local Relative time or
036 * an absolute server time.
037 *
038 * Local Relative Time Methods: (Time/Date without Timezone)
039 *
040 * LocalDateTime : getBeginLocalDateTime()
041 * LocalDateTime : getEndLocalDateTime()
042 *
043 * Absolute Methods:
044 *
045 * java.util.Date : getEndPeriodDateTime()
046 * java.util.Date : getBeginPeriodDateTime()
047 *
048 */
049 public class CalendarEntries extends PersistableBusinessObjectBase implements Comparable<CalendarEntries>{
050
051 private static final long serialVersionUID = -1977756526579659122L;
052
053 public static final String CACHE_NAME = KPMEConstants.APPLICATION_NAMESPACE_CODE + "/" + "CalendarEntries";
054
055 private String hrCalendarEntriesId;
056 private String hrCalendarId;
057 private String calendarName;
058
059 private Date beginPeriodDateTime;
060 private Date endPeriodDateTime;
061 private Date batchInitiateDateTime;
062 private Date batchEndPayPeriodDateTime;
063 private Date batchEmployeeApprovalDateTime;
064 private Date batchSupervisorApprovalDateTime;
065
066 private Calendar calendarObj;
067
068 public String getHrCalendarId() {
069 calendarObj = TkServiceLocator.getCalendarService().getCalendarByGroup(this.getCalendarName());
070 if (calendarObj != null) {
071 this.setHrCalendarId(calendarObj.getHrCalendarId());
072 }
073 return hrCalendarId;
074 }
075
076 public void setHrCalendarId(String hrCalendarId) {
077 this.hrCalendarId = hrCalendarId;
078 }
079
080 public String getHrCalendarEntriesId() {
081 return hrCalendarEntriesId;
082 }
083
084 public void setHrCalendarEntriesId(String hrCalendarEntriesId) {
085 this.hrCalendarEntriesId = hrCalendarEntriesId;
086 }
087
088 public String getCalendarName() {
089 return calendarName;
090 }
091
092 public void setCalendarName(String calendarName) {
093 this.calendarName = calendarName;
094 }
095
096 public Date getBeginPeriodDateTime() {
097 return beginPeriodDateTime;
098 }
099
100 public void setBeginPeriodDateTime(Date beginPeriodDateTime) {
101 this.beginPeriodDateTime = beginPeriodDateTime;
102 }
103
104 /**
105 * Provides the Begin Period time without timezone information, used for relative calculations.
106 *
107 * @return A LocalDateTime representation of the begin period date/time.
108 */
109 public LocalDateTime getBeginLocalDateTime() {
110 return new DateTime(beginPeriodDateTime).toLocalDateTime();
111 }
112
113 public java.sql.Date getBeginPeriodDate() {
114 java.sql.Date beginPeriodDate = null;
115
116 if (beginPeriodDateTime != null) {
117 beginPeriodDate = new java.sql.Date(beginPeriodDateTime.getTime());
118 }
119
120 return beginPeriodDate;
121 }
122
123 public void setBeginPeriodDate(java.sql.Date beginPeriodDate) {
124 DateTime dateTime = new DateTime(beginPeriodDateTime);
125 LocalDate localDate = new LocalDate(beginPeriodDate);
126 LocalTime localTime = new LocalTime(beginPeriodDateTime);
127 beginPeriodDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
128 }
129
130 public java.sql.Time getBeginPeriodTime() {
131 java.sql.Time beginPeriodTime = null;
132
133 if (beginPeriodDateTime != null) {
134 beginPeriodTime = new java.sql.Time(beginPeriodDateTime.getTime());
135 }
136
137 return beginPeriodTime;
138 }
139
140 public void setBeginPeriodTime(java.sql.Time beginPeriodTime) {
141 DateTime dateTime = new DateTime(beginPeriodDateTime);
142 LocalDate localDate = new LocalDate(beginPeriodDateTime);
143 LocalTime localTime = new LocalTime(beginPeriodTime);
144 beginPeriodDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
145 }
146
147 public java.util.Date getEndPeriodDateTime() {
148 return endPeriodDateTime;
149 }
150
151 public void setEndPeriodDateTime(Date endPeriodDateTime) {
152 this.endPeriodDateTime = endPeriodDateTime;
153 }
154
155 /**
156 * Provides the End Period time without timezone information, used for relative calculations.
157 *
158 * @return A LocalDateTime representation of the end period date/time.
159 */
160 public LocalDateTime getEndLocalDateTime() {
161 return new DateTime(endPeriodDateTime).toLocalDateTime();
162 }
163
164 public java.sql.Date getEndPeriodDate() {
165 java.sql.Date endPeriodDate = null;
166
167 if (endPeriodDateTime != null) {
168 endPeriodDate = new java.sql.Date(endPeriodDateTime.getTime());
169 }
170
171 return endPeriodDate;
172 }
173
174 public void setEndPeriodDate(java.sql.Date endPeriodDate) {
175 DateTime dateTime = new DateTime(endPeriodDateTime);
176 LocalDate localDate = new LocalDate(endPeriodDate);
177 LocalTime localTime = new LocalTime(endPeriodDateTime);
178 endPeriodDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
179 }
180
181 public java.sql.Time getEndPeriodTime() {
182 java.sql.Time endPeriodTime = null;
183
184 if (endPeriodDateTime != null) {
185 endPeriodTime = new java.sql.Time(endPeriodDateTime.getTime());
186 }
187
188 return endPeriodTime;
189 }
190
191 public void setEndPeriodTime(java.sql.Time endPeriodDate) {
192 DateTime dateTime = new DateTime(endPeriodDateTime);
193 LocalDate localDate = new LocalDate(endPeriodDateTime);
194 LocalTime localTime = new LocalTime(endPeriodDate);
195 endPeriodDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
196 }
197
198 public Date getBatchInitiateDateTime() {
199 return batchInitiateDateTime;
200 }
201
202 public void setBatchInitiateDateTime(Date batchInitiateDateTime) {
203 this.batchInitiateDateTime = batchInitiateDateTime;
204 }
205
206 public java.sql.Date getBatchInitiateDate() {
207 java.sql.Date batchInitiateDate = null;
208
209 if (batchInitiateDateTime != null) {
210 batchInitiateDate = new java.sql.Date(batchInitiateDateTime.getTime());
211 }
212
213 return batchInitiateDate;
214 }
215
216 public void setBatchInitiateDate(java.sql.Date batchInitiateDate) {
217 DateTime dateTime = new DateTime(batchInitiateDateTime);
218 LocalDate localDate = new LocalDate(batchInitiateDate);
219 LocalTime localTime = new LocalTime(batchInitiateDateTime);
220 batchInitiateDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
221 }
222
223 public java.sql.Time getBatchInitiateTime() {
224 java.sql.Time batchInitiateTime = null;
225
226 if (batchInitiateDateTime != null) {
227 batchInitiateTime = new java.sql.Time(batchInitiateDateTime.getTime());
228 }
229
230 return batchInitiateTime;
231 }
232
233 public void setBatchInitiateTime(java.sql.Time batchInitiateDate) {
234 DateTime dateTime = new DateTime(batchInitiateDateTime);
235 LocalDate localDate = new LocalDate(batchInitiateDateTime);
236 LocalTime localTime = new LocalTime(batchInitiateDate);
237 batchInitiateDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
238 }
239
240 public Date getBatchEndPayPeriodDateTime() {
241 return batchEndPayPeriodDateTime;
242 }
243
244 public void setBatchEndPayPeriodDateTime(Date batchEndPayPeriodDateTime) {
245 this.batchEndPayPeriodDateTime = batchEndPayPeriodDateTime;
246 }
247
248 public java.sql.Date getBatchEndPayPeriodDate() {
249 java.sql.Date batchEndPayPeriodDate = null;
250
251 if (batchEndPayPeriodDateTime != null) {
252 batchEndPayPeriodDate = new java.sql.Date(batchEndPayPeriodDateTime.getTime());
253 }
254
255 return batchEndPayPeriodDate;
256 }
257
258 public void setBatchEndPayPeriodDate(java.sql.Date batchEndPayPeriodDate) {
259 DateTime dateTime = new DateTime(batchEndPayPeriodDateTime);
260 LocalDate localDate = new LocalDate(batchEndPayPeriodDate);
261 LocalTime localTime = new LocalTime(batchEndPayPeriodDateTime);
262 batchEndPayPeriodDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
263 }
264
265 public java.sql.Time getBatchEndPayPeriodTime() {
266 java.sql.Time batchEndPayPeriodTime = null;
267
268 if (batchEndPayPeriodDateTime != null) {
269 batchEndPayPeriodTime = new java.sql.Time(batchEndPayPeriodDateTime.getTime());
270 }
271
272 return batchEndPayPeriodTime;
273 }
274
275 public void setBatchEndPayPeriodTime(java.sql.Time batchEndPayPeriodDate) {
276 DateTime dateTime = new DateTime(batchEndPayPeriodDateTime);
277 LocalDate localDate = new LocalDate(batchEndPayPeriodDateTime);
278 LocalTime localTime = new LocalTime(batchEndPayPeriodDate);
279 batchEndPayPeriodDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
280 }
281
282 public Date getBatchEmployeeApprovalDateTime() {
283 return batchEmployeeApprovalDateTime;
284 }
285
286 public void setBatchEmployeeApprovalDateTime(Date batchEmployeeApprovalDateTime) {
287 this.batchEmployeeApprovalDateTime = batchEmployeeApprovalDateTime;
288 }
289
290 public java.sql.Date getBatchEmployeeApprovalDate() {
291 java.sql.Date batchEmployeeApprovalDate = null;
292
293 if (batchEmployeeApprovalDateTime != null) {
294 batchEmployeeApprovalDate = new java.sql.Date(batchEmployeeApprovalDateTime.getTime());
295 }
296
297 return batchEmployeeApprovalDate;
298 }
299
300 public void setBatchEmployeeApprovalDate(java.sql.Date batchEmployeeApprovalDate) {
301 DateTime dateTime = new DateTime(batchEmployeeApprovalDateTime);
302 LocalDate localDate = new LocalDate(batchEmployeeApprovalDate);
303 LocalTime localTime = new LocalTime(batchEmployeeApprovalDateTime);
304 batchEmployeeApprovalDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
305 }
306
307 public java.sql.Time getBatchEmployeeApprovalTime() {
308 java.sql.Time batchEmployeeApprovalTime = null;
309
310 if (batchEmployeeApprovalDateTime != null) {
311 batchEmployeeApprovalTime = new java.sql.Time(batchEmployeeApprovalDateTime.getTime());
312 }
313
314 return batchEmployeeApprovalTime;
315 }
316
317 public void setBatchEmployeeApprovalTime(java.sql.Time batchEmployeeApprovalDate) {
318 DateTime dateTime = new DateTime(batchEmployeeApprovalDateTime);
319 LocalDate localDate = new LocalDate(batchEmployeeApprovalDateTime);
320 LocalTime localTime = new LocalTime(batchEmployeeApprovalDate);
321 batchEmployeeApprovalDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
322 }
323
324 public Date getBatchSupervisorApprovalDateTime() {
325 return batchSupervisorApprovalDateTime;
326 }
327
328 public void setBatchSupervisorApprovalDateTime(Date batchSupervisorApprovalDateTime) {
329 this.batchSupervisorApprovalDateTime = batchSupervisorApprovalDateTime;
330 }
331
332 public java.sql.Date getBatchSupervisorApprovalDate() {
333 java.sql.Date batchSupervisorApprovalDate = null;
334
335 if (batchSupervisorApprovalDateTime != null) {
336 batchSupervisorApprovalDate = new java.sql.Date(batchSupervisorApprovalDateTime.getTime());
337 }
338
339 return batchSupervisorApprovalDate;
340 }
341
342 public void setBatchSupervisorApprovalDate(java.sql.Date batchSupervisorApprovalDate) {
343 DateTime dateTime = new DateTime(batchSupervisorApprovalDateTime);
344 LocalDate localDate = new LocalDate(batchSupervisorApprovalDate);
345 LocalTime localTime = new LocalTime(batchSupervisorApprovalDateTime);
346 batchSupervisorApprovalDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
347 }
348
349 public java.sql.Time getBatchSupervisorApprovalTime() {
350 java.sql.Time batchSupervisorApprovalTime = null;
351
352 if (batchSupervisorApprovalDateTime != null) {
353 batchSupervisorApprovalTime = new java.sql.Time(batchSupervisorApprovalDateTime.getTime());
354 }
355
356 return batchSupervisorApprovalTime;
357 }
358
359 public void setBatchSupervisorApprovalTime(java.sql.Time batchSupervisorApprovalDate) {
360 DateTime dateTime = new DateTime(batchSupervisorApprovalDateTime);
361 LocalDate localDate = new LocalDate(batchSupervisorApprovalDateTime);
362 LocalTime localTime = new LocalTime(batchSupervisorApprovalDate);
363 batchSupervisorApprovalDateTime = localDate.toDateTime(localTime, dateTime.getZone()).toDate();
364 }
365
366 public Calendar getCalendarObj() {
367 return calendarObj;
368 }
369
370 public void setCalendarObj(Calendar calendarObj) {
371 this.calendarObj = calendarObj;
372 }
373
374 public int compareTo(CalendarEntries pce) {
375 return this.getBeginPeriodDate().compareTo(pce.getBeginPeriodDate());
376 }
377
378 }