[REF] extract activity payment.
authoreileen <emcnaughton@wikimedia.org>
Mon, 25 Feb 2019 06:35:50 +0000 (19:35 +1300)
committereileen <emcnaughton@wikimedia.org>
Wed, 27 Feb 2019 08:03:20 +0000 (21:03 +1300)
THis is likely not it's last resting place but it does make the functions involved a lot simpler now

CRM/Contribute/BAO/Contribution.php

index d906b9fbac6f27e45134bac1d04e28891bec43f6..89e688f6c4ab067d06bd819570eecb25f288c5f8 100644 (file)
@@ -883,6 +883,33 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
     return self::$_exportableFields;
   }
 
+  /**
+   * @param $contributionId
+   * @param $paymentType
+   * @param $participantId
+   *
+   * @param $financialTrxn
+   */
+  protected static function recordPaymentActivity($contributionId, $participantId, $financialTrxn) {
+    $activityType = ($financialTrxn->total_amount < 0) ? 'Refund' : 'Payment';
+    if ($participantId) {
+      $inputParams['id'] = $participantId;
+      $values = [];
+      $ids = [];
+      $component = 'event';
+      $entityObj = CRM_Event_BAO_Participant::getValues($inputParams, $values, $ids);
+      $entityObj = $entityObj[$participantId];
+    }
+    else {
+      $entityObj = new CRM_Contribute_BAO_Contribution();
+      $entityObj->id = $contributionId;
+      $entityObj->find(TRUE);
+      $component = 'contribution';
+    }
+
+    self::addActivityForPayment($entityObj, $financialTrxn, $activityType, $component, $contributionId);
+  }
+
   /**
    * @inheritDoc
    */
@@ -3815,25 +3842,8 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
       }
     }
 
-    // activity creation
     if (!empty($financialTrxn)) {
-      if ($participantId) {
-        $inputParams['id'] = $participantId;
-        $values = array();
-        $ids = array();
-        $component = 'event';
-        $entityObj = CRM_Event_BAO_Participant::getValues($inputParams, $values, $ids);
-        $entityObj = $entityObj[$participantId];
-      }
-      else {
-        $entityObj = new CRM_Contribute_BAO_Contribution();
-        $entityObj->id = $contributionId;
-        $entityObj->find(TRUE);
-        $component = 'contribution';
-      }
-      $activityType = ($paymentType == 'refund') ? 'Refund' : 'Payment';
-
-      self::addActivityForPayment($entityObj, $financialTrxn, $activityType, $component, $contributionId);
+      self::recordPaymentActivity($contributionId, $participantId, $financialTrxn);
       return $financialTrxn;
     }