X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContact%2FBAO%2FRelationship.php;h=e8faf2c6d1efad08b8e2177c356599c66c25b763;hb=bdd49e3826fad29cc02081b07a81eda3455d126a;hp=d5f0a02e03eb3df198ad88568bd7115aa63f96a5;hpb=e913987d303f2c51e60be23820fc8d1031e7eadd;p=civicrm-core.git diff --git a/CRM/Contact/BAO/Relationship.php b/CRM/Contact/BAO/Relationship.php index d5f0a02e03..e8faf2c6d1 100644 --- a/CRM/Contact/BAO/Relationship.php +++ b/CRM/Contact/BAO/Relationship.php @@ -1,7 +1,7 @@ free(); - CRM_Utils_Hook::post($hook, 'Relationship', $relationshipId, $relationship); + CRM_Utils_Hook::post($hook, 'Relationship', $relationship->id, $relationship); return $relationship; } @@ -269,10 +267,9 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_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, @@ -291,10 +288,9 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { * @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; @@ -303,7 +299,7 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { } /** - * Function to 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 @@ -311,16 +307,11 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { * @param string $contactType contact type * @param boolean $all if true returns relationship types in both the direction * @param string $column name/label that going to retrieve from db. - * - * * @param bool $biDirectional * @param string $contactSubType includes relationshiptypes between this subtype - * * @param boolean $onlySubTypeRelationTypes if set only subtype which is passed by $contactSubType * related relationshiptypes get return * - * @internal param string $strContact this value is currently ignored, keeping it there for legacy reasons - * @access public * @static * * @return array - array reference of all relationship types with context to current contact. @@ -373,15 +364,9 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { (!$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"]; @@ -394,15 +379,9 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { (!$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"]; @@ -426,12 +405,12 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { } /** - * @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); @@ -455,16 +434,15 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { } /** - * Function to 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); @@ -491,7 +469,7 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { $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( @@ -504,17 +482,16 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { } /** - * Function to 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 @@ -553,10 +530,9 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { * @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(); @@ -569,17 +545,16 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { } /** - * 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; @@ -591,17 +566,16 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { } /** - * 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(); @@ -632,7 +606,7 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { } /** - * 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 @@ -642,7 +616,7 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { @access public * @static */ - static function checkValidRelationship(&$params, &$ids, $contactId) { + public static function checkValidRelationship(&$params, &$ids, $contactId) { $errors = ''; // get the string of relationship type @@ -659,7 +633,7 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { } /** - * 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 @@ -667,10 +641,9 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_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); @@ -736,7 +709,7 @@ WHERE relationship_type_id = " . CRM_Utils_Type::escape($type, 'Integer'); } /** - * 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 @@ -745,7 +718,7 @@ WHERE relationship_type_id = " . CRM_Utils_Type::escape($type, 'Integer'); * @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 @@ -774,13 +747,11 @@ WHERE relationship_type_id = " . CRM_Utils_Type::escape($type, 'Integer'); * * @param array $params input parameters to find object * @param array $values output values of the object - * @internal param array $ids the array that holds all the db ids * * @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; } @@ -804,14 +775,14 @@ WHERE relationship_type_id = " . CRM_Utils_Type::escape($type, 'Integer'); } /** - * 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 * @@ -819,9 +790,8 @@ WHERE relationship_type_id = " . CRM_Utils_Type::escape($type, 'Integer'); * * @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 = '( '; @@ -966,7 +936,6 @@ LEFT JOIN civicrm_country ON (civicrm_address.country_id = civicrm_country.id) * * @return array|int * @static - * @access public */ static function getRelationship($contactId = NULL, $status = 0, $numRelationship = 0, @@ -1156,14 +1125,14 @@ LEFT JOIN civicrm_country ON (civicrm_address.country_id = civicrm_country.id) } /** - * 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(); @@ -1177,7 +1146,7 @@ LEFT JOIN civicrm_country ON (civicrm_address.country_id = civicrm_country.id) } /** - * 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 @@ -1193,7 +1162,7 @@ LEFT JOIN civicrm_country ON (civicrm_address.country_id = civicrm_country.id) * * @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; @@ -1408,7 +1377,7 @@ SELECT count(*) * @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; } @@ -1439,13 +1408,13 @@ SELECT count(*) } /** - * 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 = " @@ -1465,7 +1434,7 @@ WHERE id IN ( {$contacts} ) } /** - * 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. @@ -1476,7 +1445,7 @@ WHERE id IN ( {$contacts} ) * @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' @@ -1497,7 +1466,7 @@ WHERE id IN ( {$contacts} ) * * @return array of contacts */ - static function getPermissionedContacts($contactID, $relTypeId, $name = NULL) { + public static function getPermissionedContacts($contactID, $relTypeId, $name = NULL) { $contacts = array(); if ($relTypeId) { @@ -1510,7 +1479,8 @@ cr.relationship_type_id IN (%2) AND 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'); @@ -1543,7 +1513,7 @@ AND cc.sort_name LIKE '%$name%'"; * * @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) @@ -1577,7 +1547,7 @@ AND cc.sort_name LIKE '%$name%'"; * * @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); @@ -1602,7 +1572,7 @@ AND cc.sort_name LIKE '%$name%'"; * * @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)) { @@ -1645,7 +1615,6 @@ AND cc.sort_name LIKE '%$name%'"; * @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 @@ -1754,4 +1723,3 @@ AND cc.sort_name LIKE '%$name%'"; } } -