CRM-17723 -- Inherited Membership not created from Online Contribution Page
authorjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Thu, 31 Dec 2015 07:29:43 +0000 (12:59 +0530)
committerjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Thu, 31 Dec 2015 07:29:43 +0000 (12:59 +0530)
CRM/Contribute/BAO/Contribution.php
CRM/Member/BAO/Membership.php

index 3582ef87a0f7c2cdc8e9027c215d5746183f476e..3c1906917a83bbbbbe770a6924a013e6e6ce13f5 100644 (file)
@@ -4319,8 +4319,15 @@ LIMIT 1;";
             //we might be renewing membership,
             //so make status override false.
             $membershipParams['is_override'] = FALSE;
+            $membershipParams['reset'] = TRUE;
             civicrm_api3('Membership', 'create', $membershipParams);
 
+            // unset/format unwanted keys
+            $removeKeys = array('id', 'contact_id', 'reset');
+            $membershipParams = array_diff_key($membershipParams, array_flip($removeKeys));
+            if (!empty($membershipParams['status_id']) && is_string($membershipParams['status_id'])) {
+              $membershipParams['status_id'] = array_search($membershipParams['status_id'], CRM_Member_PseudoConstant::membershipStatus());
+            }
             //update related Memberships.
             CRM_Member_BAO_Membership::updateRelatedMemberships($membership->id, $membershipParams);
           }
index 62d397c05d1cecaabe841ec6b4b179c608a6d33d..6c9efce8c0c19355c85cec87f70b683235f3c5da 100644 (file)
@@ -401,7 +401,11 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership {
 
     $transaction->commit();
 
-    self::createRelatedMemberships($params, $membership);
+    $reset = FALSE;
+    if (!empty($params['reset'])) {
+      $reset = TRUE;
+    }
+    self::createRelatedMemberships($params, $membership, $reset);
 
     // do not add to recent items for import, CRM-4399
     if (empty($params['skipRecentView'])) {