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 <samalau@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Hayley Pelham 2022-04-28 23:43:52 +00:00 committed by Katrin Fischer
parent 99869d608b
commit ffcfe6d41e
No known key found for this signature in database
GPG Key ID: 0EF6E2C03357A834
1 changed files with 4 additions and 1 deletions

View File

@ -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