Bug 24153: Add a confirm flag to cleanup_database
[koha.git] / misc / batchRepairMissingBiblionumbers.pl
1 #!/usr/bin/perl
2 # This script finds and fixes missing biblionumber/biblioitemnumber fields in Koha
3 #  Written by TG on 01/10/2005
4 #  Revised by Joshua Ferraro on 03/31/2006
5 use strict;
6 use warnings;
7 BEGIN {
8     # find Koha's Perl modules
9     # test carefully before changing this
10     use FindBin;
11     eval { require "$FindBin::Bin/kohalib.pl" };
12 }
13
14 # Koha modules used
15 use Koha::Script;
16 use C4::Context;
17 use C4::Biblio;
18
19
20 my $dbh = C4::Context->dbh;
21
22 my $sth=$dbh->prepare("SELECT biblio.biblionumber, biblioitemnumber, frameworkcode FROM biblio JOIN biblioitems USING (biblionumber)");
23 $sth->execute();
24
25 while (my ($biblionumber,$biblioitemnumber,$frameworkcode)=$sth->fetchrow ){
26     my $record = GetMarcBiblio({ biblionumber => $biblionumber });
27     C4::Biblio::_koha_marc_update_bib_ids($record, $frameworkcode, $biblionumber, $biblioitemnumber);
28     my $biblionumber = eval {ModBiblioMarc( $record, $biblionumber, $frameworkcode )};
29     if($@){
30         print "Problem with biblionumber : $biblionumber\n";
31         exit -1;
32     }else{
33         print "biblionumber : $biblionumber\r\r";
34     }
35 }
36
37 END;