From 760ef4db3c05faf981f5f17d1a8a054a3dd7400b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 12 May 2014 13:47:44 +0200 Subject: [PATCH] [SIGNED_OFF] Bug 11700: Avoid to try to delete the authority twice Signed-off-by: Bernardo Gonzalez Kriegel --- C4/AuthoritiesMarc.pm | 6 +++++- authorities/merge.pl | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index 7c5757d..5825d69 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -1565,7 +1565,11 @@ sub merge { } }#foreach $marc - DelAuthority($mergefrom) if ($mergefrom != $mergeto); + if ( $mergefrom != $mergeto ) { + my $number_of_authorities_deleted = DelAuthority($mergefrom); + die "Authority $mergefrom has not been deleted" + if $number_of_authorities_deleted == 0; + } return @editedbiblios; } diff --git a/authorities/merge.pl b/authorities/merge.pl index 6f2b154..559a425 100755 --- a/authorities/merge.pl +++ b/authorities/merge.pl @@ -63,15 +63,15 @@ if ($merge) { # Deleting the other record if ( scalar(@errors) == 0 ) { - my $error; if ($input->param('mergereference') eq 'breeding') { require C4::ImportBatch; C4::ImportBatch::SetImportRecordStatus( $recordid2, 'imported' ); } else { - C4::AuthoritiesMarc::merge( $recordid2, GetAuthority($recordid2), $recordid1, $record ); - $error = (DelAuthority($recordid2) == 0); + eval { + C4::AuthoritiesMarc::merge( $recordid2, GetAuthority($recordid2), $recordid1, $record ); + }; + push @errors, 1 if $@; } - push @errors, $error if ($error); } # Parameters -- 1.7.9.5