From b17c16f9106eb159a1690da80a2a46b1f3a165ab Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Thu, 20 Feb 2020 01:36:32 +0000 Subject: [PATCH] Bug 24688: Check the priority of the fulfilled hold when fixing priorities Currently when fixing priorities of existing holds, priorities aren't fixed when checking out a middle priority hold because the hold has been fulfilled and deleted. This patch adds a check for, if the hold can't be found, an old hold with the required reserve_id. To test: 1. Place at least four holds on a biblio for different borrowers 2. Check out an item to the 3rd priority borrower 3. Check the existing holds table for the biblio. The priorities might be out of order, or try clicking the dropdowns and there might be an empty dropdown option, or open the browser developer tools and notice the option values in the select are missing value=3. 4. Apply patch and restart memcached 5. Check out an item to the 2nd priority borrower 6. Check the existing holds table for the biblio. Confirm the priorities have been fixed and are now consecutive with no gaps. Sponsored-by: Chartered Accountants Australia and New Zealand Signed-off-by: Emmi Takkinen Signed-off-by: Kyle M Hall Signed-off-by: Martin Renvoize Signed-off-by: Joy Nelson --- C4/Reserves.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 013f35b353..03124db7a2 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -1440,6 +1440,10 @@ sub _FixPriority { my $hold; if ( $reserve_id ) { $hold = Koha::Holds->find( $reserve_id ); + if (!defined $hold){ + # may have already been checked out and hold fulfilled + $hold = Koha::Old::Holds->find( $reserve_id ); + } return unless $hold; } -- 2.20.1