[Koha-patches] [PATCH] Repair the old repairmissingbiblionumbers script
Nahuel ANGELINETTI
nahuel.angelinetti at biblibre.com
Sat Apr 18 21:58:32 CEST 2009
This patch refound all the script which fix all records without any biblionumber.
---
misc/batchRepairMissingBiblionumbers.pl | 50 ++++++++++---------------------
1 files changed, 16 insertions(+), 34 deletions(-)
diff --git a/misc/batchRepairMissingBiblionumbers.pl b/misc/batchRepairMissingBiblionumbers.pl
index 920f593..3b3c345 100755
--- a/misc/batchRepairMissingBiblionumbers.pl
+++ b/misc/batchRepairMissingBiblionumbers.pl
@@ -3,6 +3,7 @@
# 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
@@ -14,43 +15,24 @@ BEGIN {
use C4::Context;
use C4::Biblio;
-use MARC::Record;
-use MARC::File::USMARC;
my $dbh = C4::Context->dbh;
-
-my $sth=$dbh->prepare("select m.biblionumber,b.biblioitemnumber from marc_biblio m left join biblioitems b on b.biblionumber=m.biblionumber ");
- $sth->execute();
-
-while (my ($biblionumber,$biblioitemnumber)=$sth->fetchrow ){
- my $record = GetMarcBiblio($biblionumber);
-
- MARCmodbiblionumber($biblionumber,$biblioitemnumber,$record);
-
-}
-
-sub MARCmodbiblionumber{
-my ($biblionumber,$biblioitemnumber,$record)=@_;
-
-my ($tagfield,$biblionumtagsubfield) = &GetMarcFromKohaField("biblio.biblionumber","");
-my ($tagfield2,$biblioitemtagsubfield) = &GetMarcFromKohaField("biblio.biblioitemnumber","");
-
-my $update=0;
- my @tags = $record->field($tagfield);
-
-if (!@tags){
-
-my $newrec = MARC::Field->new( $tagfield,'','', $biblionumtagsubfield => $biblionumber,$biblioitemtagsubfield=>$biblioitemnumber);
- $record->append_fields($newrec);
- $update=1;
- }
-
-
-if ($update){
-&ModBiblioMarc($record,'',$biblionumber);
- print "$biblionumber \n";
+my %kohafields;
+
+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);
+ C4::Biblio::_koha_marc_update_bib_ids($record, $frameworkcode, $biblionumber, $biblioitemnumber);
+ my $biblionumber = eval {ModBiblioMarc( $record, $biblionumber, $frameworkcode )};
+ if($@){
+ print "Problem with biblionumber : $biblionumber\n";
+ exit -1;
+ }else{
+ print "biblionumber : $biblionumber\r\r";
}
-
}
+
END;
--
1.5.6.3
More information about the Koha-patches
mailing list