From 7d0f97fb5d7213c48227ac976fedfe3950fb9e37 Mon Sep 17 00:00:00 2001 From: Hayley Pelham Date: Thu, 28 Apr 2022 23:43:52 +0000 Subject: [PATCH] Bug 6796: (follow-up) Fix logic for calculating following day's open hours Since days for branch hours are stored as 0-6 in the database, when it's a Saturday (6) incrementing the date leads to an error when issuing an hourly loan because no opening hours are found for the non-existent day (7). This patch fixes this by calculating the tomorrow day and setting it to 0 if it's greater than 6. This patch also corrects the mappings for days, where local_day_of_week caluclates the date with Sunday first, which put it out of sync with the database opening hours days. Sponsored-by: Auckland University of Technology Sponsored-by: Catalyst IT Signed-off-by: Sam Lau --- C4/Circulation.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index f7980f08b2c..f69827c8747 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -3897,7 +3897,10 @@ sub CalcDateDue { # starter vars so don't do calculations directly to $datedue my $potential_datedue = $datedue->clone; my $library_close = $datedue->clone; - my $dayofweek = $datedue->local_day_of_week - 1; + my $dayofweek = $datedue->day_of_week - 1; + my $tomorrow_dayofweek = $dayofweek + 1; + # If it's Sunday and tomorrow would be == 7, make tomorrow 0 (Days are stored as 0-6) + if ( $tomorrow_dayofweek > 6 ) { $tomorrow_dayofweek = 0; } my $todayhours = Koha::Library::Hours->find({ library_id => $branch, day => $dayofweek }); my @close = undef; my $tomorrowhours = Koha::Library::Hours->find({ library_id => $branch, day => $dayofweek+1 }); # get open hours of next day -- 2.43.0