fix: staged hours no longer leak closed values to days before effective date

The else-if chain in GetWorkingHours/computeAvailableHours entered the staged change block for ALL days when a pending change existed, but only applied hours for future dates — leaving earlier days as zero-value (closed). Moved the effective date check into the else-if condition so early days fall through to default hours.
This commit is contained in:
2026-08-22 00:34:49 +01:00
parent 9eecb375cf
commit 503449b0bc
+8 -11
View File
@@ -382,17 +382,14 @@ func GetWorkingHours(w http.ResponseWriter, r *http.Request) {
day.EndTime = applied.EndTime day.EndTime = applied.EndTime
day.IsOpen = applied.IsOpen day.IsOpen = applied.IsOpen
day.Source = "exceptional" day.Source = "exceptional"
} else if stagedChange != nil { } else if stagedChange != nil && d.Format("2006-01-02") >= stagedChange.EffectiveDate {
dayDateStr := d.Format("2006-01-02") for _, sh := range stagedChange.Hours {
if dayDateStr >= stagedChange.EffectiveDate { if sh.Weekday == weekday {
for _, sh := range stagedChange.Hours { day.StartTime = sh.StartTime
if sh.Weekday == weekday { day.EndTime = sh.EndTime
day.StartTime = sh.StartTime day.IsOpen = sh.IsOpen
day.EndTime = sh.EndTime day.Source = "default"
day.IsOpen = sh.IsOpen break
day.Source = "default"
break
}
} }
} }
} else if def, ok := defaultMap[weekday]; ok { } else if def, ok := defaultMap[weekday]; ok {