From f4ec4601decf2be805cc292a35ad12329e63238c Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 12 Sep 2022 14:35:24 +0000 Subject: [PATCH] Bug 31540: Exclude expired holds from the reminder job Some libraries don't want to auto-cancel holds, but we should not remind a patron about a hold which has expired. To test: 1 - Place a hold for a patron 2 - Set it waiting 3 - Run the holds reminder script in the future perl misc/cronjobs/holds/holds_reminder.pl -day 1 --date '2023-09-12' -v 4 - Note the holds would be reminded 5 - Set expirationdate for the hold less than today UPDATE reserves SET expirationdate = DATE_SUB(CURDATE(), INTERVAL 1 DAY); 6 - Run the remidner cron again 7 - No holds trigger! --- misc/cronjobs/holds/holds_reminder.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/misc/cronjobs/holds/holds_reminder.pl b/misc/cronjobs/holds/holds_reminder.pl index d1f49287ca..96290c00ad 100755 --- a/misc/cronjobs/holds/holds_reminder.pl +++ b/misc/cronjobs/holds/holds_reminder.pl @@ -260,6 +260,7 @@ foreach my $branchcode (@branchcodes) { #BEGIN BRANCH LOOP my $reserves = Koha::Holds->search({ waitingdate => {$comparator => $waiting_since }, 'me.branchcode' => $branchcode, + '-or' => [ expirationdate => undef, expirationdate => { '>' => \'CURDATE()' } ] },{ prefetch => 'patron' }); $verbose and warn "No reserves found for $branchcode\n" unless $reserves->count; -- 2.30.2