From ed646f2105db7140e5f31ba32eaf9d418a710ee0 Mon Sep 17 00:00:00 2001 From: Joshua Ferraro Date: Fri, 25 Jul 2008 08:49:45 -0500 Subject: [PATCH] Fix 'Catalog by Itemtype' report to work with item-level itypes --- reports/itemtypes.plugin | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/reports/itemtypes.plugin b/reports/itemtypes.plugin index 71b00a3f1f..9b79f65a06 100644 --- a/reports/itemtypes.plugin +++ b/reports/itemtypes.plugin @@ -60,15 +60,40 @@ sub calculate { my $dbh = C4::Context->dbh; my $sth; if ($branch) { - $sth = $dbh->prepare("select description, biblioitems.itemtype, count(*) as total from itemtypes, biblioitems, items - where biblioitems.itemtype=itemtypes.itemtype - and items.biblioitemnumber=biblioitems.biblioitemnumber - and items.holdingbranch=? - group by biblioitems.itemtype"); + if (C4::Context->preference('item-level_itypes')) { + $sth = $dbh->prepare(" + SELECT description, items.itype as itemtype, COUNT(*) AS total + FROM itemtypes,items + WHERE items.itype=itemtypes.itemtype + AND items.holdingbranch=? + GROUP BY items.itype"); + + } + else { + $sth = $dbh->prepare(" + SELECT description, biblioitems.itemtype, COUNT(*) AS total + FROM itemtypes, biblioitems, items + WHERE biblioitems.itemtype=itemtypes.itemtype + AND items.biblioitemnumber=biblioitems.biblioitemnumber + AND items.holdingbranch=? + GROUP BY biblioitems.itemtype"); + } $sth->execute($branch); } else { - $sth = $dbh->prepare("select description, biblioitems.itemtype, count(*) as total from itemtypes, biblioitems,items where biblioitems.itemtype=itemtypes.itemtype - and biblioitems.biblioitemnumber = items.biblioitemnumber group by biblioitems.itemtype"); + if (C4::Context->preference('item-level_itypes')) { + $sth = $dbh->prepare(" + SELECT description,items.itype AS itemtype, COUNT(*) AS total + FROM itemtypes,items + WHERE items.itype=itemtypes.itemtype + GROUP BY items.itype"); + } + else { + $sth = $dbh->prepare("SELECT description, biblioitems.itemtype, COUNT(*) AS total + FROM itemtypes, biblioitems,items + WHERE biblioitems.itemtype=itemtypes.itemtype + AND biblioitems.biblioitemnumber = items.biblioitemnumber + GROUP BY biblioitems.itemtype"); + } $sth->execute; } my ($description,$biblioitems,$total); -- 2.39.5