dev/financial#152 Pass contribution directly to completeOrder
authoreileen <emcnaughton@wikimedia.org>
Sat, 10 Oct 2020 19:53:45 +0000 (08:53 +1300)
committereileen <emcnaughton@wikimedia.org>
Sat, 10 Oct 2020 19:53:45 +0000 (08:53 +1300)
We have done quite a a bit of cleanup on this and the only value in objects now used is
contribution - this is really explict in the code as we actually unset objects after
extracting contribution.

This alters the function signature such that it receives contribution directly rather than
in an array

CRM/Contribute/BAO/Contribution.php
CRM/Core/Payment/AuthorizeNetIPN.php
CRM/Core/Payment/BaseIPN.php
CRM/Core/Payment/PayPalIPN.php
CRM/Core/Payment/PayPalProIPN.php
CRM/Event/Form/Task/Batch.php
api/v3/Contribution.php

index e931c645dd0e92531d774dc8b78ffbb2739fae55..5423b6efd348d88817436d31df9d251c44647acc 100644 (file)
@@ -4363,7 +4363,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
    *
    * @param array $input
    * @param array $ids
-   * @param array $objects
+   * @param \CRM_Contribute_BAO_Contribution $contribution
    * @param bool $isPostPaymentCreate
    *   Is this being called from the payment.create api. If so the api has taken care of financial entities.
    *   Note that our goal is that this would only ever be called from payment.create and never handle financials (only
@@ -4373,11 +4373,8 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
    * @throws \CRM_Core_Exception
    * @throws \CiviCRM_API3_Exception
    */
-  public static function completeOrder($input, $ids, $objects, $isPostPaymentCreate = FALSE) {
+  public static function completeOrder($input, $ids, $contribution, $isPostPaymentCreate = FALSE) {
     $transaction = new CRM_Core_Transaction();
-    $contribution = $objects['contribution'];
-    // Unset objects just to make it clear it's not used again.
-    unset($objects);
     // @todo see if we even need this - it's used further down to create an activity
     // but the BAO layer should create that - we just need to add a test to cover it & can
     // maybe remove $ids altogether.
index bcf56e15af1c689732f3363c4452bc02ab47e57d..1598041210aec9eccd46b83d7dbbcfd4f2ff7ba5 100644 (file)
@@ -229,7 +229,7 @@ class CRM_Core_Payment_AuthorizeNetIPN extends CRM_Core_Payment_BaseIPN {
       return TRUE;
     }
 
-    CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, ['contribution' => $objects['contribution']]);
+    CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects['contribution']);
 
     // Only Authorize.net does this so it is on the a.net class. If there is a need for other processors
     // to do this we should make it available via the api, e.g as a parameter, changing the nuance
index e1fa68af31b61bc8293d58dbe01a0b7f1461d892..bf340e7221ad5ea85dbb4dbbf6b013f7b7527d24 100644 (file)
@@ -427,7 +427,7 @@ class CRM_Core_Payment_BaseIPN {
       'related_contact' => $ids['related_contact'] ?? NULL,
       'participant' => !empty($objects['participant']) ? $objects['participant']->id : NULL,
       'contributionRecur' => !empty($objects['contributionRecur']) ? $objects['contributionRecur']->id : NULL,
-    ], $objects);
+    ], $objects['contribution']);
   }
 
   /**
index c9e35fae42977bd14e6d3da7df46f2d3ff723926..6f600ccd1dbb84bb83815db053dcc0d6d4dc4757 100644 (file)
@@ -252,7 +252,7 @@ class CRM_Core_Payment_PayPalIPN extends CRM_Core_Payment_BaseIPN {
       return;
     }
 
-    CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects);
+    CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects['contribution']);
   }
 
   /**
index 613186cfae449b9f8b1320167f6666fb009f786c..10dcbd9ac76a649033d2bdcc044d023ac4837ba1 100644 (file)
@@ -368,7 +368,7 @@ class CRM_Core_Payment_PayPalProIPN extends CRM_Core_Payment_BaseIPN {
       return;
     }
 
-    CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects);
+    CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects['contribution']);
   }
 
   /**
index 395feda8652fa7c75e9d4cf9f904de8d2369885c..c20505cc94e4d750936b3a1708acd4fb057a3a83 100644 (file)
@@ -362,7 +362,7 @@ class CRM_Event_Form_Task_Batch extends CRM_Event_Form_Task {
       'related_contact' => NULL,
       'participant' => $params['component_id'],
       'contributionRecur' => NULL,
-    ], ['contribution' => $contribution]);
+    ], $contribution);
 
     // reset template values before processing next transactions
     $template->clearTemplateVars();
index 7a4da8e57ac9526615e6be2c77351f31e42192a8..de6bf1b0629acebab79c343281b1c8ec3681c82b 100644 (file)
@@ -679,7 +679,7 @@ function _ipn_process_transaction($params, $contribution, $input, $ids) {
     'related_contact' => $ids['related_contact'] ?? NULL,
     'participant' => !empty($objects['participant']) ? $objects['participant']->id : NULL,
     'contributionRecur' => !empty($objects['contributionRecur']) ? $objects['contributionRecur']->id : NULL,
-  ], $objects,
+  ], $objects['contribution'],
     $params['is_post_payment_create'] ?? NULL);
 }