#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use JSON;
use Opals::Constant;
use Opals::Context; 
use Opals::Eq_Circulation qw(
    circ_updateItemStatus
);
use Opals::Equipment qw(
    eq_item_deleteBarcode
);



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

my $loginuid = $ENV{'curUserId'};

my $itemTypeInfo ={};
if ($ENV{'REQUEST_METHOD'} eq "POST") {
    my $json ="";
    while (<STDIN>) {
        $json .= $_;
    }
    $itemTypeInfo = decode_json($json);
    my ($rid,$barcode,$status,$itemType,$note)= ($itemTypeInfo->{'rid'},$itemTypeInfo->{'barcode'},
                                           $itemTypeInfo->{'newStatus'},$itemTypeInfo->{'newItemType'},
                                           $itemTypeInfo->{'note'}
                                           );
    my $iid = $itemTypeInfo->{'iid'};
    open debug, ">/tmp/debugKKK"    ;
    print debug "rid:$rid\tbarcode:$barcode\tstatus:$status\titemType:$itemType\tnote:$note \n";
    if(defined $itemType && $itemType ne ''){
        updateItemType($dbh,$rid,$barcode,$itemType);
    }
    if(defined $status && $status ne ''){
        circ_updateItemStatus($dbh,$barcode,$status,$note);
        if ($status==ITEM_DELETED){
             eq_item_deleteBarcode($dbh,{rid=>$rid,barcode=>$barcode,iid=>$iid}); 
        }
    }
    close debug;
}
print "Content-type: text/plain\n\n";
print  to_json({status=>1});

#=======================================================================

sub updateItemType{
    my($dbh,$rid,$barcode,$newType)=@_;
    my $sql = "update eq_items set typeId=?,modifiedDate=now()  where barcode = ? && rid=?";
    my $sth = $dbh->prepare($sql);
    $sth->execute($newType, $barcode,$rid);
    $sth->finish;

}
#=======================================================================

sub getItemCurStatus {
    my($dbh,$barcode)=@_;
    my ($status)=$dbh->selectrow_array("select status from eq_itemStatus where barcode='$barcode' order by id desc limit 1");
    return $status;
}
