clean up(CRM-12274)
[civicrm-core.git] / CRM / Case / BAO / Case.php
index 7aba9a5b56d66965b7cbb75f7634858437e502fe..ce0bc025f5f6c71b6b8989dca76792b1bc871de5 100644 (file)
@@ -974,6 +974,10 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type
   static function getCaseActivity($caseID, &$params, $contactID, $context = NULL, $userID = NULL, $type = NULL) {
     $values = array();
 
+    $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+    $assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
+    $targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
+
     // CRM-5081 - formatting the dates to omit seconds.
     // Note the 00 in the date format string is needed otherwise later on it thinks scheduled ones are overdue.
     $select = "SELECT count(ca.id) as ismultiple, ca.id as id,
@@ -1005,7 +1009,7 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type
                   LEFT OUTER JOIN civicrm_option_group og ON og.name="activity_status"
                   LEFT OUTER JOIN civicrm_option_value ov ON ov.option_group_id=og.id AND ov.name="Scheduled"
                   LEFT JOIN civicrm_activity_contact caa
-                                ON caa.activity_id = ca.id AND caa.record_type = "Assignee"                  
+                                ON caa.activity_id = ca.id AND caa.record_type_id = $assigneeID                  
                   LEFT JOIN civicrm_contact acc ON acc.id = caa.contact_id  ';
 
     $where = 'WHERE cca.case_id= %1
@@ -1026,7 +1030,6 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type
       $where .= " AND ca.is_deleted = 0";
     }
 
-
     if (CRM_Utils_Array::value('activity_type_id', $params)) {
       $where .= " AND ca.activity_type_id = " . CRM_Utils_Type::escape($params['activity_type_id'], 'Integer');
     }
@@ -1177,8 +1180,7 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type
         $reporterName = '<a href="' . $contactViewUrl . $dao->reporter_id . '">' . $dao->reporter . '</a>';
       }
       $values[$dao->id]['reporter'] = $reporterName;
-
-      $targetNames = CRM_Activity_BAO_ActivityTarget::getTargetNames($dao->id);
+      $targetNames = CRM_Activity_BAO_ActivityContact::getNames($dao->id, $targetID);
       $targetContactUrls = $withContacts = array();
       foreach ($targetNames as $targetId => $targetName) {
         if (!in_array($targetId, $clientIds)) {
@@ -2253,7 +2255,11 @@ INNER JOIN  civicrm_case_contact ON ( civicrm_case.id = civicrm_case_contact.cas
 
     $activityTypes = CRM_Core_PseudoConstant::activityType(TRUE, TRUE, FALSE, 'name');
     $activityStatuses = CRM_Core_PseudoConstant::activityStatus('name');
-
+    $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+    $sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
+    $assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
+    $targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
     $processCaseIds = array($otherCaseId);
     if ($duplicateContacts && !$duplicateCases) {
       if ($changeClient) {
@@ -2401,15 +2407,15 @@ SELECT  id
         //migrate target activities.
         $otherTargetActivity = new CRM_Activity_DAO_ActivityContact();
         $otherTargetActivity->activity_id = $otherActivityId;
-        $otherTargetActivity->record_type = 'Target';
+        $otherTargetActivity->record_type_id = $targetID;
         $otherTargetActivity->find();
         while ($otherTargetActivity->fetch()) {
           $mainActivityTarget = new CRM_Activity_DAO_ActivityContact();
-          $mainActivityTarget->record_type = 'Target';
+          $mainActivityTarget->record_type_id = $targetID;
           $mainActivityTarget->activity_id = $mainActivityId;
-          $mainActivityTarget->target_contact_id = $otherTargetActivity->target_contact_id;
-          if ($mainActivityTarget->target_contact_id == $otherContactId) {
-            $mainActivityTarget->target_contact_id = $mainContactId;
+          $mainActivityTarget->contact_id = $otherTargetActivity->contact_id;
+          if ($mainActivityTarget->contact_id == $otherContactId) {
+            $mainActivityTarget->contact_id = $mainContactId;
           }
           //avoid duplicate object.
           if (!$mainActivityTarget->find(TRUE)) {
@@ -2422,15 +2428,15 @@ SELECT  id
         //migrate assignee activities.
         $otherAssigneeActivity = new CRM_Activity_DAO_ActivityContact();
         $otherAssigneeActivity->activity_id = $otherActivityId;
-        $otherAssigneeActivity->record_type = 'Assignee';
+        $otherAssigneeActivity->record_type_id = $assigneeID;
         $otherAssigneeActivity->find();
         while ($otherAssigneeActivity->fetch()) {
           $mainAssigneeActivity = new CRM_Activity_DAO_ActivityContact();
           $mainAssigneeActivity->activity_id = $mainActivityId;
-          $mainAssigneeActivity->record_type = 'Assignee';
-          $mainAssigneeActivity->assignee_contact_id = $otherAssigneeActivity->assignee_contact_id;
-          if ($mainAssigneeActivity->assignee_contact_id == $otherContactId) {
-            $mainAssigneeActivity->assignee_contact_id = $mainContactId;
+          $mainAssigneeActivity->record_type_id = $assigneeID;
+          $mainAssigneeActivity->contact_id = $otherAssigneeActivity->contact_id;
+          if ($mainAssigneeActivity->contact_id == $otherContactId) {
+            $mainAssigneeActivity->contact_id = $mainContactId;
           }
           //avoid duplicate object.
           if (!$mainAssigneeActivity->find(TRUE)) {
@@ -2725,17 +2731,17 @@ WHERE id IN (' . implode(',', $copiedActivityIds) . ')';
               $isTarget = $isAssignee = $isSource = FALSE;
 
               $target = new CRM_Activity_DAO_ActivityContact();
-              $target->record_type = 'Target';
+              $target->record_type_id = $targetID;
               $target->activity_id = $activityId;
-              $target->target_contact_id = $contactId;
+              $target->contact_id = $contactId;
               if ($target->find(TRUE)) {
                 $isTarget = TRUE;
               }
 
               $assignee = new CRM_Activity_DAO_ActivityContact();
               $assignee->activity_id = $activityId;
-              $assignee->record_type = 'Assignee';
-              $assignee->assignee_contact_id = $contactId;
+              $assignee->record_type_id = $assigneeID;
+              $assignee->contact_id = $contactId;
               if ($assignee->find(TRUE)) {
                 $isAssignee = TRUE;
               }