use C4::Log;
use Koha::MetadataRecord::Authority;
use Koha::Authorities;
-use Koha::Authority::MergeRequest;
+use Koha::Authority::MergeRequests;
use Koha::Authority::Types;
use Koha::Authority;
use Koha::Libraries;
my $authid = $params->{authid} || return;
my $skip_merge = $params->{skip_merge};
my $dbh = C4::Context->dbh;
+
+ # Remove older pending merge requests for $authid to itself. (See bug 22437)
+ my $condition = { authid => $authid, authid_new => [undef, 0, $authid], done => 0 };
+ Koha::Authority::MergeRequests->search($condition)->delete;
+
merge({ mergefrom => $authid }) if !$skip_merge;
$dbh->do( "DELETE FROM auth_header WHERE authid=?", undef, $authid );
logaction( "AUTHORITIES", "DELETE", $authid, "authority" ) if C4::Context->preference("AuthoritiesLog");
my $MARCfrom = GetAuthority( $recordid2 );
merge({ mergefrom => $recordid2, MARCfrom => $MARCfrom, mergeto => $recordid1, MARCto => $record });
- # Delete the other record. Do not merge. It is unneeded and could under
- # special circumstances have unwanted side-effects.
- # Remove older pending merge requests for $recordid2 to itself. The above merge did the job already or will do. (See bug 22437)
- my $condition = { authid => $recordid2, authid_new => [undef, 0, $recordid2], done => 0 };
- Koha::Authority::MergeRequests->search($condition)->delete;
+ # Delete the other record. No need to merge.
DelAuthority({ authid => $recordid2, skip_merge => 1 });
# Parameters