CRM-15992 update primary membership
authorTyrell Cook <tyrell@aghstrategies.com>
Wed, 8 Apr 2015 19:55:28 +0000 (15:55 -0400)
committerTyrell Cook <tyrell@aghstrategies.com>
Wed, 8 Apr 2015 19:55:28 +0000 (15:55 -0400)
CRM/Member/BAO/Membership.php

index 497dadcd198222615ad553d779f7e15d3449b3de..30d77c26d1d16422412f75f21afb4aee06cab512 100644 (file)
@@ -987,6 +987,21 @@ INNER JOIN  civicrm_membership_type type ON ( type.id = membership.membership_ty
    * @return array|bool
    */
   public static function getContactMembership($contactID, $memType, $isTest, $membershipId = NULL, $onlySameParentOrg = FALSE) {
+    //check for owner membership id, if it exists update that membership instead: CRM-15992
+    if ($membershipId) {
+      $ownerMemberId = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership',
+        $membershipId,
+        'owner_membership_id', 'id'
+      );
+      if ($ownerMemberId) {
+        $membershipId = $ownerMemberId;
+        $contactID = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership',
+          $membershipId,
+          'contact_id', 'id'
+        );
+      }
+    }
+
     $dao = new CRM_Member_DAO_Membership();
     if ($membershipId) {
       $dao->id = $membershipId;