From f1eeafac5f58672f9a20334eca4d50dd71fe12bc Mon Sep 17 00:00:00 2001 From: Camilo Rodriguez Date: Thu, 10 May 2018 14:21:49 +0000 Subject: [PATCH] CRM-38: Filter Out Payments not Done Within Recurring Contributions --- CRM/Member/Page/RecurringContributions.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CRM/Member/Page/RecurringContributions.php b/CRM/Member/Page/RecurringContributions.php index 32a30e980fd6..a91d224a7f84 100644 --- a/CRM/Member/Page/RecurringContributions.php +++ b/CRM/Member/Page/RecurringContributions.php @@ -56,6 +56,8 @@ private function loadRecurringContributions() { private function getRecurContributions($membershipID) { $result = civicrm_api3('MembershipPayment', 'get', array( 'sequential' => 1, + 'contribution_id.contribution_recur_id.id' => ['IS NOT NULL' => TRUE], + 'options' => ['limit' => 0], 'return' => array( 'contribution_id.contribution_recur_id.id', 'contribution_id.contribution_recur_id.contact_id', @@ -78,10 +80,9 @@ private function getRecurContributions($membershipID) { foreach ($result['values'] as $payment) { $recurringContributionID = $payment['contribution_id.contribution_recur_id.id']; - $noRecurringContribution = empty($recurringContributionID); - $recurringAlreadyProcessed = isset($recurringContributions[$recurringContributionID]); + $alreadyProcessed = isset($recurringContributions[$recurringContributionID]); - if ($noRecurringContribution || $recurringAlreadyProcessed) { + if ($alreadyProcessed) { continue; }