From 48fb8dfa533c86a8db4d98f01a8bcae4bead9945 Mon Sep 17 00:00:00 2001 From: Olli-Antti Kivilahti Date: Sun, 14 Sep 2014 12:29:58 +0300 Subject: [PATCH 5/6] Bug 12353 - cancel_expired_holds.pl -cronjob respects last pickup date --- C4/Reserves.pm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index b7af359..4da363d 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -724,7 +724,7 @@ sub GetReservesForBranch { my $dbh = C4::Context->dbh; my $query = " - SELECT reserve_id,borrowernumber,reservedate,itemnumber,waitingdate + SELECT reserve_id,borrowernumber,reservedate,itemnumber,waitingdate,branchcode FROM reserves WHERE priority='0' AND found='W' @@ -940,12 +940,16 @@ sub CancelExpiredReserves { $sth = $dbh->prepare( $query ); $sth->execute( $max_pickup_delay ); + my $today = DateTime->now( time_zone => C4::Context->tz() ); + while (my $res = $sth->fetchrow_hashref ) { - if ( $charge ) { - manualinvoice($res->{'borrowernumber'}, $res->{'itemnumber'}, 'Hold waiting too long', 'F', $charge); + my $expiration = _reserve_last_pickup_date( $res ); + if ( $today > $expiration ) { + if ( $charge ) { + manualinvoice($res->{'borrowernumber'}, $res->{'itemnumber'}, 'Hold waiting too long', 'F', $charge); + } + CancelReserve({ reserve_id => $res->{'reserve_id'} }); } - - CancelReserve({ reserve_id => $res->{'reserve_id'} }); } } -- 1.7.9.5