Merge pull request #3216 from xurizaemon/CRM-14596
[civicrm-core.git] / CRM / Activity / BAO / ActivityContact.php
index a82d8e1ce5638a1366ae2559d459f56bcd85dc3a..1a21e3d2738cf773727528c3203fa06f62f6f10c 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.3                                                |
+ | CiviCRM version 4.5                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013                                |
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -28,7 +28,7 @@
 /**
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
  * $Id$
  *
  */
@@ -59,19 +59,25 @@ class CRM_Activity_BAO_ActivityContact extends CRM_Activity_DAO_ActivityContact
     $activityContact = new CRM_Activity_DAO_ActivityContact();
 
     $activityContact->copyValues($params);
-    return $activityContact->save();
+    if (!$activityContact->find(TRUE)) {
+      return $activityContact->save();
+    }
+    return $activityContact;
   }
 
   /**
    * function to retrieve names of contact by activity_id
    *
-   * @param int    $id   ID of the activity
-   * @param string $type type of interaction
+   * @param $activityID
+   * @param $recordTypeID
+   * @param bool $alsoIDs
+   *
+   * @internal param int $id ID of the activity
+   * @internal param string $type type of interaction
    *
    * @return array
    *
    * @access public
-   *
    */
   static function getNames($activityID, $recordTypeID, $alsoIDs = FALSE) {
     $names = array();
@@ -104,14 +110,16 @@ AND        contact_a.is_deleted = 0
   }
 
   /**
-   * function to retrieve id of target contact by activity_id 
+   * function to retrieve id of target contact by activity_id
    *
-   * @param int    $id  ID of the activity
+   * @param $activityID
+   * @param $recordTypeID
+   *
+   * @internal param int $id ID of the activity
    *
    * @return mixed
    *
    * @access public
-   *
    */
   static function retrieveContactIdsByActivityId($activityID, $recordTypeID) {
     $activityContact = array();
@@ -124,8 +132,8 @@ AND        contact_a.is_deleted = 0
 FROM       civicrm_activity_contact
 INNER JOIN civicrm_contact ON contact_id = civicrm_contact.id
 WHERE      activity_id = %1
-AND        record_type_id = %2 
-AND        civicrm_contact.is_deleted = 0 
+AND        record_type_id = %2
+AND        civicrm_contact.is_deleted = 0
 ";
     $params = array(
       1 => array($activityID, 'Integer'),
@@ -139,4 +147,8 @@ AND        civicrm_contact.is_deleted = 0
     return $activityContact;
   }
 
+  function links() {
+    $link = array('activity_id' => 'civicrm_activity:id');
+    return $link;
+  }
 }