/**
* build select for Case
*
+ * @param $query
+ *
* @return void
* @access public
*/
}
if (!empty($query->_returnProperties['activity_type_id'])) {
- $query->_select['activity_type_id'] = "activity_type.id as activity_type_id";
+ $query->_select['activity_type_id'] = "activity_type.value as activity_type_id";
$query->_element['activity_type_id'] = 1;
$query->_tables['civicrm_activity'] = 1;
$query->_tables['activity_type'] = 1;
}
if (!empty($query->_returnProperties['activity_type'])) {
- $query->_select['activity_type'] = "activity_type.label as activity_type,
- civicrm_activity.activity_type_id as activity_type_id";
+ $query->_select['activity_type'] = "activity_type.label as activity_type";
$query->_element['activity_type'] = 1;
$query->_tables['civicrm_activity'] = 1;
$query->_tables['activity_type'] = 1;
}
if (!empty($query->_returnProperties['activity_status'])) {
- $query->_select['activity_status'] = "activity_status.label as activity_status";
+ $query->_select['activity_status'] = "activity_status.label as activity_status,
+ civicrm_activity.status_id as status_id";
$query->_element['activity_status'] = 1;
$query->_tables['civicrm_activity'] = 1;
$query->_tables['activity_status'] = 1;
$query->_element['result'] = 1;
$query->_tables['civicrm_activity'] = $query->_whereTables['civicrm_activity'] = 1;
}
-
+
if (CRM_Utils_Array::value('parent_id', $query->_returnProperties)) {
$query->_tables['parent_id'] = 1;
$query->_whereTables['parent_id'] = 1;
* Given a list of conditions in query generate the required
* where clause
*
+ * @param $query
+ *
* @return void
* @access public
*/
/**
* where clause for a single field
*
+ * @param $values
+ * @param $query
* @return void
* @access public
*/
//get the component activity types.
$compActTypes = CRM_Core_PseudoConstant::activityType(TRUE, TRUE, FALSE, 'label', TRUE, TRUE);
$activityTypeIds = self::buildWhereAndQill($query, $value, $types, $op, $grouping, array('Activity Type', 'civicrm_activity.activity_type_id'));
-
+
foreach ($activityTypeIds as $activityTypeId) {
if (array_key_exists($activityTypeId, $compActTypes)) {
CRM_Contact_BAO_Query::$_considerCompActivities = TRUE;
break;
}
$value = CRM_Utils_Type::escape($value, 'Integer');
- $query->_where[$grouping][] = " source_record_id = $value";
+ $query->_where[$grouping][] = " civicrm_activity.source_record_id = $value";
$query->_qill[$grouping][] = ts('Survey') . ' - ' . CRM_Core_DAO::getFieldValue('CRM_Campaign_DAO_Survey', $value, 'title');
break;
case 'activity_status':
$status = CRM_Core_PseudoConstant::activityStatus();
-
+
$activityTypeIds = self::buildWhereAndQill($query, $value, $status, $op, $grouping, array('Activity Status', 'civicrm_activity.status_id'));
break;
$query->_qill[$grouping][] = ts('Activities without Followup Activities');
}
break;
-
+
case 'followup_parent_id':
if ($value == 1) {
$query->_where[$grouping][] = "civicrm_activity.parent_id IS NOT NULL";
}
}
+ /**
+ * @param $name
+ * @param $mode
+ * @param $side
+ *
+ * @return null|string
+ */
static function from($name, $mode, $side) {
$from = NULL;
switch ($name) {
ON ( ac.activity_id = civicrm_activity_contact.activity_id AND ac.record_type_id = {$sourceID})
INNER JOIN civicrm_contact source_contact ON (ac.contact_id = source_contact.id)";
break;
-
+
case 'parent_id':
$from = "$side JOIN civicrm_activity AS parent_id ON civicrm_activity.id = parent_id.parent_id";
break;
foreach ($activityStatus as $activityStatusID => $activityStatusName) {
$activity_status[] = $form->createElement('checkbox', $activityStatusID, NULL, $activityStatusName);
}
- $form->addGroup($activity_status, 'activity_status', ts('Activity Status'), TRUE);
+ $form->addGroup($activity_status, 'activity_status', ts('Activity Status'));
$form->setDefaults(array('activity_status[1]' => 1, 'activity_status[2]' => 1));
$form->addElement('text', 'activity_subject', ts('Subject'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name'));
$form->addYesNo('activity_test', ts('Activity is a Test?'));
);
}
}
-
+
$form->assign('buildEngagementLevel', $buildEngagementLevel);
$form->assign('buildSurveyResult', $buildSurveyResult);
$form->setDefaults(array('activity_test' => 0));
}
+ /**
+ * @param $mode
+ * @param bool $includeCustomFields
+ *
+ * @return array|null
+ */
static function defaultReturnProperties($mode, $includeCustomFields = TRUE) {
$properties = NULL;
if ($mode & CRM_Contact_BAO_Query::MODE_ACTIVITY) {
return $properties;
}
-
+
+ /**
+ * @param $query
+ * @param $value
+ * @param $pseudoconstantType
+ * @param $op
+ * @param $grouping
+ * @param $params
+ *
+ * @return array
+ */
static function buildWhereAndQill(&$query, $value, $pseudoconstantType, $op, $grouping, $params) {
$matches = $val = $clause = array();
-
+
if (is_array($value)) {
foreach ($value as $k => $v) {
if ($k) {
$val[] = $k;
}
}
-
+
if (count($val) > 0) {
// Overwrite $op so it works with an IN where statement.
$op = 'IN';
foreach ($matches[0] as $qill) {
$clause[] = CRM_Utils_Array::value($qill, $pseudoconstantType);
}
-
+
$query->_qill[$grouping][] = ts($params[0] . ' %1 ', array(1 => $op)) . implode(' ' . ts('or') . ' ', $clause);
$query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($params[1],
$op, $value, "Integer"