diff --git a/CRM/Report/Form/Activity.php b/CRM/Report/Form/Activity.php index 6bd904d4d73b..3329fdaf1650 100644 --- a/CRM/Report/Form/Activity.php +++ b/CRM/Report/Form/Activity.php @@ -312,6 +312,10 @@ public function __construct() { 'operatorType' => CRM_Report_Form::OP_SELECT, 'options' => ['0' => ts('No'), '1' => ts('Yes')], ]; + $this->_columns['civicrm_case_activity'] = [ + 'dao' => 'CRM_Case_DAO_CaseActivity', + 'fields' => [], + ]; } if ($campaignEnabled) { @@ -349,22 +353,15 @@ public function __construct() { parent::__construct(); } - public function preProcess() { - // Is "Include Case Activities" selected? If yes, include the case_id as a hidden column - $formToUse = $this->noController ? NULL : $this; - $includeCaseActivities = CRM_Utils_Request::retrieve('include_case_activities_value', 'Boolean', $formToUse); - if (!empty($includeCaseActivities)) { - $this->_columns['civicrm_case_activity'] = [ - 'dao' => 'CRM_Case_DAO_CaseActivity', - 'fields' => [ - 'case_id' => [ - 'no_display' => TRUE, - 'required' => TRUE, - ], - ], - ]; - } - parent::preProcess(); + protected static function addCaseActivityColumns($columns) { + $columns['civicrm_case_activity']['fields'] = [ + 'case_id' => [ + 'no_display' => TRUE, + 'required' => TRUE, + 'dbAlias' => $columns['civicrm_case_activity']['alias'] . '.case_id', + ], + ]; + return $columns; } /** @@ -733,6 +730,11 @@ public function buildQuery($applyLimit = TRUE) { } } + if (!empty($this->_params['include_case_activities_value'])) { + $columns = self::addCaseActivityColumns($this->_columns); + $this->_columns = $columns; + } + // @todo - all this temp table stuff is here because pre 4.4 the activity contact // form did not exist. // Fixing the way the construct method declares them will make all this redundant.