Lines 320-326
sub GetItemsAvailableToFillHoldRequestsForBib {
Link Here
|
320 |
my ($biblionumber, $branches_to_use) = @_; |
320 |
my ($biblionumber, $branches_to_use) = @_; |
321 |
|
321 |
|
322 |
my $dbh = C4::Context->dbh; |
322 |
my $dbh = C4::Context->dbh; |
323 |
my $items_query = "SELECT itemnumber, homebranch, holdingbranch, itemtypes.itemtype AS itype |
323 |
my $items_query = "SELECT items.itemnumber, homebranch, holdingbranch, itemtypes.itemtype AS itype |
324 |
FROM items "; |
324 |
FROM items "; |
325 |
|
325 |
|
326 |
if (C4::Context->preference('item-level_itypes')) { |
326 |
if (C4::Context->preference('item-level_itypes')) { |
Lines 329-342
sub GetItemsAvailableToFillHoldRequestsForBib {
Link Here
|
329 |
$items_query .= "JOIN biblioitems USING (biblioitemnumber) |
329 |
$items_query .= "JOIN biblioitems USING (biblioitemnumber) |
330 |
LEFT JOIN itemtypes USING (itemtype) "; |
330 |
LEFT JOIN itemtypes USING (itemtype) "; |
331 |
} |
331 |
} |
332 |
$items_query .= "WHERE items.notforloan = 0 |
332 |
$items_query .= " LEFT JOIN branchtransfers ON (items.itemnumber = branchtransfers.itemnumber)"; |
|
|
333 |
$items_query .= " WHERE items.notforloan = 0 |
333 |
AND holdingbranch IS NOT NULL |
334 |
AND holdingbranch IS NOT NULL |
334 |
AND itemlost = 0 |
335 |
AND itemlost = 0 |
335 |
AND withdrawn = 0"; |
336 |
AND withdrawn = 0"; |
|
|
337 |
$items_query .= " AND branchtransfers.datearrived IS NULL |
338 |
AND branchtransfers.datecancelled IS NULL"; |
336 |
$items_query .= " AND damaged = 0" unless C4::Context->preference('AllowHoldsOnDamagedItems'); |
339 |
$items_query .= " AND damaged = 0" unless C4::Context->preference('AllowHoldsOnDamagedItems'); |
337 |
$items_query .= " AND items.onloan IS NULL |
340 |
$items_query .= " AND items.onloan IS NULL |
338 |
AND (itemtypes.notforloan IS NULL OR itemtypes.notforloan = 0) |
341 |
AND (itemtypes.notforloan IS NULL OR itemtypes.notforloan = 0) |
339 |
AND itemnumber NOT IN ( |
342 |
AND items.itemnumber NOT IN ( |
340 |
SELECT itemnumber |
343 |
SELECT itemnumber |
341 |
FROM reserves |
344 |
FROM reserves |
342 |
WHERE biblionumber = ? |
345 |
WHERE biblionumber = ? |
Lines 354-365
sub GetItemsAvailableToFillHoldRequestsForBib {
Link Here
|
354 |
$sth->execute(@params); |
357 |
$sth->execute(@params); |
355 |
|
358 |
|
356 |
my $itm = $sth->fetchall_arrayref({}); |
359 |
my $itm = $sth->fetchall_arrayref({}); |
357 |
my @items = grep { ! scalar GetTransfers($_->{itemnumber}) } @$itm; |
|
|
358 |
return [ grep { |
360 |
return [ grep { |
359 |
my $rule = GetBranchItemRule($_->{homebranch}, $_->{itype}); |
361 |
my $rule = GetBranchItemRule($_->{homebranch}, $_->{itype}); |
360 |
$_->{holdallowed} = $rule->{holdallowed}; |
362 |
$_->{holdallowed} = $rule->{holdallowed}; |
361 |
$_->{hold_fulfillment_policy} = $rule->{hold_fulfillment_policy}; |
363 |
$_->{hold_fulfillment_policy} = $rule->{hold_fulfillment_policy}; |
362 |
} @items ]; |
364 |
} @{$itm} ]; |
363 |
} |
365 |
} |
364 |
|
366 |
|
365 |
=head2 _checkHoldPolicy |
367 |
=head2 _checkHoldPolicy |
366 |
- |
|
|