Bug 3595 (partial): Items seen at checkin are not filling holds well
In Liz's second comment on this bug, she points out that local-only holds (and also no-holds) items are being used to fill the first hold in the queue, no matter where located, transitting if necessary. If all the items on a biblio are set to no-holds types, this problem would never arise, as no holds could be *placed*. But if you have one or more unlimitedor local-hold items, then holds are getting filled by the first item to cross a scanner, no matter what. This patch will check during C4::Reserves::CheckReserves to make sure that the hold being handed back to AddReturn is actually fillable by the item just scanned. One caveat: If CircControl is set to "the library you are logged in at", this will cause items checked in at other-than-their-home-library to fill local holds at the library where scanned. This is, however, an edge case! Signed-off-by: Liz Rea <lrea@nekls.org> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
parent
d52f3680f4
commit
784b9df4f2
1 changed files with 6 additions and 0 deletions
|
@ -804,6 +804,12 @@ sub CheckReserves {
|
|||
} else {
|
||||
# See if this item is more important than what we've got so far
|
||||
if ( $res->{'priority'} && $res->{'priority'} < $priority ) {
|
||||
my $borrowerinfo=C4::Members::GetMemberDetails($res->{'borrowernumber'});
|
||||
my $iteminfo=C4::Items::GetItem($itemnumber);
|
||||
my $branch=C4::Circulation::_GetCircControlBranch($iteminfo,$borrowerinfo);
|
||||
my $branchitemrule = C4::Circulation::GetBranchItemRule($branch,$iteminfo->{'itype'});
|
||||
next if ($branchitemrule->{'holdallowed'} == 0);
|
||||
next if (($branchitemrule->{'holdallowed'} == 1) && ($branch ne $borrowerinfo->{'branchcode'}));
|
||||
$priority = $res->{'priority'};
|
||||
$highest = $res;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue