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

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

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

my ($status,$errorCode,$errorMsg)    ;
my ($permission, $cookie, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => 'ajax/circ/userCircInfo.tmpl',
        reqPermission   => 'circ_loan|circ_return',
    }
);
if ($permission && ($permission->{'circ_loan'}|| $permission->{'circ_return'})) {
   my ($numOverdue,$loanList) =GetLoanItems($dbh, $uid);
   my $reserveList =GetReservedItems($dbh, $uid);
   $template->param(
        loanList=>,$loanList,
        reserveList=>$reserveList,
    );
}

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

#----------------------------------------------------------
sub GetReservedItems
{
    my ($dbh,$uid) = @_;
    
    my $reserveList = circ_userListReserve($dbh, $uid);
    foreach my $reserve (@$reserveList) 
    {
        $reserve->{'dateReserve'} = date_text($reserve->{'dateReserve'}, 0);
        if($reserve->{'numCopyReserve'}==0){
            $reserve->{'dateExpiry'}  ='';
        }
        else{
            $reserve->{'dateExpiry'}  = date_text($reserve->{'dateExpiry'}, 0);
        }
    }
    return $reserveList;
}
#----------------------------------------------------------

sub GetLoanItems
{
    my ($dbh, $uid) = @_;
    
    my  $loanList = circ_userListLoan($dbh, $uid);
    my $odCount = 0;
    foreach my $loan (@$loanList) 
    {
        if ( $loan->{'overdue'} ) { $odCount++; }
        $loan->{'dateLoan'} = date_text($loan->{'dateLoan'}, 0);
        $loan->{'dateDue'}  = $loan->{'dateDue'} =~ m/23:59:59$/g ? date_text($loan->{'dateDue'}, 0):date_DHM_text($loan->{'dateDue'}, 0);
        $loan->{'isReserved'}=circ_isOnReserve($dbh,$loan->{'rid'}); 
        if($loan->{'barcode'} =~m/^\_\_\_(.*)/){
            $loan->{'org_barcode'} =$1;
        }
        else{
            $loan->{'org_barcode'} =$loan->{'barcode'};
        }
        if($loan->{'tempIll'} =~m/ILL|temporary/i){
            $loan->{'isTempILL'} =1;
        }

    }
    return($odCount,$loanList);
}


