From f437cb4b4609a2f455f7594e04fc68e62967b4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adolfo=20Rodr=C3=ADguez?= Date: Tue, 19 Jul 2022 13:04:54 +0200 Subject: [PATCH] Bug 31185: Link authorities automatically doesn't detect duplicate authorities This patch fixes LinkBibHeadingsToAuthorities so it detects duplicate authorities using "Link authorities automatically" To test 1 Make sure the system preference AutoCreateAuthorities is turned to don't generate 2 Create a duplicate authority and check that search in Authorities module returns both. For example, two Personal Name (Smith, John) 3 Create a new record and fill the entry point with the same text of the authorities you just created. For example 100$a Smith, John 4 Click "Link authorities automatically" and you will obtain the following message "No matching authority found." 5 Apply patch, restart services 6 Click "Link authorities automatically" and you will obtain the following message "More than one local match found. Possibly a duplicate authority!" Signed-off-by: Rachael Laritz Signed-off-by: Katrin Fischer --- C4/Biblio.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index e2df601995..1a263626ff 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -749,6 +749,10 @@ sub LinkBibHeadingsToAuthorities { push(@{$results{'details'}}, { tag => $field->tag(), authid => undef, status => 'NONE_FOUND', auth_type => $heading->auth_type(), tag_to_report => $authority_type->auth_tag_to_report}) if $verbose; } } + elsif ( $match_count > 1 ) { + $results{'unlinked'}->{ $heading->display_form() }++; + push(@{$results{'details'}}, { tag => $field->tag(), authid => undef, status => 'MULTIPLE_MATCH', auth_type => $heading->auth_type(), tag_to_report => $authority_type->auth_tag_to_report}) if $verbose; + } else { $results{'unlinked'}->{ $heading->display_form() }++; push(@{$results{'details'}}, { tag => $field->tag(), authid => undef, status => 'NONE_FOUND', auth_type => $heading->auth_type(), tag_to_report => $authority_type->auth_tag_to_report}) if $verbose; -- 2.30.2