}
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare("SELECT * FROM biblioitems WHERE biblionumber=? ");
+ my $sth = $dbh->prepare("SELECT biblioitemnumber, marcxml FROM biblioitems WHERE biblionumber=? ");
$sth->execute($biblionumber);
my $row = $sth->fetchrow_hashref;
+ my $biblioitemnumber = $row->{'biblioitemnumber'};
my $marcxml = StripNonXmlChars( $row->{'marcxml'} );
+ my $frameworkcode = GetFrameworkCode($biblionumber);
MARC::File::XML->default_record_format( C4::Context->preference('marcflavour') );
my $record = MARC::Record->new();
if ($@) { warn " problem with :$biblionumber : $@ \n$marcxml"; }
return unless $record;
- C4::Biblio::_koha_marc_update_bib_ids($record, '', $biblionumber, $row->{biblioitemnumber});
+ C4::Biblio::_koha_marc_update_bib_ids($record, $frameworkcode, $biblionumber, $biblioitemnumber);
C4::Biblio::EmbedItemsInMarcBiblio($record, $biblionumber) if ($embeditems);
return $record;
is( GetMarcPrice( $record_for_isbn, $marcflavour ), 100,
"GetMarcPrice returns the correct value");
+ my $newincbiblioitemnumber=$biblioitemnumber+1;
+ $dbh->do("UPDATE biblioitems SET biblioitemnumber = ? WHERE biblionumber = ?;", undef, $newincbiblioitemnumber, $biblionumber );
+ my $updatedrecord = GetMarcBiblio($biblionumber, 0);
+ my $frameworkcode = GetFrameworkCode($biblionumber);
+ my ( $biblioitem_tag, $biblioitem_subfield ) = GetMarcFromKohaField( "biblioitems.biblioitemnumber", $frameworkcode );
+ die qq{No biblioitemnumber tag for framework "$frameworkcode"} unless $biblioitem_tag;
+ my $biblioitemnumbertotest;
+ if ( $biblioitem_tag < 10 ) {
+ $biblioitemnumbertotest = $updatedrecord->field($biblioitem_tag)->data();
+ } else {
+ $biblioitemnumbertotest = $updatedrecord->field($biblioitem_tag)->subfield($biblioitem_subfield);
+ }
+ is ($newincbiblioitemnumber, $biblioitemnumbertotest);
}
sub mock_marcfromkohafield {
}
subtest 'MARC21' => sub {
- plan tests => 27;
+ plan tests => 28;
run_tests('MARC21');
$dbh->rollback;
};
subtest 'UNIMARC' => sub {
- plan tests => 27;
+ plan tests => 28;
run_tests('UNIMARC');
$dbh->rollback;
};
subtest 'NORMARC' => sub {
- plan tests => 27;
+ plan tests => 28;
run_tests('NORMARC');
$dbh->rollback;
};