(bug #3728) fix mandatory select fields
[koha.git] / reports / itemtypes.plugin
old mode 100644 (file)
new mode 100755 (executable)
index 078df00..9b79f65
@@ -1,6 +1,5 @@
 #!/usr/bin/perl
 
-# $Id$
 
 # Copyright 2000-2002 Katipo Communications
 #
@@ -23,10 +22,11 @@ use strict;
 use C4::Auth;
 use CGI;
 use C4::Context;
+use HTML::Template::Pro;
 use C4::Search;
 use C4::Output;
 use C4::Koha;
-
+use C4::Branch; # GetBranches
 =head1
 
 =cut
@@ -60,14 +60,40 @@ sub calculate {
        my $dbh = C4::Context->dbh;
        my $sth;
        if ($branch) {
-               $sth = $dbh->prepare("select description, biblio.itemtype, count(*) as total from itemtypes, biblio, items 
-                                               where biblio.itemtype=itemtypes.itemtype 
-                                                       and items.biblionumber=biblio.biblionumber
-                                                       and items.holdingbranch=?
-                                               group by biblio.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, biblio.itemtype, count(*) as total from itemtypes, biblio where biblio.itemtype=itemtypes.itemtype group by biblio.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);
@@ -95,4 +121,4 @@ sub calculate {
        return \@mainloop;
 }
 
-1;
\ No newline at end of file
+1;