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,
LEFT JOIN civicrm_entity_file ef on ef.entity_table = "civicrm_activity" AND ef.entity_id = ca.id
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_assignment caa
- ON caa.activity_id = ca.id
- LEFT JOIN civicrm_contact acc ON acc.id = caa.assignee_contact_id ';
+ LEFT JOIN civicrm_activity_contact caa
+ 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
AND ca.is_current_revision = 1';
$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');
}
$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)) {
$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) {
$mainCaseActivity->free();
//migrate target activities.
- $otherTargetActivity = new CRM_Activity_DAO_ActivityTarget();
+ $otherTargetActivity = new CRM_Activity_DAO_ActivityContact();
$otherTargetActivity->activity_id = $otherActivityId;
+ $otherTargetActivity->record_type_id = $targetID;
$otherTargetActivity->find();
while ($otherTargetActivity->fetch()) {
- $mainActivityTarget = new CRM_Activity_DAO_ActivityTarget();
+ $mainActivityTarget = new CRM_Activity_DAO_ActivityContact();
+ $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)) {
$otherTargetActivity->free();
//migrate assignee activities.
- $otherAssigneeActivity = new CRM_Activity_DAO_ActivityAssignment();
+ $otherAssigneeActivity = new CRM_Activity_DAO_ActivityContact();
$otherAssigneeActivity->activity_id = $otherActivityId;
+ $otherAssigneeActivity->record_type_id = $assigneeID;
$otherAssigneeActivity->find();
while ($otherAssigneeActivity->fetch()) {
- $mainAssigneeActivity = new CRM_Activity_DAO_ActivityAssignment();
+ $mainAssigneeActivity = new CRM_Activity_DAO_ActivityContact();
$mainAssigneeActivity->activity_id = $mainActivityId;
- $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)) {
//view - contact must be source/assignee/target
$isTarget = $isAssignee = $isSource = FALSE;
- $target = new CRM_Activity_DAO_ActivityTarget();
+ $target = new CRM_Activity_DAO_ActivityContact();
+ $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_ActivityAssignment();
+ $assignee = new CRM_Activity_DAO_ActivityContact();
$assignee->activity_id = $activityId;
- $assignee->assignee_contact_id = $contactId;
+ $assignee->record_type_id = $assigneeID;
+ $assignee->contact_id = $contactId;
if ($assignee->find(TRUE)) {
$isAssignee = TRUE;
}