Bug 37305: Remove C4::Biblio::prepare_host_field
This patch updates the only use of prepare_host_field to use the well
tested Koha::Biblio->generate_marc_host_field method instead and then
removes the aforementioned prepare_host_field method from C4::Biblio.
Test plan
1) Ensure the "enhanced workflow" for creating analytics still functions
as expected.
Sponsored-by: Open Fifth <https://openfifth.co.uk>
Signed-off-by: Heather Hernandez <flyingendpaper@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 3e627d7a77)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
This commit is contained in:
parent
ac2ca31d87
commit
a5949e7575
136
C4/Biblio.pm
136
C4/Biblio.pm
|
|
@ -62,7 +62,6 @@ BEGIN {
|
|||
TransformMarcToKoha
|
||||
TransformHtmlToMarc
|
||||
TransformHtmlToXml
|
||||
prepare_host_field
|
||||
);
|
||||
|
||||
# Internal functions
|
||||
|
|
@ -2998,141 +2997,6 @@ sub ModBiblioMarc {
|
|||
return $biblionumber;
|
||||
}
|
||||
|
||||
=head2 prepare_host_field
|
||||
|
||||
$marcfield = prepare_host_field( $hostbiblioitem, $marcflavour );
|
||||
Generate the host item entry for an analytic child entry
|
||||
|
||||
=cut
|
||||
|
||||
sub prepare_host_field {
|
||||
my ( $hostbiblio, $marcflavour ) = @_;
|
||||
$marcflavour ||= C4::Context->preference('marcflavour');
|
||||
|
||||
my $biblio = Koha::Biblios->find($hostbiblio);
|
||||
my $host = $biblio->metadata->record;
|
||||
|
||||
# unfortunately as_string does not 'do the right thing'
|
||||
# if field returns undef
|
||||
my %sfd;
|
||||
my $field;
|
||||
my $host_field;
|
||||
if ( $marcflavour eq 'MARC21' ) {
|
||||
if ( $field = $host->field('100') || $host->field('110') || $host->field('11') ) {
|
||||
my $s = $field->as_string('ab');
|
||||
if ($s) {
|
||||
$sfd{a} = $s;
|
||||
}
|
||||
}
|
||||
if ( $field = $host->field('245') ) {
|
||||
my $s = $field->as_string('a');
|
||||
if ($s) {
|
||||
$sfd{t} = $s;
|
||||
}
|
||||
}
|
||||
if ( $field = $host->field('260') ) {
|
||||
my $s = $field->as_string('abc');
|
||||
if ($s) {
|
||||
$sfd{d} = $s;
|
||||
}
|
||||
}
|
||||
if ( $field = $host->field('240') ) {
|
||||
my $s = $field->as_string();
|
||||
if ($s) {
|
||||
$sfd{b} = $s;
|
||||
}
|
||||
}
|
||||
if ( $field = $host->field('022') ) {
|
||||
my $s = $field->as_string('a');
|
||||
if ($s) {
|
||||
$sfd{x} = $s;
|
||||
}
|
||||
}
|
||||
if ( $field = $host->field('020') ) {
|
||||
my $s = $field->as_string('a');
|
||||
if ($s) {
|
||||
$sfd{z} = $s;
|
||||
}
|
||||
}
|
||||
if ( $field = $host->field('001') ) {
|
||||
$sfd{w} = $field->data(),;
|
||||
}
|
||||
$host_field = MARC::Field->new( 773, '0', ' ', %sfd );
|
||||
return $host_field;
|
||||
} elsif ( $marcflavour eq 'UNIMARC' ) {
|
||||
|
||||
#author
|
||||
if ( $field = $host->field('700') || $host->field('710') || $host->field('720') ) {
|
||||
my $s = $field->as_string('ab');
|
||||
if ($s) {
|
||||
$sfd{a} = $s;
|
||||
}
|
||||
}
|
||||
|
||||
#title
|
||||
if ( $field = $host->field('200') ) {
|
||||
my $s = $field->as_string('a');
|
||||
if ($s) {
|
||||
$sfd{t} = $s;
|
||||
}
|
||||
}
|
||||
|
||||
#place of publicaton
|
||||
if ( $field = $host->field('210') ) {
|
||||
my $s = $field->as_string('a');
|
||||
if ($s) {
|
||||
$sfd{c} = $s;
|
||||
}
|
||||
}
|
||||
|
||||
#date of publication
|
||||
if ( $field = $host->field('210') ) {
|
||||
my $s = $field->as_string('d');
|
||||
if ($s) {
|
||||
$sfd{d} = $s;
|
||||
}
|
||||
}
|
||||
|
||||
#edition statement
|
||||
if ( $field = $host->field('205') ) {
|
||||
my $s = $field->as_string();
|
||||
if ($s) {
|
||||
$sfd{e} = $s;
|
||||
}
|
||||
}
|
||||
|
||||
#URL
|
||||
if ( $field = $host->field('856') ) {
|
||||
my $s = $field->as_string('u');
|
||||
if ($s) {
|
||||
$sfd{u} = $s;
|
||||
}
|
||||
}
|
||||
|
||||
#ISSN
|
||||
if ( $field = $host->field('011') ) {
|
||||
my $s = $field->as_string('a');
|
||||
if ($s) {
|
||||
$sfd{x} = $s;
|
||||
}
|
||||
}
|
||||
|
||||
#ISBN
|
||||
if ( $field = $host->field('010') ) {
|
||||
my $s = $field->as_string('a');
|
||||
if ($s) {
|
||||
$sfd{y} = $s;
|
||||
}
|
||||
}
|
||||
if ( $field = $host->field('001') ) {
|
||||
$sfd{0} = $field->data(),;
|
||||
}
|
||||
$host_field = MARC::Field->new( 461, '0', ' ', %sfd );
|
||||
return $host_field;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
=head2 UpdateTotalIssues
|
||||
|
||||
UpdateTotalIssues($biblionumber, $increase, [$value])
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ use C4::Biblio qw(
|
|||
GetMarcStructure
|
||||
GetUsedMarcStructure
|
||||
ModBiblio
|
||||
prepare_host_field
|
||||
PrepHostMarcField
|
||||
TransformHtmlToMarc
|
||||
ApplyMarcOverlayRules
|
||||
|
|
@ -646,7 +645,8 @@ if ($parentbiblio) {
|
|||
my $marcflavour = C4::Context->preference('marcflavour');
|
||||
$record = MARC::Record->new();
|
||||
SetMarcUnicodeFlag( $record, $marcflavour );
|
||||
my $hostfield = prepare_host_field( $parentbiblio, $marcflavour );
|
||||
my $parent = Koha::Biblios->find($parentbiblio);
|
||||
my $hostfield = $parent->generate_marc_host_field;
|
||||
if ($hostfield) {
|
||||
$record->append_fields($hostfield);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue