From c85a27fb60be7f75ec821ddff022ef07078a0671 Mon Sep 17 00:00:00 2001 From: Simon Bruder Date: Wed, 6 Dec 2023 17:34:12 +0100 Subject: [PATCH] WIP: Alternative implementation for staff payroll --- src/main/java/catering/staff/DateForm.java | 43 ------------------- .../java/catering/staff/StaffController.java | 35 +++++---------- .../java/catering/staff/StaffManagement.java | 4 -- src/main/resources/templates/staff.html | 13 ++---- 4 files changed, 14 insertions(+), 81 deletions(-) delete mode 100644 src/main/java/catering/staff/DateForm.java diff --git a/src/main/java/catering/staff/DateForm.java b/src/main/java/catering/staff/DateForm.java deleted file mode 100644 index b442a08..0000000 --- a/src/main/java/catering/staff/DateForm.java +++ /dev/null @@ -1,43 +0,0 @@ -package catering.staff; - -import java.time.LocalDateTime; - -import org.springframework.validation.Errors; - -import jakarta.validation.constraints.NotNull; - -public class DateForm { - - private @NotNull int year; - private @NotNull int month; - - public DateForm() { - this.year = LocalDateTime.now().getYear(); - this.month = LocalDateTime.now().getMonth().getValue(); - } - - public int getYear() { - return year; - } - - public int getMonth() { - return month; - } - - public void setYear(int year) { - this.year = year; - } - - public void setMonth(int month) { - this.month = month; - } - - public void validate(Errors e) { - if (year < 2023 || year > 2100) { - e.rejectValue("year", "year is not valid"); - } - if (month < 1 || month > 12) { - e.rejectValue("month", "month is not valid"); - } - } -} diff --git a/src/main/java/catering/staff/StaffController.java b/src/main/java/catering/staff/StaffController.java index 873eeb8..cfb94e3 100644 --- a/src/main/java/catering/staff/StaffController.java +++ b/src/main/java/catering/staff/StaffController.java @@ -2,6 +2,9 @@ package catering.staff; import static org.salespointframework.core.Currencies.EURO; +import java.time.YearMonth; +import java.util.Optional; + import org.javamoney.moneta.Money; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; @@ -26,37 +29,19 @@ public class StaffController { @GetMapping("/staff") @PreAuthorize("hasRole('ADMIN')") - public String getStaff(Model model) { - return getStaff(model, new StaffForm()); + public String getStaff(Model model, @RequestParam Optional month) { + return getStaff(model, new StaffForm(), month.orElseGet(YearMonth::now)); } public String getStaff(Model model, @Valid StaffForm form) { + return getStaff(model, form, YearMonth.now()); + } + + public String getStaff(Model model, @Valid StaffForm form, YearMonth month) { model.addAttribute("staff", staffManagement.findAll()); model.addAttribute("form", form); + model.addAttribute("month", month); model.addAttribute("management", staffManagement); - model.addAttribute("dateForm", new DateForm()); - return "staff"; - } - - public String getStaff(Model model, @Valid DateForm form) { - model.addAttribute("staff", staffManagement.findAll()); - model.addAttribute("form", new StaffForm()); - model.addAttribute("management", staffManagement); - model.addAttribute("dateForm", form); - return "staff"; - } - - @PostMapping("/staff/updateYearMonth") - @PreAuthorize("hasRole('ADMIN')") - public String getStaff(Model model, @Valid DateForm form, Errors result) { - form.validate(result); - if (result.hasErrors()) { - return getStaff(model, form); - } - model.addAttribute("staff", staffManagement.findAll()); - model.addAttribute("form", new StaffForm()); - model.addAttribute("management", staffManagement); - model.addAttribute("dateForm", form); return "staff"; } diff --git a/src/main/java/catering/staff/StaffManagement.java b/src/main/java/catering/staff/StaffManagement.java index 300310a..2f48528 100644 --- a/src/main/java/catering/staff/StaffManagement.java +++ b/src/main/java/catering/staff/StaffManagement.java @@ -111,8 +111,4 @@ public class StaffManagement { .map(order -> order.getDurationInSecondsDuringMonth(month)) .collect(Collectors.summingDouble(seconds -> (double) seconds / 3600)); } - - public double getWorkingHoursByEmployee(Employee e, int year, int month) { - return getWorkingHoursByEmployee(e, YearMonth.of(year, month)); - } } diff --git a/src/main/resources/templates/staff.html b/src/main/resources/templates/staff.html index b34ee98..341d157 100644 --- a/src/main/resources/templates/staff.html +++ b/src/main/resources/templates/staff.html @@ -10,16 +10,11 @@

Mitarbeiterdetails

-
+
- - -
Ungültiges Jahr
-
- - -
Ungültiger Monat
+ +
@@ -37,7 +32,7 @@ Max Koch - +