From fe3bb8b2ac68964a7acef6ab0f280caccc298265 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 22 Sep 2015 15:04:14 +0100 Subject: [PATCH] Bug 14871: Extend the patrons search to search like %$term% (checkout tab) The patrons search used by the checkout tab and the autocomplete is not the same as the "search patrons" tab. The main difference is the "contain" vs "start with". So that if you have a patron with a patron with a surname "foo bar" and you search for "foo bar", the autocomplete and the result of a search by the checkout tab will search for "foo%" or "bar%" which won't return the patron you are search for. This patch replaces both autocomplete and checkout tab searches with a "contain" search. The search will be "%foo%" or "%bar%". Note that on big DB, this can cause unexpected results. Test plan: Create a patron with a surname "foo bar" Search for "bar" using the checkout tab. You should see the patron in the autocomplete result and the result page after submitting the search form. --- circ/circulation.pl | 1 + circ/ysearch.pl | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/circ/circulation.pl b/circ/circulation.pl index 8b2d8d8..60db4e9 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -214,6 +214,7 @@ if ($findborrower) { my $results = C4::Utils::DataTables::Members::search( { searchmember => $findborrower, + searchtype => 'contain', dt_params => $dt_params, } ); diff --git a/circ/ysearch.pl b/circ/ysearch.pl index 518915f..74e14ee 100755 --- a/circ/ysearch.pl +++ b/circ/ysearch.pl @@ -57,8 +57,8 @@ foreach my $p (@parts) { push( @params, -or => [ - surname => { -like => "$p%" }, - firstname => { -like => "$p%" }, + surname => { -like => "%$p%" }, + firstname => { -like => "%$p%" }, cardnumber => { -like => "$p%" }, ] ); -- 2.1.0