From 3ecd8447d052aa6e8dbddc4d3682f7b8eb22d83a Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Sat, 24 Sep 2016 19:25:33 +0000 Subject: [PATCH] Bug 17352 - Patron search type is hard coded to 'contain' in circ/circulation.pl The patron search type is hard coded to 'contain' in circ/circulation.pl. This causes problems because a mis-scanned cardnumber can bring up the wrong patron. The example that our partner gave us involved scanning '1733', which doesn't match any borrowers when we do a 'start_with' search, but matches the cardnumber 'p291733'. If we follow the usage in members/member.pl, we can set searchtype in HTTP params, which is amenable to fixes in intranetuserjs Test Plan: 1) Apply this patch 2) Use the checkout search, not changes should be noted Extra credit: 1) Add javascript to intranetuserjs to add a hidden input named 'searchtype' with the value 'start_with' 2) Checkout searches should now give only results where a searched field starts with the given string(s) Signed-off-by: Josef Moravec Signed-off-by: Jonathan Druart --- circ/circulation.pl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/circ/circulation.pl b/circ/circulation.pl index b5442e4..fcd967d 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -139,6 +139,8 @@ my @failedreturns = $query->multi_param('failedreturn'); our %return_failed = (); for (@failedreturns) { $return_failed{$_} = 1; } +my $searchtype = $query->param('searchtype') || q{contain}; + my $findborrower = $query->param('findborrower') || q{}; $findborrower =~ s|,| |g; @@ -239,8 +241,8 @@ if ($findborrower) { my $results = C4::Utils::DataTables::Members::search( { searchmember => $findborrower, - searchtype => 'contain', - dt_params => $dt_params, + searchtype => $searchtype, + dt_params => $dt_params, } ); my $borrowers = $results->{patrons}; -- 2.8.1