From 705b4205fb63b9ffa8800fd5451c3267a8576f74 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Mon, 19 May 2014 23:03:20 +1200 Subject: [PATCH] CRM-14197 towards refactoring form specific actions back onto the form as part of figuring out how to set membership entity id on line item (preliminary simplication --- CRM/Contribute/Form/Contribution/Confirm.php | 40 +++++++++++++++----- CRM/Member/BAO/Membership.php | 22 +++++------ 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/CRM/Contribute/Form/Contribution/Confirm.php b/CRM/Contribute/Form/Contribution/Confirm.php index ec675ef463..27c8953bd5 100644 --- a/CRM/Contribute/Form/Contribution/Confirm.php +++ b/CRM/Contribute/Form/Contribution/Confirm.php @@ -904,15 +904,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr } } - try { - CRM_Member_BAO_Membership::postProcessMembership($membershipParams, $contactID, - $this, $premiumParams, $customFieldsFormatted, - $fieldTypes - ); - } catch (CRM_Core_Exception $e) { - CRM_Core_Session::singleton()->setStatus($e->getMessage()); - CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/contribute/transact', "_qf_Main_display=true&qfKey={$this->_params['qfKey']}")); - } + $this->processMembership($membershipParams, $contactID, $customFieldsFormatted, $fieldTypes, $premiumParams); } } else { @@ -1704,4 +1696,34 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr return $params; } + + /** + * @param $membershipParams + * @param $contactID + * @param $customFieldsFormatted + * @param $fieldTypes + * @param $premiumParams + */ + public function processMembership($membershipParams, $contactID, $customFieldsFormatted, $fieldTypes, $premiumParams) + { + try { + + $singleMembershipTypeID = $membershipTypeID = $membershipParams['selectMembership']; + if (is_array($membershipTypeID) && count($membershipTypeID) == 1) { + $singleMembershipTypeID = $membershipTypeID[0]; + } + + $membershipDetails = CRM_Member_BAO_Membership::buildMembershipTypeValues($this, $singleMembershipTypeID); + $this->assign('membership_name', CRM_Utils_Array::value('name', $membershipDetails)); + CRM_Member_BAO_Membership::postProcessMembership($membershipParams, $contactID, + $this, $premiumParams, $customFieldsFormatted, $fieldTypes, $membershipDetails, $membershipTypeID + ); + $this->assign('membership_assign', TRUE); + $this->set('membershipTypeID', $membershipParams['selectMembership']); + } + catch (CRM_Core_Exception $e) { + CRM_Core_Session::singleton()->setStatus($e->getMessage()); + CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/contribute/transact', "_qf_Main_display=true&qfKey={$this->_params['qfKey']}")); + } + } } diff --git a/CRM/Member/BAO/Membership.php b/CRM/Member/BAO/Membership.php index ae660e3c5b..29b31c0b3e 100644 --- a/CRM/Member/BAO/Membership.php +++ b/CRM/Member/BAO/Membership.php @@ -1242,28 +1242,24 @@ AND civicrm_membership.is_test = %2"; * @param null $customFieldsFormatted * @param null $includeFieldTypes * + * @param $membershipDetails + * + * @param $membershipTypeID + * * @throws CRM_Core_Exception + * @throws Exception + * @internal param $singleMembershipTypeID + * * @return void * @access public */ - public static function postProcessMembership($membershipParams, $contactID, &$form, &$premiumParams, - $customFieldsFormatted = NULL, $includeFieldTypes = NULL + public static function postProcessMembership($membershipParams, $contactID, &$form, $premiumParams, + $customFieldsFormatted = NULL, $includeFieldTypes = NULL, $membershipDetails, $membershipTypeID ) { $tempParams = $membershipParams; $paymentDone = FALSE; $result = NULL; $isTest = CRM_Utils_Array::value('is_test', $membershipParams, FALSE); - $form->assign('membership_assign', TRUE); - - $form->set('membershipTypeID', $membershipParams['selectMembership']); - - $singleMembershipTypeID = $membershipTypeID = $membershipParams['selectMembership']; - if (is_array($membershipTypeID) && count($membershipTypeID) == 1) { - $singleMembershipTypeID = $membershipTypeID[0]; - } - - $membershipDetails = self::buildMembershipTypeValues($form, $singleMembershipTypeID); - $form->assign('membership_name', CRM_Utils_Array::value('name', $membershipDetails)); $minimumFee = CRM_Utils_Array::value('minimum_fee', $membershipDetails); $contributionTypeId = NULL; -- 2.25.1