Russian, Polish and Ukranian language updates
[koha.git] / misc / commit_biblios_file.pl
index 09febad..2f9851f 100755 (executable)
@@ -1,6 +1,12 @@
 #!/usr/bin/perl
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 use C4::Context;
 use C4::ImportBatch;
@@ -33,12 +39,15 @@ if ($list_batches) {
 # in future, probably should tie to a real user account
 C4::Context->set_userenv(0, 'batch', 0, 'batch', 'batch', 'batch', 'batch', 'batch');
 
+my $dbh = C4::Context->dbh;
+$dbh->{AutoCommit} = 0;
 if ($batch_number =~ /^\d+$/ and $batch_number > 0) {
     my $batch = GetImportBatch($batch_number);
     die "$0: import batch $batch_number does not exist in database\n" unless defined $batch;
     die "$0: import batch $batch_number status is '" . $batch->{'import_status'} . "', and therefore cannot be imported\n"
         unless $batch->{'import_status'} eq "staged" or $batch->{'import_status'} eq "reverted";
     process_batch($batch_number);
+    $dbh->commit();
 } else {
     die "$0: please specify a numeric batch ID\n";
 }
@@ -64,7 +73,8 @@ sub process_batch {
     my ($import_batch_id) = @_;
 
     print "... importing MARC records -- please wait\n";
-    my ($num_added, $num_updated, $num_items_added, $num_ignored) = BatchCommitBibRecords($import_batch_id, 100, \&print_progress);
+    my ($num_added, $num_updated, $num_items_added, $num_items_errored, $num_ignored) = 
+        BatchCommitBibRecords($import_batch_id, 100, \&print_progress_and_commit);
     print "... finished importing MARC records\n";
 
     print <<_SUMMARY_;
@@ -76,12 +86,17 @@ Number of new bibs added:        $num_added
 Number of bibs replaced:         $num_updated
 Number of bibs ignored:          $num_ignored
 Number of items added:           $num_items_added
+Number of items ignored:         $num_items_errored
+
+Note: an item is ignored if its barcode is a 
+duplicate of one already in the database.
 _SUMMARY_
 }
 
-sub print_progress {
+sub print_progress_and_commit {
     my $recs = shift;
     print "... processed $recs records\n";
+    $dbh->commit();
 }
 
 sub print_usage {