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,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
|
||||||
|
|||||||
Reference in New Issue
Block a user