CRM-20435: Conservative replacement of SQL-based activityContact creation with DAO...
authorFrank J. Gómez <frank@ginkgostreet.com>
Sat, 15 Apr 2017 20:14:42 +0000 (16:14 -0400)
committerFrank J. Gómez <frank@ginkgostreet.com>
Sat, 15 Apr 2017 20:14:42 +0000 (16:14 -0400)
CRM/Activity/BAO/Activity.php

index d99a6c9ab9fb82b895c75ca11e38d096ba6456d6..c9207aabfe26e5480fa01e97502a4848017e1c60 100644 (file)
@@ -370,18 +370,16 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
           self::deleteActivityContact($activityId, $assigneeID);
         }
 
-        $values = array();
         foreach ($params['assignee_contact_id'] as $acID) {
           if ($acID) {
-            $values[] = "( $activityId, $acID, $assigneeID )";
+            $assigneeParams = array(
+              'activity_id' => $activityId,
+              'contact_id' => $acID,
+              'record_type_id' => $assigneeID,
+            );
+            CRM_Activity_BAO_ActivityContact::create($assigneeParams);
           }
         }
-        while (!empty($values)) {
-          $input = array_splice($values, 0, CRM_Core_DAO::BULK_INSERT_COUNT);
-          $str = implode(',', $input);
-          $sql = "INSERT IGNORE INTO civicrm_activity_contact ( activity_id, contact_id, record_type_id ) VALUES $str;";
-          CRM_Core_DAO::executeQuery($sql);
-        }
       }
       else {
         $assignmentParams['contact_id'] = $params['assignee_contact_id'];
@@ -425,19 +423,16 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
           self::deleteActivityContact($activityId, $targetID);
         }
 
-        $values = array();
         foreach ($params['target_contact_id'] as $tid) {
           if ($tid) {
-            $values[] = "( $activityId, $tid,  $targetID )";
+            $targetContactParams = array(
+              'activity_id' => $activityId,
+              'contact_id' => $tid,
+              'record_type_id' => $targetID,
+            );
+            CRM_Activity_BAO_ActivityContact::create($targetContactParams);
           }
         }
-
-        while (!empty($values)) {
-          $input = array_splice($values, 0, CRM_Core_DAO::BULK_INSERT_COUNT);
-          $str = implode(',', $input);
-          $sql = "INSERT IGNORE INTO civicrm_activity_contact ( activity_id, contact_id, record_type_id ) VALUES $str;";
-          CRM_Core_DAO::executeQuery($sql);
-        }
       }
       else {
         $targetParams['contact_id'] = $params['target_contact_id'];