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
+1 -4
View File
@@ -382,9 +382,7 @@ 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")
if dayDateStr >= stagedChange.EffectiveDate {
for _, sh := range stagedChange.Hours { for _, sh := range stagedChange.Hours {
if sh.Weekday == weekday { if sh.Weekday == weekday {
day.StartTime = sh.StartTime day.StartTime = sh.StartTime
@@ -394,7 +392,6 @@ func GetWorkingHours(w http.ResponseWriter, r *http.Request) {
break break
} }
} }
}
} else if def, ok := defaultMap[weekday]; ok { } else if def, ok := defaultMap[weekday]; ok {
day.StartTime = def.StartTime day.StartTime = def.StartTime
day.EndTime = def.EndTime day.EndTime = def.EndTime