@@ -, +, @@ IsAvailableForItemLevelRequest This call is used in the on_shelf_holds == 2 case too. The routine will be refactored quite soon. Adding the else branch for on_shelf_holds == 0 for more clarity. when the hold is filled and moved to oldreserves. --- C4/Reserves.pm | 13 ++----------- t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t | 7 +------ 2 files changed, 3 insertions(+), 17 deletions(-) --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -1143,18 +1143,9 @@ sub IsAvailableForItemLevelRequest { } return $any_available ? 0 : 1; + } else { # on_shelf_holds == 0 "If any unavailable" (the description is rather cryptic and could still be improved) + return $item->{onloan} || IsItemOnHoldAndFound( $item->{itemnumber} ); } - - if ($item->{onloan}) { - return 1; - } - - if ( Koha::Holds->search({itemnumber => $item->{itemnumber}, - found => ['W', 'T']})->count ) { - return 1; - } - - return 0; } =head2 OnShelfHoldsAllowed --- a/t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t +++ a/t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t @@ -7,7 +7,7 @@ use C4::Items; use C4::Circulation; use Koha::IssuingRule; -use Test::More tests => 7; +use Test::More tests => 6; use t::lib::TestBuilder; use t::lib::Mocks; @@ -255,10 +255,5 @@ $rule->store(); $is = IsAvailableForItemLevelRequest( $item3, $borrower1); is( $is, 1, "Item can be held, items in transit are not available" ); -Koha::Holds->find($hold->{reserve_id})->found('F')->store; - -$is = IsAvailableForItemLevelRequest( $item3, $borrower1); -is( $is, 0, "Item is neither waiting nor in transit." ); - # Cleanup $schema->storage->txn_rollback; --