#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);

use Opals::Circulation qw(
    circ_userListReserve
    circ_userListLoan
    circ_isOnReserve
);
use POSIX qw(
    floor
);
use Opals::Date qw(
    date_today
    date_text
    date_DHM_text
);

use Opals::User qw(
    user_getInformationById
    user_getUserCircInfo
);
use Opals::Transaction qw(
    trans_getBalance
    trans_getUnpaidChargeList
    
);

use JSON;

my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $lang  = Opals::Context->preference('lang');
my $cgi      = CGI->new;
my $input    = $cgi->Vars();
my $userCirInfoList=[];
my $uList=undef;
if(defined $input->{'uid'} && $input->{'uid'}){
    push  @$uList,$input->{'uid'};
}
else{
    $uList=getUidList($dbh);
}


foreach my $uid (@$uList){
    my $userCircInfo=user_getUserCircInfo($dbh,$uid);
    if(defined $userCircInfo){
        push @$userCirInfoList,$userCircInfo;
    }
}

print "Content-type: text/plain\n\n";
print  to_json($userCirInfoList,{pretty=>1});

#----------------------------------------------------------
sub getUidList{
    my($dbh)=@_;
    my $uidList=[];
    if(defined $input->{'preSelListId'} && $input->{'preSelListId'} ne ''){
        my ($uidListStr)=$dbh->selectrow_array("select uidList from opl_preSelUserList where id=?",undef,$input->{'preSelListId'});
        @$uidList=split(",",$uidListStr);
    }
    elsif(defined $input->{'teacher'} && $input->{'teacher'} ne ''){
        my $sth=$dbh->prepare("select uid from opl_user where teacher=?");
        $sth->execute($input->{'teacher'} );
        while(my ($uid)=$sth->fetchrow_array){
            push  @$uidList,$uid;
        }
    }
    elsif(defined $input->{'homeroom'} && $input->{'homeroom'} ne ''){
        my $sth=$dbh->prepare("select uid from opl_user where homeroom=?");
        $sth->execute($input->{'homeroom'} );
        while(my ($uid)=$sth->fetchrow_array){
            push  @$uidList,$uid;
        }

    }
    elsif(defined $input->{'grade'} && $input->{'grade'} ne ''){
        my $sth=$dbh->prepare("select uid from opl_user where grade=?");
        $sth->execute($input->{'grade'} );
        while(my ($uid)=$sth->fetchrow_array){
            push  @$uidList,$uid;
        }

    }
    return $uidList;
}
#----------------------------------------------------------

