added Gleitzeit + Kurzarbeit closes #23
All checks were successful
Tests / Run Go Tests (push) Successful in 33s

This commit is contained in:
2025-09-13 14:12:39 +02:00
parent ccded6d76b
commit 2d0b117403
18 changed files with 298 additions and 255 deletions

View File

@@ -45,7 +45,7 @@ func NewWorkWeek(user User, tsMonday time.Time, populate bool) WorkWeek {
}
func (w *WorkWeek) PopulateWithBookings(worktime time.Duration, overtime time.Duration) {
w.WorkDays = GetWorkDays(w.User.CardUID, w.WeekStart, w.WeekStart.Add(7*24*time.Hour))
w.WorkDays = GetWorkDays(w.User, w.WeekStart, w.WeekStart.Add(7*24*time.Hour))
if absences, err := GetAbsencesByCardUID(w.User.CardUID, w.WeekStart, w.WeekStart.Add(7*24*time.Hour)); err == nil {
w.Absences = absences
} else {
@@ -108,10 +108,11 @@ func (w *WorkWeek) aggregateWorkTime() time.Duration {
for _, day := range w.WorkDays {
workTime += day.workTime
}
for _, absences := range w.Absences {
absenceWorkTime := absences.AbwesenheitTyp.WorkTime - (absences.AbwesenheitTyp.WorkTime - w.User.ArbeitszeitPerTag) // workTime Equivalent of Absence is capped at user Worktime per Day
workTime += time.Duration(absenceWorkTime * float32(time.Hour)).Round(time.Minute)
}
// for _, absence := range w.Absences {
// log.Println(absence)
// absenceWorkTime := float32(8) // := absences.AbwesenheitTyp.WorkTime - (absences.AbwesenheitTyp.WorkTime - w.User.ArbeitszeitPerTag) // workTime Equivalent of Absence is capped at user Worktime per Day
// workTime += time.Duration(absenceWorkTime * float32(time.Hour)).Round(time.Minute)
// }
return workTime
}