@@ -, +, @@ policy when resolving a transfer - Have 2+ branches - Set your default return policy to Item returns to issuing library - Find an item with holding branch of Branch A - Set your library to Branch B - Check item in - Koha generates a transfer to Branch A. In doing so, it sets the item holding branch to Branch B - Set your library to Branch A - Check item in - Koha generate a transfer to Branch B. In doing so, it sets the item holding branch to Branch A - Set you library to Branch A - Check the item in . . . Repeat indefinitely. Apply patch Repeat No more loop --- C4/Circulation.pm | 3 +++ t/db_dependent/Circulation/Branch.t | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -2082,6 +2082,9 @@ sub AddReturn { "UPDATE branchtransfers SET datearrived = now() WHERE itemnumber= ? AND datearrived IS NULL" ); $sth->execute( $item->itemnumber ); + + # If we are completing a transfer we should not generate a new transfer from return policy + $returnbranch = $branch; } else { $messages->{'WrongTransfer'} = $tobranch; $messages->{'WrongTransferItem'} = $item->itemnumber; --- a/t/db_dependent/Circulation/Branch.t +++ a/t/db_dependent/Circulation/Branch.t @@ -25,7 +25,7 @@ use Koha::CirculationRules; use Koha::Patrons; -use Test::More tests => 14; +use Test::More tests => 15; use t::lib::Mocks; use t::lib::TestBuilder; @@ -303,6 +303,12 @@ $dbh->do( $query, {}, $borrower_id1, $item_id2, $samplebranch2->{branchcode} ); $samplebranch2->{branchcode}); is( $messages->{NeedsTransfer}, $samplebranch1->{branchcode}, "AddReturn respects branch return policy - item2->homebranch policy = 'holdingbranch'" ); +# Generate the transfer from above +ModItemTransfer($item_id2, $samplebranch2->{branchcode}, $samplebranch1->{branchcode}, "ReturnToHolding"); +# Fulfill it +($doreturn, $messages, $iteminformation, $borrower) = AddReturn('barcode_2',$samplebranch1->{branchcode}); +is( $messages->{NeedsTransfer}, undef, "AddReturn does not generate a new transfer for return policy when resolving an existing transfer" ); + # item3 should not trigger transfer - floating collection $query = "INSERT INTO issues (borrowernumber,itemnumber,branchcode) VALUES( ?,?,? )"; --