#!/usr/bin/perl

use strict;
use CGI;
use JSON;
use Time::localtime;

use Opals::Context;
use Opals::Session qw(
    SessionHdl_exist_bc
    SessionHdl_getSSID
);

use Opals::Template qw(
    tmpl_read
    tmpl_write
);

use Opals::Date qw(
    date_text
);

use Opals::Tb_Record qw(
  
    tb_item_findByBarcode

);
use Opals::Tb_Search qw(

    search_rpt_getItemListByStatus

);

use Opals::Locale qw(
    loc_getMsgFile
    loc_write
);

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

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

my $cgi = CGI->new;
my $input = $cgi->Vars();

my $dateFrom= $input->{'from'} || "1900-01-01";
my $dateTo  = $input->{'to'} || $todayStr;
my $sort    = $input->{'sort'};
my $sortDir = $input->{'sortDir'};
my $status  = $input->{'status'};
my $type ;
if ($status eq '3'){
    $type = 'Lost';
}
elsif ($status eq '2'){
    $type = 'Damaged';
}
elsif ($status eq '0'){
    $type = 'Missing';
}
else {
    $type = 'Lost';
}

my $pRange = 5;
my $pSize = $input->{'pSize'} || 10;
my $curPage = $input->{'pNum'};
my $offset;
    ($curPage && $curPage >= 1) ||($curPage = 1 );
    $offset = ($curPage - 1 ) * $pSize;
    if (!$sort){
        $sort = "title";
    }
    if (!$sortDir){
        $sortDir    = 'asc';
    }
    my $sortAttr = '245_a';
    if ($sort eq 'recordId'){
        $sortAttr = 'recordId';
    }
    elsif ($sort eq 'title'){
        $sortAttr = '245_a';
    }
    elsif ($sort eq '100_a'){
        $sortAttr = '100_a';
    }
    elsif ($sort eq 'callNumber'){
        $sortAttr = 'classNumber';    
    }
    elsif ($sort eq 'barcode'){
        $sortAttr = 'barcode';    
    }
    elsif ($sort eq 'price'){
        $sortAttr = 'price';    
    }
    elsif ($sort eq 'ondate'){
        $sortAttr = 'ondate';    
    }
    elsif ($sort eq 'userName'){
        $sortAttr = 'userName';
    }
    my $rs = search_rpt_getItemListByStatus ($dbh,$offset,$pSize,$dateFrom,$dateTo,$sortAttr,$sortDir,$status);
    my $varName="tb_item$type" ;
    my $ssid =SessionHdl_getSSID($cgi);
    foreach my $i(@{$rs->{'itemList'}}){
       if(SessionHdl_exist_bc($dbh,$ssid,$varName,$i->{'barcode'})){
           $i->{'selected'}='true';
       }
    }
    my $rsJSON = to_json( $rs,{pretty=>1});

    print "Content-type: text/plain\n\n";
    print  $rsJSON;



