diff --git a/CRM/MembershipExtras/Service/MembershipPaymentPlanActivation.php b/CRM/MembershipExtras/Service/MembershipPaymentPlanActivation.php index d90aa39b..90f9c71d 100644 --- a/CRM/MembershipExtras/Service/MembershipPaymentPlanActivation.php +++ b/CRM/MembershipExtras/Service/MembershipPaymentPlanActivation.php @@ -31,11 +31,12 @@ public function activateMembershipCurrentPaymentPlan($membershipId) { */ private function getAllMembershipRelatedRecurContributions($membershipId) { $query = ' - SELECT cc.contribution_recur_id as id from civicrm_membership_payment cmp - INNER JOIN civicrm_contribution cc ON cmp.contribution_id = cc.id - WHERE cmp.membership_id = %1 - GROUP BY cc.contribution_recur_id - ORDER BY cc.contribution_recur_id ASC + SELECT cc.contribution_recur_id as id from civicrm_membership_payment cmp + INNER JOIN civicrm_contribution cc ON cmp.contribution_id = cc.id + WHERE cmp.membership_id = %1 + AND cc.contribution_recur_id IS NOT NULL + GROUP BY cc.contribution_recur_id + ORDER BY cc.contribution_recur_id ASC '; $results = CRM_Core_DAO::executeQuery($query, [ 1 => [$membershipId, 'Integer'], @@ -60,7 +61,7 @@ private function activateOnlyLastRecurContribution($recurContributionsIds) { $formattedRecurIds = '(' . implode(',', $recurContributionsIds) . ')'; $deactivationQuery = " - UPDATE civicrm_value_payment_plan_extra_attributes + UPDATE civicrm_value_payment_plan_extra_attributes SET is_active = 0 WHERE entity_id IN $formattedRecurIds "; CRM_Core_DAO::executeQuery($deactivationQuery); @@ -68,9 +69,9 @@ private function activateOnlyLastRecurContribution($recurContributionsIds) { $lastRecurContributionId = end($recurContributionsIds); $activationQuery = " - INSERT INTO civicrm_value_payment_plan_extra_attributes - (entity_id, is_active) VALUES ({$lastRecurContributionId}, 1) - ON DUPLICATE KEY UPDATE is_active = 1 + INSERT INTO civicrm_value_payment_plan_extra_attributes + (entity_id, is_active) VALUES ({$lastRecurContributionId}, 1) + ON DUPLICATE KEY UPDATE is_active = 1 "; CRM_Core_DAO::executeQuery($activationQuery); }