[Ref] Clarify what parameters are passed in
authorEileen McNaughton <emcnaughton@wikimedia.org>
Sun, 8 Aug 2021 06:02:35 +0000 (18:02 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Sun, 8 Aug 2021 06:02:35 +0000 (18:02 +1200)
this function is called from 2 places with 4 keys in the array always set & no others

CRM/Contribute/BAO/Contribution.php

index f4f5f4fbea75de21d3e20fc3f423579465d9bb34..bb3dfe486a679cf95d14bceb91fd117d8db029ea 100644 (file)
@@ -2079,26 +2079,22 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
    *
    */
   public static function transitionComponents($params) {
+    $contributionStatus = CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $params['contribution_status_id']);
+    $previousStatus = CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $params['previous_contribution_status_id']);
     // @todo fix the one place that calls this function to use Payment.create
     // remove this.
     // get minimum required values.
-    $contactId = $params['contact_id'] ?? NULL;
-    $componentId = $params['component_id'] ?? NULL;
-    $componentName = $params['componentName'] ?? NULL;
-    $contributionId = $params['contribution_id'] ?? NULL;
-    $contributionStatusId = $params['contribution_status_id'] ?? NULL;
+    $contactId = NULL;
+    $componentId = NULL;
+    $componentName = NULL;
+    $contributionId = $params['contribution_id'];
+    $contributionStatusId = $params['contribution_status_id'];
 
     // if we already processed contribution object pass previous status id.
-    $previousContriStatusId = $params['previous_contribution_status_id'] ?? NULL;
-
-    $contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
+    $previousContriStatusId = $params['previous_contribution_status_id'];
 
     // we process only ( Completed, Cancelled, or Failed ) contributions.
-    if (!$contributionId ||
-      !in_array($contributionStatusId, [
-        array_search('Completed', $contributionStatuses),
-      ])
-    ) {
+    if (!$contributionId || $contributionStatus !== 'Completed') {
       return;
     }
 
@@ -2170,11 +2166,11 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
         'status_id'
       );
     }
-    if ($contributionStatusId == array_search('Completed', $contributionStatuses)) {
+    if ($contributionStatus === 'Completed') {
 
       // only pending contribution related object processed.
       if ($previousContriStatusId &&
-        !in_array($contributionStatuses[$previousContriStatusId], [
+        !in_array($previousStatus, [
           'Pending',
           'Partially paid',
         ])
@@ -2183,7 +2179,7 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
         return;
       }
       elseif (!$previousContriStatusId &&
-        !in_array($contributionStatuses[$contribution->contribution_status_id], [
+        !in_array($contributionStatus, [
           'Pending',
           'Partially paid',
         ])