#!/usr/bin/perl # This script finds and fixes missing biblionumber/biblioitemnumber fields in Koha # Written by TG on 01/10/2005 # Revised by Joshua Ferraro on 03/31/2006 use strict; use warnings; BEGIN { # find Koha's Perl modules # test carefully before changing this use FindBin (); eval { require "$FindBin::Bin/kohalib.pl" }; } # Koha modules used use Koha::Script; use C4::Context; use C4::Biblio qw( GetMarcBiblio ModBiblioMarc ); my $dbh = C4::Context->dbh; my $sth=$dbh->prepare("SELECT biblio.biblionumber, biblioitemnumber, frameworkcode FROM biblio JOIN biblioitems USING (biblionumber)"); $sth->execute(); while (my ($biblionumber,$biblioitemnumber,$frameworkcode)=$sth->fetchrow ){ my $record = GetMarcBiblio({ biblionumber => $biblionumber }); C4::Biblio::_koha_marc_update_bib_ids($record, $frameworkcode, $biblionumber, $biblioitemnumber); my $biblionumber = eval {ModBiblioMarc( $record, $biblionumber )}; if($@){ print "Problem with biblionumber : $biblionumber\n"; exit -1; }else{ print "biblionumber : $biblionumber\r\r"; } } END;