From 395d0965cc115ace3daab7cc6ec8ad4832a50411 Mon Sep 17 00:00:00 2001 From: Ere Maijala Date: Mon, 17 Sep 2018 01:13:55 +0300 Subject: [PATCH] Bug 21365: Call BiblioAutoLink from AddBiblio and ModBiblio This makes e.g. the advanced MARC editor, and anything that uses AddBiblio or ModBiblio honor BiblioAddsAuthorities. To test: 1. Make sure BiblioAddsAuthorities and AutoCreateAuthorities preferences are enabled. 2. Add a new record using advanced editor (enable EnableAdvancedCatalogingEditor to use it), include a previously non-existing author. 3. Save the record and observe the author get an authority number. 4. Add another author, save the record and make sure it also gets an authority number. Signed-off-by: Michal Denar Signed-off-by: Chris Cormack Signed-off-by: Nick Clemens (cherry picked from commit 1a8e1165ca7abf9e2b7e5c7de0cdf26cbd4e30ac) Signed-off-by: Martin Renvoize --- C4/Biblio.pm | 8 ++++++++ acqui/addorderiso2709.pl | 6 +----- acqui/neworderempty.pl | 3 --- cataloguing/addbiblio.pl | 3 --- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 44ead29206..877ade7564 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -207,6 +207,10 @@ sub AddBiblio { $defer_marc_save = 1; } + if (C4::Context->preference('BiblioAddsAuthorities')) { + BiblioAutoLink( $record, $frameworkcode ); + } + my ( $biblionumber, $biblioitemnumber, $error ); my $dbh = C4::Context->dbh; @@ -268,6 +272,10 @@ sub ModBiblio { logaction( "CATALOGUING", "MODIFY", $biblionumber, "biblio BEFORE=>" . $newrecord->as_formatted ); } + if (C4::Context->preference('BiblioAddsAuthorities')) { + BiblioAutoLink( $record, $frameworkcode ); + } + # Cleaning up invalid fields must be done early or SetUTF8Flag is liable to # throw an exception which probably won't be handled. foreach my $field ($record->fields()) { diff --git a/acqui/addorderiso2709.pl b/acqui/addorderiso2709.pl index db0c66bdc7..e71d80bf13 100755 --- a/acqui/addorderiso2709.pl +++ b/acqui/addorderiso2709.pl @@ -163,7 +163,7 @@ if ($op eq ""){ my $c_sort1 = shift( @sort1 ) || $input->param('all_sort1') || ''; my $c_sort2 = shift( @sort2 ) || $input->param('all_sort2') || ''; - # 1st insert the biblio, or find it through matcher + # Insert the biblio, or find it through matcher unless ( $biblionumber ) { if ($matcher_id) { if ( $matcher_id eq '_TITLE_AUTHOR_' ) { @@ -194,10 +194,6 @@ if ($op eq ""){ } ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $cgiparams->{'frameworkcode'} || '' ); SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' ); - # 2nd add authorities if applicable - if (C4::Context->preference("BiblioAddsAuthorities")){ - my $headings_linked =BiblioAutoLink($marcrecord, $cgiparams->{'frameworkcode'}); - } } else { SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' ); } diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl index 6326eaf39b..9fb8dae8ec 100755 --- a/acqui/neworderempty.pl +++ b/acqui/neworderempty.pl @@ -164,9 +164,6 @@ if ( $ordernumber eq '' and defined $params->{'breedingid'}){ exit; } #from this point: add a new record - if (C4::Context->preference("BiblioAddsAuthorities")){ - my $headings_linked=BiblioAutoLink($marcrecord, $params->{'frameworkcode'}); - } my $bibitemnum; $params->{'frameworkcode'} or $params->{'frameworkcode'} = ""; ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} ); diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl index 11c6d38e41..901892936b 100755 --- a/cataloguing/addbiblio.pl +++ b/cataloguing/addbiblio.pl @@ -831,9 +831,6 @@ if ( $op eq "addbiblio" ) { # it is not a duplicate (determined either by Koha itself or by user checking it's not a duplicate) if ( !$duplicatebiblionumber or $confirm_not_duplicate ) { my $oldbibitemnum; - if (C4::Context->preference("BiblioAddsAuthorities")){ - BiblioAutoLink( $record, $frameworkcode ); - } if ( $is_a_modif ) { ModBiblio( $record, $biblionumber, $frameworkcode ); } -- 2.39.5