From 6cedf93bbe0905897935d3d1f1f131ef5d9b901a Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Mon, 29 Aug 2011 11:21:24 +1200 Subject: [PATCH] Bug 5675 : CheckReserves not honouring item level itemtypes preferences Content-Type: text/plain; charset="utf-8" Signed-off-by: Katrin Fischer With item level itypes activated only the item for which holds were allowed in circulation rules triggered the hold notice on checkin. Also checked that biblio level itype still trigered correctly. --- C4/Reserves.pm | 29 ++++++++++++++++++++++------- 1 files changed, 22 insertions(+), 7 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 8373840..f83f0ff 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -760,17 +760,32 @@ sub CheckReserves { my ( $item, $barcode ) = @_; my $dbh = C4::Context->dbh; my $sth; - my $select = " - SELECT items.biblionumber, + my $select; + if (C4::Context->preference('item-level_itypes')){ + $select = " + SELECT items.biblionumber, items.biblioitemnumber, itemtypes.notforloan, items.notforloan AS itemnotforloan, items.itemnumber - FROM items - LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber - LEFT JOIN itemtypes ON biblioitems.itemtype = itemtypes.itemtype - "; - + FROM items + LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber + LEFT JOIN itemtypes ON items.itype = itemtypes.itemtype + "; + } + else { + $select = " + SELECT items.biblionumber, + items.biblioitemnumber, + itemtypes.notforloan, + items.notforloan AS itemnotforloan, + items.itemnumber + FROM items + LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber + LEFT JOIN itemtypes ON biblioitems.itemtype = itemtypes.itemtype + "; + } + if ($item) { $sth = $dbh->prepare("$select WHERE itemnumber = ?"); $sth->execute($item); -- 1.7.4.1