From 19256d36bd78e28ff47cea6938da389a554c8fa8 Mon Sep 17 00:00:00 2001 From: Emily Lamancusa Date: Tue, 19 Mar 2024 14:14:27 -0400 Subject: [PATCH] Bug 34972: (follow-up) Update returns.pl to initiate item transfer directly returns.pl was relying on GetOtherReserves to update branchtransfers when putting a hold in transit. It should be calling ModItemTransfer directly. Signed-off-by: Andrew Fuerste Henry --- circ/returns.pl | 10 ++++++++++ t/db_dependent/Circulation.t | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/circ/returns.pl b/circ/returns.pl index 5b119e3726b..e43c2301684 100755 --- a/circ/returns.pl +++ b/circ/returns.pl @@ -162,9 +162,14 @@ if ( $query->param('reserve_id') && $op eq 'cud-affect_reserve') { } # FIXME else? } else { my $diffBranchSend = ($userenv_branch ne $diffBranchReturned) ? $diffBranchReturned : undef; + # diffBranchSend tells ModReserveAffect whether document is expected in this library or not, # i.e., whether to apply waiting status ModReserveAffect( $itemnumber, $borrowernumber, $diffBranchSend, $reserve_id, $desk_id ); + + if ($diffBranchSend) { + ModItemTransfer( $itemnumber, $item->holdingbranch, $diffBranchSend, 'Reserve' ); + } } # check if we have other reserves for this document, if we have a return send the message of transfer my ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber); @@ -587,6 +592,11 @@ if ( $messages->{'ResFound'} ) { my $diffBranchSend = !$branchCheck ? $reserve->{branchcode} : undef; ModReserveAffect( $itemnumber, $reserve->{borrowernumber}, $diffBranchSend, $reserve->{reserve_id}, $desk_id ); + + if ($diffBranchSend) { + ModItemTransfer( $itemnumber, $item->holdingbranch, $reserve->{branchcode}, 'Reserve' ); + } + my ( $messages, $nextreservinfo ) = GetOtherReserves($reserve->{itemnumber}); $template->param( diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index eb8ab050a74..380c593fe20 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -5918,8 +5918,8 @@ subtest 'Checkout should correctly terminate a transfer' => sub { ModItemTransfer( $item->itemnumber, $library_1->branchcode, $library_2->branchcode, 'Manual' ); ModReserveAffect( $item->itemnumber, undef, $do_transfer, $reserve_id ); - GetOtherReserves( $item->itemnumber ) - ; # To put the Reason, it's what does returns.pl... + ModItemTransfer( $item->itemnumber, $library_1->branchcode, + $library_2->branchcode, 'Reserve' ); # To put the Reason, it's what does returns.pl... my $hold = Koha::Holds->find($reserve_id); is( $hold->found, 'T', 'Hold is in transit' ); my $transfer = $item->get_transfer; -- 2.30.2