#!/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 );
