From 37eb6ff96c922c7fcb32b311475634789705bf3f Mon Sep 17 00:00:00 2001 From: yashodha Date: Tue, 26 Nov 2013 12:08:59 +0530 Subject: [PATCH] CRM-13834 - fix sort order for source contact --- CRM/Activity/BAO/Query.php | 11 ++++++++--- CRM/Activity/Selector/Search.php | 3 +-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CRM/Activity/BAO/Query.php b/CRM/Activity/BAO/Query.php index d65ec2cd41..fe33396de0 100644 --- a/CRM/Activity/BAO/Query.php +++ b/CRM/Activity/BAO/Query.php @@ -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, diff --git a/CRM/Activity/Selector/Search.php b/CRM/Activity/Selector/Search.php index 004bdf747f..8116e229f5 100644 --- a/CRM/Activity/Selector/Search.php +++ b/CRM/Activity/Selector/Search.php @@ -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')), -- 2.25.1