*/
class CRM_Contact_Form_Search_Custom_DateAdded extends CRM_Contact_Form_Search_Custom_Base implements CRM_Contact_Form_Search_Interface {
- protected $_debug = 0;
protected $_aclFrom = NULL;
protected $_aclWhere = NULL;
*/
public function from() {
//define table name
- $this->_datesTable = CRM_Utils_SQL_TempTable::build()->setCategory('dates')->getName();
- $this->_xgTable = CRM_Utils_SQL_TempTable::build()->setCategory('xg')->getName();
- $this->_igTable = CRM_Utils_SQL_TempTable::build()->setCategory('ig')->getName();
+ $datesTable = CRM_Utils_SQL_TempTable::build()->setCategory('dates')->setMemory();
+ $this->_datesTable = $datesTable->getName();
+ $xgTable = CRM_Utils_SQL_TempTable::build()->setCategory('xg')->setMemory();
+ $this->_xgTable = $xgTable->getName();
+ $igTable = CRM_Utils_SQL_TempTable::build()->setCategory('ig')->setMemory();
+ $this->_igTable = $igTable->getName();
//grab the contacts added in the date range first
- $sql = "CREATE TEMPORARY TABLE {$this->_datesTable} ( id int primary key, date_added date ) ENGINE=HEAP";
- if ($this->_debug > 0) {
- print "-- Date range query: <pre>";
- print "$sql;";
- print "</pre>";
- }
- CRM_Core_DAO::executeQuery($sql);
+ $datesTable->createWithColumns('id int primary key, date_added date');
$startDate = !empty($this->_formValues['start_date']) ? $this->_formValues['start_date'] : date('Y-m-d');
$endDateFix = NULL;
date_added >= '$startDate 00:00:00'
$endDateFix";
- if ($this->_debug > 0) {
- print "-- Date range query: <pre>";
- print "$dateRange;";
- print "</pre>";
- }
-
CRM_Core_DAO::executeQuery($dateRange, CRM_Core_DAO::$_nullArray);
// Only include groups in the search query of one or more Include OR Exclude groups has been selected.
$xGroups = 0;
}
- $sql = "DROP TEMPORARY TABLE IF EXISTS {$this->_xgTable}";
- CRM_Core_DAO::executeQuery($sql, CRM_Core_DAO::$_nullArray);
- $sql = "CREATE TEMPORARY TABLE {$this->_xgTable} ( contact_id int primary key) ENGINE=HEAP";
- CRM_Core_DAO::executeQuery($sql, CRM_Core_DAO::$_nullArray);
+ $xgTable->drop();
+ $xgTable->createWithColumns('contact_id int primary key');
//used only when exclude group is selected
if ($xGroups != 0) {
}
}
- $sql = "DROP TEMPORARY TABLE IF EXISTS {$this->_igTable}";
- CRM_Core_DAO::executeQuery($sql, CRM_Core_DAO::$_nullArray);
- $sql = "CREATE TEMPORARY TABLE {$this->_igTable}
- ( id int PRIMARY KEY AUTO_INCREMENT,
+ $igTable->drop();
+ $igTable->createWithColumns('id int PRIMARY KEY AUTO_INCREMENT,
contact_id int,
- group_names varchar(64)) ENGINE=HEAP";
-
- if ($this->_debug > 0) {
- print "-- Include groups query: <pre>";
- print "$sql;";
- print "</pre>";
- }
-
- CRM_Core_DAO::executeQuery($sql, CRM_Core_DAO::$_nullArray);
+ group_names varchar(64)');
$includeGroup = "INSERT INTO {$this->_igTable} (contact_id, group_names)
SELECT d.id as contact_id, civicrm_group.name as group_name
$includeGroup .= " AND {$this->_xgTable}.contact_id IS null";
}
- if ($this->_debug > 0) {
- print "-- Include groups query: <pre>";
- print "$includeGroup;";
- print "</pre>";
- }
-
CRM_Core_DAO::executeQuery($includeGroup, CRM_Core_DAO::$_nullArray);
//search for smart group contacts
$smartSql";
CRM_Core_DAO::executeQuery($smartGroupQuery, CRM_Core_DAO::$_nullArray);
- if ($this->_debug > 0) {
- print "-- Smart group query: <pre>";
- print "$smartGroupQuery;";
- print "</pre>";
- }
$insertGroupNameQuery = "UPDATE IGNORE {$this->_igTable}
SET group_names = (SELECT title FROM civicrm_group
WHERE civicrm_group.id = $values)
WHERE {$this->_igTable}.contact_id IS NOT NULL
AND {$this->_igTable}.group_names IS NULL";
CRM_Core_DAO::executeQuery($insertGroupNameQuery, CRM_Core_DAO::$_nullArray);
- if ($this->_debug > 0) {
- print "-- Smart group query: <pre>";
- print "$insertGroupNameQuery;";
- print "</pre>";
- }
}
}
}