X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=patroncards%2Fmembers-search.pl;h=0c680a04e05ab93f2f6c37d60e356c6f947d0fc5;hb=fbf73f43184841c74aff3998c0b80a0f44d97466;hp=c2abe0775326366082875df7e9f01b6ac715a946;hpb=7aa3a055914d4c8757455898208848619f5aaec5;p=koha.git diff --git a/patroncards/members-search.pl b/patroncards/members-search.pl index c2abe07753..0c680a04e0 100755 --- a/patroncards/members-search.pl +++ b/patroncards/members-search.pl @@ -20,7 +20,7 @@ use strict; use warnings; -use CGI; +use CGI qw ( -utf8 ); use C4::Auth; use C4::Output; @@ -33,33 +33,49 @@ 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 ($count,$results) = 0,0; - - if(length($member) == 1) - { - ($count,$results) = SearchMember($member,$orderby,"simple"); - } - else - { - ($count,$results) = SearchMember($member,$orderby,"advanced",$category); - } - + 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 = (); my $to = ($count>($startfrom * $resultsperpage)?$startfrom * $resultsperpage:$count); @@ -68,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'}, @@ -120,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__