[Koha-cvs] koha/misc/migration_tools rebuild_zebra.pl [rel_3_0]

paul poulain paul at koha-fr.org
Wed Dec 6 19:12:22 CET 2006


CVSROOT:	/sources/koha
Module name:	koha
Branch:		rel_3_0
Changes by:	paul poulain <tipaul>	06/12/06 18:12:22

Modified files:
	misc/migration_tools: rebuild_zebra.pl 

Log message:
	fix to handle missing biblionumber when it is mapped to a field < 010
	
	(note/remember that missing090.pl is now useless, as rebuild_zebra takes care of it)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/misc/migration_tools/rebuild_zebra.pl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.4.2.10&r2=1.4.2.11

Patches:
Index: rebuild_zebra.pl
===================================================================
RCS file: /sources/koha/koha/misc/migration_tools/rebuild_zebra.pl,v
retrieving revision 1.4.2.10
retrieving revision 1.4.2.11
diff -u -b -r1.4.2.10 -r1.4.2.11
--- rebuild_zebra.pl	6 Dec 2006 17:36:44 -0000	1.4.2.10
+++ rebuild_zebra.pl	6 Dec 2006 18:12:21 -0000	1.4.2.11
@@ -14,7 +14,7 @@
 $|=1; # flushes output
 
 # limit for database dumping
-my $limit;# = "LIMIT 10";
+my $limit;# = "LIMIT 100";
 my $directory;
 my $skip_export;
 my $keep_export;
@@ -476,27 +476,34 @@
 #         print $record;
         # check that biblionumber & biblioitemnumber are stored in the MARC record, otherwise, add them & update the biblioitems.marcxml data.
         my $record_correct=1;
-        unless ($biblionumbertagfield<10?($record->field($biblionumbertagfield)):($record->subfield($biblionumbertagfield,$biblionumbertagsubfield))) {
+        if ($biblionumbertagfield eq '001') {
+            unless ($record->field($biblionumbertagfield)->data()) {
             $record_correct=0;
-#             warn "INCORRECT BIBLIONUMBER :".$record->as_formatted;
             my $field;
             # if the field where biblionumber is already exist, just update it, otherwise create it
             if ($record->field($biblionumbertagfield)) {
                 $field =  $record->field($biblionumbertagfield);
-                if ($biblionumbertagfield <10) {
                     $field->update($biblionumber);
                 } else {
-                    $field->add_subfields($biblionumbertagsubfield => $biblionumber);
-                }
-            } else {
                 my $newfield;
-                if ($biblionumbertagfield <10) {
                     $newfield = MARC::Field->new( $biblionumbertagfield, $biblionumber);
+                    $record->append_fields($newfield);
+                }
+            }
+        } else {
+            unless ($record->subfield($biblionumbertagfield,$biblionumbertagsubfield)) {
+                $record_correct=0;
+                my $field;
+                # if the field where biblionumber is already exist, just update it, otherwise create it
+                if ($record->field($biblionumbertagfield)) {
+                    $field =  $record->field($biblionumbertagfield);
+                    $field->add_subfields($biblionumbertagsubfield => $biblionumber);
                 } else {
+                    my $newfield;
                     $newfield = MARC::Field->new( $biblionumbertagfield,'','', $biblionumbertagsubfield => $biblionumber);
-                }
                 $record->append_fields($newfield);
             }
+            }
 #             warn "FIXED BIBLIONUMBER".$record->as_formatted;
         }
         unless ($record->subfield($biblioitemnumbertagfield,$biblioitemnumbertagsubfield)) {
@@ -524,7 +531,7 @@
         }
         unless ($record_correct) {
             my $update_xml = $dbh->prepare("update biblioitems set marcxml=? where biblionumber=?");
-#             warn "UPDATING $biblionumber (missing biblionumber or biblioitemnumber in MARC record : ".$record->as_xml;
+            warn "UPDATING $biblionumber (missing biblionumber or biblioitemnumber in MARC record : ".$record->as_xml;
             $update_xml->execute($record->as_xml,$biblionumber);
         }
         print ".";





More information about the Koha-cvs mailing list