From adf6d68220e0865f2db92f9867729940e075aad3 Mon Sep 17 00:00:00 2001 From: eileen Date: Fri, 26 Mar 2021 16:49:37 +1300 Subject: [PATCH] [REF] Simplify max_related --- CRM/Member/Form/Membership.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/CRM/Member/Form/Membership.php b/CRM/Member/Form/Membership.php index 797faf20db..09dfa44f98 100644 --- a/CRM/Member/Form/Membership.php +++ b/CRM/Member/Form/Membership.php @@ -1024,8 +1024,7 @@ DESC limit 1"); $params['contact_id'] = $this->_contactID; $params = array_merge($params, $this->getFormMembershipParams()); - - $membershipTypeValues = $this->getMembershipParameters($formValues); + $membershipTypeValues = $this->getMembershipParameters(); //CRM-13981, allow different person as a soft-contributor of chosen type if ($this->_contributorContactID != $this->_contactID) { @@ -1843,15 +1842,20 @@ DESC limit 1"); } /** - * @param array $formValues + * Get parameters for membership create for all memberships to be created. * * @return array * @throws \CiviCRM_API3_Exception */ - protected function getMembershipParameters(array $formValues): array { + protected function getMembershipParameters(): array { $membershipTypeValues = []; foreach ($this->_memTypeSelected as $memType) { $membershipTypeValues[$memType]['membership_type_id'] = $memType; + if (is_numeric($this->getSubmittedValue('max_related'))) { + // The BAO will set from the membership type is not passed in but we should + // not set this if we don't need to to let the BAO do it's thing. + $membershipTypeValues[$memType]['max_related'] = $this->getSubmittedValue('max_related'); + } } foreach ($this->order->getMembershipLineItems() as $membershipLineItem) { @@ -1868,12 +1872,6 @@ DESC limit 1"); $membershipTypeValues[$membershipLineItem['membership_type_id']]['end_date'] = $calcDates['end_date']; } - foreach ($this->_memTypeSelected as $memType) { - if (array_key_exists('max_related', $formValues)) { - // max related memberships - take from form or inherit from membership type - $membershipTypeValues[$memType]['max_related'] = $formValues['max_related'] ?? NULL; - } - } return $membershipTypeValues; } -- 2.25.1