Merge pull request #2061 from civicrm/4.3
[civicrm-core.git] / CRM / Activity / Form / Task.php
index dbe9b619423abf4ecddd5065c1a9bc74e4207772..3f69410a00c0ce4440198a8629e4b95d2d70e3e4 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.3                                                |
+ | CiviCRM version 4.4                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2013                                |
  +--------------------------------------------------------------------+
@@ -151,14 +151,18 @@ class CRM_Activity_Form_Task extends CRM_Core_Form {
    */
   public function setContactIDs() {
     $IDs = implode(',', $this->_activityHolderIds);
+
+    $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
+    $sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
     $query = "
-SELECT source_contact_id
-  FROM civicrm_activity
- WHERE id IN ( $IDs )
-";
+SELECT contact_id
+FROM   civicrm_activity_contact
+WHERE  activity_id IN ( $IDs ) AND
+       record_type_id = {$sourceID}";
+
     $dao = CRM_Core_DAO::executeQuery($query);
     while ($dao->fetch()) {
-      $contactIDs[] = $dao->source_contact_id;
+      $contactIDs[] = $dao->contact_id;
     }
     $this->_contactIds = $contactIDs;
   }