#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use JSON;

use Opals::Context;
use Opals::BackgroundJobs qw(
    bgjob_create
    bgjob_execute
    bgjob_getStatus
    bgjob_getOutput
    bgjob_process
);
use Opals::Session qw(
    SessionHdl_getSSID
);
my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }



my $request=getRequest();
my $cgi     = CGI->new;
my $pStatus=1;

my $ssid= SessionHdl_getSSID($cgi);
my $varName=$request->{'varName'};
my $status  =$request->{'status'};
my $jobInfo = {type=>"deleteHolding",
               note=>"delete holding from itemstatus report(status:$status)",
              };

my $itemList=getJobItemList($dbh,$ssid,$varName);
my ($jobId,$jItemCount)=bgjob_create($dbh,to_json($jobInfo),$itemList);
if($jobId && $jItemCount<=100){
    bgjob_process($dbh,$jobId);
}

print "Content-type: application/json\n\n";
my $rs={status=>1,jobId=>$jobId};
print   to_json($rs);

#-------------------------------------------------------------------------------
sub getJobItemList{
    my ($dbh,$ssid,$vaName)=@_;
    my $itemList=[];
    my $sth =$dbh->prepare("select rid,barcode from opl_sessionVar where ssid= ? && var=?");
    $sth->execute($ssid,$vaName);
    while( my $item=$sth->fetchrow_hashref){
        push @$itemList, $item;

    }
    return $itemList;

}

#-------------------------------------------------------------------------------
sub getRequest{
  my $fineList=[];
  my $in={};
  if ($ENV{'REQUEST_METHOD'} eq "POST") {
        my $json ="";
        while (<STDIN>) {
            $json .= $_;
        }
        $in = decode_json($json);
   }
   return $in;
}


