#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

use Time::localtime;
use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_preference
);

use Opals::User qw(
    user_getInformationById
    user_isUserBc
);
use Opals::Tb_Circulation qw(
    circ_getItemStatus
    circ_getItemInfo
);


use Opals::Constant;

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

my $cgi      = CGI->new;
my $input    = $cgi->Vars();
my $barcode  = $input->{"barcode"};
my ($permission, $cookie, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => '/txtbk/ajax/circ/loanInfo.tmpl',
        reqPermission   => 'tb_circ_loan|tb_circ_return',
    }
);
my $syspref      = tmpl_preference($dbh);
my $loginuid     = $template->param('curUserId');
my $tm           = localtime;
my $todayStr     = sprintf("%04d-%02d-%02d", $tm->year+1900, ($tm->mon)+1, $tm->mday);
my $dLast        = Opals::Context->preference('dateLast');
my $msgCode      = 1;
my @cookieList = (@$cookie);
if ($permission && $permission->{'tb_circ_loan'}
    || $permission && $permission->{'tb_circ_return'}){
    $barcode    =~ s/^\s+|\s+$//g;

    if($barcode ne ''){
        my $itemCircStatus = circ_getItemStatus($dbh, $barcode);
        my $itemInfo       = circ_getItemInfo($dbh, $barcode);
        if($itemCircStatus->{'status'}==IT_STAT_NOEXIST){
            my $tmpUid =user_isUserBc($dbh,$barcode);
            if($tmpUid>0){
                $msgCode='4';
            }
            else{
                $msgCode='2';
            }

        }
        elsif($itemCircStatus->{'status'} == IT_STAT_LOST){
           $msgCode ='5';          
        }
        elsif($itemCircStatus->{'status'} == IT_STAT_MISSING){
           $msgCode ='6';          
        } 
        elsif(!$itemCircStatus->{'l_idLoan'} || $itemCircStatus->{'l_idLoan'} ==0){
            $msgCode='3';
        }
        $template->param( msgCode    => $msgCode, 
                          barcode    => $barcode);
        if($itemCircStatus->{'status'}!=IT_STAT_NOEXIST){ 
            $template->param(
                rid          => $itemInfo->{'rid'},
                l_uid        => $itemCircStatus->{'l_uid'},
                l_idloan     => $itemCircStatus->{'l_idLoan'},
                l_title      => $itemInfo->{'title'},
                l_author     => $itemInfo->{'author'},
                l_pubName    => $itemInfo->{'pubName'},
                l_pubDate    => $itemInfo->{'pubDate'},
                l_price      => $itemInfo->{'price'},
                l_callNumber => $itemInfo->{'classNumber'},
                l_dateLoan    => $itemCircStatus->{'l_dateLoan'},
                l_duedate    => $itemCircStatus->{'l_duedate'},
                );
      }
      if($itemCircStatus->{'status'}==IT_STAT_HAVE_RSVR){
          $template->param(isReserved =>1);          
      }
    }

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


