Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

COMCL-822: Fix Membership Renewal #540

Merged
merged 1 commit into from
Sep 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading