KRT-4338 -- create barcode and stocknumber when receiving items in acq
[koha.git] / patroncards / members-search.pl
index dfa0462..0c680a0 100755 (executable)
@@ -20,7 +20,7 @@
 use strict;
 use warnings;
 
-use CGI;
+use CGI qw ( -utf8 );
 
 use C4::Auth;
 use C4::Output;
@@ -33,24 +33,48 @@ my $batch_id = $cgi->param('batch_id') || 0;
 my $startfrom = $cgi->param('startfrom')||1;
 my $resultsperpage = $cgi->param('resultsperpage')||C4::Context->preference("PatronsPerPage")||20;
 my $category = $cgi->param('category') || undef;
-my $member = $cgi->param('member') || undef;
+my $member = $cgi->param('member') || '';
 my $orderby = $cgi->param('orderby') || undef;
+my $not_attributes = $cgi->param('not_attributes') || undef;
+
+my @categories=C4::Category->all;
+my %categories_display;
+my $no_categories;
+
+foreach my $category (@categories) {
+    my $hash={
+        category_description=>$$category{description},
+        category_type=>$$category{category_type}
+    };
+    $categories_display{$$category{categorycode}} = $hash;
+}
+
 
 my ($template, $loggedinuser, $cookie) = get_template_and_user({
-                template_name => "patroncards/members-search.tmpl",
+                template_name => "patroncards/members-search.tt",
                 query => $cgi,
                 type => "intranet",
                 authnotrequired => 0,
                 flagsrequired => {borrowers => 1},
                 debug => 1,});
 
+if(scalar(@categories) < 1){ $no_categories = 1; }
+if($no_categories && C4::Context->preference("AddPatronLists")=~/code/){
+    $template->param(no_categories => 1);
+} else {
+    $template->param(
+        categories=>\@categories,
+        category => $category
+    );
+}
+
 $orderby = "surname,firstname" unless $orderby;
 $member =~ s/,//g;   #remove any commas from search string
 $member =~ s/\*/%/g;
 
 if ($member || $category) {
-    my $results = $category ? Search({''=>$member, category_type=>$category}, $orderby)
-                            : Search($member, $orderby);
+    my $results = $category ? Search({''=>$member, categorycode=>$category}, $orderby, undef, undef, undef, undef, $not_attributes )
+                            : Search($member, $orderby, undef, undef, undef, undef, $not_attributes);
     my $count = $results ? @$results : 0;
 
     my @resultsdata = ();
@@ -60,13 +84,12 @@ if ($member || $category) {
         my ($od,$issue,$fines) = GetMemberIssuesAndFines($results->[$i]{'borrowernumber'});
         my %row = (
             count               => $i + 1,
+                %{$categories_display{$results->[$i]{categorycode}}},
             borrowernumber      => $results->[$i]{'borrowernumber'},
             cardnumber          => $results->[$i]{'cardnumber'},
             surname             => $results->[$i]{'surname'},
             firstname           => $results->[$i]{'firstname'},
             categorycode        => $results->[$i]{'categorycode'},
-            category_type       => $results->[$i]{'category_type'},
-            category_description        => $results->[$i]{'description'},
             address             => $results->[$i]{'address'},
             address2            => $results->[$i]{'address2'},
             city                => $results->[$i]{'city'},
@@ -112,6 +135,8 @@ else {
     $template->param( batch_id => $batch_id);
 }
 
+$template->param( 'alphabet' => C4::Context->preference('alphabet') || join ' ', 'A' .. 'Z' );
+
 output_html_with_http_headers $cgi, $cookie, $template->output;
 
 __END__