[Koha-patches] [PATCH] bug 3201: missing090field.pl - skip bad bibs

Galen Charlton galen.charlton at liblime.com
Sun Jun 7 01:13:22 CEST 2009


Patch courtesy of G. Henry <henry at cmi.univ-mrs.fr>
---
 misc/migration_tools/22_to_30/missing090field.pl |   54 ++++++++++++----------
 1 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/misc/migration_tools/22_to_30/missing090field.pl b/misc/migration_tools/22_to_30/missing090field.pl
index 218ce8b..648788b 100755
--- a/misc/migration_tools/22_to_30/missing090field.pl
+++ b/misc/migration_tools/22_to_30/missing090field.pl
@@ -26,7 +26,7 @@ $sth->execute();
 my $i=1;
 while (my ($biblionumber,$biblioitemnumber)=$sth->fetchrow ){
  my $record = GetMarcBiblio($biblionumber);
-    print ".";	
+    print ".";
     print "\r$i" unless $i %100;
     MARCmodbiblionumber($biblionumber,$biblioitemnumber,$record);
 }
@@ -38,36 +38,40 @@ sub MARCmodbiblionumber{
     my ($tagfield2,$biblioitemtagsubfield) = &GetMarcFromKohaField("biblio.biblioitemnumber","");
         
     my $update=0;
-    my $tag = $record->field($tagfield);
-#     warn "ICI : ".$record->as_formatted if $record->subfield('090','a') eq '11546';
+    if (defined $record) {
+        my $tag = $record->field($tagfield);
+        #warn "ICI : ".$record->as_formatted if $record->subfield('090','a') eq '11546';
     
-# check that we have biblionumber at the right place, otherwise, update or create the field.
-    if ($tagfield <10) {
-        unless ($tag && $tag->data() == $biblionumber) {
-            if ($tag) {
-                $tag->update($biblionumber);
-            } else {
-                my $newrec = MARC::Field->new( $tagfield, $biblionumber);
-                $record->insert_fields_ordered($newrec);
+        # check that we have biblionumber at the right place, otherwise, update or create the field.
+        if ($tagfield <10) {
+            unless ($tag && $tag->data() == $biblionumber) {
+                if ($tag) {
+                    $tag->update($biblionumber);
+                } else {
+                    my $newrec = MARC::Field->new( $tagfield, $biblionumber);
+                    $record->insert_fields_ordered($newrec);
+                }
+                $update=1;
             }
-            $update=1;
-        }
-    } else {
-        unless ($tag && $tag->subfield($biblionumtagsubfield) == $biblionumber) {
-            if($tag) {
-                $tag->update($tagfield => $biblionumber);
-            } else {
-                my $newrec = MARC::Field->new( $tagfield,'','', $biblionumtagsubfield => $biblionumber,$biblioitemtagsubfield=>$biblioitemnumber);
-                $record->insert_fields_ordered($newrec);
+        } else {
+            unless ($tag && $tag->subfield($biblionumtagsubfield) == $biblionumber) {
+                if($tag) {
+                    $tag->update($tagfield => $biblionumber);
+                } else {
+                    my $newrec = MARC::Field->new( $tagfield,'','', $biblionumtagsubfield => $biblionumber,$biblioitemtagsubfield=>$biblioitemnumber);
+                    $record->insert_fields_ordered($newrec);
+                }
+                $update=1;
             }
-            $update=1;
         }
+    } else {
+        warn "problem with :".$biblionumber." , record undefined";
     }
-    
-    
-    if ($update){	
+
+
+    if ($update){
         &ModBiblioMarc($record,$biblionumber,'');
-        print "\n modified : $biblionumber \n";	
+        print "\n modified : $biblionumber \n";
     }
     
 }
-- 
1.5.6.5




More information about the Koha-patches mailing list