From: Dan Scott Date: Tue, 19 Dec 2017 17:58:14 +0000 (-0500) Subject: Avoid entering entirely empty library hours X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=c13ece121ebce1deaf47664b4c5e014b20bd0701;p=contrib%2FConifer.git Avoid entering entirely empty library hours If every day is closed, then calculating a due date leads to infinity. Which wreaks havoc on your database queries... Signed-off-by: Dan Scott --- diff --git a/tools/daily-scripts/parse_library_hours b/tools/daily-scripts/parse_library_hours index b7a66cf1a1..de3004174a 100755 --- a/tools/daily-scripts/parse_library_hours +++ b/tools/daily-scripts/parse_library_hours @@ -148,6 +148,24 @@ my %libs = ( SoA => 150 ); +# hack to avoid entirely empty weeks +foreach my $lib ('JWT', 'UoS', 'JND', 'SoA') { + my $need_hours = 1; + # If we have at least one day with hours, then checkouts will work + foreach my $day (0..6) { + if ($hours{$lib}{$day}{'open'} ne '00:00:00' or $hours{$lib}{$day}{'close'} ne '00:00:00') { + $need_hours = 0; + } + } + if ($need_hours) { + # Set a reasonable fallback for calculating due dates + foreach my $day (0..4) { + $hours{$lib}{$day}{'open'} = '09:00:00'; + $hours{$lib}{$day}{'close'} = '17:00:00'; + } + } +} + my $dbh = DBI->connect('dbi:Pg:dbname=;host=;port=5432', 'evergreen'); foreach my $lib (sort keys %libs) { my $stmt = $dbh->prepare("UPDATE actor.hours_of_operation SET dow_0_open = ?, dow_0_close = ?, dow_1_open = ?, dow_1_close = ?, dow_2_open = ?, dow_2_close = ?, dow_3_open = ?, dow_3_close = ?, dow_4_open = ?, dow_4_close = ?, dow_5_open = ?, dow_5_close = ?, dow_6_open = ?, dow_6_close = ? WHERE id = ?");