#!/usr/bin/perl 

BEGIN {
    if (!$ENV{'PERL5LIB'} || !$ENV{'OPALS_CONF'}) {
        exit 1;
    }
}


use Opals::Context;

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

use JSON;
use POSIX qw(
    ceil
);
use Opals::Marc::Record;
use Opals::MarcXml qw(
    mxml_addDatafield
    mxml_saveTemplate
);


my $dbh = Opals::Context->dbh();

addDataFieldXmlRec();

############################################################
sub addDataFieldXmlRec{

     my $fieldParam=[
        {tag=>'264',ind1=>'',ind2=>'1', sfList=>[{code=>'a',data=>''},{code=>'b',data=>''},{code=>'c',data=>''}]},
        {tag=>'336',ind1=>'',ind2=>'', sfList=>[{code=>'a',data=>''},{code=>'b',data=>''},{code=>'2',data=>''}]},
        {tag=>'337',ind1=>'',ind2=>'', sfList=>[{code=>'a',data=>''},{code=>'b',data=>''},{code=>'2',data=>''}]},
        {tag=>'338',ind1=>'',ind2=>'', sfList=>[{code=>'a',data=>''},{code=>'b',data=>''},{code=>'2',data=>''}]},
        {tag=>'520',ind1=>'',ind2=>'', sfList=>[{code=>'a',data=>''}]},
        {tag=>'586',ind1=>'',ind2=>'', sfList=>[{code=>'a',data=>''}]},
        {tag=>'651',ind1=>'',ind2=>'0', sfList=>[{code=>'a',data=>''}]},
        {tag=>'690',ind1=>'',ind2=>'', sfList=>[{code=>'a',data=>''}]}

    ];

    my $sth = $dbh->prepare(<<_SQL_);
select  tid,rank,name,content
from    opl_template
order by tid asc 
_SQL_


    $sth->execute;
    my $dir;

    while (my ($tid,$rank,$name,$xml) = $sth->fetchrow_array) {
       if($xml){
            my $newXml =$xml;
            my $marc = Opals::Marc::Record::newFromXml($xml);
            foreach my $fp(@$fieldParam){
                my $f= $marc->field($fp->{'tag'});
                if(!$f){
                    $newXml=mxml_addDatafield($newXml,$fp);
                }
            }
            mxml_saveTemplate({
                    dbh     => $dbh,
                    op      => '',
                    tid     => $tid,
                    rank    => $rank,
                    name    => $name,
                    content => $newXml});
         
       }
       
    }
    $sth->finish;

}

