#!/usr/bin/perl -w

#SITE=ztest; INFILE=/tmp/textbook.mrc; \cp -fp script/util/tbk_marc_import /tmp/ttt; perl -pi -e "s/_SITECODE_/$SITE/" /tmp/ttt; /tmp/ttt $INFILE
#
#SITE=ztest
#INFILE=/tmp/textbook.mrc
#\cp -fp script/util/tbk_marc_import /tmp/ttt
#perl -pi -e "s/_SITECODE_/$SITE/" /tmp/ttt
#/tmp/ttt $INFILE

use lib "/www/opals/module";
use Opals::Context("/etc/opals/conf/odev");
use Time::localtime;

use strict;
use MARC::Field;
use MARC::File::USMARC;


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

my $tm = localtime;
my $dateToday = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $tm->year+1900, ($tm->mon)+1, $tm->mday, $tm->hour, $tm->min, $tm->sec);

$| = 1;
# Codes start...

print $ARGV[0], "\n";
my $marcfile = MARC::File::USMARC->in($ARGV[0]);
my $newEq = "";
my $tmp_rid= 1;
while (my $record = $marcfile->next()) {
    my $rid = $tmp_rid; # eq_record_idGen($dbh);
    print  " RID : " , $tmp_rid , ":\t ";
    my $data = "";
    #my $eqName = $record->subfield('245',"a") .  $record->subfield('245',"b");

    my $params = {rid=>$rid, fValue=>$rd->subfield('245',"a"),reqField=>1};
        print "Equipment Name: ",  $record->subfield('245',"a"), "\n";
        #eq_record_add($dbh, $params);
        
        $data= ($record->subfield('100',"a")) ? $record->subfield('100',"a"):"";
        print "Manufacture :" , $data , "\n";
        $params = {rid=>$rid, fId=>1,fValue=>$data};
        #eq_record_add($dbh,$params);

        $data= ($record->subfield('245',"b")) ? $record->subfield('245',"b"):"";
        print "Model :" , $data , "\n";
        $params = {rid=>$rid, fId=>3,fValue=>$data};
        #eq_record_add($dbh,$params);

        $data= ($record->subfield('300',"b")) ? $record->subfield('300',"b"):"";
        print "Accessories note:", $data , "\n";
        $params = {rid=>$rid, fId=>36,fValue=>$data};
        #eq_record_add($dbh,$params); 

        $data= ($record->subfield('500',"a")) ? $record->subfield('500',"a"):"";
        print "General note:", $data , "\n";
        $params = {rid=>$rid, fId=>33,fValue=>$data};
        #eq_record_add($dbh,$params); 
        $tmp_rid++;    
    }
    my $iid= 1;
    
    foreach my $f ($record->field('852')) {
        print "holding: ", $iid , $f->subfield('p') , "\t";
        my $params = {
            rid         => $rid,
            barcode     => $f->subfield('p')?$f->subfield('p'):"TMP_" . $rid . "_" . $iid,
            typeId      => 'EQP',
            available   => 1,
            reqField    => 1,
            iid         => $iid,
        };
        eq_item_add($dbh,$params);
        $params = {
            iid         => $iid,
            rid         => $rid,
            sfId        => 38,
            sfValue     => ($f->subfield('e'))?$f->subfield('e'):"",
        };
        print "itemStatus Note:" , $f->subfield('e'), "\t";
        eq_item_add($dbh,$params);
        $params = {
            iid         => $iid,
            rid         => $rid,
            sfId        => 5,
            sfValue     => ($f->subfield('i'))?$f->subfield('i'):"",
        };
        print "Serial#:" , $f->subfield('i'), "\t";
        eq_item_add($dbh,$params);
 
        $params = {
            iid         => $iid,
            rid         => $rid,
            sfId        => 18,
            sfValue     => ($f->subfield('a'))?$f->subfield('a'):"",
        };
        print "Building:" , $f->subfield('a'), "\t";
        eq_item_add($dbh,$params);
        
        $params = {
            iid         => $iid,
            rid         => $rid,
            sfId        => 6,
            sfValue     => ($f->subfield('9'))?$f->subfield('9'):"",
        };
        print "Price:" , $f->subfield('9'), "\t";
        eq_item_add($dbh,$params);


        $params = {
            iid         => $iid,
            rid         => $rid,
            sfId        => 11,
            sfValue     => ($f->subfield('c'))?$f->subfield('c'):"",
        };
        print "Location:" , $f->subfield('c'), "\t";
        eq_item_add($dbh,$params);

        $iid++;
        print "\n";
    }
}
$marcfile->close();
# Codes end.

exit 0;

#add record 
sub eq_record_add{
   
    my ($dbh, $params) = @_;
    return -1 if ($params->{'rid'} eq '');
    my ($sql, $sth, $id);
=item    
    if ($params->{'reqField'}){
         $sql = "insert into eq_records set rid=?, rname=?"; 
         $sth = $dbh->prepare($sql);
         $sth->execute($params->{'rid'}, $params->{'fValue'});
         $id = $dbh->{'mysql_insertid'};

        }
    else{
        $sql = "insert into eq_recordFields set rid=?, fId=?, fValue=?";    
        $sth = $dbh->prepare($sql);
        $sth->execute($params->{'rid'}, $params->{'fId'}, $params->{'fValue'});
        $id = $dbh->{'mysql_insertid'};
    }
    $sth->finish;
=cut    
    return $id;

}
sub eq_item_add{

    my ($dbh,$params) = @_;
    return -1 if ($params->{'iid'} eq '');
    my ($sql, $sth, $id);
=item    
    if ($params->{'reqField'}){
        $sql = "insert into eq_items set iid=?, rid=?, barcode=?, typeId=?, Available=1, createdDate=now()";
        $sth = $dbh->prepare($sql);
        $sth->execute($params->{'iid'}, $params->{'rid'}, $params->{'barcode'}, $params->{'typeId'});
        $id = $dbh->{'mysql_insertid'};
    }
    else{
        $sql = "insert into eq_itemFields set iid=?, rid=?, sfId=?, sfValue=?";
        $sth = $dbh->prepare($sql);
        $sth->execute($params->{'iid'}, $params->{'rid'}, $params->{'sfId'}, $params->{'sfValue'});
        $id = $dbh->{'mysql_insertid'};
    }
    $sth->finish;
=cut    
    return $id;
}


sub eq_record_idGen {
    
    my ($dbh) = @_;
    my $checkSum = `date +\%Y\%m\%d\%H\%M\%S\%N`;
    chomp $checkSum;
    my $sql = "insert into opl_idGen set type = 'equipment', checkSum=? ";
    my $sth = $dbh->prepare($sql);
    $sth->execute($checkSum);
    $sql = "select id from opl_idGen where type = ? and checkSum=? ";
    $sth = $dbh->prepare($sql);
    $sth->execute('equipment',$checkSum);
    my ($id) = $sth->fetchrow_array();
    $sth->finish;
    return $id;
}

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

