UNIMARC specific rebuild items correctly
authorPaul POULAIN <paul.poulain@biblibre.com>
Thu, 17 Apr 2008 17:53:01 +0000 (19:53 +0200)
committerJoshua Ferraro <jmf@liblime.com>
Tue, 22 Apr 2008 22:34:41 +0000 (17:34 -0500)
note 995 for items is hardcoded, so it's really for UNIMARC only. The script exit if you're not UNIMARCflavour

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
misc/migration_tools/upgradeitems.pl [new file with mode: 0755]

diff --git a/misc/migration_tools/upgradeitems.pl b/misc/migration_tools/upgradeitems.pl
new file mode 100755 (executable)
index 0000000..d2cd6a7
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+
+use strict;
+use  C4::Context;
+use C4::Items;
+use C4::Biblio;
+
+my $dbh=C4::Context->dbh;
+
+if (C4::Context->preference("marcflavour") ne "UNIMARC" {
+    print "this script is for UNIMARC only\n";
+    exit;
+}
+my $rqbiblios=$dbh->prepare("SELECT biblionumber from biblioitems");
+$rqbiblios->execute;
+$|=1;
+while (my ($biblionumber)= $rqbiblios->fetchrow_array){
+    my $record=GetMarcBiblio($biblionumber);
+    foreach my $itemfield ($record->field('995')){
+        my $marcitem=MARC::Record->new();
+        $marcitem->encoding('UTF-8');
+        $marcitem->append_fields($itemfield);    
+        eval{ModItemFromMarc($marcitem,$biblionumber,$itemfield->subfield('9'));};
+        print "\r$biblionumber";
+       if ($@){
+            warn "$biblionumber : $@";
+            warn $record->as_formatted;
+       }    
+    }  
+}
\ No newline at end of file