Adding some error proof on GetMarcRecord
[koha.git] / misc / migration_tools / 22_to_30 / rebuild_leader.pl
1 #!/usr/bin/perl
2 # This script finds and fixes missing 090 fields in Koha for MARC21
3 #  Written by TG on 01/10/2005
4 #  Revised by Joshua Ferraro on 03/31/2006
5 use strict;
6 BEGIN {
7     # find Koha's Perl modules
8     # test carefully before changing this
9     use FindBin;
10     eval { require "$FindBin::Bin/../../kohalib.pl" };
11 }
12
13 # Koha modules used
14
15 use C4::Context;
16 use C4::Biblio;
17 use MARC::Record;
18 use MARC::File::USMARC;
19
20
21 my $dbh = C4::Context->dbh;
22
23 my $sth=$dbh->prepare("select m.bibid,b.biblioitemnumber from marc_biblio m left join biblioitems b on b.biblionumber=m.biblionumber ");
24         $sth->execute();
25
26 while (my ($biblionumber,$biblioitemnumber)=$sth->fetchrow ){
27  my $record = MARCgetbiblio($dbh,$biblionumber);
28                 
29                 MARCmodleader($biblionumber,$record);
30                 
31 }
32
33 sub MARCmodleader{
34 my ($biblionumber,$record)=@_;
35
36 my $update=0;
37 #warn "".$record->leader();
38 #if (length($record->leader())>24){
39 #       $record->leader(substr($record->leader,0,24));  
40 #       $update =1;
41 #} elsif (length($record->leader())<24){
42         $record->leader('     nac  22     1u 4500');
43         $update=1;
44 #}
45
46 warn "leader : ".$record->leader if ($biblionumber==2262);
47 foreach ($record->field('995')) {
48         $record->delete_field($_);
49 }
50 if ($update){   
51         &ModBiblioMarc($record,'',$biblionumber);
52         print "$biblionumber \n";       
53 }
54
55 }
56 END;