From 83f7f21cb573869a8121446dbc9e64d7b4698d4a Mon Sep 17 00:00:00 2001 From: CiviCRM Date: Fri, 6 Jun 2014 19:14:12 +0530 Subject: [PATCH] CRM-14800 fix - Contact merge deletes a contribution record if it is linked to a membership being merged https://issues.civicrm.org/jira/browse/CRM-14800 --- CRM/Dedupe/Merger.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CRM/Dedupe/Merger.php b/CRM/Dedupe/Merger.php index 8504ef34f0..293fd0d5eb 100644 --- a/CRM/Dedupe/Merger.php +++ b/CRM/Dedupe/Merger.php @@ -474,11 +474,13 @@ INNER JOIN civicrm_membership membership2 ON membership1.membership_type_id = m foreach ($cidRefs[$table] as $field) { // carry related contributions CRM-5359 if (in_array($table, $paymentTables)) { - $payOprSqls = self::operationSql($mainId, $otherId, $table, $tableOperations, 'payment'); - $sqls = array_merge($sqls, $payOprSqls); - $paymentSqls = self::paymentSql($table, $mainId, $otherId); $sqls = array_merge($sqls, $paymentSqls); + + if (!empty($tables) && !in_array('civicrm_contribution', $tables)) { + $payOprSqls = self::operationSql($mainId, $otherId, $table, $tableOperations, 'payment'); + $sqls = array_merge($sqls, $payOprSqls); + } } $preOperationSqls = self::operationSql($mainId, $otherId, $table, $tableOperations); -- 2.25.1