@@ -, +, @@ --- C4/Biblio.pm | 4 ++-- C4/Linker/Default.pm | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) --- a/C4/Biblio.pm +++ a/C4/Biblio.pm @@ -506,7 +506,7 @@ sub LinkBibHeadingsToAuthorities { next; } - my ( $authid, $fuzzy ) = $linker->get_link($heading); + my ( $authid, $fuzzy, $match_count ) = $linker->get_link($heading); if ($authid) { $results{ $fuzzy ? 'fuzzy' : 'linked' } ->{ $heading->display_form() }++; @@ -526,7 +526,7 @@ sub LinkBibHeadingsToAuthorities { if ( _check_valid_auth_link( $current_link, $field ) ) { $results{'linked'}->{ $heading->display_form() }++; } - else { + elsif ( !$match_count ) { my $authority_type = Koha::Authority::Types->find( $heading->auth_type() ); my $marcrecordauth = MARC::Record->new(); if ( C4::Context->preference('marcflavour') eq 'MARC21' ) { --- a/C4/Linker/Default.pm +++ a/C4/Linker/Default.pm @@ -33,6 +33,7 @@ sub get_link { my $auth_type = $heading->auth_type(); my $authid; my $fuzzy = 0; + my $match_count; if ( $self->{'cache'}->{$search_form.$auth_type}->{'cached'} ) { $authid = $self->{'cache'}->{$search_form.$auth_type}->{'authid'}; @@ -42,6 +43,7 @@ sub get_link { # look for matching authorities my $authorities = $heading->authorities(1); # $skipmetadata = true + $match_count = scalar @$authorities; if ( $behavior eq 'default' && $#{$authorities} == 0 ) { $authid = $authorities->[0]->{'authid'}; @@ -77,7 +79,7 @@ sub get_link { $self->{'cache'}->{$search_form.$auth_type}->{'authid'} = $authid; $self->{'cache'}->{$search_form.$auth_type}->{'fuzzy'} = $fuzzy; } - return $self->SUPER::_handle_auth_limit($authid), $fuzzy; + return $self->SUPER::_handle_auth_limit($authid), $fuzzy, $match_count; } sub update_cache { --