#!/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::BookingSystem qw(
    bs_updateBookingStatus
    bs_getBookingById_libCat
);
use Opals::Circulation qw(
    circ_cancelBooking
);


use Opals::Constant;

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        => 'ajax/circ/updateStatusBooking.tmpl',
        reqPermission   => 'circ_rsrv_self|circ_rsrv',
    }
);

my $dateDue;
my $tm = localtime;
my $todayStr = sprintf("%04d-%02d-%02d", $tm->year+1900, ($tm->mon)+1, $tm->mday);

if ($permission->{'circ_rsrv_self'} || $permission->{'circ_rsrv_self'}) {
    my @bookingIdList=split /,/,$input->{'bookingIdList'};
    my @updateRSList=();
    my $op = $input->{'op'};
    foreach my $bid(@bookingIdList){
        my $msgCode="01";
        my $bookingInfo =bs_getBookingById_libCat($dbh,$bid);
        if($bookingInfo->{'bookingId'}>0){
            if($op && $op eq 'cancel'){
                circ_cancelBooking($dbh,$bid);
            }
            elsif($op && $op eq 'ready'){
                bs_updateBookingStatus($dbh,$bid,'ready');
            }
        }
        else{
            $msgCode="02";
        }
        $bookingInfo->{'msgCode'}=$msgCode;
        push @updateRSList,$bookingInfo;
    }
    $template->param(updateBookingList=>\@updateRSList);
} 

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