From 47dd2c97791e478d45f2d4d276d5836e7d0972f8 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 30 Apr 2026 18:23:13 +0200 Subject: [PATCH] fix: CloseWeek uses settings effective at close time, not week Monday Settings configured mid-week (e.g. Thursday) have an effective_from of that date. CloseWeek was looking up settings as-of Monday, which predates the new settings row and fell back to the old default. Now uses today's date for the settings lookup, so any settings change made before closing the week is correctly reflected in expected_ms. --- internal/service/week_service.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/service/week_service.go b/internal/service/week_service.go index f94d288..e783262 100644 --- a/internal/service/week_service.go +++ b/internal/service/week_service.go @@ -94,9 +94,10 @@ func (s *WeekService) CloseWeek(ctx context.Context, weekKey string) (*domain.Cl return nil, err } - // Get settings at the start of the week (Monday) - mondayKey := dayKeys[0] - set, err := s.settings.Current(ctx, mondayKey) + // Get settings effective at close time (today), not necessarily at the + // start of the week. This ensures settings changes made mid-week are + // reflected when the week is closed. + set, err := s.settings.Current(ctx, time.Now().In(s.tz).Format("2006-01-02")) if err != nil { return nil, ErrNoSettings }