fix
authordemeritcowboy <demeritcowboy@hotmail.com>
Fri, 21 Jul 2023 13:44:02 +0000 (09:44 -0400)
committerdemeritcowboy <demeritcowboy@hotmail.com>
Fri, 21 Jul 2023 13:44:02 +0000 (09:44 -0400)
CRM/Event/WorkflowMessage/ParticipantTrait.php

index 8186f2371b5ee534ee7e96da3624a02b502ce142..9ccb56884e7743f5fc0a20070f71afd5f94428b2 100644 (file)
@@ -96,20 +96,23 @@ trait CRM_Event_WorkflowMessage_ParticipantTrait {
     if (!$this->getContributionID()) {
       $lineItem = LineItem::get(FALSE)
         ->addWhere('entity_table', '=', 'civicrm_participant')
-        ->addWhere('id', '=', $participantID)
+        ->addWhere('entity_id', '=', $participantID)
         ->addSelect('contribution_id')
         ->execute()->first();
       if (!empty($lineItem)) {
         $this->setContributionID($lineItem['contribution_id']);
       }
-      // It might be bad data on the site - let's do a noisy fall back to participant payment
-      // (the relationship between contribution & participant should be in the line item but
-      // some integrations might mess this up - if they are not using the order api).
-      $participantPayment = civicrm_api3('ParticipantPayment', 'get', ['participant_id' => $participantID])['values'];
-      if (!empty($participantPayment)) {
-        $participantPayment = reset($participantPayment);
-        $this->setContributionID((int) $participantPayment['contribution_id']);
+      else {
+        // no ts() since this should be rare
         CRM_Core_Session::setStatus('There might be a data problem, contribution id could not be loaded from the line item');
+        // It might be bad data on the site - let's do a noisy fall back to participant payment
+        // (the relationship between contribution & participant should be in the line item but
+        // some integrations might mess this up - if they are not using the order api).
+        $participantPayment = civicrm_api3('ParticipantPayment', 'get', ['participant_id' => $participantID])['values'];
+        if (!empty($participantPayment)) {
+          $participantPayment = reset($participantPayment);
+          $this->setContributionID((int) $participantPayment['contribution_id']);
+        }
       }
     }
     return $this;