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.detail.web; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.kuali.hr.time.calendar.TkCalendar; 020 import org.kuali.hr.time.service.base.TkServiceLocator; 021 import org.kuali.hr.time.timeblock.TimeBlock; 022 import org.kuali.hr.time.timesummary.TimeSummary; 023 import org.kuali.hr.time.util.TKUtils; 024 import org.kuali.hr.time.util.TkConstants; 025 026 import java.text.SimpleDateFormat; 027 import java.util.*; 028 029 public class TimeDetailActionForm extends TimeDetailActionFormBase { 030 031 private static SimpleDateFormat SDF_NO_TZ = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy"); 032 033 /** 034 * 035 */ 036 private static final long serialVersionUID = 5277197287612035236L; 037 038 039 private TimeBlock timeBlock; 040 private String clockAction; 041 private String serverTimezone; 042 private String userTimezone; 043 private TimeSummary timeSummary; 044 private Map<String, String> assignStyleClassMap = new HashMap<String, String>(); 045 private String timeBlockString; 046 private TkCalendar calendar; 047 private String docEditable; 048 private String workingOnItsOwn; // true if the user is working on its own timesheet 049 private List<String> overtimeEarnCodes = new ArrayList<String>(); 050 private String tkTimeHourDetailId; 051 private String isLunchDeleted; 052 private boolean canAddTimeblock; 053 private String spanningWeeks; // KPME-1446 054 055 public String getSpanningWeeks() { 056 return spanningWeeks; 057 } 058 059 public void setSpanningWeeks(String spanningWeeks) { 060 this.spanningWeeks = spanningWeeks; 061 } 062 063 064 public TkCalendar getTkCalendar() { 065 return calendar; 066 } 067 068 public void setTkCalendar(TkCalendar calendar) { 069 this.calendar = calendar; 070 } 071 072 public List<TimeBlock> getTimeBlockList() { 073 return this.getTimesheetDocument().getTimeBlocks(); 074 } 075 076 // for Actual Time Inquiry display only 077 public List<TimeBlock> getClockLogTimeBlockList() { 078 List<TimeBlock> clockList = new ArrayList<TimeBlock>(); 079 for(TimeBlock tb : this.getTimeBlockList()){ 080 if(tb.getClockLogCreated()) { 081 clockList.add(tb); 082 } 083 } 084 return clockList; 085 } 086 087 public TimeBlock getTimeBlock() { 088 return timeBlock; 089 } 090 091 public void setTimeBlock(TimeBlock timeBlock) { 092 this.timeBlock = timeBlock; 093 } 094 095 public String getClockAction() { 096 return clockAction; 097 } 098 099 public void setClockAction(String clockAction) { 100 this.clockAction = clockAction; 101 } 102 103 public String getIsVirtualWorkDay() { 104 Calendar cal = Calendar.getInstance(); 105 cal.setTime(getBeginPeriodDateTime()); 106 return Boolean.toString(TKUtils.isVirtualWorkDay(cal)); 107 } 108 109 public TimeSummary getTimeSummary() { 110 return timeSummary; 111 } 112 113 public void setTimeSummary(TimeSummary timeSummary) { 114 this.timeSummary = timeSummary; 115 } 116 117 public String getServerTimezone() { 118 return TKUtils.getSystemTimeZone(); 119 } 120 121 public String getUserTimezone() { 122 return TkServiceLocator.getTimezoneService().getUserTimezone(); 123 } 124 125 public Map<String, String> getAssignStyleClassMap() { 126 return assignStyleClassMap; 127 } 128 129 public void setAssignStyleClassMap(Map<String, String> assignStyleClassMap) { 130 this.assignStyleClassMap = assignStyleClassMap; 131 } 132 133 public String getTimeBlockString() { 134 return timeBlockString; 135 } 136 137 public void setTimeBlockString(String timeBlockString) { 138 this.timeBlockString = timeBlockString; 139 } 140 141 public String getBeginPeriodDTNoTZ() { 142 return SDF_NO_TZ.format(this.getBeginPeriodDateTime()); 143 } 144 145 public String getEndPeriodDTNoTZ() { 146 return SDF_NO_TZ.format(this.getEndPeriodDateTime()); 147 } 148 149 public String getDocEditable() { 150 if(StringUtils.isEmpty(docEditable)) { 151 docEditable="false"; 152 } 153 return docEditable; 154 } 155 156 public void setDocEditable(String docEditable) { 157 this.docEditable = docEditable; 158 } 159 160 public List<String> getOvertimeEarnCodes() { 161 return overtimeEarnCodes; 162 } 163 164 public void setOvertimeEarnCodes(List<String> overtimeEarnCodes) { 165 this.overtimeEarnCodes = overtimeEarnCodes; 166 } 167 168 public String getTkTimeHourDetailId() { 169 return tkTimeHourDetailId; 170 } 171 172 public void setTkTimeHourDetailId(String tkTimeHourDetailId) { 173 this.tkTimeHourDetailId = tkTimeHourDetailId; 174 } 175 176 public String getLunchDeleted() { 177 return isLunchDeleted; 178 } 179 180 public void setLunchDeleted(String lunchDeleted) { 181 isLunchDeleted = lunchDeleted; 182 } 183 184 public boolean isCanAddTimeblock() { 185 return TkServiceLocator.getPermissionsService().canAddTimeBlock(); 186 } 187 188 public String getWorkingOnItsOwn() { 189 if(StringUtils.isEmpty(workingOnItsOwn)) { 190 workingOnItsOwn="false"; 191 } 192 return workingOnItsOwn; 193 } 194 195 public void setWorkingOnItsOwn(String workingOnItsOwn) { 196 this.workingOnItsOwn = workingOnItsOwn; 197 } 198 }