From eaba0d06c75bd4b1e6d7db9251218e243cd7c589 Mon Sep 17 00:00:00 2001 From: Jaap Jansma Date: Wed, 11 Jun 2014 12:08:17 +0200 Subject: [PATCH] Fix for CRM-14840: Record reminder sent activity on case when the source activity is case activity Conflicts: CRM/Core/BAO/ActionSchedule.php ---------------------------------------- * CRM-14840: File schedule reminder on case https://issues.civicrm.org/jira/browse/CRM-14840 --- CRM/Core/BAO/ActionSchedule.php | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) mode change 100755 => 100644 CRM/Core/BAO/ActionSchedule.php diff --git a/CRM/Core/BAO/ActionSchedule.php b/CRM/Core/BAO/ActionSchedule.php old mode 100755 new mode 100644 index e6fd447e8b..ef548c8b00 --- a/CRM/Core/BAO/ActionSchedule.php +++ b/CRM/Core/BAO/ActionSchedule.php @@ -684,10 +684,8 @@ AND cas.entity_value = $id AND while ($actionSchedule->fetch()) { $extraSelect = $extraJoin = $extraWhere = $extraOn = ''; - if ($actionSchedule->from_email) - $fromEmailAddress = "$actionSchedule->from_name <$actionSchedule->from_email>"; - - + $activityTypeID = false; + $activityStatusID = false; if ($actionSchedule->record_activity) { if ($mapping->entity == 'civicrm_membership') { $activityTypeID = @@ -705,7 +703,7 @@ AND cas.entity_value = $id AND if ($mapping->entity == 'civicrm_activity') { $tokenEntity = 'activity'; $tokenFields = array('activity_id', 'activity_type', 'subject', 'details', 'activity_date_time'); - $extraSelect = ', ov.label as activity_type, e.id as activity_id'; + $extraSelect = ', ov.label as activity_type, e.id as activity_id, civicrm_case_activity.case_id as case_id'; $extraJoin = " INNER JOIN civicrm_option_group og ON og.name = 'activity_type' INNER JOIN civicrm_option_value ov ON e.activity_type_id = ov.value AND ov.option_group_id = og.id"; @@ -715,6 +713,10 @@ INNER JOIN civicrm_option_value ov ON e.activity_type_id = ov.value AND ov.optio LEFT JOIN civicrm_option_group og ON og.name = 'activity_type' LEFT JOIN civicrm_option_value ov ON e.activity_type_id = ov.value AND ov.option_group_id = og.id"; } + + //join for caseId + $extraJoin .= " + LEFT JOIN `civicrm_case_activity` ON `e`.`id` = `civicrm_case_activity`.`activity_id`"; } if ($mapping->entity == 'civicrm_participant') { @@ -874,7 +876,7 @@ WHERE reminder.action_schedule_id = %1 AND reminder.action_date_time IS NULL CRM_Core_BAO_ActionLog::create($logParams); // insert activity log record if needed - if ($actionSchedule->record_activity) { + if ($actionSchedule->record_activity && $activityTypeID) { $activityParams = array( 'subject' => $actionSchedule->title, 'details' => $actionSchedule->body_html, @@ -887,6 +889,14 @@ WHERE reminder.action_schedule_id = %1 AND reminder.action_date_time IS NULL 'source_record_id' => $dao->entityID, ); $activity = CRM_Activity_BAO_Activity::create($activityParams); + //file reminder on case if source activity is a case activity + if (!empty($dao->case_id)) { + $caseActivityParams = array(); + $caseActivityParams['case_id'] = $dao->case_id; + $caseActivityParams['activity_id'] = $activity->id; + CRM_Case_BAO_Case::processCaseActivity($caseActivityParams); + } + } } -- 2.25.1