flexible daily work times
This commit is contained in:
@ -22,7 +22,7 @@ apply plugin: 'eclipse'
|
|||||||
apply plugin: 'nu.studer.jooq'
|
apply plugin: 'nu.studer.jooq'
|
||||||
|
|
||||||
group = 'jottyfan'
|
group = 'jottyfan'
|
||||||
version = '1.0.6'
|
version = '1.0.7'
|
||||||
|
|
||||||
description = """timetrack"""
|
description = """timetrack"""
|
||||||
|
|
||||||
|
@ -46,9 +46,12 @@ import net.bootsfaces.component.fullCalendar.FullCalendarEventList;
|
|||||||
*/
|
*/
|
||||||
public class DoneGateway extends JooqGateway {
|
public class DoneGateway extends JooqGateway {
|
||||||
private final static Logger LOGGER = LogManager.getLogger(DoneGateway.class);
|
private final static Logger LOGGER = LogManager.getLogger(DoneGateway.class);
|
||||||
|
private final Integer requested;
|
||||||
|
|
||||||
public DoneGateway(JooqFacesContext facesContext) {
|
public DoneGateway(JooqFacesContext facesContext) {
|
||||||
super(facesContext);
|
super(facesContext);
|
||||||
|
String dailyMinutes = facesContext.getExternalContext().getInitParameter("requestedDailyMinutes");
|
||||||
|
this.requested = dailyMinutes == null ? 480 : Integer.valueOf(dailyMinutes); // defaults to 8 hours/day
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -279,9 +282,9 @@ public class DoneGateway extends JooqGateway {
|
|||||||
String endTime = r.get(V_TOTALOFDAY.ENDTIME);
|
String endTime = r.get(V_TOTALOFDAY.ENDTIME);
|
||||||
String workTime = r.get(V_TOTALOFDAY.WORKTIME);
|
String workTime = r.get(V_TOTALOFDAY.WORKTIME);
|
||||||
String breakTime = r.get(V_TOTALOFDAY.BREAKTIME);
|
String breakTime = r.get(V_TOTALOFDAY.BREAKTIME);
|
||||||
return new WholeDaySummaryBean(startTime, endTime, workTime, breakTime);
|
return new WholeDaySummaryBean(startTime, endTime, workTime, breakTime, requested);
|
||||||
}
|
}
|
||||||
return new WholeDaySummaryBean("", "", "", "");
|
return new WholeDaySummaryBean("", "", "", "", requested);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,13 +10,15 @@ public class WholeDaySummaryBean {
|
|||||||
private final String endTime;
|
private final String endTime;
|
||||||
private final String workTime;
|
private final String workTime;
|
||||||
private final String breakTime;
|
private final String breakTime;
|
||||||
|
private final Integer dayrequests;
|
||||||
|
|
||||||
public WholeDaySummaryBean(String startTime, String endTime, String workTime, String breakTime) {
|
public WholeDaySummaryBean(String startTime, String endTime, String workTime, String breakTime, Integer dayrequests) {
|
||||||
super();
|
super();
|
||||||
this.startTime = startTime;
|
this.startTime = startTime;
|
||||||
this.endTime = endTime;
|
this.endTime = endTime;
|
||||||
this.workTime = workTime;
|
this.workTime = workTime;
|
||||||
this.breakTime = breakTime;
|
this.breakTime = breakTime;
|
||||||
|
this.dayrequests = dayrequests == null ? 468 : dayrequests; // 7:48 by default
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getOvertime() {
|
public String getOvertime() {
|
||||||
@ -25,7 +27,7 @@ public class WholeDaySummaryBean {
|
|||||||
Integer hours = Integer.valueOf(workTime.substring(0, workTime.indexOf(":")));
|
Integer hours = Integer.valueOf(workTime.substring(0, workTime.indexOf(":")));
|
||||||
Integer minutes = Integer.valueOf(workTime.substring(workTime.indexOf(":") + 1));
|
Integer minutes = Integer.valueOf(workTime.substring(workTime.indexOf(":") + 1));
|
||||||
Integer wholeMinutes = hours * 60 + minutes;
|
Integer wholeMinutes = hours * 60 + minutes;
|
||||||
Integer overtime = wholeMinutes - (7 * 60 + 48);
|
Integer overtime = wholeMinutes - dayrequests;
|
||||||
Integer overtimeHours = overtime / 60;
|
Integer overtimeHours = overtime / 60;
|
||||||
Integer overtimeMinutes = overtime % 60;
|
Integer overtimeMinutes = overtime % 60;
|
||||||
StringBuilder buf = new StringBuilder();
|
StringBuilder buf = new StringBuilder();
|
||||||
@ -42,7 +44,13 @@ public class WholeDaySummaryBean {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "-07:48";
|
Integer requestHours = dayrequests / 60;
|
||||||
|
Integer requestMinutes = dayrequests % 60;
|
||||||
|
StringBuilder buf = new StringBuilder("-");
|
||||||
|
buf.append(requestHours < 10 ? "0" : "").append(requestHours);
|
||||||
|
buf.append(":");
|
||||||
|
buf.append(requestMinutes < 10 ? "0" : "").append(requestMinutes);
|
||||||
|
return buf.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getStartTime() {
|
public String getStartTime() {
|
||||||
|
@ -14,11 +14,12 @@ import de.jottyfan.timetrack.modules.done.WholeDaySummaryBean;
|
|||||||
public class TestWholeDaySummaryBean {
|
public class TestWholeDaySummaryBean {
|
||||||
@Test
|
@Test
|
||||||
public void testGetOvertime() {
|
public void testGetOvertime() {
|
||||||
assertEquals("00:00", new WholeDaySummaryBean("", "", "07:48", "").getOvertime());
|
assertEquals("00:00", new WholeDaySummaryBean("", "", "07:48", "", 468).getOvertime());
|
||||||
assertEquals("00:12", new WholeDaySummaryBean("", "", "08:00", "").getOvertime());
|
assertEquals("00:12", new WholeDaySummaryBean("", "", "08:00", "", 468).getOvertime());
|
||||||
assertEquals("-00:48", new WholeDaySummaryBean("", "", "07:00", "").getOvertime());
|
assertEquals("-00:48", new WholeDaySummaryBean("", "", "07:00", "", 468).getOvertime());
|
||||||
assertEquals("-07:48", new WholeDaySummaryBean("", "", "00:00", "").getOvertime());
|
assertEquals("-07:48", new WholeDaySummaryBean("", "", "00:00", "", 468).getOvertime());
|
||||||
assertEquals("-07:48", new WholeDaySummaryBean("", "", "", "").getOvertime());
|
assertEquals("-07:48", new WholeDaySummaryBean("", "", "", "", 468).getOvertime());
|
||||||
assertEquals("", new WholeDaySummaryBean("", "", "a:b", "").getOvertime());
|
assertEquals("", new WholeDaySummaryBean("", "", "a:b", "", 468).getOvertime());
|
||||||
|
assertEquals("00:00", new WholeDaySummaryBean("", "", "08:00", "", 480).getOvertime());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user