Merge pull request #967 from ravishnair/CRM-12682
[civicrm-core.git] / CRM / Case / Form / Activity.php
index 393e3acd79fee0a4128ef1cdd5e5ed059feecd29..cdbc2bd97dc4a068560ccf11e48f34d69350f075 100644 (file)
@@ -592,35 +592,10 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
     );
     CRM_Case_BAO_Case::processCaseActivity($caseParams);
 
-    $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
-    $assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
-    // create activity assignee records
-    $assigneeParams = array(
-      'activity_id' => $activity->id,
-      'record_type_id' => $assigneeID 
-    );
-
-    if (!CRM_Utils_Array::crmIsEmptyArray($params['assignee_contact_id'])) {
-      //skip those assignee contacts which are already assigned
-      //while sending a copy.CRM-4509.
-      $activityAssigned = array_flip($params['assignee_contact_id']);
-      $activityId       = isset($this->_activityId) ? $this->_activityId : $activity->id;
-      $assigneeContacts = CRM_Activity_BAO_ActivityAssignment::getAssigneeNames($activityId);
-      $activityAssigned = array_diff_key($activityAssigned, $assigneeContacts);
-
-      foreach ($params['assignee_contact_id'] as $key => $id) {
-        $assigneeParams['contact_id'] = $id;
-        CRM_Activity_BAO_ActivityContact::create($assigneeParams);
-      }
-      //modify assigne_contact as per newly assigned contact before sending copy. CRM-4509.
-      $params['assignee_contact_id'] = $activityAssigned;
-    }
-
     // Insert civicrm_log record for the activity (e.g. store the
     // created / edited by contact id and date for the activity)
     // Note - civicrm_log is already created by CRM_Activity_BAO_Activity::create()
-
-
+    
     // send copy to selected contacts.
     $mailStatus = '';
     $mailToContacts = array();
@@ -628,7 +603,8 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
     //CRM-5695
     //check for notification settings for assignee contacts
     $selectedContacts = array('contact_check');
-
+    $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
+    $assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
     if (CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
         'activity_assignee_notification'
       )) {
@@ -641,7 +617,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
           $mailStatus = ts("A copy of the activity has also been sent to selected contacts(s).");
         }
         else {
-          $this->_relatedContacts = CRM_Activity_BAO_ActivityAssignment::getAssigneeNames($activity->id, TRUE, FALSE);
+          $this->_relatedContacts = CRM_Activity_BAO_ActivityContact::getNames($activity->id, $assigneeID, TRUE, FALSE);
           $mailStatus .= ' ' . ts("A copy of the activity has also been sent to assignee contacts(s).");
         }
         //build an associative array with unique email addresses.