From: miker Date: Tue, 13 Jan 2009 01:10:46 +0000 (+0000) Subject: add left-anchored actor.card.barcode restriction to user "crazy" search X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=8e0aab58d798ea3cf1865a8daaab6faac7b042d1;p=Evergreen.git add left-anchored actor.card.barcode restriction to user "crazy" search git-svn-id: svn://svn.open-ils.org/ILS/trunk@11810 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm index 022666421e..d7b68912c6 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm @@ -482,6 +482,7 @@ sub patron_search { # group 0 = user # group 1 = address # group 2 = phone, ident + # group 3 = barcode my $usr = join ' AND ', map { "LOWER($_) ~ ?" } grep { ''.$$search{$_}{group} eq '0' } keys %$search; my @usrv = map { "^$$search{$_}{value}" } grep { ''.$$search{$_}{group} eq '0' } keys %$search; @@ -492,6 +493,13 @@ sub patron_search { my $pv = $$search{phone}{value}; my $iv = $$search{ident}{value}; my $nv = $$search{name}{value}; + my $cv = $$search{card}{value}; + + my $card = ''; + if ($cv) { + $card = 'JOIN (SELECT DISTINCT usr FROM actor.card WHERE barcode LIKE ?||\'%\') AS card ON (card.usr = users.id)'; + unshift(@usrv, $cv); + } my $phone = ''; my @ps; @@ -579,7 +587,7 @@ sub patron_search { $select = <<" SQL"; SELECT DISTINCT $distinct_list - FROM $u_table AS users + FROM $u_table AS users $card JOIN ($select) AS search ON (search.id = users.id) JOIN $descendants d ON (d.id = users.home_ou) $opt_in_join