From 34463fa9198cbe240cf2e1736d9f99575dd20429 Mon Sep 17 00:00:00 2001 From: David Hayes Date: Thu, 20 Jul 2017 12:01:39 -0500 Subject: [PATCH] add in display of last activity, add filtering by last activity completed date --- CRM/Report/Form/Case/Detail.php | 49 +++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/CRM/Report/Form/Case/Detail.php b/CRM/Report/Form/Case/Detail.php index f24894c3ae..f78e3e3c54 100644 --- a/CRM/Report/Form/Case/Detail.php +++ b/CRM/Report/Form/Case/Detail.php @@ -250,6 +250,21 @@ class CRM_Report_Form_Case_Detail extends CRM_Report_Form { ), '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 @@ class CRM_Report_Form_Case_Detail extends CRM_Report_Form { '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 @@ class CRM_Report_Form_Case_Detail extends CRM_Report_Form { $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,6 +611,13 @@ class CRM_Report_Form_Case_Detail extends CRM_Report_Form { $this->_relField = TRUE; } + 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) @@ -658,6 +695,12 @@ class CRM_Report_Form_Case_Detail extends CRM_Report_Form { } $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 @@ class CRM_Report_Form_Case_Detail extends CRM_Report_Form { $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]; -- 2.25.1