https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=19690 --- Comment #8 from Magnus Enger <magnus@libriotech.no> --- (In reply to Katrin Fischer from comment #7)
Not quite, because it doesn't transport that it will take effect if at least one is on loan.
Ah, but that is not how the code in C4::Reserves::IsAvailableForItemLevelRequest() works, I think: 1163 sub IsAvailableForItemLevelRequest { 1164 my $item = shift; 1165 my $borrower = shift; 1166 my $pickup_branchcode = shift; ... 1196 if ( $on_shelf_holds == 1 ) { # Yes 1197 return 1; 1198 } elsif ( $on_shelf_holds == 2 ) { # If all unavailable 1199 my @items = 1200 Koha::Items->search( { biblionumber => $item->{biblionumber} } ); 1201 1202 my $any_available = 0; 1203 1204 foreach my $i (@items) { 1205 ... 1221 return $any_available ? 0 : 1; 1222 } else { # on_shelf_holds == 0 "If any unavailable" (the description is rather cryptic and could still be improved) 1223 return $item->{onloan} || IsItemOnHoldAndFound( $item->{itemnumber} ); 1224 } 1225 } If on_shelf_holds == 1 it always returns 1, the item that was passed in can always be be put a hold on. If on_shelf_holds == 2 it loops over all the items attached to the biblio of the item that was passed in, so it can check if they all are unavailable or not, and if any are available it returns 0. (There is a bug in how this is done when holdallowed = 0 that I will report and submit a patch for soon.) If on_shelf_holds == 0 it only checks the item that was passed in, there is no looping over all the items to tell if at least one is onloan. (There is a small bug in how this is done too...) So what the code does is look at the item that was passed in to IsAvailableForItemLevelRequest and if it is onloan (or OnHoldAndFound) it says it is OK to place a hold on that item. That is why I think "If on loan" might make sense. Now this might not be what was intended for the "If any unavailable" setting, but then the code is wrong, IMHO. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.