added feiertage to database + endpoint to insert every year

This commit is contained in:
2025-12-23 12:21:03 +01:00
parent f562ef2a33
commit 3439fff841
11 changed files with 245 additions and 88 deletions

View File

@@ -3,12 +3,14 @@ package models
import (
"arbeitszeitmessung/helper"
"log"
"log/slog"
"time"
)
type IWorkDay interface {
Date() time.Time
ToString() string
Type() DayType
IsWorkDay() bool
IsKurzArbeit() bool
GetDayProgress(User) int8
@@ -19,6 +21,14 @@ type IWorkDay interface {
GetOvertime(User, WorktimeBase, bool) time.Duration
}
type DayType int
const (
DayTypeWorkday DayType = 1
DayTypeAbsence DayType = 2
DayTypeHoliday DayType = 3
)
func GetDays(user User, tsFrom, tsTo time.Time, orderedForward bool) []IWorkDay {
var allDays map[string]IWorkDay = make(map[string]IWorkDay)
@@ -30,6 +40,10 @@ func GetDays(user User, tsFrom, tsTo time.Time, orderedForward bool) []IWorkDay
log.Println("Error gettings absences for all Days!", err)
return nil
}
holidays, err := GetHolidaysFromTo(tsFrom, tsTo)
if err != nil {
slog.Warn("Error getting holidays from DB!", slog.Any("Error", err))
}
for _, day := range absences {
if helper.IsWeekend(day.Date()) {
continue
@@ -50,6 +64,14 @@ func GetDays(user User, tsFrom, tsTo time.Time, orderedForward bool) []IWorkDay
}
}
for _, day := range holidays {
if helper.IsWeekend(day.Date()) {
continue
}
allDays[day.Date().Format(time.DateOnly)] = &day
slog.Debug("Logging Holiday: ", slog.String("HolidayName", allDays[day.Date().Format(time.DateOnly)].ToString()), slog.Any("Overtime", day.GetOvertime(user, WorktimeBaseDay, false).String()), "wokrtie", float32(day.worktime)/100)
}
sortedDays := sortDays(allDays, orderedForward)
return sortedDays
}