[Koha-patches] [PATCH] (bug #4518) enhance 2.2 to 3.0 scripts
Nahuel ANGELINETTI
nahuel.angelinetti at biblibre.com
Mon May 17 15:43:37 CEST 2010
---
misc/migration_tools/22_to_30/missing090field.pl | 4 ++-
.../22_to_30/move_marc_to_authheader.pl | 2 +-
misc/migration_tools/upgradeitems.pl | 25 +++++++++++++++++--
3 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/misc/migration_tools/22_to_30/missing090field.pl b/misc/migration_tools/22_to_30/missing090field.pl
index 218ce8b..9e048d3 100755
--- a/misc/migration_tools/22_to_30/missing090field.pl
+++ b/misc/migration_tools/22_to_30/missing090field.pl
@@ -20,7 +20,7 @@ use MARC::File::USMARC;
$|=1;
my $dbh = C4::Context->dbh;
-my $sth=$dbh->prepare("select m.biblionumber,b.biblioitemnumber from biblio m left join biblioitems b on b.biblionumber=m.biblionumber");
+my $sth=$dbh->prepare("SELECT biblionumber, biblioitemnumber FROM biblioitems");
$sth->execute();
my $i=1;
@@ -34,6 +34,8 @@ while (my ($biblionumber,$biblioitemnumber)=$sth->fetchrow ){
sub MARCmodbiblionumber{
my ($biblionumber,$biblioitemnumber,$record)=@_;
+ return unless $record;
+
my ($tagfield,$biblionumtagsubfield) = &GetMarcFromKohaField("biblio.biblionumber","");
my ($tagfield2,$biblioitemtagsubfield) = &GetMarcFromKohaField("biblio.biblioitemnumber","");
diff --git a/misc/migration_tools/22_to_30/move_marc_to_authheader.pl b/misc/migration_tools/22_to_30/move_marc_to_authheader.pl
index deffc70..37d7ee4 100755
--- a/misc/migration_tools/22_to_30/move_marc_to_authheader.pl
+++ b/misc/migration_tools/22_to_30/move_marc_to_authheader.pl
@@ -42,7 +42,7 @@ while ( my ( $authid,$authtypecode ) = $sth->fetchrow ) {
$string=~s/\-//g;
$string = sprintf("%-*s",26, $string);
substr($string,9,6,"frey50");
- unless ($record->subfield(100,"a")){
+ unless ($record->subfield(100,"a") and length($record->subfield(100,"a")) == 26 ){
$record->insert_fields_ordered(MARC::Field->new(100,"","","a"=>$string));
}
if ($record->field(152)){
diff --git a/misc/migration_tools/upgradeitems.pl b/misc/migration_tools/upgradeitems.pl
index 864c91b..70ad573 100755
--- a/misc/migration_tools/upgradeitems.pl
+++ b/misc/migration_tools/upgradeitems.pl
@@ -12,6 +12,8 @@ if (C4::Context->preference("marcflavour") ne "UNIMARC") {
exit;
}
my $rqbiblios=$dbh->prepare("SELECT biblionumber from biblioitems");
+my $rqitemnumber=$dbh->prepare("SELECT itemnumber, biblionumber from items where itemnumber = ? and biblionumber = ?");
+
$rqbiblios->execute;
$|=1;
while (my ($biblionumber)= $rqbiblios->fetchrow_array){
@@ -20,11 +22,28 @@ while (my ($biblionumber)= $rqbiblios->fetchrow_array){
my $marcitem=MARC::Record->new();
$marcitem->encoding('UTF-8');
$marcitem->append_fields($itemfield);
- eval{ModItemFromMarc($marcitem,$biblionumber,$itemfield->subfield('9'));};
+
+
+ my $itemnum;
+ my @itemnumbers = $itemfield->subfield('9');
+ foreach my $itemnumber ( @itemnumbers ){
+ $rqitemnumber->execute($itemnumber, $biblionumber);
+ if( my $row = $rqitemnumber->fetchrow_hashref ){
+ $itemnum = $row->{itemnumber};
+ }
+ }
+
+ eval{
+ if($itemnum){
+ ModItemFromMarc($marcitem,$biblionumber,$itemnum)
+ }else{
+ die("$biblionumber");
+ }
+ };
print "\r$biblionumber";
if ($@){
- warn "$biblionumber : $@";
+ warn "Problem with : $biblionumber : $@";
warn $record->as_formatted;
}
}
-}
\ No newline at end of file
+}
--
1.7.0.4
More information about the Koha-patches
mailing list