dev/core#353 fixed Source contact ID clause
authorPradeep Nayak <pradpnayak@gmail.com>
Wed, 22 Aug 2018 11:22:11 +0000 (12:22 +0100)
committerColeman Watts <coleman@civicrm.org>
Tue, 28 Aug 2018 20:53:27 +0000 (16:53 -0400)
CRM/Activity/BAO/Query.php

index ddfb01aedd1d7c9bbaac3ff17d9f208e6e55a790..a450337ee2d42c5890303bd6c72b5fe9a7ea162b 100644 (file)
@@ -413,11 +413,16 @@ class CRM_Activity_BAO_Query {
         break;
 
       case 'source_contact':
-        $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
-        $sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
+        $sourceID = CRM_Core_PseudoConstant::getKey(
+          'CRM_Activity_BAO_ActivityContact',
+          'record_type_id',
+          'Activity Source'
+        );
         $from = "
-        INNER JOIN civicrm_contact source_contact ON
-          (civicrm_activity_contact.contact_id = source_contact.id) AND civicrm_activity_contact.record_type_id = {$sourceID}";
+          LEFT JOIN civicrm_activity_contact source_activity
+            ON (source_activity.activity_id = civicrm_activity_contact.activity_id
+              AND source_activity.record_type_id = {$sourceID})
+          LEFT JOIN civicrm_contact source_contact ON (source_activity.contact_id = source_contact.id)";
         break;
 
       case 'parent_id':