#!/usr/bin/perl

use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);
use Opals::Search qw(
 
    srch_F852Default_marc21

);

use Opals::Tb_Record qw(
    
    tb_record_findByRId
    tb_item_findByRId
    tb_item_add
    tb_itemType_getList


);

use Opals::Tb_Search qw(
    
    search_record
    search_record_byBarcode

);

use Opals::Tb_Circulation qw(

    circ_infoRecord

);

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

my $cgi = CGI->new;
my $input = $cgi->Vars();
my ($permission, $cookieList, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => '/txtbk/quickHoldingEntry.tmpl',
    }
);
#Fri, Jan 11, 2013 @ 12:13:17 EST
#quick barcodes entry

my $source   =  $input->{'source'} || "";
my $price    =  $input->{'price'} || "";
my $acquisitiondate = $input->{'acquisitiondate'} || ""; 
my @bcList   = ($cgi->param('barcode'));
my $rid = $input->{'rid'} || $input->{'recId'};
my $itemType = $input->{'itemType'} || "";

#get default system-library codes
my $default852 = srch_F852Default_marc21($dbh);
my $sCode =  $default852->subfield('a');
my $lCode =  $default852->subfield('b');

my $sKw         = $input->{'sKw'};
my $sfCode      = $input->{'sfCode'};
my $sfIndex = $input->{'sfIndex'};
my $sortAttr    = $input->{'sortAttr'};
    if (!$sortAttr ){
        $sortAttr = '245_a';
    }
my $direction   = $input->{'direction'};
    $direction  = 0 if (! $direction);
my $resultOrder = $input->{'resultOrder'};
my $sortOrder   = $input->{'sortOrder'};
my $resultSize  = $input->{'resultSize'};
my $pNum = $input->{'pNum'};
    ($pNum && $pNum > 0) || ($pNum = 1);


my ($numTotal, $numLoan, $numReserve, $numHold, $itemList, $totalCirc); 
my ($recordId, $recordInfo);
my $tbItemTypeList    =  tb_itemType_getList($dbh);


if ($source eq "manual" || $source eq "file"){
   for my $i (0 .. $#bcList){
        my $params = {
                rid         => $rid,
                barcode     => $bcList[$i],
                typeId      => $itemType,
                lCode       => $lCode,
                price       => $price,
                classno     => "",
                acqDate     => $acquisitiondate,
                PONo        => "",
                distributor => "",
                regionCode  => $sCode,
                districtCode=> "",
                buildingCode=> "",
                importDate  => "",
                budgetCategory=> "",
                vendorCatalogNo=>""
            };
        my $retItemAdd = tb_item_add($dbh, $params);
   } 
}


if (!$rid){
    $template->param( 
        error   => 1,)
    }
else{
    ($recordId, $recordInfo) = tb_record_findByRId($dbh,$rid);
    ($numTotal, $numLoan, $numReserve, $numHold, $itemList, $totalCirc) = circ_infoRecord($dbh, $recordId);
    
    if ($numLoan == 0 && $numReserve == 0 && $numHold == 0){
        $template->param(allowDeletion => 1);
    }

    $template->param(
            recordInfo      =>  $recordInfo, 
            rid             =>  $recordId,
            numTotal        =>  $numTotal,
            numLoan         =>  $numLoan,
            numReserve      =>  $numReserve,
            numHold         =>  $numHold,
            numReserveTotal =>  $numReserve + $numHold,
            numAvailable    =>  $numTotal - $numLoan - $numHold,
            itemList        =>  $itemList, 
            );
    $template->param(
        sKw         => $sKw,
        sfCode      => $sfCode,
        sfIndex     => $sfIndex,
        resultOrder => $resultOrder + $direction,
        sortOrder   => $sortOrder,
        sortAttr    => $sortAttr,

    );

    }

$template->param(
      file => ($source =~ m/^file$/i)?1:0,
      tbItemTypeList  => $tbItemTypeList,
      tbItemTypeList_empty => (scalar @$tbItemTypeList == 0)?1:0,   
      defaultItemType => $itemType,
      price           => $price,
      acquisitiondate => $acquisitiondate    
);


$template->param(
    sCode       => $sCode,
    lCode       => $lCode,
);



if ($permission && $permission->{'tb_record_edit'}) {
    $template->param(textbook_mgmt => 1);
}

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

###################################################


