001 /**
002 * Copyright 2004-2012 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 org.kuali.hr.time.holidaycalendar.HolidayCalendar;
019 import org.kuali.hr.time.holidaycalendar.HolidayCalendarDateEntry;
020 import org.kuali.hr.time.principal.PrincipalHRAttributes;
021 import org.kuali.hr.time.service.base.TkServiceLocator;
022 import org.kuali.hr.time.timeblock.TimeBlock;
023 import org.kuali.hr.time.timeblock.TimeHourDetail;
024 import org.kuali.hr.time.util.TKContext;
025 import org.kuali.hr.time.util.TkConstants;
026 import org.kuali.hr.time.workflow.TimesheetDocumentHeader;
027
028 import java.util.List;
029
030 public class TimeHourDetailRenderer {
031 private TimeHourDetail timeHourDetail;
032 private boolean overtimeEarnCode;
033
034 public TimeHourDetailRenderer(TimeHourDetail d) {
035 this.timeHourDetail = d;
036 List<String> ovtEarnCodes = TkServiceLocator.getEarnCodeService().getOvertimeEarnCodesStrs(TKContext.getCurrentTimesheetDocument().getAsOfDate());
037 setOvertimeEarnCode(ovtEarnCodes.contains(d.getEarnCode()));
038 }
039
040 public TimeHourDetail getTimeHourDetail() {
041 return timeHourDetail;
042 }
043
044 public String getTkTimeHourDetailId() {
045 return timeHourDetail.getTkTimeHourDetailId();
046 }
047
048 public String getTitle() {
049 return timeHourDetail.getEarnCode();
050 }
051
052 public String getHours() {
053 return timeHourDetail.getHours().toString();
054 }
055
056 public String getAmount() {
057 return timeHourDetail.getAmount().toString();
058 }
059
060 public String getHolidayName() {
061 HolidayCalendarDateEntry holidayCalendarDateEntry = null;
062 String holidayDesc = "";
063 TimeBlock timeBlock = TkServiceLocator.getTimeBlockService().getTimeBlock(timeHourDetail.getTkTimeBlockId());
064
065 if ( timeBlock != null ){
066 if(timeBlock.getEarnCode().equals(TkConstants.HOLIDAY_EARN_CODE)) {
067 String documentId = timeBlock.getDocumentId();
068 TimesheetDocumentHeader docHeader = TkServiceLocator.getTimesheetDocumentHeaderService().getDocumentHeader(documentId);
069 PrincipalHRAttributes principalCalendar = TkServiceLocator.getPrincipalHRAttributeService().getPrincipalCalendar(docHeader.getPrincipalId(), new java.sql.Date(timeBlock.getBeginDate().getTime()));
070
071 if ( principalCalendar.getHolidayCalendarGroup() != null ){
072 HolidayCalendar holidayCalendar = TkServiceLocator.getHolidayCalendarService().getHolidayCalendarByGroup(principalCalendar.getHolidayCalendarGroup());
073
074 if ( holidayCalendar != null ){
075 holidayCalendarDateEntry = TkServiceLocator.getHolidayCalendarService().getHolidayCalendarDateEntryByDate(holidayCalendar.getHrHolidayCalendarId(), timeBlock.getBeginDate());
076
077 if(holidayCalendarDateEntry != null) {
078 holidayDesc = holidayCalendarDateEntry.getHolidayDescr();
079 }
080 }
081 }
082 }
083 }
084
085 return holidayDesc;
086 }
087
088 public boolean isOvertimeEarnCode() {
089 return overtimeEarnCode;
090 }
091
092 public void setOvertimeEarnCode(boolean overtimeEarnCode) {
093 this.overtimeEarnCode = overtimeEarnCode;
094 }
095
096 }