From 741e921e26bb4a920b15d7a8e3669f1c81acfb74 Mon Sep 17 00:00:00 2001 From: Pradeep Nayak Date: Sat, 30 Aug 2014 19:32:48 +0530 Subject: [PATCH] --CRM-15055, code changes to handle separate membership --- CRM/Member/BAO/Membership.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CRM/Member/BAO/Membership.php b/CRM/Member/BAO/Membership.php index bb9bdccbea..7192bf43aa 100644 --- a/CRM/Member/BAO/Membership.php +++ b/CRM/Member/BAO/Membership.php @@ -1276,15 +1276,20 @@ AND civicrm_membership.is_test = %2"; $membershipLineItem = array(); if (is_array($membershipTypeID)) { - foreach ($form->_lineItem[$form->_priceSetId] as $key => $line) { + $lineItems = $form->_lineItem; + if ($isProcessSeparateMembershipTransaction) { + $lineItems[$form->_priceSetId] = array_merge($lineItems[$form->_priceSetId], $membershipLineItems[$form->_priceSetId]); + } + foreach ($lineItems[$form->_priceSetId] as $key => $line) { if (!empty($line['membership_type_id'])) { $membershipLineItem[$line['membership_type_id']] = $line; - unset($form->_lineItem[$form->_priceSetId][$key]); + unset($lineItems[$form->_priceSetId][$key]); } } - if (empty($form->_lineItem[$form->_priceSetId])) { + if (empty($lineItems[$form->_priceSetId])) { $membershipParams['skipLineItem'] = TRUE; } + $form->_lineItem = $lineItems; } if ($isPaidMembership) { @@ -1307,7 +1312,7 @@ AND civicrm_membership.is_test = %2"; if ($isProcessSeparateMembershipTransaction) { try { - $lineItems = $form->_lineItem = $membershipLineItems; + $membershipParams['skipLineItem'] = TRUE; $membershipContribution = self::processSecondaryFinancialTransaction($contactID, $form, $membershipParams, $isTest, $membershipLineItems, CRM_Utils_Array::value('minimum_fee', $membershipDetails, 0), CRM_Utils_Array::value('financial_type_id', $membershipDetails)); } catch (CRM_Core_Exception $e) { -- 2.25.1