$|=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;
sub MARCmodbiblionumber{
my ($biblionumber,$biblioitemnumber,$record)=@_;
+ return unless $record;
+
my ($tagfield,$biblionumtagsubfield) = &GetMarcFromKohaField("biblio.biblionumber","");
my ($tagfield2,$biblioitemtagsubfield) = &GetMarcFromKohaField("biblio.biblioitemnumber","");
$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)){
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){
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;
}
}