X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContribute%2FForm%2FContribution%2FConfirm.php;h=262823fd1e254aa8c32641ff233e0b06c8968a32;hb=358b59a5aefdaad550f6a09b5a1b86d0ab8f2f01;hp=ffd9a524cee08a4aed0d9cc2b18d4657ee507b34;hpb=87b313d09b2c1b2db38766dd4278036c9c2f759e;p=civicrm-core.git diff --git a/CRM/Contribute/Form/Contribution/Confirm.php b/CRM/Contribute/Form/Contribution/Confirm.php index ffd9a524ce..262823fd1e 100644 --- a/CRM/Contribute/Form/Contribution/Confirm.php +++ b/CRM/Contribute/Form/Contribution/Confirm.php @@ -117,7 +117,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $pledgeParams['frequency_day'] = 1; } $pledgeParams['create_date'] = $pledgeParams['start_date'] = $pledgeParams['scheduled_date'] = date("Ymd"); - if (CRM_Utils_Array::value('start_date', $params)) { + if (!empty($params['start_date'])) { $pledgeParams['frequency_day'] = intval(date("d", strtotime(CRM_Utils_Array::value('start_date', $params)))); $pledgeParams['start_date'] = $pledgeParams['scheduled_date'] = date('Ymd', strtotime(CRM_Utils_Array::value('start_date', $params))); } @@ -283,7 +283,6 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr * Set variables up before form is built. */ public function preProcess() { - $config = CRM_Core_Config::singleton(); parent::preProcess(); // lineItem isn't set until Register postProcess @@ -305,7 +304,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $this->_params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($this->_params); } - $this->_params['currencyID'] = $config->defaultCurrency; + $this->_params['currencyID'] = CRM_Core_Config::singleton()->defaultCurrency; if (!empty($this->_membershipBlock)) { $this->_params['selectMembership'] = $this->get('selectMembership'); @@ -893,7 +892,9 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr * Is this recurring? * * @return \CRM_Contribute_DAO_Contribution - * @throws \Exception + * + * @throws \CRM_Core_Exception + * @throws \CiviCRM_API3_Exception */ public static function processFormContribution( &$form, @@ -1362,7 +1363,6 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $membershipTypeIDs = (array) $membershipParams['selectMembership']; $membershipTypes = CRM_Member_BAO_Membership::buildMembershipTypeValues($this, $membershipTypeIDs); $membershipType = empty($membershipTypes) ? [] : reset($membershipTypes); - $isPending = $this->getIsPending(); $this->assign('membership_name', CRM_Utils_Array::value('name', $membershipType)); $this->_values['membership_name'] = CRM_Utils_Array::value('name', $membershipType); @@ -1390,7 +1390,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $this->postProcessMembership($membershipParams, $contactID, $this, $premiumParams, $customFieldsFormatted, $fieldTypes, $membershipType, $membershipTypeIDs, $isPaidMembership, $this->_membershipId, $isProcessSeparateMembershipTransaction, $financialTypeID, - $membershipLineItems, $isPending); + $membershipLineItems); $this->assign('membership_assign', TRUE); $this->set('membershipTypeID', $membershipParams['selectMembership']); @@ -1422,14 +1422,15 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr * @param int $financialTypeID * @param array $unprocessedLineItems * Line items for payment options chosen on the form. - * @param bool $isPending * * @throws \CRM_Core_Exception + * @throws \CiviCRM_API3_Exception + * @throws \Civi\Payment\Exception\PaymentProcessorException */ protected function postProcessMembership( $membershipParams, $contactID, &$form, $premiumParams, $customFieldsFormatted = NULL, $includeFieldTypes = NULL, $membershipDetails, $membershipTypeIDs, $isPaidMembership, $membershipID, - $isProcessSeparateMembershipTransaction, $financialTypeID, $unprocessedLineItems, $isPending) { + $isProcessSeparateMembershipTransaction, $financialTypeID, $unprocessedLineItems) { $membershipContribution = NULL; $isTest = CRM_Utils_Array::value('is_test', $membershipParams, FALSE); @@ -1530,13 +1531,6 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr } $i++; $numTerms = CRM_Utils_Array::value($memType, $typesTerms, 1); - if (!empty($membershipContribution)) { - $pendingStatus = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending'); - $pending = ($membershipContribution->contribution_status_id == $pendingStatus) ? TRUE : FALSE; - } - else { - $pending = $isPending; - } $contributionRecurID = isset($form->_params['contributionRecurID']) ? $form->_params['contributionRecurID'] : NULL; $membershipSource = NULL; @@ -1558,6 +1552,13 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr } } + // @todo Move this into CRM_Member_BAO_Membership::processMembership + if (!empty($membershipContribution)) { + $pending = ($membershipContribution->contribution_status_id == array_search('Pending', CRM_Contribute_PseudoConstant::contributionStatus())) ? TRUE : FALSE; + } + else { + $pending = $this->getIsPending(); + } list($membership, $renewalMode, $dates) = CRM_Member_BAO_Membership::processMembership( $contactID, $memType, $isTest, date('YmdHis'), CRM_Utils_Array::value('cms_contactID', $membershipParams), @@ -1576,8 +1577,13 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr if (!empty($membershipContribution)) { // update recurring id for membership record CRM_Member_BAO_Membership::updateRecurMembership($membership, $membershipContribution); - // Next line is probably redundant. Checksprevent it happening twice. - CRM_Member_BAO_Membership::linkMembershipPayment($membership, $membershipContribution); + // Next line is probably redundant. Checks prevent it happening twice. + $membershipPaymentParams = [ + 'membership_id' => $membership->id, + 'membership_type_id' => $membership->membership_type_id, + 'contribution_id' => $membershipContribution->id, + ]; + civicrm_api3('MembershipPayment', 'create', $membershipPaymentParams); } if ($membership) { CRM_Core_BAO_CustomValueTable::postProcess($form->_params, 'civicrm_membership', $membership->id, 'Membership'); @@ -1935,7 +1941,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $form->_fields['billing_first_name'] = 1; $form->_fields['billing_last_name'] = 1; // CRM-18854 - Set form values to allow pledge to be created for api test. - if (CRM_Utils_Array::value('pledge_block_id', $params)) { + if (!empty($params['pledge_block_id'])) { $form->_values['pledge_id'] = CRM_Utils_Array::value('pledge_id', $params, NULL); $form->_values['pledge_block_id'] = $params['pledge_block_id']; $pledgeBlock = CRM_Pledge_BAO_PledgeBlock::getPledgeBlock($params['id']);