[Koha-patches] [PATCH] [SIGNED OFF] Bug 3595 (partial): Items seen at checkin are not filling holds well

Liz Rea lrea at nekls.org
Fri Mar 4 20:04:43 CET 2011


From: ruth at bywatersolutions.com <ruth at bywatersolutions.com>

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 at nekls.org>
---
 C4/Reserves.pm |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/C4/Reserves.pm b/C4/Reserves.pm
index 2dd2688..ca8f2fb 100644
--- a/C4/Reserves.pm
+++ b/C4/Reserves.pm
@@ -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;
                 }
-- 
1.5.6.5



More information about the Koha-patches mailing list