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:
@@ -382,17 +382,14 @@ func GetWorkingHours(w http.ResponseWriter, r *http.Request) {
|
||||
day.EndTime = applied.EndTime
|
||||
day.IsOpen = applied.IsOpen
|
||||
day.Source = "exceptional"
|
||||
} else if stagedChange != nil {
|
||||
dayDateStr := d.Format("2006-01-02")
|
||||
if dayDateStr >= stagedChange.EffectiveDate {
|
||||
for _, sh := range stagedChange.Hours {
|
||||
if sh.Weekday == weekday {
|
||||
day.StartTime = sh.StartTime
|
||||
day.EndTime = sh.EndTime
|
||||
day.IsOpen = sh.IsOpen
|
||||
day.Source = "default"
|
||||
break
|
||||
}
|
||||
} else if stagedChange != nil && d.Format("2006-01-02") >= stagedChange.EffectiveDate {
|
||||
for _, sh := range stagedChange.Hours {
|
||||
if sh.Weekday == weekday {
|
||||
day.StartTime = sh.StartTime
|
||||
day.EndTime = sh.EndTime
|
||||
day.IsOpen = sh.IsOpen
|
||||
day.Source = "default"
|
||||
break
|
||||
}
|
||||
}
|
||||
} else if def, ok := defaultMap[weekday]; ok {
|
||||
|
||||
Reference in New Issue
Block a user