3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
19 * This class is for activity assignment functions.
21 class CRM_Activity_BAO_ActivityTarget
extends CRM_Activity_DAO_ActivityContact
{
26 public function __construct() {
27 parent
::__construct();
31 * Add activity target.
33 * @param array $params
36 * activity type of object that is added
38 public static function create(&$params) {
39 $target = new CRM_Activity_BAO_ActivityContact();
40 $activityContacts = CRM_Activity_BAO_ActivityContact
::buildOptions('record_type_id', 'validate');
41 $targetID = CRM_Utils_Array
::key('Activity Targets', $activityContacts);
43 $target->copyValues($params);
44 $target->record_type_id
= $targetID;
45 return $target->save();
49 * Retrieve id of target contact by activity_id.
51 * @param int $activity_id
55 public static function retrieveTargetIdsByActivityId($activity_id) {
57 if (!CRM_Utils_Rule
::positiveInteger($activity_id)) {
61 $activityContacts = CRM_Activity_BAO_ActivityContact
::buildOptions('record_type_id', 'validate');
62 $targetID = CRM_Utils_Array
::key('Activity Targets', $activityContacts);
66 FROM civicrm_activity_contact
67 INNER JOIN civicrm_contact ON contact_id = civicrm_contact.id
68 WHERE activity_id = %1
69 AND record_type_id = $targetID
70 AND civicrm_contact.is_deleted = 0
72 $target = CRM_Core_DAO
::executeQuery($sql, [
78 while ($target->fetch()) {
79 $targetArray[] = $target->contact_id
;
85 * Retrieve names of target contact by activity_id.
87 * @param int $activityID
91 public static function getTargetNames($activityID) {
94 if (empty($activityID)) {
97 $activityContacts = CRM_Activity_BAO_ActivityContact
::buildOptions('record_type_id', 'validate');
98 $targetID = CRM_Utils_Array
::key('Activity Targets', $activityContacts);
101 SELECT contact_a.id, contact_a.sort_name
102 FROM civicrm_contact contact_a
103 INNER JOIN civicrm_activity_contact ON civicrm_activity_contact.contact_id = contact_a.id
104 WHERE civicrm_activity_contact.activity_id = %1
105 AND civicrm_activity_contact.record_type_id = $targetID
106 AND contact_a.is_deleted = 0
108 $queryParam = [1 => [$activityID, 'Integer']];
110 $dao = CRM_Core_DAO
::executeQuery($query, $queryParam);
111 while ($dao->fetch()) {
112 $targetNames[$dao->id
] = $dao->sort_name
;