koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: paul poulain
Subject: [Koha-cvs] koha/misc/migration_tools rebuild_zebra.pl [rel_3_0]
Date: Wed, 06 Dec 2006 18:12:22 +0000

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 ".";




reply via email to

[Prev in Thread] Current Thread [Next in Thread]