#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);

use Opals::User qw(
    user_getInformationByBc
    user_getInformationById
);
use Opals::Transaction qw(
    trans_getBalance
    
);
use Opals::Circulation qw(
    circ_GetOnloanNumber
    circ_GetOverdueNumber
    circ_GetReserveNumber
);
use POSIX qw(
    floor
);

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

my $cgi      = CGI->new;
my $input    = $cgi->Vars();
my $userBc       = $input->{"bc"};
my $uid       = $input->{"uid"};


my ($status,$errorCode,$errorMsg)    ;
my ($permission, $cookie, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => 'ajax/circ/userInfo.tmpl',
        reqPermission   => 'circ_loan|circ_return',
    }
);
if ($permission &&  ($permission->{'circ_loan'}|| $permission->{'circ_return'})) {
     my ($userInfo, $guardian);
    if($userBc && $userBc ne ''){
        ($userInfo, $guardian) = user_getInformationByBc($dbh, $userBc);
        $uid =$userInfo->{'uid'};
    }
    elsif($uid && $uid >0){
        ($userInfo, $guardian) = user_getInformationById($dbh, $uid);
    }
    if($userInfo){
        my $balance = trans_getBalance($dbh,$uid );
        $balance = floor($balance*100 + 0.50)/100; 
        $balance = sprintf("%.2f",$balance);

       $template->param(
            uid       => $userInfo->{'uid'},
            userbarcode    => $userInfo->{'userbarcode'},
            username       => $userInfo->{'username'},
            firstname      => $userInfo->{'firstname'},
            lastname       => $userInfo->{'lastname'},
            nickname       => $userInfo->{'nickname'},
            homeroom       => $userInfo->{'homeroom'},
            teacher        => $userInfo->{'teacher'},
            grade          => $userInfo->{'grade'},
            program        => $userInfo->{'program'},
            studies        => $userInfo->{'studies'},
            notes          => $userInfo->{'notes'},
            status         => $userInfo->{'status'},
            expired        => $userInfo->{'expired'},
            categorycode   => $userInfo->{'categorycode'},
            balance        => $balance,
            totalLoan         => circ_GetOnloanNumber($dbh, $uid),
            totalOverdue   => circ_GetOverdueNumber($dbh, $uid),
            totalReserve   => circ_GetReserveNumber($dbh, $uid)
        );
    }



}
 
tmpl_write($dbh, $cgi, $cookie, $template);



