From ffcfe6d41e71bb2bec726694d1f55c04d5e0810c 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: Catalyst IT Sponsored-by: Auckland University of Technology Signed-off-by: Sam Lau Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer --- C4/Circulation.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index d8943eed75..6073ab7879 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -3893,7 +3893,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.39.5