Koha/circ/ysearch.pl
Jonathan Druart bcb58e1817 Bug 13892: Make ysearch.pl not using C4::Members::Search
To get rid of SQLHelper, we should not use this C4::Members::Search anymore.

Test plan:
0/ Enable the CircAutocompl pref
1/ Go on the circulation home page, or the reserve page
2/ Search for a patron and wait for the autocompletion box
3/ Confirm there is no regression

Works as expected.
Signed-off-by: Marc Veron <veron@veron.ch>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
2015-03-30 12:25:56 -03:00

84 lines
2.5 KiB
Perl
Executable file

#!/usr/bin/perl
# This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html)
# Copyright 2007 Tamil s.a.r.l.
# Parts copyright 2010-2012 Athens County Public Libraries
#
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with Koha; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
=head1 ysearch.pl
=cut
use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Context;
use C4::Auth qw/check_cookie_auth/;
use Koha::Borrowers;
use JSON qw( to_json );
my $input = new CGI;
my $query = $input->param('term');
binmode STDOUT, ":encoding(UTF-8)";
print $input->header( -type => 'text/plain', -charset => 'UTF-8' );
my ( $auth_status, $sessionID ) = check_cookie_auth( $input->cookie('CGISESSID'), { circulate => '*' } );
if ( $auth_status ne "ok" ) {
exit 0;
}
my $limit_on_branch;
if ( C4::Context->preference("IndependentBranches")
&& C4::Context->userenv
&& !C4::Context->IsSuperLibrarian()
&& C4::Context->userenv->{'branch'} ) {
$limit_on_branch = 1;
}
my $borrowers_rs = Koha::Borrowers->search(
{ -or => {
surname => { -like => "$query%" },
firstname => { -like => "$query%" },
cardnumber => { -like => "$query%" },
( $limit_on_branch ? { branchcode => C4::Context->userenv->{branch} } : () ),
},
},
{
# Get the first 10 results
page => 1,
rows => 10,
order_by => [ 'surname', 'firstname' ],
},
);
my @borrowers;
while ( my $b = $borrowers_rs->next ) {
push @borrowers,
{ borrowernumber => $b->borrowernumber,
surname => $b->surname,
firstname => $b->firstname,
cardnumber => $b->cardnumber,
address => $b->address,
city => $b->city,
zipcode => $b->zipcode,
country => $b->country
};
}
print to_json( \@borrowers );