Skip to content

Commit

Permalink
Merge pull request #540 from compucorp/comcl-822-fix-membership-renewal
Browse files Browse the repository at this point in the history
COMCL-822: Fix Membership Renewal
  • Loading branch information
shahrukh-compuco authored Sep 11, 2024
2 parents 1275459 + 3551240 commit 3534aba
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions CRM/MembershipExtras/Service/MembershipPaymentPlanActivation.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'],
Expand All @@ -60,17 +61,17 @@ 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);
}

$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);
}
Expand Down

0 comments on commit 3534aba

Please sign in to comment.