CRM-13834 - fix sort order for source contact
authoryashodha <yashodha.chaku@webaccess.co.in>
Tue, 26 Nov 2013 06:38:59 +0000 (12:08 +0530)
committeryashodha <yashodha.chaku@webaccess.co.in>
Tue, 26 Nov 2013 06:38:59 +0000 (12:08 +0530)
CRM/Activity/BAO/Query.php
CRM/Activity/Selector/Search.php

index d65ec2cd41f68e2e92f48f01412bd881586325b9..fe33396de03bc79532ecccd95ee474c7dac792ea 100644 (file)
@@ -139,7 +139,7 @@ class CRM_Activity_BAO_Query {
     }
 
     if (CRM_Utils_Array::value('source_contact', $query->_returnProperties)) {
-      $query->_select['source_contact'] = 'source_contact.display_name as source_contact';
+      $query->_select['source_contact'] = 'source_contact.sort_name as source_contact';
       $query->_element['source_contact'] = 1;
       $query->_tables['source_contact'] = $query->_whereTables['source_contact'] = 1;
     }
@@ -402,7 +402,12 @@ class CRM_Activity_BAO_Query {
         break;
 
       case 'source_contact':
-        $from = " $side JOIN civicrm_contact source_contact ON source_contact.id = civicrm_activity_contact.contact_id";
+        $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
+        $sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
+        $from = "
+        LEFT JOIN civicrm_activity_contact ac
+                      ON ( ac.activity_id = civicrm_activity_contact.activity_id AND ac.record_type_id = {$sourceID})
+        INNER JOIN civicrm_contact source_contact ON (ac.contact_id = source_contact.id)";
         break;
     }
 
@@ -528,7 +533,7 @@ class CRM_Activity_BAO_Query {
         'activity_location' => 1,
         'activity_details' => 1,
         'activity_status' => 1,
-        'source_contact_id' => 1,
+        'source_contact' => 1,
         'source_record_id' => 1,
         'activity_is_test' => 1,
         'activity_campaign_id' => 1,
index 004bdf747f84b1a9d11d78eebd42ca66dbb7c059..8116e229f52b9cbe54c062dccdd9ea9b3d1b4b4f 100644 (file)
@@ -233,7 +233,6 @@ class CRM_Activity_Selector_Search extends CRM_Core_Selector_Base implements CRM
    * @return array  rows in the given offset and rowCount
    */
   function &getRows($action, $offset, $rowCount, $sort, $output = NULL) {
-
     $result = $this->_query->searchQuery(
       $offset, $rowCount, $sort,
       FALSE, FALSE,
@@ -373,7 +372,7 @@ class CRM_Activity_Selector_Search extends CRM_Core_Selector_Base implements CRM
         ),
         array(
           'name' => ts('Added By'),
-          'sort' => 'sort_name',
+          'sort' => 'source_contact',
           'direction' => CRM_Utils_Sort::DONTCARE,
         ),
         array('name' => ts('With')),