X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FActivity%2FBAO%2FQuery.php;h=e378efe51d8390975174709584c5f86c1b7514ef;hb=6327b760fa13ddc865aafb0486c090073dede3d8;hp=bc01a3140b382d0184bb5f78d37adf1452b1026e;hpb=c11da624176c6f66b876bd1c2750cc389ab993ef;p=civicrm-core.git diff --git a/CRM/Activity/BAO/Query.php b/CRM/Activity/BAO/Query.php index bc01a3140b..e378efe51d 100644 --- a/CRM/Activity/BAO/Query.php +++ b/CRM/Activity/BAO/Query.php @@ -51,7 +51,7 @@ class CRM_Activity_BAO_Query { } 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; @@ -60,8 +60,7 @@ class CRM_Activity_BAO_Query { } 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; @@ -91,7 +90,8 @@ class CRM_Activity_BAO_Query { } 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; @@ -152,7 +152,7 @@ class CRM_Activity_BAO_Query { $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; @@ -220,7 +220,7 @@ class CRM_Activity_BAO_Query { 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; @@ -380,7 +380,7 @@ class CRM_Activity_BAO_Query { $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"; @@ -394,6 +394,13 @@ class CRM_Activity_BAO_Query { } } + /** + * @param $name + * @param $mode + * @param $side + * + * @return null|string + */ static function from($name, $mode, $side) { $from = NULL; switch ($name) { @@ -435,7 +442,7 @@ class CRM_Activity_BAO_Query { 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; @@ -572,6 +579,12 @@ class CRM_Activity_BAO_Query { $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) { @@ -612,6 +625,16 @@ class CRM_Activity_BAO_Query { 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();