fixed overtime calc issue
This commit is contained in:
@@ -28,7 +28,7 @@ func (c *CompoundDay) GetWorkDay() WorkDay {
|
||||
|
||||
// IsEmpty implements [IWorkDay].
|
||||
func (c *CompoundDay) IsEmpty() bool {
|
||||
return len(c.DayParts) > 0
|
||||
return len(c.DayParts) == 0
|
||||
}
|
||||
|
||||
// Date implements [IWorkDay].
|
||||
@@ -47,12 +47,16 @@ func (c *CompoundDay) GetDayProgress(u User) int8 {
|
||||
|
||||
// GetOvertime implements [IWorkDay].
|
||||
func (c *CompoundDay) GetOvertime(u User, base WorktimeBase, includeKurzarbeit bool) time.Duration {
|
||||
work := c.GetWorktime(u, base, includeKurzarbeit)
|
||||
var targetHours time.Duration
|
||||
|
||||
var overtime time.Duration
|
||||
for _, day := range c.DayParts {
|
||||
overtime += day.GetOvertime(u, base, includeKurzarbeit)
|
||||
switch base {
|
||||
case WorktimeBaseDay:
|
||||
targetHours = u.ArbeitszeitProTagFrac(1)
|
||||
case WorktimeBaseWeek:
|
||||
targetHours = u.ArbeitszeitProWocheFrac(.2)
|
||||
}
|
||||
return overtime
|
||||
return (work - targetHours).Round(time.Minute)
|
||||
}
|
||||
|
||||
// GetPausetime implements [IWorkDay].
|
||||
|
||||
Reference in New Issue
Block a user