Skip to content
Snippets Groups Projects
Commit 404cd1f3 authored by Dave Greenberg's avatar Dave Greenberg
Browse files

Merge pull request #310 from agh1/paylater-multiterm

check number of terms when updating member payment status
parents 0604db3e 9c09f5b7
No related branches found
No related tags found
No related merge requests found
...@@ -1681,17 +1681,26 @@ LEFT JOIN civicrm_contribution contribution ON ( componentPayment.contribution_ ...@@ -1681,17 +1681,26 @@ LEFT JOIN civicrm_contribution contribution ON ( componentPayment.contribution_
// else fall back to using current membership type // else fall back to using current membership type
$dao->free(); $dao->free();
// Figure out number of terms
$numterms = 1;
$lineitems = CRM_Price_BAO_LineItem::getLineItems($contributionId, 'contribution');
foreach ($lineitems as $lineitem) {
if ($membership->membership_type_id == CRM_Utils_Array::value('membership_type_id', $lineitem)) {
$numterms = CRM_Utils_Array::value('membership_num_terms', $lineitem);
// in case membership_num_terms comes through as null or zero
$numterms = $numterms >= 1 ? $numterms : 1;
break;
}
}
if ($currentMembership) { if ($currentMembership) {
CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew($currentMembership, CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew($currentMembership, NULL);
$changeToday = NULL $dates = CRM_Member_BAO_MembershipType::getRenewalDatesForMembershipType($membership->id, NULL, NULL, $numterms);
);
$dates = CRM_Member_BAO_MembershipType::getRenewalDatesForMembershipType($membership->id,
$changeToday = NULL
);
$dates['join_date'] = CRM_Utils_Date::customFormat($currentMembership['join_date'], $format); $dates['join_date'] = CRM_Utils_Date::customFormat($currentMembership['join_date'], $format);
} }
else { else {
$dates = CRM_Member_BAO_MembershipType::getDatesForMembershipType($membership->membership_type_id); $dates = CRM_Member_BAO_MembershipType::getDatesForMembershipType($membership->membership_type_id, null, null, null, $numterms);
} }
//get the status for membership. //get the status for membership.
......
...@@ -112,6 +112,7 @@ class CRM_Price_BAO_LineItem extends CRM_Price_DAO_LineItem { ...@@ -112,6 +112,7 @@ class CRM_Price_BAO_LineItem extends CRM_Price_DAO_LineItem {
pf.label as field_title, pf.label as field_title,
pf.html_type, pf.html_type,
pfv.membership_type_id, pfv.membership_type_id,
pfv.membership_num_terms,
li.price_field_id, li.price_field_id,
li.participant_count, li.participant_count,
li.price_field_value_id, li.price_field_value_id,
...@@ -158,6 +159,7 @@ class CRM_Price_BAO_LineItem extends CRM_Price_DAO_LineItem { ...@@ -158,6 +159,7 @@ class CRM_Price_BAO_LineItem extends CRM_Price_DAO_LineItem {
'description' => $dao->description, 'description' => $dao->description,
'entity_id' => $entityId, 'entity_id' => $entityId,
'membership_type_id' => $dao->membership_type_id, 'membership_type_id' => $dao->membership_type_id,
'membership_num_terms' => $dao->membership_num_terms,
); );
} }
return $lineItems; return $lineItems;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment