diff --git a/C4/Reserves.pm b/C4/Reserves.pm index e27b30e6a2..54ccc7457d 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -1160,6 +1160,8 @@ if $transferToDo is not set, then the status is set to "Waiting" as well. otherwise, a transfer is on the way, and the end of the transfer will take care of the waiting status +This function also removes any entry of the hold in holds queue table. + =cut sub ModReserveAffect { @@ -1210,6 +1212,19 @@ sub ModReserveAffect { CartToShelf( $itemnumber ); } + my $std = $dbh->prepare(q{ + DELETE q, t + FROM tmp_holdsqueue q + INNER JOIN hold_fill_targets t + ON q.borrowernumber = t.borrowernumber + AND q.biblionumber = t.biblionumber + AND q.itemnumber = t.itemnumber + AND q.item_level_request = t.item_level_request + AND q.holdingbranch = t.source_branchcode + WHERE t.reserve_id = ? + }); + $std->execute($hold->reserve_id); + logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) ) if C4::Context->preference('HoldsLog');