From 7b61eadf50633d68d7e18fe44ee3a558d19254dc Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Delaune?= Date: Mon, 14 Mar 2011 07:13:03 +0100 Subject: [PATCH] Bug 5750: (MT #4095) add exact matching filter for categorycode and branchcode fields in search members's result Signed-off-by: Katrin Fischer No searching borrowers by categorycode or branchcode will only bring up exact matches. Before searches for Staff (S) would also bring up Students and Schools (SC, ST). Same for branchcodes. Signed-off-by: Chris Cormack --- members/member.pl | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/members/member.pl b/members/member.pl index df688d1d11..a2a79fa4a7 100755 --- a/members/member.pl +++ b/members/member.pl @@ -99,14 +99,20 @@ my ($count,$results); my @searchpatron; push @searchpatron, $member if ($member); -push @searchpatron, $patron if (keys %$patron); -my $from= ($startfrom-1)*$resultsperpage; -my $to=$from+$resultsperpage; - #($results)=Search(\@searchpatron,{surname=>1,firstname=>1},[$from,$to],undef,["firstname","surname","email","othernames"] ) if (@searchpatron); - my $search_scope=($quicksearch?"field_start_with":"contain"); - ($results)=Search(\@searchpatron,\@orderby,undef,undef,["firstname","surname","email","othernames","cardnumber","userid"],$search_scope ) if (@searchpatron); -if ($results){ - $count =scalar(@$results); +push @searchpatron, $patron if ( keys %$patron ); +my $from = ( $startfrom - 1 ) * $resultsperpage; +my $to = $from + $resultsperpage; + +#($results)=Search(\@searchpatron,{surname=>1,firstname=>1},[$from,$to],undef,["firstname","surname","email","othernames"] ) if (@searchpatron); +my $search_scope = ( $quicksearch ? "field_start_with" : "start_with" ); +($results) = Search( \@searchpatron, \@orderby, undef, undef, [ "firstname", "surname", "othernames", "cardnumber", "userid" ], $search_scope ) if (@searchpatron); + +if ($results) { + for my $field ('categorycode','branchcode'){ + next unless ($patron->{$field}); + @$results = grep { $_->{$field} eq $patron->{$field} } @$results; + } + $count = scalar(@$results); } my @resultsdata; $to=($count>$to?$to:$count); -- 2.39.5