diff --git a/CRM/Report/Form/Case/Detail.php b/CRM/Report/Form/Case/Detail.php index 39014a560628..f78e3e3c5429 100644 --- a/CRM/Report/Form/Case/Detail.php +++ b/CRM/Report/Form/Case/Detail.php @@ -250,6 +250,21 @@ public function __construct() { ), 'civicrm_activity_last' => array( 'dao' => 'CRM_Activity_DAO_Activity', + 'fields' => array( + 'last_activity_activity_subject' => array( + 'name' => 'subject', + 'title' => ts('Subject of the last activity in the case'), + ), + 'last_activity_activity_type' => array( + 'name' => 'activity_type_id', + 'title' => ts('Activity type of the last activity'), + ), + 'last_activity_date_time' => array( + 'name' => 'activity_date_time', + 'title' => ts('Last Action Date'), + 'operatorType' => CRM_Report_Form::OP_DATE, + ), + ), 'filters' => array( 'last_activity_date_time' => array( 'name' => 'activity_date_time', @@ -270,6 +285,18 @@ public function __construct() { 'name' => 'activity_type_id', 'title' => ts('Activity type of the last completed activity'), ), + 'last_completed_date_time' => array( + 'name' => 'activity_date_time', + 'title' => ts('Last Completed Action Date'), + 'operatorType' => CRM_Report_Form::OP_DATE, + ), + ), + 'filters' => array( + 'last_completed_date_time' => array( + 'name' => 'activity_date_time', + 'title' => ts('Last Completed Action Date'), + 'operatorType' => CRM_Report_Form::OP_DATE, + ), ), ), ); @@ -336,6 +363,9 @@ public function select() { $select[] = "GROUP_CONCAT({$field['dbAlias']} ORDER BY {$field['dbAlias']} ) as {$tableName}_{$fieldName}"; } + if ($tableName == 'civicrm_activity_last') { + $this->_activityLast = TRUE; + } if ($tableName == 'civicrm_activity_last_completed') { $this->_activityLastCompleted = TRUE; } @@ -581,9 +611,16 @@ public function checkEnabledFields() { $this->_relField = TRUE; } - if (!empty($this->_params['activity_date_time_relative']) || - !empty($this->_params['activity_date_time_from']) || - CRM_Utils_Array::value('activity_date_time_to', $this->_params) + if (!empty($this->_params['last_completed_date_time_relative']) || + !empty($this->_params['last_completed_date_time_from']) || + CRM_Utils_Array::value('last_completed_date_time_to', $this->_params) + ) { + $this->_activityLastCompleted = TRUE; + } + + if (!empty($this->_params['last_activity_date_time_relative']) || + !empty($this->_params['last_activity_date_time_from']) || + CRM_Utils_Array::value('last_activity_date_time_to', $this->_params) ) { $this->_activityLast = TRUE; } @@ -658,6 +695,12 @@ public function alterDisplay(&$rows) { } $entryFound = TRUE; } + if (array_key_exists('civicrm_activity_last_last_activity_activity_subject', $row) && + empty($row['civicrm_activity_last_last_activity_activity_subject']) + ) { + $rows[$rowNum]['civicrm_activity_last_last_activity_activity_subject'] = ts('(no subject)'); + $entryFound = TRUE; + } if (array_key_exists('civicrm_activity_last_completed_last_completed_activity_subject', $row) && empty($row['civicrm_activity_last_completed_last_completed_activity_subject']) ) { @@ -675,6 +718,12 @@ public function alterDisplay(&$rows) { $rows[$rowNum]['civicrm_contact_client_sort_name_hover'] = ts("View Contact Summary for this Contact"); $entryFound = TRUE; } + if (array_key_exists('civicrm_activity_last_last_activity_activity_type', $row)) { + if ($value = $row['civicrm_activity_last_last_activity_activity_type']) { + $rows[$rowNum]['civicrm_activity_last_last_activity_activity_type'] = $activityTypes[$value]; + } + $entryFound = TRUE; + } if (array_key_exists('civicrm_activity_last_completed_last_completed_activity_type', $row)) { if ($value = $row['civicrm_activity_last_completed_last_completed_activity_type']) { $rows[$rowNum]['civicrm_activity_last_completed_last_completed_activity_type'] = $activityTypes[$value];