dev/core#4048 Fatal error when changing membership type on membership with no contrib...
authorBradley Taylor <hello@brad-taylor.co.uk>
Sat, 17 Jun 2023 15:57:25 +0000 (16:57 +0100)
committerBradley Taylor <hello@brad-taylor.co.uk>
Sat, 17 Jun 2023 15:57:25 +0000 (16:57 +0100)
CRM/Member/Form/Membership.php

index 6c3963de43c3370588518121f8289d771bbee8c3..aa8934debe687288b6d79e598ddf915b62aa51e8 100644 (file)
@@ -1510,9 +1510,13 @@ DESC limit 1");
     //CRM-15187
     // display message when membership type is changed
     if (($this->_action & CRM_Core_Action::UPDATE) && $this->getMembershipID() && !in_array($this->_memType, $this->_memTypeSelected)) {
-      $lineItem = CRM_Price_BAO_LineItem::getLineItems($this->getMembershipID(), 'membership');
-      $maxID = max(array_keys($lineItem));
-      $lineItem = $lineItem[$maxID];
+      $lineItems = CRM_Price_BAO_LineItem::getLineItems($this->getMembershipID(), 'membership');
+      if (empty($lineItems)) {
+        return;
+      }
+
+      $maxID = max(array_keys($lineItems));
+      $lineItem = $lineItems[$maxID];
       $membershipTypeDetails = $this->allMembershipTypeDetails[$this->getMembership()['membership_type_id']];
       if ($membershipTypeDetails['financial_type_id'] != $lineItem['financial_type_id']) {
         CRM_Core_Session::setStatus(