Bug 10403: (follow-up) fix test to use vendor created earlier during test
[koha.git] / reports / itemtypes.plugin
old mode 100644 (file)
new mode 100755 (executable)
index edaa6b6..e4164a5
@@ -1,6 +1,5 @@
 #!/usr/bin/perl
 
-# $Id$
 
 # Copyright 2000-2002 Katipo Communications
 #
 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA  02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 use strict;
 use C4::Auth;
 use CGI;
 use C4::Context;
-use HTML::Template;
 use C4::Search;
 use C4::Output;
 use C4::Koha;
-
+use C4::Branch; # GetBranches
 =head1
 
 =cut
 
 sub set_parameters {
-       my ($template) = @_;
-       my $dbh = C4::Context->dbh;
-       my $branches=getbranches();
-       my @branches;
-       my @select_branch;
-       my %select_branches;
-       push @select_branch,"";
-       $select_branches{""} = "";
-       foreach my $branch (keys %$branches) {
-               push @select_branch, $branch;
-               $select_branches{$branch} = $branches->{$branch}->{'branchname'};
-       }
-       my $CGIbranch=CGI::scrolling_list( -name     => 'value',
-                               -id => 'value',
-                               -values   => \@select_branch,
-                               -labels   => \%select_branches,
-                               -size     => 1,
-                               -multiple => 0 );
-       $template->param(CGIbranch => $CGIbranch);
-       return $template;
+    my ($template) = @_;
+    my $userbranch = '';
+    if (C4::Context->userenv && C4::Context->userenv->{'branch'}) {
+        $userbranch = C4::Context->userenv->{'branch'};
+    }
+    $template->param( branchloop => GetBranchesLoop($userbranch) );
+    return $template;
 }
+
 sub calculate {
        my ($parameters) = @_;
        my @results =();
@@ -61,32 +47,70 @@ 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.biblionumber=biblioitems.biblionumber
-                                                       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
+               ORDER BY itemtypes.description");
+
+               }
+               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
+                       ORDER BY itemtypes.description");
+               }
                $sth->execute($branch);
        } else {
-               $sth = $dbh->prepare("select description, biblioitems.itemtype, count(*) as total from itemtypes, biblioitems where biblioitems.itemtype=itemtypes.itemtype 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
+                       ORDER BY itemtypes.description");
+               }
+               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
+                       ORDER BY itemtypes.description");
+               }
                $sth->execute;
        }
        my ($description,$biblioitems,$total);
        my $grantotal = 0;
+       my $count = 0;
        while (($description,$biblioitems,$total) = $sth->fetchrow) {
                my %line;
+               if($count % 2){
+                       $line{toggle} = 1;
+                       } else {
+                               $line{toggle} = 0;
+                       }
                $line{itemtype} = $description;
                $line{count} = $total;
                $grantotal += $total;
                push @results,\%line;
+               $count ++;
        }
        my @mainloop;
        my %globalline;
        $globalline{loopitemtype} = \@results;
        $globalline{total} = $grantotal;
        $globalline{branch} = $branch;
+       $globalline{branchname} = GetBranchName($branch);
        push @mainloop,\%globalline;
        return \@mainloop;
 }
 
-1;
\ No newline at end of file
+1;