From 236a227416d5b8a1f1bc9236cfdffc2fb47ed5cf Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Tue, 20 May 2014 12:27:43 +1200 Subject: [PATCH] evaluate form contribution TypeID on form function --- CRM/Contribute/Form/Contribution/Confirm.php | 12 +++++++- CRM/Member/BAO/Membership.php | 32 +++++++------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/CRM/Contribute/Form/Contribution/Confirm.php b/CRM/Contribute/Form/Contribution/Confirm.php index 771c0275d8..7dc7c7a375 100644 --- a/CRM/Contribute/Form/Contribution/Confirm.php +++ b/CRM/Contribute/Form/Contribution/Confirm.php @@ -1760,8 +1760,18 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr } $isProcessSeparateMembershipTransaction = $this->isSeparateMembershipTransaction($this->_id, $this->_values['amount_block_is_active']); + if ($form->_values['amount_block_is_active']) { + $contributionTypeId = $form->_values['financial_type_id']; + } + else { + $contributionTypeId = CRM_Utils_Array::value( 'financial_type_id', $membershipDetails ); + if (!$contributionTypeId) { + $contributionTypeId = CRM_Utils_Array::value('financial_type_id' ,$membershipParams); + } + } + CRM_Member_BAO_Membership::postProcessMembership($membershipParams, $contactID, - $this, $premiumParams, $customFieldsFormatted, $fieldTypes, $membershipDetails, $membershipTypeID, $isPaidMembership, $this->_membershipId, $isProcessSeparateMembershipTransaction + $this, $premiumParams, $customFieldsFormatted, $fieldTypes, $membershipDetails, $membershipTypeID, $isPaidMembership, $this->_membershipId, $isProcessSeparateMembershipTransaction, $contributionTypeId ); $this->assign('membership_assign', TRUE); $this->set('membershipTypeID', $membershipParams['selectMembership']); diff --git a/CRM/Member/BAO/Membership.php b/CRM/Member/BAO/Membership.php index 1b3ea3a6a2..3873e7ca1c 100644 --- a/CRM/Member/BAO/Membership.php +++ b/CRM/Member/BAO/Membership.php @@ -1251,8 +1251,9 @@ AND civicrm_membership.is_test = %2"; * * @param $isProcessSeparateMembershipTransaction * + * @param $defaultContributionTypeID + * * @throws CRM_Core_Exception - * @throws Exception * @internal param \isProcessSeparateMembershipTransaction $bool $ * * @internal param $singleMembershipTypeID @@ -1261,27 +1262,15 @@ AND civicrm_membership.is_test = %2"; * @access public */ public static function postProcessMembership($membershipParams, $contactID, &$form, $premiumParams, - $customFieldsFormatted = NULL, $includeFieldTypes = NULL, $membershipDetails, $membershipTypeID, $isPaidMembership, $membershipID, $isProcessSeparateMembershipTransaction) { - $tempParams = $membershipParams; + $customFieldsFormatted = NULL, $includeFieldTypes = NULL, $membershipDetails, $membershipTypeID, $isPaidMembership, $membershipID, + $isProcessSeparateMembershipTransaction, $defaultContributionTypeID) { $result = NULL; $isTest = CRM_Utils_Array::value('is_test', $membershipParams, FALSE); - $minimumFee = CRM_Utils_Array::value('minimum_fee', $membershipDetails); - $contributionTypeId = NULL; - if ($form->_values['amount_block_is_active']) { - $contributionTypeId = $form->_values['financial_type_id']; - } - else { - $contributionTypeId = CRM_Utils_Array::value( 'financial_type_id', $membershipDetails ); - if (!$contributionTypeId) { - $contributionTypeId = CRM_Utils_Array::value('financial_type_id' ,$membershipParams); - } - } - if ($isPaidMembership) { $result = CRM_Contribute_BAO_Contribution_Utils::processConfirm($form, $membershipParams, $premiumParams, $contactID, - $contributionTypeId, + $defaultContributionTypeID, 'membership' ); } @@ -1298,7 +1287,7 @@ AND civicrm_membership.is_test = %2"; } if ($isProcessSeparateMembershipTransaction) { - $membershipContribution = self::processSecondaryFinancialTransaction($contactID, $form, $membershipDetails, $minimumFee, $tempParams, $errors, $isTest); + $membershipContribution = self::processSecondaryFinancialTransaction($contactID, $form, $membershipDetails, $membershipParams, $errors, $isTest); } $createdMemberships = array(); @@ -2392,19 +2381,20 @@ INNER JOIN civicrm_contact contact ON ( contact.id = membership.contact_id AND /** * Where a second separate financial transaction is supported we will process it here + * * @param $contactID * @param $form * @param $membershipDetails - * @param $minimumFee * @param $tempParams * @param $errors * @param $isTest * - * @return CRM_Contribute_BAO_Contribution * @throws Exception + * @internal param $minimumFee + * @return CRM_Contribute_BAO_Contribution */ - public static function processSecondaryFinancialTransaction($contactID, &$form, $membershipDetails, $minimumFee, $tempParams, &$errors, $isTest) - { + public static function processSecondaryFinancialTransaction($contactID, &$form, $membershipDetails, $tempParams, &$errors, $isTest) { + $minimumFee = CRM_Utils_Array::value('minimum_fee', $membershipDetails); $lineItems = $form->_lineItem = $form->_memLineItem; $contributionType = new CRM_Financial_DAO_FinancialType(); $contributionType->id = CRM_Utils_Array::value('financial_type_id', $membershipDetails); -- 2.25.1