+ /**
+ * Does this contributtion status update represent a refund.
+ *
+ * @param int $previousContributionStatusID
+ * @param int $currentContributionStatusID
+ *
+ * @return bool
+ */
+ private static function isContributionUpdateARefund($previousContributionStatusID, $currentContributionStatusID): bool {
+ if ('Completed' !== CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $previousContributionStatusID)) {
+ return FALSE;
+ }
+ return self::isContributionStatusNegative($currentContributionStatusID);
+ }
+