Added new features related to the pause
This commit is contained in:
parent
05f727861c
commit
50229d95f2
@ -36,6 +36,8 @@ public class WorkingDay {
|
||||
private int arrivalMinute;
|
||||
private int overtimeHour;
|
||||
private int overtimeMinute;
|
||||
private int pauseStartHour;
|
||||
private int pauseStartMinute;
|
||||
|
||||
private int workingTimeInMinutes;
|
||||
private int pauseTimeInMinutes;
|
||||
|
@ -22,6 +22,8 @@ public class WorkingDayForStats extends WorkingDay {
|
||||
|
||||
private int departureHour;
|
||||
private int departureMinute;
|
||||
private int pauseEndHour;
|
||||
private int pauseEndMinute;
|
||||
private int dayOfWeek;
|
||||
private int remainingOvertimeHours;
|
||||
private int remainingOvertimeMinutes;
|
||||
@ -207,6 +209,8 @@ public class WorkingDayForStats extends WorkingDay {
|
||||
wd.getArrivalMinute(),
|
||||
wd.getOvertimeHour(),
|
||||
wd.getOvertimeMinute(),
|
||||
wd.getPauseStartHour(),
|
||||
wd.getPauseStartMinute(),
|
||||
wd.getWorkingTimeInMinutes(),
|
||||
wd.getPauseTimeInMinutes(),
|
||||
wd.getNote(),
|
||||
@ -216,10 +220,11 @@ public class WorkingDayForStats extends WorkingDay {
|
||||
|
||||
public WorkingDayForStats(String id, int year, int month, int day,
|
||||
int arrivalHour, int arrivalMinute, int overtimeHour,
|
||||
int overtimeMinute, int workingTimeInMinutes,
|
||||
int overtimeMinute, int pauseStartHour, int pauseStartMinute,
|
||||
int workingTimeInMinutes,
|
||||
int pauseTimeInMinutes, String note, boolean timeOff, int forgetOvertime) {
|
||||
super(id, year, month, day, arrivalHour, arrivalMinute, overtimeHour,
|
||||
overtimeMinute, workingTimeInMinutes, pauseTimeInMinutes, note,
|
||||
overtimeMinute, pauseStartHour, pauseStartMinute, workingTimeInMinutes, pauseTimeInMinutes, note,
|
||||
timeOff, forgetOvertime);
|
||||
this.arrival = this.isThisDayTimeOff() ? null :
|
||||
new TTime(arrivalHour, arrivalMinute);
|
||||
@ -234,6 +239,15 @@ public class WorkingDayForStats extends WorkingDay {
|
||||
this.departureHour = this.isThisDayTimeOff() ? -1 : departure.getHour();
|
||||
this.departureMinute =
|
||||
this.isThisDayTimeOff() ? -1 : departure.getMinute();
|
||||
TTime pauseStart = new TTime(this.getPauseStartHour(), this.getPauseStartMinute());
|
||||
TTime pauseEnd = null;
|
||||
if(pause == null) {
|
||||
pauseEnd = pauseStart.cloneInstance();
|
||||
} else {
|
||||
pauseEnd = pauseStart.add(pause);
|
||||
}
|
||||
this.pauseEndHour = pauseEnd.getHour();
|
||||
this.pauseEndMinute = pauseEnd.getMinute();
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.set(Calendar.YEAR, year);
|
||||
cal.set(Calendar.MONTH, month - 1);
|
||||
|
@ -36,7 +36,7 @@ public class WorkingDayRepositorySQLiteImpl implements WorkingDayRepositoryApi {
|
||||
sb
|
||||
.append("INSERT INTO ")
|
||||
.append(WorkingDayTable.TABLE_NAME)
|
||||
.append(" VALUES (?,?,?,?, ?,?,?,?, ?,?,?,?,?)");
|
||||
.append(" VALUES (?,?,?,?, ?,?,?,?, ?,?,?,?,?, ?,?)");
|
||||
|
||||
String sql = sb.toString();
|
||||
|
||||
@ -53,6 +53,8 @@ public class WorkingDayRepositorySQLiteImpl implements WorkingDayRepositoryApi {
|
||||
stmt.setInt(++i, workingDay.getArrivalMinute());
|
||||
stmt.setInt(++i, workingDay.getOvertimeHour());
|
||||
stmt.setInt(++i, workingDay.getOvertimeMinute());
|
||||
stmt.setInt(++i, workingDay.getPauseStartHour());
|
||||
stmt.setInt(++i, workingDay.getPauseStartMinute());
|
||||
//
|
||||
stmt.setInt(++i, workingDay.getWorkingTimeInMinutes());
|
||||
stmt.setInt(++i, workingDay.getPauseTimeInMinutes());
|
||||
@ -153,6 +155,8 @@ public class WorkingDayRepositorySQLiteImpl implements WorkingDayRepositoryApi {
|
||||
.append(WorkingDayTable.ARRIVAL_MINUTE).append("=?, ")
|
||||
.append(WorkingDayTable.OVERTIME_HOUR).append("=?, ")
|
||||
.append(WorkingDayTable.OVERTIME_MINUTE).append("=?, ")
|
||||
.append(WorkingDayTable.PAUSE_START_HOUR).append("=?, ")
|
||||
.append(WorkingDayTable.PAUSE_START_MINUTE).append("=?, ")
|
||||
.append(WorkingDayTable.WORKING_TIME_IN_MINUTES).append("=?, ")
|
||||
.append(WorkingDayTable.PAUSE_TIME_IN_MINUTES).append("=?, ")
|
||||
.append(WorkingDayTable.NOTE).append("=?, ")
|
||||
@ -170,6 +174,9 @@ public class WorkingDayRepositorySQLiteImpl implements WorkingDayRepositoryApi {
|
||||
stmt.setInt(++i, workingDay.getArrivalMinute());
|
||||
stmt.setInt(++i, workingDay.getOvertimeHour());
|
||||
stmt.setInt(++i, workingDay.getOvertimeMinute());
|
||||
stmt.setInt(++i, workingDay.getPauseStartHour());
|
||||
stmt.setInt(++i, workingDay.getPauseStartMinute());
|
||||
//
|
||||
stmt.setInt(++i, workingDay.getWorkingTimeInMinutes());
|
||||
stmt.setInt(++i, workingDay.getPauseTimeInMinutes());
|
||||
stmt.setString(++i, workingDay.getNote());
|
||||
@ -205,6 +212,8 @@ public class WorkingDayRepositorySQLiteImpl implements WorkingDayRepositoryApi {
|
||||
rs.getInt(WorkingDayTable.ARRIVAL_MINUTE),
|
||||
rs.getInt(WorkingDayTable.OVERTIME_HOUR),
|
||||
rs.getInt(WorkingDayTable.OVERTIME_MINUTE),
|
||||
rs.getInt(WorkingDayTable.PAUSE_START_HOUR),
|
||||
rs.getInt(WorkingDayTable.PAUSE_START_MINUTE),
|
||||
rs.getInt(WorkingDayTable.WORKING_TIME_IN_MINUTES),
|
||||
rs.getInt(WorkingDayTable.PAUSE_TIME_IN_MINUTES),
|
||||
rs.getString(WorkingDayTable.NOTE),
|
||||
|
@ -35,6 +35,8 @@ public class WorkingDayTable {
|
||||
public static final String ARRIVAL_MINUTE = "ARRIVAL_MINUTE";
|
||||
public static final String OVERTIME_HOUR = "OVERTIME_HOUR";
|
||||
public static final String OVERTIME_MINUTE = "OVERTIME_MINUTE";
|
||||
public static final String PAUSE_START_HOUR = "PAUSE_START_HOUR";
|
||||
public static final String PAUSE_START_MINUTE = "PAUSE_START_MINUTE";
|
||||
public static final String WORKING_TIME_IN_MINUTES = "WORKING_TIME_IN_MINUTES";
|
||||
public static final String PAUSE_TIME_IN_MINUTES = "PAUSE_TIME_IN_MINUTES";
|
||||
public static final String NOTE = "NOTE";
|
||||
|
@ -256,10 +256,10 @@ public class TimeCalcKeyAdapter extends KeyAdapter {
|
||||
break;
|
||||
}
|
||||
if (increase) {
|
||||
mainWindow.increasePause(changeTTime);
|
||||
mainWindow.increasePauseLength(changeTTime);
|
||||
}
|
||||
if (decrease) {
|
||||
mainWindow.decreasePause(changeTTime);
|
||||
mainWindow.decreasePauseLength(changeTTime);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -115,6 +115,7 @@ public class MainWindow extends TWindow {
|
||||
private final TTextField overtimeTextField;
|
||||
private final TTextField workingTimeTextField;
|
||||
private final TTextField pauseTimeTextField;
|
||||
private final TTextField pauseStartTextField;
|
||||
private final TTextField noteTextField;
|
||||
private final TCheckBox timeOffCheckBox = new TCheckBox("Time off");
|
||||
private final TTextField departureTextField;
|
||||
@ -155,6 +156,7 @@ public class MainWindow extends TWindow {
|
||||
this.overtimeTextField = new TTextField(Constants.DEFAULT_OVERTIME, 50, true, valueMustBeTime);
|
||||
this.workingTimeTextField = new TTextField("08:00", 50, true, valueMustBeTime);
|
||||
this.pauseTimeTextField = new TTextField("00:30", 50, true, valueMustBeTime);
|
||||
this.pauseStartTextField = new TTextField("11:00", 50, true, valueMustBeTime);
|
||||
|
||||
this.noteTextField = new TTextField("", 60);
|
||||
this.departureTextField = new TTextField();
|
||||
@ -569,21 +571,42 @@ public class MainWindow extends TWindow {
|
||||
workingDecreaseButton.setBounds(workingTimeTextField.getX() + workingTimeTextField.getWidth(), workingTimeTextField.getY() + 15, 15, 15);
|
||||
|
||||
//
|
||||
TLabel pauseTimeInMinutesFieldLabel = new TLabel("Pause:", 40);
|
||||
pauseTimeInMinutesFieldLabel.setBoundsFromLeft(workingTimeTextField, 15);
|
||||
TLabel pauseLenghtTimeInMinutesFieldLabel = new TLabel("Pause length:", 80);
|
||||
pauseLenghtTimeInMinutesFieldLabel.setBoundsFromLeft(workingTimeTextField, 15);
|
||||
|
||||
pauseTimeTextField.setBoundsFromLeft(pauseTimeInMinutesFieldLabel);
|
||||
pauseTimeTextField.setBoundsFromLeft(pauseLenghtTimeInMinutesFieldLabel);
|
||||
TButton pauseIncreaseButton = new SmallTButton('+');
|
||||
TButton pauseDecreaseButton = new SmallTButton('-');
|
||||
pauseIncreaseButton.setBounds(pauseTimeTextField.getX() + pauseTimeTextField.getWidth(), pauseTimeTextField.getY(), 15, 15);
|
||||
pauseDecreaseButton.setBounds(pauseTimeTextField.getX() + pauseTimeTextField.getWidth(), pauseTimeTextField.getY() + 15, 15, 15);
|
||||
|
||||
//
|
||||
TLabel noteTextFieldLabel = new TLabel("Note:", 40);
|
||||
noteTextFieldLabel.setBoundsFromLeft(pauseTimeTextField, 10);
|
||||
TLabel pauseStartTimeLabel = new TLabel("Pause start:", 60);
|
||||
pauseStartTimeLabel.setBoundsFromLeft(pauseIncreaseButton, 15);
|
||||
|
||||
pauseStartTextField.setBoundsFromLeft(pauseStartTimeLabel);
|
||||
TButton pauseStartIncreaseButton = new SmallTButton('+');
|
||||
TButton pauseStartDecreaseButton = new SmallTButton('-');
|
||||
pauseStartIncreaseButton.setBounds(pauseStartTextField.getX() + pauseStartTextField.getWidth(), pauseStartTextField.getY(), 15, 15);
|
||||
pauseStartDecreaseButton.setBounds(pauseStartTextField.getX() + pauseStartTextField.getWidth(), pauseStartTextField.getY() + 15, 15, 15);
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
TLabel noteTextFieldLabel = new TLabel("Note:", 80);
|
||||
noteTextFieldLabel.setBoundsFromTop(arrivalTextFieldLabel);
|
||||
|
||||
noteTextField.setBoundsFromLeft(noteTextFieldLabel);
|
||||
timeOffCheckBox.setBoundsFromLeft(noteTextField);
|
||||
|
||||
this.saveButton = new TButton("Save", 180);
|
||||
saveButton.setBounds(
|
||||
pauseDecreaseButton.getX() - SwingUtils.MARGIN,
|
||||
timeOffCheckBox.getY(),
|
||||
noteTextField.getWidth() * 3,
|
||||
noteTextField.getHeight()
|
||||
);
|
||||
//
|
||||
|
||||
if(!allowOnlyBasicFeaturesProperty.getValue()) add(arrivalTextFieldLabel);
|
||||
@ -602,10 +625,14 @@ public class MainWindow extends TWindow {
|
||||
add(workingDecreaseButton);
|
||||
|
||||
if(!allowOnlyBasicFeaturesProperty.getValue()) {
|
||||
add(pauseTimeInMinutesFieldLabel);
|
||||
add(pauseLenghtTimeInMinutesFieldLabel);
|
||||
add(pauseTimeTextField);
|
||||
add(pauseIncreaseButton);
|
||||
add(pauseDecreaseButton);
|
||||
add(pauseStartTimeLabel);
|
||||
add(pauseStartTextField);
|
||||
add(pauseStartIncreaseButton);
|
||||
add(pauseStartDecreaseButton);
|
||||
}
|
||||
|
||||
arrivalIncreaseButton.addActionListener(e -> increaseArrival(TTime.T_TIME_ONE_MINUTE));
|
||||
@ -614,15 +641,17 @@ public class MainWindow extends TWindow {
|
||||
overtimeDecreaseButton.addActionListener(e -> decreaseOvertime(TTime.T_TIME_ONE_MINUTE));
|
||||
workingIncreaseButton.addActionListener(e -> increaseWork(TTime.T_TIME_ONE_MINUTE));
|
||||
workingDecreaseButton.addActionListener(e -> decreaseWork(TTime.T_TIME_ONE_MINUTE));
|
||||
pauseIncreaseButton.addActionListener(e -> increasePause(TTime.T_TIME_ONE_MINUTE));
|
||||
pauseDecreaseButton.addActionListener(e -> decreasePause(TTime.T_TIME_ONE_MINUTE));
|
||||
pauseIncreaseButton.addActionListener(e -> increasePauseLength(TTime.T_TIME_ONE_MINUTE));
|
||||
pauseDecreaseButton.addActionListener(e -> decreasePauseLength(TTime.T_TIME_ONE_MINUTE));
|
||||
pauseStartIncreaseButton.addActionListener(e -> increasePauseStart(TTime.T_TIME_ONE_MINUTE));
|
||||
pauseStartDecreaseButton.addActionListener(e -> decreasePauseStart(TTime.T_TIME_ONE_MINUTE));
|
||||
|
||||
if(!allowOnlyBasicFeaturesProperty.getValue()) add(noteTextFieldLabel);
|
||||
add(noteTextField);
|
||||
add(timeOffCheckBox);
|
||||
//
|
||||
TLabel departureTextFieldLabel = new TLabel("Departure:", 70);
|
||||
departureTextFieldLabel.setBoundsFromTop(arrivalTextFieldLabel);
|
||||
departureTextFieldLabel.setBoundsFromTop(noteTextFieldLabel);
|
||||
|
||||
departureTextField.setBoundsFromLeft(departureTextFieldLabel);
|
||||
departureTextField.setEditable(false);
|
||||
@ -638,8 +667,6 @@ public class MainWindow extends TWindow {
|
||||
|
||||
remainingTextField.setBoundsFromLeft(remainingTextFieldLabel);
|
||||
remainingTextField.setEditable(false);
|
||||
this.saveButton = new TButton("Save", 180);
|
||||
saveButton.setBoundsFromLeft(remainingTextField);
|
||||
//
|
||||
|
||||
if(!allowOnlyBasicFeaturesProperty.getValue()) add(departureTextFieldLabel);
|
||||
@ -901,6 +928,7 @@ public class MainWindow extends TWindow {
|
||||
TTime overtime_ = new TTime(overtimeTextField.getText());
|
||||
TTime work_ = new TTime(workingTimeTextField.getText());
|
||||
TTime pause_ = new TTime(pauseTimeTextField.getText());
|
||||
TTime pauseStart = new TTime(pauseStartTextField.getText());
|
||||
|
||||
Calendar cal = time.asCalendar();
|
||||
int year = cal.get(Calendar.YEAR);
|
||||
@ -922,6 +950,8 @@ public class MainWindow extends TWindow {
|
||||
workingDay.setOvertimeMinute(overtime_.getMinute() * (overtime_.isNegative() ? (-1) : 1));
|
||||
workingDay.setWorkingTimeInMinutes(work_.toTotalMilliseconds() / 1000 / 60);
|
||||
workingDay.setPauseTimeInMinutes(pause_.toTotalMilliseconds() / 1000 / 60);
|
||||
workingDay.setPauseStartHour(pauseStart.getHour());
|
||||
workingDay.setPauseStartMinute(pauseStart.getMinute());
|
||||
workingDay.setNote(noteTextField.getText());
|
||||
workingDay.setTimeOff(timeOffCheckBox.isSelected());
|
||||
workingDay.setForgetOvertime(forgetOvertimeProperty.getValue());
|
||||
@ -941,6 +971,7 @@ public class MainWindow extends TWindow {
|
||||
//
|
||||
workingTimeTextField.valueProperty.setValue(TTime.ofMilliseconds(wd.getWorkingTimeInMinutes() * 60 * 1000).toString().substring(0, 5));
|
||||
pauseTimeTextField.valueProperty.setValue(TTime.ofMilliseconds(wd.getPauseTimeInMinutes() * 60 * 1000).toString().substring(0, 5));
|
||||
pauseStartTextField.valueProperty.setValue(new TTime(wd.getPauseStartHour(), wd.getPauseStartMinute()).toString().substring(0,5));
|
||||
noteTextField.valueProperty.setValue(wd.getNote());
|
||||
timeOffCheckBox.setSelected(wd.isTimeOff());
|
||||
forgetOvertimeProperty.setValue(wd.getForgetOvertime());
|
||||
@ -1630,16 +1661,27 @@ public class MainWindow extends TWindow {
|
||||
workingTimeTextField.valueProperty.setValue(new TTime(this.workingTimeTextField.valueProperty.getValue()).remove(tTime).toString().substring(0, 5));
|
||||
}
|
||||
|
||||
public void increasePause(TTime tTime) {
|
||||
public void increasePauseLength(TTime tTime) {
|
||||
pauseTimeTextField.valueProperty.setValue(new TTime(this.pauseTimeTextField.valueProperty.getValue()).add(tTime).toString().substring(0, 5));
|
||||
}
|
||||
|
||||
public void decreasePause(TTime tTime) {
|
||||
public void decreasePauseLength(TTime tTime) {
|
||||
pauseTimeTextField.valueProperty.setValue(
|
||||
new TTime(this.pauseTimeTextField.valueProperty.getValue())
|
||||
.remove(tTime).toString().substring(0, 5));
|
||||
}
|
||||
|
||||
public void increasePauseStart(TTime tTime) {
|
||||
pauseStartTextField.valueProperty.setValue(new TTime(this.pauseStartTextField.valueProperty.getValue()).add(tTime).toString().substring(0, 5));
|
||||
}
|
||||
|
||||
public void decreasePauseStart(TTime tTime) {
|
||||
pauseStartTextField.valueProperty.setValue(
|
||||
new TTime(this.pauseStartTextField.valueProperty.getValue())
|
||||
.remove(tTime).toString().substring(0, 5));
|
||||
}
|
||||
|
||||
|
||||
public void doSaveButtonClick() {
|
||||
this.saveButton.doClick();
|
||||
}
|
||||
|
@ -341,7 +341,7 @@ public class WorkingDaysWindow extends TWindow {
|
||||
WorkingDay wd = workingDayRepository.read(year, month, day);
|
||||
if (wd == null) {
|
||||
wd = new WorkingDay(WorkingDay.createId(year, month, day),
|
||||
year, month, day, -1, -1, -1, -1, -1, -1,
|
||||
year, month, day, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
"Fictive day", true,0);
|
||||
}
|
||||
workingDaysList.add(wd);
|
||||
@ -383,6 +383,8 @@ public class WorkingDaysWindow extends TWindow {
|
||||
list2.add(THREE_DASHES);
|
||||
list2.add(THREE_DASHES);
|
||||
list2.add(THREE_DASHES);
|
||||
list2.add(THREE_DASHES);
|
||||
list2.add(THREE_DASHES);
|
||||
} else {
|
||||
TTime overtime = new TTime(wdfs.getOvertimeHour(),
|
||||
wdfs.getOvertimeMinute());
|
||||
@ -401,6 +403,13 @@ public class WorkingDaysWindow extends TWindow {
|
||||
list2.add(
|
||||
TTime.ofMinutes(wdfs.getPauseTimeInMinutes()).toString()
|
||||
.substring(0, 5));
|
||||
list2.add(
|
||||
new TTime(wdfs.getPauseStartHour(), wdfs.getPauseStartMinute()).toString()
|
||||
.substring(0, 5));
|
||||
list2.add(
|
||||
new TTime(wdfs.getPauseEndHour(), wdfs.getPauseEndMinute()).toString()
|
||||
.substring(0, 5));
|
||||
|
||||
}
|
||||
list2.add(wdfs.getNote());
|
||||
list2.add(wdfs.isTimeOff() ? YES : NO);
|
||||
@ -430,7 +439,7 @@ public class WorkingDaysWindow extends TWindow {
|
||||
}
|
||||
String[] columns =
|
||||
new String[] {"Day of Week", "Weekend", "Date", "Arrival",
|
||||
"Departure", "Overtime", "Working time", "Pause time",
|
||||
"Departure", "Overtime", "Working length", "Pause length", "Pause start", "Pause end",
|
||||
"Note", "Time off", "Forget overtime", "Total overtime", "Arrival MA7",
|
||||
"Arrival MA14", "Arrival MA28", "Arrival MA56"};
|
||||
|
||||
|
@ -0,0 +1,2 @@
|
||||
ALTER TABLE "WORKING_DAY" ADD COLUMN "PAUSE_START_HOUR" NUMBER DEFAULT 11;
|
||||
ALTER TABLE "WORKING_DAY" ADD COLUMN "PAUSE_START_MINUTE" NUMBER DEFAULT 0;
|
Loading…
x
Reference in New Issue
Block a user