Bug 7684: (follow-up) fix UTF-8 encoding problems in CSV export
[koha.git] / C4 / Category.pm
index 6b503b8..255db2b 100644 (file)
@@ -1,5 +1,8 @@
 package C4::Category;
 
+# Copyright 2009 Liblime
+# Parts Copyright 2011 Tamil
+#
 # This file is part of Koha.
 #
 # Koha is free software; you can redistribute it and/or modify it under the
@@ -11,9 +14,9 @@ package C4::Category;
 # 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 warnings;
@@ -71,14 +74,24 @@ C<description>.
 =cut
 
 sub all {
-    my ($class) = @_;
+    my ( $class ) = @_;
+    my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
     my $dbh = C4::Context->dbh;
-    return    map { $class->new($_) }    @{$dbh->selectall_arrayref(
-        # The categories table is small enough for
-        # `SELECT *` to be harmless.
-        "SELECT * FROM categories ORDER BY description",
-        { Slice => {} },
-    )};
+    # The categories table is small enough for
+    # `SELECT *` to be harmless.
+    my $query = "SELECT categories.* FROM categories";
+    $query .= qq{
+        LEFT JOIN categories_branches ON categories_branches.categorycode = categories.categorycode
+        WHERE categories_branches.branchcode = ? OR categories_branches.branchcode IS NULL
+    } if $branch_limit;
+    $query .= " ORDER BY description";
+    return map { $class->new($_) } @{
+        $dbh->selectall_arrayref(
+            $query,
+            { Slice => {} },
+            $branch_limit ? $branch_limit : ()
+        )
+    };
 }
 
 
@@ -90,26 +103,48 @@ These are read-only accessors for attributes of a C4::Category object.
 
 =head3 $category->categorycode
 
+=cut
+
 =head3 $category->description
 
+=cut
+
 =head3 $category->enrolmentperiod
 
+=cut
+
 =head3 $category->upperagelimit
 
+=cut
+
 =head3 $category->dateofbirthrequired
 
+=cut
+
 =head3 $category->finetype
 
+=cut
+
 =head3 $category->bulk
 
+=cut
+
 =head3 $category->enrolmentfee
 
+=cut
+
 =head3 $category->overduenoticerequired
 
+=cut
+
 =head3 $category->issuelimit
 
+=cut
+
 =head3 $category->reservefee
 
+=cut
+
 =head3 $category->category_type
 
 =cut
@@ -144,14 +179,3 @@ John Beppu <john.beppu@liblime.com>
 =cut
 
 1;
-
-# Local Variables: ***
-# mode: cperl ***
-# indent-tabs-mode: nil ***
-# cperl-close-paren-offset: -4 ***
-# cperl-continued-statement-offset: 4 ***
-# cperl-indent-level: 4 ***
-# cperl-indent-parens-as-block: t ***
-# cperl-tab-always-indent: nil ***
-# End: ***
-# vim:tabstop=8 softtabstop=4 shiftwidth=4 shiftround expandtab