CRM-12274 - redo all changes due to bad rebase
[civicrm-core.git] / CRM / Contact / Form / Search / Custom / FullText.php
index a7f842cc787ee260c8b4e13d4d75dbf8beda1ed3..c6f84264607a1d3ffcde43ecafad096f7071b975 100644 (file)
@@ -152,6 +152,7 @@ class CRM_Contact_Form_Search_Custom_FullText implements CRM_Contact_Form_Search
       'target_sort_name' => 'varchar(128)',
       'activity_id' => 'int unsigned',
       'activity_type_id' => 'int unsigned',
+      'record_type' => 'varchar(16)',
       'client_id' => 'int unsigned',
       'case_id' => 'int unsigned',
       'case_start_date' => 'datetime',
@@ -492,9 +493,9 @@ AND        (c.is_deleted = 0 OR c.is_deleted IS NULL)
     $contactSQL[] = "
 SELECT     distinct ca.id
 FROM       civicrm_activity ca
-INNER JOIN civicrm_activity_target cat ON cat.activity_id = ca.id
-INNER JOIN civicrm_contact c ON cat.target_contact_id = c.id
-LEFT  JOIN civicrm_email e ON cat.target_contact_id = e.contact_id
+INNER JOIN civicrm_activity_contact cat ON cat.activity_id = ca.id
+INNER JOIN civicrm_contact c ON cat.contact_id = c.id
+LEFT  JOIN civicrm_email e ON cat.contact_id = e.contact_id
 LEFT  JOIN civicrm_option_group og ON og.name = 'activity_type'
 LEFT  JOIN civicrm_option_value ov ON ( ov.option_group_id = og.id )
 WHERE      ( (c.sort_name LIKE {$this->_text} OR c.display_name LIKE {$this->_text}) OR
@@ -503,24 +504,6 @@ WHERE      ( (c.sort_name LIKE {$this->_text} OR c.display_name LIKE {$this->_te
                ov.name IN ('Inbound Email', 'Email') ) )
 AND        (ca.is_deleted = 0 OR ca.is_deleted IS NULL)
 AND        (c.is_deleted = 0 OR c.is_deleted IS NULL)
-";
-
-    $contactSQL[] = "
-SELECT     distinct ca.id
-FROM       civicrm_activity ca
-INNER JOIN civicrm_activity_assignment caa ON caa.activity_id = ca.id
-INNER JOIN civicrm_contact c ON caa.assignee_contact_id = c.id
-LEFT  JOIN civicrm_email e ON caa.assignee_contact_id = e.contact_id
-LEFT  JOIN civicrm_option_group og ON og.name = 'activity_type'
-LEFT  JOIN civicrm_option_value ov ON ( ov.option_group_id = og.id )
-WHERE      caa.activity_id = ca.id
-AND        caa.assignee_contact_id = c.id
-AND        ( (c.sort_name LIKE {$this->_text} OR c.display_name LIKE {$this->_text})  OR
-             (e.email LIKE {$this->_text} AND
-              ca.activity_type_id = ov.value AND
-              ov.name IN ('Inbound Email', 'Email')) )
-AND        (ca.is_deleted = 0 OR ca.is_deleted IS NULL)
-AND        (c.is_deleted = 0 OR c.is_deleted IS NULL)
 ";
 
     $contactSQL[] = "
@@ -543,12 +526,6 @@ AND    (ca.is_deleted = 0 OR ca.is_deleted IS NULL)
 ";
 
     $final = array();
-    $final[] = "
-DELETE e.* FROM {$this->_entityIDTableName} e
-INNER JOIN  civicrm_activity a ON e.entity_id = a.id
-INNER JOIN  civicrm_contact  c ON a.source_contact_id = c.id
-WHERE       c.id IN (SELECT id FROM civicrm_contact WHERE is_deleted = 1)
-";
 
     $tables = array(
       'civicrm_activity' => array( 'fields' => array() ),
@@ -936,8 +913,8 @@ INNER JOIN civicrm_contact c ON ct.entity_id = c.id
       case 'Activity':
         $sql = "
 INSERT INTO {$this->_tableName}
-( table_name, activity_id, subject, details, contact_id, sort_name, assignee_contact_id, assignee_sort_name, target_contact_id,
-  target_sort_name, activity_type_id, case_id, client_id )
+( table_name, activity_id, subject, details, contact_id, sort_name, record_type,
+  activity_type_id, case_id, client_id )
 SELECT    'Activity', ca.id, substr(ca.subject, 1, 50), substr(ca.details, 1, 250),
            c1.id, c1.sort_name,
            c2.id, c2.sort_name,
@@ -947,11 +924,8 @@ SELECT    'Activity', ca.id, substr(ca.subject, 1, 50), substr(ca.details, 1, 25
            ccc.contact_id as client_id
 FROM       {$this->_entityIDTableName} eid
 INNER JOIN civicrm_activity ca ON ca.id = eid.entity_id
-LEFT JOIN  civicrm_contact c1 ON ca.source_contact_id = c1.id
-LEFT JOIN  civicrm_activity_assignment caa ON caa.activity_id = ca.id
-LEFT JOIN  civicrm_contact c2 ON caa.assignee_contact_id = c2.id
-LEFT JOIN  civicrm_activity_target cat ON cat.activity_id = ca.id
-LEFT JOIN  civicrm_contact c3 ON cat.target_contact_id = c3.id
+INNER JOIN  civicrm_activity_contact cac ON cac.activity_id = ca.id
+INNER JOIN  civicrm_contact c1 ON cac.contact_id = c1.id
 LEFT JOIN  civicrm_case_activity cca ON cca.activity_id = ca.id
 LEFT JOIN  civicrm_case_contact ccc ON ccc.case_id = cca.case_id
 WHERE (ca.is_deleted = 0 OR ca.is_deleted IS NULL)