#!/usr/bin/perl
+
use Modern::Perl;
+
use Getopt::Long;
+use MARC::Field;
+use MARC::Record;
+use Pod::Usage;
+use Time::HiRes qw(gettimeofday);
+
+use Koha::Script;
use C4::Context;
use C4::Biblio;
use C4::Items;
-use MARC::Record;
-use MARC::Field;
-use Data::Dumper;
-use Time::HiRes qw(gettimeofday);
-use Pod::Usage;
=head1 NAME
my $errorcount = 0;
my $starttime = gettimeofday;
my @errors;
-my %opt;
my ( $confirm, $help, $test_parameter, $where );
GetOptions(
'c' => \$confirm,
'where:s' => \$where,
) or pod2usage(2);
-pod2usage(1) if ( $help || ( !$confirm ) );
+pod2usage(1) if $help || ( !$confirm && !$test_parameter );
print "### Database will not be modified ###\n" if $test_parameter;
#dbh
#sysprefs
C4::Context->disable_syspref_cache() if ( defined( C4::Context->disable_syspref_cache() ) );
my $CataloguingLog = C4::Context->preference('CataloguingLog');
-my $dontmerge = C4::Context->preference('dontmerge');
-$dontmerge = "0" unless defnonull($dontmerge);
+my $mergelimit = C4::Context->preference('AuthorityMergeLimit');
$dbh->do("UPDATE systempreferences SET value=0 WHERE variable='CataloguingLog'");
-$dbh->do("UPDATE systempreferences SET value=1 where variable='dontmerge'");
+$dbh->do("UPDATE systempreferences SET value=0 where variable='AuthorityMergeLimit'");
$dbh->commit() unless $test_parameter;
-my ( $itemfield, $itemnumbersubfield ) = &GetMarcFromKohaField( "items.itemnumber", '' );
+my ( $itemfield, $itemnumbersubfield ) = &GetMarcFromKohaField( "items.itemnumber" );
#dbh query init
my $query =
while ( my ( $biblionumber, $biblioitemnumber, $frameworkcode ) = $sth->fetchrow ) {
$count++;
warn $count unless $count % 1000;
- my $extkey;
- my $record = GetMarcBiblio( $biblionumber, 1 );
+ my $record = GetMarcBiblio({
+ biblionumber => $biblionumber,
+ embed_items => 1 });
unless ($record) { push @errors, "bad record biblionumber $biblionumber"; next; }
- my ( $tmptestfields, $tmptestdirectory, $reclen, $tmptestbaseaddress ) = MARC::File::USMARC::_build_tag_directory($record);
- #print "\n################################ record before ##################################\n".$record->as_formatted;#!test
unless ($test_parameter) {
my $rqitemnumber = $dbh->prepare("SELECT itemnumber, biblionumber from items where itemnumber = ? and biblionumber = ?");
foreach my $itemfield ( $record->field($itemfield) ) {
my $sthCataloguingLog = $dbh->prepare("UPDATE systempreferences SET value=? WHERE variable='CataloguingLog'");
$sthCataloguingLog->execute($CataloguingLog);
-my $sthdontmerge = $dbh->prepare("UPDATE systempreferences SET value=? WHERE variable='dontmerge'");
-$sthdontmerge->execute($dontmerge);
+my $sthmergelimit = $dbh->prepare("UPDATE systempreferences SET value=? WHERE variable='AuthorityMergeLimit'");
+$sthmergelimit->execute($mergelimit);
$dbh->commit() unless $test_parameter;
my $timeneeded = time() - $starttime;
print "$count MARC record done in $timeneeded seconds\n";
if ( scalar(@errors) > 0 ) {
print "Some biblionumber could not be processed though: ", join( " ", @errors );
}
-
-sub defnonull { my $var = shift; defined $var and $var ne "" }
-__END__