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 <emmi.takkinen@outlook.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Joy Nelson <joy@bywatersolutions.com>
(cherry picked from commit b17c16f910)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit d29f435e26)

Signed-off-by: Hayley Mapley <hayleymapley@catalyst.net.nz>
This commit is contained in:
Aleisha Amohia 2020-02-20 01:36:32 +00:00 committed by Hayley Mapley
parent 9cce44c5cb
commit 9c9478c5c5
1 changed files with 4 additions and 0 deletions

View File

@ -1408,6 +1408,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;
}