forked from CiviWare/com.dpci.constituentsonly
		
	fixed searcg query
This commit is contained in:
		| @@ -45,7 +45,17 @@ class CRM_ConstituentsOnly_BAO_Query extends CRM_Contact_BAO_Query_Interface { | ||||
|     } | ||||
|  | ||||
|     if (CRM_Utils_Array::value('civicrm_contact', $query->_tables) && empty($query->_paramLookup['do_not_trade'])) { | ||||
|       $query->_where[0][] = "( contact_a.do_not_trade IS NULL OR contact_a.do_not_trade = 0)"; | ||||
|       $query->_where[0][] = " | ||||
|         IF (contact_a.do_not_trade = 1, | ||||
|         CASE | ||||
|           WHEN (cr.id IS NULL OR cc1.is_deleted = 1 OR cc1.do_not_trade = 1) | ||||
|             THEN 0 | ||||
|           ELSE 1 | ||||
|         END, | ||||
|         1) | ||||
|       "; | ||||
|       $query->_tables['civicrm_do_not_trade'] = 1; | ||||
|       $query->_whereTables['civicrm_do_not_trade'] = 1; | ||||
|     } | ||||
|   } | ||||
|  | ||||
| @@ -56,6 +66,13 @@ class CRM_ConstituentsOnly_BAO_Query extends CRM_Contact_BAO_Query_Interface { | ||||
|    * | ||||
|    */ | ||||
|   public function from($name, $mode, $side) { | ||||
|     if ($name == 'civicrm_do_not_trade') { | ||||
|       return " LEFT JOIN civicrm_relationship cr | ||||
|         ON (cr.contact_id_a = contact_a.id OR cr.contact_id_b = contact_a.id) | ||||
|        LEFT JOIN civicrm_contact cc1 | ||||
|           ON (cr.contact_id_a = cc1.id OR cr.contact_id_b = cc1.id) | ||||
|           AND contact_a.id <> cc1.id"; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|   | ||||
| @@ -130,7 +130,7 @@ function constituentsonly_civicrm_alterSettingsFolders(&$metaDataFolders = NULL) | ||||
|  */ | ||||
| function constituentsonly_civicrm_queryObjects(&$queryObjects, $type) { | ||||
|   if ($type == 'Contact') { | ||||
|     //$queryObjects[] = new CRM_ConstituentsOnly_BAO_Query(); | ||||
|     $queryObjects[] = new CRM_ConstituentsOnly_BAO_Query(); | ||||
|   } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user