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'])) { |     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) { |   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) { | function constituentsonly_civicrm_queryObjects(&$queryObjects, $type) { | ||||||
|   if ($type == 'Contact') { |   if ($type == 'Contact') { | ||||||
|     //$queryObjects[] = new CRM_ConstituentsOnly_BAO_Query(); |     $queryObjects[] = new CRM_ConstituentsOnly_BAO_Query(); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user