@@ -, +, @@ transfer directly --- circ/returns.pl | 10 ++++++++++ t/db_dependent/Circulation.t | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) --- a/circ/returns.pl +++ a/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( --- a/t/db_dependent/Circulation.t +++ a/t/db_dependent/Circulation.t @@ -5921,8 +5921,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; --