CRM-16357 Contribution form - moving towards extracting form variables earlier in...
authorEileen McNaughton <eileen@fuzion.co.nz>
Mon, 4 May 2015 12:14:17 +0000 (00:14 +1200)
committerEileen McNaughton <eileen@fuzion.co.nz>
Mon, 4 May 2015 12:14:17 +0000 (00:14 +1200)
CRM/Contribute/BAO/Contribution/Utils.php
CRM/Contribute/Form/Contribution.php
CRM/Contribute/Form/Contribution/Confirm.php
CRM/Member/BAO/Membership.php
CRM/Member/Form/Membership.php

index b487eda352b826133b0a9116a0507296a7472046..0d847985317f2beb9e9d0a97451ea141f50a4e2e 100644 (file)
@@ -120,7 +120,8 @@ class CRM_Contribute_BAO_Contribution_Utils {
         $contributionType,
         TRUE, TRUE,
         $isTest,
-        $lineItems
+        $lineItems,
+        $form->_bltID
       );
 
       if ($contribution) {
@@ -240,7 +241,8 @@ class CRM_Contribute_BAO_Contribution_Utils {
           $contributionType,
           TRUE, TRUE,
           $isTest,
-          $lineItems
+          $lineItems,
+          $form->_bltID
         );
 
         // restore cached values (part of fix for CRM-14354)
@@ -320,7 +322,8 @@ class CRM_Contribute_BAO_Contribution_Utils {
           $contactID, $contributionType,
           $pending, TRUE,
           $isTest,
-          $lineItems
+          $lineItems,
+          $form->_bltID
         );
       }
       $form->postProcessPremium($premiumParams, $contribution);
index 12cc85a6b853e68f57ffd3b028138926f195eb84..24e91e99257c285fab32b9229f432d0eebc28690 100644 (file)
@@ -1188,7 +1188,8 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
         TRUE,
         FALSE,
         $isTest,
-        $this->_lineItem
+        $this->_lineItem,
+        $this->_bltID
       );
       $paymentParams['contributionID'] = $contribution->id;
       $paymentParams['contributionTypeID'] = $contribution->financial_type_id;
@@ -1266,7 +1267,8 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
         $financialType,
         FALSE, FALSE,
         $isTest,
-        $lineItem
+        $lineItem,
+        $form->_bltID
       );
     }
 
index 90ee08f4affa87168ba6e848321d8548efaac96e..ed30082f4464d52e11b438832ce8512a6c19a3b8 100644 (file)
@@ -1274,8 +1274,11 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
    * @param bool $isTest
    * @param array $lineItems
    *
-   * @throws Exception
-   * @return CRM_Contribute_DAO_Contribution
+   * @param int $billingLocationID
+   *   ID of billing location type.
+   *
+   * @return \CRM_Contribute_DAO_Contribution
+   * @throws \Exception
    */
   public static function processContribution(
     &$form,
@@ -1286,17 +1289,21 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
     $pending,
     $online,
     $isTest,
-    $lineItems
+    $lineItems,
+    $billingLocationID
   ) {
     $transaction = new CRM_Core_Transaction();
     $contribSoftContactId = $addressID = NULL;
+    $contributeMode = $form->_contributeMode;
+    $isMonetary = !empty($form->_values['is_monetary']);
+    $isEmailReceipt = !empty($form->_values['is_email_receipt']);
 
     // add these values for the recurringContrib function ,CRM-10188
     $params['financial_type_id'] = $financialType->id;
 
     //create an contribution address
-    if ($form->_contributeMode != 'notify' && empty($params['is_pay_later']) && !empty($form->_values['is_monetary'])) {
-      $addressID = CRM_Contribute_BAO_Contribution::createAddress($params, $form->_bltID);
+    if ($contributeMode != 'notify' && empty($params['is_pay_later']) && $isMonetary) {
+      $addressID = CRM_Contribute_BAO_Contribution::createAddress($params, $billingLocationID);
     }
 
     //@todo - this is being set from the form to resolve CRM-10188 - an
@@ -1305,8 +1312,8 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
     // a better fix would be to set the values in the respective forms rather than require
     // a function being shared by two forms to deal with their respective values
     // moving it to the BAO & not taking the $form as a param would make sense here.
-    if (!isset($params['is_email_receipt']) && !empty($form->_values['is_email_receipt'])) {
-      $params['is_email_receipt'] = CRM_Utils_Array::value('is_email_receipt', $form->_values);
+    if (!isset($params['is_email_receipt']) && $isEmailReceipt) {
+      $params['is_email_receipt'] = $isEmailReceipt;
     }
     $recurringContributionID = self::processRecurringContribution($form, $params, $contactID, $financialType, $online);
     $nonDeductibleAmount = self::getNonDeductibleAmount($params, $financialType, $online);
@@ -1314,7 +1321,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
 
     $now = date('YmdHis');
     $receiptDate = CRM_Utils_Array::value('receipt_date', $params);
-    if (!empty($form->_values['is_email_receipt'])) {
+    if ($isEmailReceipt) {
       $receiptDate = $now;
     }
 
@@ -1353,10 +1360,6 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
     }
 
     if (isset($params['amount'])) {
-      $isMonetary = NULL;
-      if (!empty($form->_values['is_monetary'])) {
-        $isMonetary = $form->_values['is_monetary'];
-      }
       $contribParams = self::getContributionParams(
         $params, $contactID, $financialType->id, $online, $contributionPageId, $nonDeductibleAmount, $campaignId, $isMonetary, $pending, $result, $receiptDate,
         $recurringContributionID, $isTest, $addressID, $contribSoftContactId, $lineItems
@@ -1536,7 +1539,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
     // is not appropriate to delete a valid contribution if a user create problem occurs
     CRM_Contribute_BAO_Contribution_Utils::createCMSUser($params,
       $contactID,
-      'email-' . $form->_bltID
+      'email-' . $billingLocationID
     );
     return $contribution;
   }
index 05c34337768a08383dc84c8e8c3cccfddbc550bf..30770fa331745b29dacd634ae29a0cd6162b2137 100644 (file)
@@ -2260,7 +2260,8 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = membership.contact_id AND
       $pending,
       TRUE,
       $isTest,
-      $lineItems
+      $lineItems,
+      $form->_bltID
     );
     return $membershipContribution;
   }
index 3e65fbe17f876ba742e21af6f1c70456d8386d02..56343ada36dfa248fdc1089b58e5a056da4f15e4 100644 (file)
@@ -1375,7 +1375,8 @@ WHERE   id IN ( ' . implode(' , ', array_keys($membershipType)) . ' )';
           TRUE,
           FALSE,
           $isTest,
-          $lineItems
+          $lineItems,
+          $this->_bltID
         );
 
         //create new soft-credit record, CRM-13981