#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use Encode;

use Opals::Context;

use Opals::Date qw(
    date_now
);
use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_preference
);
use Opals::Locale qw(
    loc_getMsgFile
    loc_write
);
use Opals::ILL qw{
    ill_res_returnLoan
    ill_res_receiveLoan
    ill_res_lookup
    ill_res_lookupBy_loanId
};


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

my $cgi = CGI->new;
my $input = $cgi->Vars();
my ($permission, $cookie, $template) = tmpl_read(
            {
                dbh             => $dbh,
                cgi             => $cgi,
                tmplFile        => 'ill/responderCheckin.tmpl',
                reqPermission   => 'circ_ill_filter',
            }
    );
my $today = date_now();
my $rList =[];
my $op       = $input->{'op'};
my $inputVal = $input->{'illLookup'};
my @processingRs=();

if ($op eq 'receive') {
   my @loanIdList=$cgi->param("loanId");
   foreach my $loanId(@loanIdList){
        my $loan=ill_res_lookupBy_loanId($dbh,$loanId);
        if(defined $loan){
            if($loan->{'status'} =~ m/^loan|return|lost$/ ){
                $loan->{'pMsg'}="SUCCESS";
                $loan->{'hasTrans'}=1;
                my $p=ill_res_receiveLoan($dbh,$loanId,$today,$loan->{'barcode'});
                
                if(!$p){
                   $loan->{'pMsg'} ='ERROR_PROCCESS';  
                }            
            }
        }
        else{
            $loan= {loanId=>$loanId,pMsg=>"ERROR_NO_TRANSACTION",hasTrans=>0};
        }
        push @processingRs,$loan;
   }
   
}
elsif($inputVal && $inputVal ne''){
    $rList = ill_res_lookup($dbh,$inputVal,['loan','return','lost']);
    my $rListCnt = scalar(@$rList); 
    if($rListCnt ==1){
       @$rList[0]->{'checked'} =1;
    }
}
$template->param(rList    => $rList,
                 inputVal => $inputVal,
                 processingRs => \@processingRs );


#------------------------------------------------------------------
$template->param(hlpUrl     => Opals::Constant->getHlpUrl('ill') );
  my $marc21EditMsgMap =loc_getMsgFile('ill/ill.msg');
  loc_write($template,$marc21EditMsgMap);
tmpl_write($dbh, $cgi, $cookie, $template);
#$dbh->disconnect();



