added feiertage to database + endpoint to insert every year
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user