#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use Digest::SHA qw(
    sha1_base64
    sha1_hex
);

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_preference
);
use Opals::BookingSystem qw(
    bs_getBookingById_libCat
    bs_numCopyBooked
    bs_numBItemLoan

);
use Opals::Circulation qw(
    circ_numItemsAvailable
    circ_numItemOnHold4Uid
);

use Opals::BookCover qw(
    bookCover_getUrl
    bookCover_opals
);
my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

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


my ($status,$errorCode,$errorMsg)    ;
my ($permission, $cookie, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => 'ajax/circ/getBookingById.tmpl',
        reqPermission   => 'circ_rsrv_self|circ_rsrv',
    }
);
my  $awsId =Opals::Context->preference('amazonId');
my  $awsSecretKey =Opals::Context->preference('amazonSecreteKey');
my  $syndeticsId =Opals::Context->preference('syndeticsId');
if($syndeticsId && $syndeticsId ne''){$awsId ="";}
if ($permission && $permission->{'circ_rsrv_self'}
    || $permission && $permission->{'circ_rsrv'}) {

        my $booking =bs_getBookingById_libCat($dbh,$bid);
        my $isbnList="";
        foreach my $item(@{$booking->{'itemList'}}){
            my $numOfCopyAvbl       = circ_numItemsAvailable($dbh,$item->{'rid'},$booking->{'reserveFrom'});
            my $numBookedItem       = bs_numCopyBooked($dbh,$item->{'rid'},1,$booking->{'reserveFrom'},$booking->{'reserveTo'});
            my $numItemOnhold4Uid   = circ_numItemOnHold4Uid($dbh,$item->{'rid'},$booking->{'reqUid'},$booking->{'reserveFrom'});
            my $numBItemLoan        = bs_numBItemLoan($dbh,$booking->{'bookingId'},$item->{'rid'},$item->{'itemCategory'});
            my $totalAvbl           = $numOfCopyAvbl + $numItemOnhold4Uid;
            if($item->{'dateDue'} le $booking->{'reserveFrom'}){
                $totalAvbl +=  $numBItemLoan;
            }
            $item->{'numOfCopyAvbl'} = $totalAvbl;
            #if($item->{'isbn'}){
            #    $isbnList .=   "," . $item->{'isbnList'} ;
            #}
        }
        
        bookCover_opals($booking->{'itemList'});
=item         
        if($isbnList ne "" && $awsId ne "" ){
            my $bookCoverUrls= bookCover_getUrl($isbnList,$awsId,$awsSecretKey);
            foreach my $item(@{$booking->{'itemList'}}) {
                foreach my $isbn(@{$item->{'isbn'}}){
                    if($bookCoverUrls->{$isbn}){
                        $item->{'bookcover'}=$bookCoverUrls->{$isbn}->{'small'};
                    }
                }
            }
        }
=cut
        $template->param(
            bookingId           => $booking->{'bookingId'},
            reqUid              => $booking->{'reqUid'},
            department          => $booking->{'department'},
            course              => $booking->{'course'},
            reqFirstname        => $booking->{'reqFirstname'},
            reqLastname         => $booking->{'reqLastname'},
            reserveFrom         => $booking->{'reserveFrom'},
            reserveTo           => $booking->{'reserveTo'},
            startDate           => $booking->{'startDate'},
            startTime           => $booking->{'startTime'},
            endDate             => $booking->{'endDate'},
            endTime             => $booking->{'endTime'},
            itemList            => $booking->{'itemList'},
            reserve4UserList    => $booking->{'reserve4UserList'},
            #isbnList            => $isbnList,
            showAmazonCover     => ($awsId && $awsId ne '')  ?1:0,
            showSyndeticsCover  => ($syndeticsId && $syndeticsId ne '')  ?1:0
            )
}


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