<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship {
/**
- * various constants to indicate different type of relationships
+ * Various constants to indicate different type of relationships
*
* @var int
*/
- CONST PAST = 1, DISABLED = 2, CURRENT = 4, INACTIVE = 8;
+ const PAST = 1, DISABLED = 2, CURRENT = 4, INACTIVE = 8;
/**
- * takes an associative array and creates a relationship object
+ * Takes an associative array and creates a relationship object
*
*
* @param array $params (reference ) an assoc array of name/value pairs
* "we are moving away from the $ids param "
*
* @return CRM_Contact_BAO_Relationship object
- * @access public
* @static
*/
- static function create(&$params, $ids = array()) {
+ public static function create(&$params, $ids = array()) {
$valid = $invalid = $duplicate = $saved = 0;
$relationships = $relationshipIds = array();
$relationshipId = CRM_Utils_Array::value('relationship', $ids, CRM_Utils_Array::value('id', $params));
* @param array $ids the array that holds all the db ids
*
* @return CRM_Contact_BAO_Relationship
- * @access public
* @static
*/
- static function add(&$params, $ids = array(), $contactId = NULL) {
+ public static function add(&$params, $ids = array(), $contactId = NULL) {
$relationshipId =
CRM_Utils_Array::value('relationship', $ids, CRM_Utils_Array::value('id', $params));
$relationship->free();
- CRM_Utils_Hook::post($hook, 'Relationship', $relationshipId, $relationship);
+ CRM_Utils_Hook::post($hook, 'Relationship', $relationship->id, $relationship);
return $relationship;
}
* Specifiy defaults for creating a relationship
*
* @return array $defaults array of defaults for creating relationship
- * @access public
* @static
*/
- static function getdefaults() {
+ public static function getdefaults() {
return array(
'is_active' => 0,
'is_permission_a_b' => 0,
* @param array $params (reference ) an assoc array of name/value pairs
*
* @return boolean
- * @access public
* @static
*/
- static function dataExists(&$params) {
+ public static function dataExists(&$params) {
// return if no data present
if (!is_array(CRM_Utils_Array::value('contact_check', $params))) {
return FALSE;
}
/**
- * get get list of relationship type based on the contact type.
+ * Get get list of relationship type based on the contact type.
*
* @param int $contactId this is the contact id of the current contact.
* @param null $contactSuffix
* @param boolean $onlySubTypeRelationTypes if set only subtype which is passed by $contactSubType
* related relationshiptypes get return
*
- * @access public
* @static
*
* @return array - array reference of all relationship types with context to current contact.
(!$otherContactType) ||
$value['contact_type_b'] == $otherContactType
) &&
- (!$contactSubType ||
- (in_array($value['contact_sub_type_a'], $contactSubType) ||
- in_array($value['contact_sub_type_b'], $contactSubType) ||
- ((!$value['contact_sub_type_b'] &&
- !$value['contact_sub_type_a']
- ) &&
- !$onlySubTypeRelationTypes
- )
- )
+ (in_array($value['contact_sub_type_a'], $contactSubType) ||
+ in_array($value['contact_sub_type_b'], $contactSubType) ||
+ (!$value['contact_sub_type_a'] && !$onlySubTypeRelationTypes)
)
) {
$relationshipType[$key . '_a_b'] = $value["{$column}_a_b"];
(!$otherContactType) ||
$value['contact_type_a'] == $otherContactType
) &&
- (!$contactSubType ||
- (in_array($value['contact_sub_type_b'], $contactSubType) ||
- in_array($value['contact_sub_type_a'], $contactSubType) ||
- ((!$value['contact_sub_type_a'] &&
- !$value['contact_sub_type_b']
- ) &&
- !$onlySubTypeRelationTypes
- )
- )
+ (in_array($value['contact_sub_type_b'], $contactSubType) ||
+ in_array($value['contact_sub_type_a'], $contactSubType) ||
+ (!$value['contact_sub_type_b'] && !$onlySubTypeRelationTypes)
)
) {
$relationshipType[$key . '_b_a'] = $value["{$column}_b_a"];
}
/**
- * @param $id
+ * @param int $id
* @param $action
*
* @return CRM_Contact_DAO_Relationship
*/
- static function clearCurrentEmployer($id, $action) {
+ public static function clearCurrentEmployer($id, $action) {
$relationship = new CRM_Contact_DAO_Relationship();
$relationship->id = $id;
$relationship->find(TRUE);
}
/**
- * delete the relationship
+ * Delete the relationship
*
* @param int $id relationship id
*
* @return null
- * @access public
*
* @static
*/
- static function del($id) {
+ public static function del($id) {
// delete from relationship table
CRM_Utils_Hook::pre('delete', 'Relationship', $id, CRM_Core_DAO::$_nullArray);
$relationship->delete();
CRM_Core_Session::setStatus(ts('Selected relationship has been deleted successfully.'), ts('Record Deleted'), 'success');
- CRM_Utils_Hook::post('delete', 'Relationship', $relationship->id, $relationship);
+ CRM_Utils_Hook::post('delete', 'Relationship', $id, $relationship);
// delete the recently created Relationship
$relationshipRecent = array(
}
/**
- * disable/enable the relationship
+ * Disable/enable the relationship
*
* @param int $id relationship id
*
* @param $action
*
* @return null
- * @access public
* @static
*/
- static function disableEnableRelationship($id, $action) {
+ public static function disableEnableRelationship($id, $action) {
$relationship = self::clearCurrentEmployer($id, $action);
if (CRM_Core_Permission::access('CiviMember')) {
// create $params array which isrequired to delete memberships
* @param int $contactId id of the contact to delete
*
* @return void
- * @access public
* @static
*/
- static function deleteContact($contactId) {
+ public static function deleteContact($contactId) {
$relationship = new CRM_Contact_DAO_Relationship();
$relationship->contact_id_a = $contactId;
$relationship->delete();
}
/**
- * Function to get the other contact in a relationship
+ * Get the other contact in a relationship
*
* @param int $id relationship id
*
* $returns returns the contact ids in the realtionship
*
* @return \CRM_Contact_DAO_Relationship
- * @access public
* @static
*/
- static function getContactIds($id) {
+ public static function getContactIds($id) {
$relationship = new CRM_Contact_DAO_Relationship();
$relationship->id = $id;
}
/**
- * Function to check if the relationship type selected between two contacts is correct
+ * Check if the relationship type selected between two contacts is correct
*
* @param int $contact_a 1st contact id
* @param int $contact_b 2nd contact id
* @param int $relationshipTypeId relationship type id
*
* @return boolean true if it is valid relationship else false
- * @access public
* @static
*/
- static function checkRelationshipType($contact_a, $contact_b, $relationshipTypeId) {
+ public static function checkRelationshipType($contact_a, $contact_b, $relationshipTypeId) {
$relationshipType = new CRM_Contact_DAO_RelationshipType();
$relationshipType->id = $relationshipTypeId;
$relationshipType->selectAdd();
}
/**
- * this function does the validtion for valid relationship
+ * This function does the validtion for valid relationship
*
* @param array $params this array contains the values there are subitted by the form
* @param array $ids the array that holds all the db ids
@access public
* @static
*/
- static function checkValidRelationship(&$params, &$ids, $contactId) {
+ public static function checkValidRelationship(&$params, &$ids, $contactId) {
$errors = '';
// get the string of relationship type
}
/**
- * this function checks for duplicate relationship
+ * This function checks for duplicate relationship
*
* @param array $params (reference ) an assoc array of name/value pairs
* @param integer $id this the id of the contact whom we are adding relationship
* @param integer $relationshipId this is relationship id for the contact
*
* @return boolean true if record exists else false
- * @access public
* @static
*/
- static function checkDuplicateRelationship(&$params, $id, $contactId = 0, $relationshipId = 0) {
+ public static function checkDuplicateRelationship(&$params, $id, $contactId = 0, $relationshipId = 0) {
$relationshipTypeId = CRM_Utils_Array::value('relationship_type_id', $params);
list($type, $first, $second) = explode('_', $relationshipTypeId);
}
/**
- * update the is_active flag in the db
+ * Update the is_active flag in the db
*
* @param int $id id of the database record
* @param boolean $is_active value we want to set the is_active field
* @return Object DAO object on success, null otherwise
* @static
*/
- static function setIsActive($id, $is_active) {
+ public static function setIsActive($id, $is_active) {
// as both the create & add functions have a bunch of logic in them that
// doesn't seem to cope with a normal update we will call the api which
// has tested handling for this
* @param array $values output values of the object
*
* @return array (reference) the values that could be potentially assigned to smarty
- * @access public
* @static
*/
- static function &getValues(&$params, &$values) {
+ public static function &getValues(&$params, &$values) {
if (empty($params)) {
return NULL;
}
}
/**
- * helper function to form the sql for relationship retrieval
+ * Helper function to form the sql for relationship retrieval
*
* @param int $contactId contact id
* @param int $status (check const at top of file)
* @param int $numRelationship no of relationships to display (limit)
* @param int $count get the no of relationships
* $param int $relationshipId relationship id
- * @param $relationshipId
+ * @param int $relationshipId
* @param string $direction the direction we are interested in a_b or b_a
* @param array $params array of extra values including relationship_type_id per api spec
*
*
* @return array
* @static
- * @access public
*/
- static function makeURLClause($contactId, $status, $numRelationship, $count, $relationshipId, $direction, $params = array()) {
+ public static function makeURLClause($contactId, $status, $numRelationship, $count, $relationshipId, $direction, $params = array()) {
$select = $from = $where = '';
$select = '( ';
*
* @return array|int
* @static
- * @access public
*/
static function getRelationship($contactId = NULL,
$status = 0, $numRelationship = 0,
}
/**
- * Function to get get list of relationship type based on the target contact type.
+ * Get get list of relationship type based on the target contact type.
*
* @param string $targetContactType it's valid contact tpye(may be Individual , Organization , Household)
*
* @return array - array reference of all relationship types with context to current contact type .
*
*/
- function getRelationType($targetContactType) {
+ public function getRelationType($targetContactType) {
$relationshipType = array();
$allRelationshipType = CRM_Core_PseudoConstant::relationshipType();
}
/**
- * Function to create / update / delete membership for related contacts.
+ * Create / update / delete membership for related contacts.
*
* This function will create/update/delete membership for related
* contact based on 1) contact have active membership 2) that
*
* @static
*/
- static function relatedMemberships($contactId, &$params, $ids, $action = CRM_Core_Action::ADD, $active = TRUE) {
+ public static function relatedMemberships($contactId, &$params, $ids, $action = CRM_Core_Action::ADD, $active = TRUE) {
// Check the end date and set the status of the relationship
// accrodingly.
$status = self::CURRENT;
* @static
*
*/
- static function isDeleteRelatedMembership($relTypeIds, $contactId, $mainRelatedContactId, $relTypeId, $relIds) {
+ public static function isDeleteRelatedMembership($relTypeIds, $contactId, $mainRelatedContactId, $relTypeId, $relIds) {
if (in_array($relTypeId, $relTypeIds)) {
return TRUE;
}
}
/**
- * Function to get Current Employer for Contact
+ * Get Current Employer for Contact
*
* @param $contactIds Contact Ids
*
* @return array $currentEmployer array of the current employer@static
*/
- static function getCurrentEmployer($contactIds) {
+ public static function getCurrentEmployer($contactIds) {
$contacts = implode(',', $contactIds);
$query = "
}
/**
- * Function to return list of permissioned employer for a given contact.
+ * Return list of permissioned employer for a given contact.
*
* @param $contactID int contact id whose employers
* are to be found.
* @return array array of employers.
*
*/
- static function getPermissionedEmployer($contactID, $name = NULL) {
+ public static function getPermissionedEmployer($contactID, $name = NULL) {
//get the relationship id
$relTypeId = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_RelationshipType',
'Employee of', 'id', 'name_a_b'
*
* @return array of contacts
*/
- static function getPermissionedContacts($contactID, $relTypeId, $name = NULL) {
+ public static function getPermissionedContacts($contactID, $relTypeId, $name = NULL) {
$contacts = array();
if ($relTypeId) {
cr.is_permission_a_b = 1 AND
IF(cr.end_date IS NULL, 1, (DATEDIFF( CURDATE( ), cr.end_date ) <= 0)) AND
cr.is_active = 1 AND
-cc.id = cr.contact_id_b";
+cc.id = cr.contact_id_b AND
+cc.is_deleted = 0";
if (!empty($name)) {
$name = CRM_Utils_Type::escape($name, 'String');
*
* @static
*/
- static function mergeRelationships($mainId, $otherId, &$sqls) {
+ public static function mergeRelationships($mainId, $otherId, &$sqls) {
// Delete circular relationships
$sqls[] = "DELETE FROM civicrm_relationship
WHERE (contact_id_a = $mainId AND contact_id_b = $otherId)
*
* @return True on success, false if error is encountered.
*/
- static function disableExpiredRelationships() {
+ public static function disableExpiredRelationships() {
$query = "SELECT id FROM civicrm_relationship WHERE is_active = 1 AND end_date < CURDATE()";
$dao = CRM_Core_DAO::executeQuery($query);
*
* @return array
*/
- static function membershipTypeToRelationshipTypes(&$params, $direction = NULL) {
+ public static function membershipTypeToRelationshipTypes(&$params, $direction = NULL) {
$membershipType = civicrm_api3('membership_type', 'getsingle', array('id' => $params['membership_type_id'], 'return' => 'relationship_type_id, relationship_direction'));
$relationshipTypes = $membershipType['relationship_type_id'];
if(empty($relationshipTypes)) {
* @param array $params associated array for params record id.
*
* @return array $contactRelationships associated array of contact relationships
- * @access public
*/
public static function getContactRelationshipSelector(&$params) {
// format the params
}
}
-