}
$input['count'] = FALSE;
+
+ // skip bulk activities in activity tab
+ $input['activity_type_exclude_id'][$bulkActivityTypeID] = $bulkActivityTypeID;
list($sqlClause, $params) = self::getActivitySQLClause($input);
$query = "{$insertSQL}
// create temp table for target contacts
$activityContactTempTable = "civicrm_temp_activity_contact_{$randomNum}";
$query = "CREATE TEMPORARY TABLE {$activityContactTempTable} (
- activity_id int unsigned, contact_id int unsigned, record_type_id varchar(16), contact_name varchar(255), is_deleted int unsigned )
+ activity_id int unsigned, contact_id int unsigned, record_type_id varchar(16),
+ contact_name varchar(255), is_deleted int unsigned, INDEX index_activity_id( activity_id ) )
ENGINE=MYISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";
CRM_Core_DAO::executeQuery($query);
ac.record_type_id,
c.sort_name,
c.is_deleted
-FROM civicrm_activity_contact ac
-INNER JOIN {$activityTempTable} ON ( ac.activity_id = {$activityTempTable}.activity_id )
+FROM {$activityTempTable}
+INNER JOIN civicrm_activity a ON ( a.id = {$activityTempTable}.activity_id )
+INNER JOIN civicrm_activity_contact ac ON ( ac.activity_id = {$activityTempTable}.activity_id )
INNER JOIN civicrm_contact c ON c.id = ac.contact_id
";
CRM_Core_DAO::executeQuery($query);
* @static
*/
static function &getActivitiesCount($input) {
+ // skip bulk activities in activity tab
+ $bulkActivityTypeID = CRM_Core_OptionGroup::getValue(
+ 'activity_type',
+ 'Bulk Email',
+ 'name'
+ );
+ $input['activity_type_exclude_id'][$bulkActivityTypeID] = $bulkActivityTypeID;
+
$input['count'] = TRUE;
list($sqlClause, $params) = self::getActivitySQLClause($input);
// get token details for contacts, call only if tokens are used
$details = array();
- if (!empty($allTokens)) {
+ if (!empty($returnProperties) || !empty($tokens) || !empty($allTokens)) {
list($details) = CRM_Utils_Token::getTokenDetails(
$contactIds,
$returnProperties,
return self::getActivityContact($activityId, $sourceID);
}
+ function setApiFilter(&$params) {
+ if (CRM_Utils_Array::value('target_contact_id', $params)) {
+ $this->selectAdd();
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
+ $targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
+ $obj = new CRM_Activity_BAO_ActivityContact();
+ $params['return.target_contact_id'] = 1;
+ $this->joinAdd($obj, 'LEFT');
+ $this->selectAdd('civicrm_activity.*');
+ $this->whereAdd(" civicrm_activity_contact.contact_id = {$params['target_contact_id']} AND civicrm_activity_contact.record_type_id = {$targetID}");
+ }
+ }
+
}