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