diff --git a/CHANGELOG.md b/CHANGELOG.md index 2773a6c9f9ddb0f29a0960bb9dff597f1a8eecf3..d684c62d220643cde78e04c76a8c377a8176bf2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ * Added option to expand criteria forms on search forms. * Added a Date field. * Added function to clone a data processor. +* Added Case ID field on the activity source. # Version 1.0.7 diff --git a/Civi/DataProcessor/DataSpecification/Utils.php b/Civi/DataProcessor/DataSpecification/Utils.php index 343b200d9ea81a6495eda8b7e8c7bc3f8f88694d..8258012a7ad598addf8773ddafa852765dc15b61 100644 --- a/Civi/DataProcessor/DataSpecification/Utils.php +++ b/Civi/DataProcessor/DataSpecification/Utils.php @@ -93,7 +93,7 @@ class Utils { continue; } foreach ($customGroup['fields'] as $field) { - if (!$onlySearchAbleFields || $field['is_searchable']) { + if (!$onlySearchAbleFields || (isset($field['is_searchable']) && $field['is_searchable'])) { $alias = $aliasPrefix . $customGroup['name'] . '_' . $field['name']; $customFieldSpec = new CustomFieldSpecification( $customGroup['name'], $customGroup['table_name'], $customGroup['title'], @@ -106,4 +106,4 @@ class Utils { } } -} \ No newline at end of file +} diff --git a/Civi/DataProcessor/Source/Activity/ActivitySource.php b/Civi/DataProcessor/Source/Activity/ActivitySource.php index 766524d17c79fdb8e678233ebf08a349e2767065..ff174b49cda233d62ec8a343c84c92fd16e3f3b0 100644 --- a/Civi/DataProcessor/Source/Activity/ActivitySource.php +++ b/Civi/DataProcessor/Source/Activity/ActivitySource.php @@ -28,6 +28,11 @@ class ActivitySource extends AbstractCivicrmEntitySource { */ protected $activityContactDataFlow; + /** + * @var SqlTableDataFlow + */ + protected $activityCaseDataFlow; + public function __construct() { parent::__construct(); @@ -38,6 +43,10 @@ class ActivitySource extends AbstractCivicrmEntitySource { // Create the activity contact data flow and data flow description $this->activityContactDataFlow = new SqlTableDataFlow('civicrm_activity_contact', $this->getSourceName().'_activity_contact'); DataSpecificationUtils::addDAOFieldsToDataSpecification('CRM_Activity_DAO_ActivityContact', $this->activityContactDataFlow->getDataSpecification(), array('id'), '', 'activity_contact_', E::ts('Activity Contact :: ')); + + // Create the activity contact data flow and data flow description + $this->activityCaseDataFlow = new SqlTableDataFlow('civicrm_case_activity', $this->getSourceName().'_activity_case'); + DataSpecificationUtils::addDAOFieldsToDataSpecification('CRM_Case_DAO_CaseActivity', $this->activityCaseDataFlow->getDataSpecification(), array('id', 'activity_id'), '', 'activity_case_', E::ts('Case :: ')); } /** @@ -93,14 +102,19 @@ class ActivitySource extends AbstractCivicrmEntitySource { protected function getEntityDataFlow() { $activityDataDescription = new DataFlowDescription($this->activityDataFlow); - $join = new SimpleJoin($this->activityDataFlow->getTableAlias(), 'id', $this->activityContactDataFlow->getTableAlias(), 'activity_id'); - $join->setDataProcessor($this->dataProcessor); - $activityContactDataDescription = new DataFlowDescription($this->activityContactDataFlow, $join); + $contactJJoin = new SimpleJoin($this->activityDataFlow->getTableAlias(), 'id', $this->activityContactDataFlow->getTableAlias(), 'activity_id'); + $contactJJoin->setDataProcessor($this->dataProcessor); + $activityContactDataDescription = new DataFlowDescription($this->activityContactDataFlow, $contactJJoin); + + $caseJoin = new SimpleJoin($this->activityDataFlow->getTableAlias(), 'id', $this->activityCaseDataFlow->getTableAlias(), 'activity_id', 'LEFT'); + $caseJoin->setDataProcessor($this->dataProcessor); + $activityCaseDataDescription = new DataFlowDescription($this->activityCaseDataFlow, $caseJoin); // Create the subquery data flow $entityDataFlow = new SubqueryDataFlow($this->getSourceName(), $this->getTable(), $this->getSourceName()); $entityDataFlow->addSourceDataFlow($activityDataDescription); $entityDataFlow->addSourceDataFlow($activityContactDataDescription); + $entityDataFlow->addSourceDataFlow($activityCaseDataDescription); return $entityDataFlow; } @@ -143,6 +157,7 @@ class ActivitySource extends AbstractCivicrmEntitySource { DataSpecificationUtils::addDAOFieldsToDataSpecification($daoClass, $dataSpecification, $fieldsToSkip, '', $aliasPrefix); DataSpecificationUtils::addDAOFieldsToDataSpecification('CRM_Activity_DAO_ActivityContact', $dataSpecification, array('id', 'activity_id'), 'activity_contact_', $aliasPrefix, E::ts('Activity contact :: ')); + DataSpecificationUtils::addDAOFieldsToDataSpecification('CRM_Case_DAO_CaseActivity', $dataSpecification, array('id', 'activity_id'), 'activity_case_', $aliasPrefix); } -} \ No newline at end of file +}