Bug 12430: Fix selenium/regressions.t failure
[koha-ffzg.git] / misc / batchRebuildItemsTables.pl
index eb9ce08..5bb40e5 100755 (executable)
@@ -1,14 +1,17 @@
 #!/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
 
@@ -32,7 +35,6 @@ my $count      = 0;
 my $errorcount = 0;
 my $starttime  = gettimeofday;
 my @errors;
-my %opt;
 my ( $confirm, $help, $test_parameter, $where );
 GetOptions(
     'c'       => \$confirm,
@@ -41,7 +43,7 @@ GetOptions(
     '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
@@ -51,12 +53,11 @@ $dbh->{AutoCommit} = 0;
 #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 =
@@ -68,12 +69,11 @@ $sth->execute();
 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) ) {
@@ -100,14 +100,11 @@ while ( my ( $biblionumber, $biblioitemnumber, $frameworkcode ) = $sth->fetchrow
 
 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__