From 4ec9cdeab7df01775814702160dd6d0dcb861dfb Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Thu, 17 Apr 2014 12:10:21 -0400 Subject: [PATCH] Bug 12086 - Hold priorities incorrect, when waiting status was reversed 1) Test record has 1 single item, checked out to patron X 2) Place 3 holds for patrons A, B and C, all title level hold this time A, B, C, item branches and staff branch are the same. 3) Return item, confirm hold 4) Confirm item is now waiting for patron A Priorities are: A = Waiting, B = 1, C = 2 5) Open patron account of user B, checkout book Koha asks: Item X has been waiting for patron A... Revert waiting status Confirm. 6) Check priorities: Hold list shows: A = 1, C = 1 Database says: A = 1, C = 3 7) Apply this patch 8) Repeat steps 1-6 9) Note the priorities are correct --- C4/Reserves.pm | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 49f8c11..a28eb7c 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -1663,6 +1663,7 @@ when _FixPriority calls itself. sub _FixPriority { my ( $params ) = @_; + warn "_FixPriority: " . Data::Dumper::Dumper( $params ); my $reserve_id = $params->{reserve_id}; my $rank = $params->{rank} // ''; my $ignoreSetLowestRank = $params->{ignoreSetLowestRank}; @@ -2113,7 +2114,7 @@ sub MergeHolds { =head2 RevertWaitingStatus - $success = RevertWaitingStatus({ itemnumber => $itemnumber }); + RevertWaitingStatus({ itemnumber => $itemnumber }); Reverts a 'waiting' hold back to a regular hold with a priority of 1. @@ -2168,7 +2169,8 @@ sub RevertWaitingStatus { reserve_id = ? "; $sth = $dbh->prepare( $query ); - return $sth->execute( $reserve->{'reserve_id'} ); + $sth->execute( $reserve->{'reserve_id'} ); + _FixPriority( { biblionumber => $reserve->{biblionumber} } ); } =head2 GetReserveId -- 1.7.2.5