/** * Add or update a relationship * * @param array $params (reference ) input parameters * * @return array (reference) id of created or updated record * @static void * @access public */ function civicrm_relationship_create(&$params) { _civicrm_initialize(); if (empty($params)) { return civicrm_create_error('No input parameter present'); } if (!is_array($params)) { return civicrm_create_error(ts('Input parameter is not an array')); } if (!isset($params['contact_id_a']) && !isset($params['contact_id_b']) && !isset($params['relationship_type_id'])) { return civicrm_create_error(ts('Missing required parameters')); } $values = array(); require_once 'CRM/Contact/BAO/Relationship.php'; $error = _civicrm_relationship_format_params($params, $values); if (civicrm_error($error)) { return $error; } $ids = array(); require_once 'CRM/Utils/Array.php'; if (CRM_Utils_Array::value('id', $params)) { $ids['relationship'] = $params['id']; $ids['contactTarget'] = $params['contact_id_b']; } $values['relationship_type_id'] = $params['relationship_type_id'] . '_a_b'; $values['contact_check'] = array($params['contact_id_b'] => $params['contact_id_b']); $ids['contact'] = $params['contact_id_a']; $relationshipBAO = CRM_Contact_BAO_Relationship::create($values, $ids); if (is_a($relationshipBAO, 'CRM_Core_Error')) { return civicrm_create_error("Relationship can not be created"); } else { if ($relationshipBAO[1]) { return civicrm_create_error("Relationship is not valid"); } else { if ($relationshipBAO[2]) { return civicrm_create_error("Relationship already exist"); } } } return civicrm_create_success(array('id' => implode(",", $relationshipBAO[4]))); }
/** * Add or update a relationship * * @param array $params (reference ) input parameters * * @return array (reference) id of created or updated record * @static void * @access public */ function civicrm_relationship_create(&$params) { _civicrm_initialize(); // check params for required fields (add/update) $error = _civicrm_relationship_check_params($params); if (civicrm_error($error)) { return $error; } $values = array(); require_once 'CRM/Contact/BAO/Relationship.php'; $error = _civicrm_relationship_format_params($params, $values); if (civicrm_error($error)) { return $error; } $ids = array(); require_once 'CRM/Utils/Array.php'; if (CRM_Utils_Array::value('id', $params)) { $ids['relationship'] = $params['id']; $ids['contactTarget'] = $params['contact_id_b']; } $values['relationship_type_id'] = $params['relationship_type_id'] . '_a_b'; $values['contact_check'] = array($params['contact_id_b'] => $params['contact_id_b']); $ids['contact'] = $params['contact_id_a']; $relationshipBAO = CRM_Contact_BAO_Relationship::create($values, $ids); if (is_a($relationshipBAO, 'CRM_Core_Error')) { return civicrm_create_error('Relationship can not be created'); } else { if ($relationshipBAO[1]) { return civicrm_create_error('Relationship is not valid'); } else { if ($relationshipBAO[2]) { return civicrm_create_error('Relationship already exists'); } } } return civicrm_create_success(array('id' => implode(',', $relationshipBAO[4]))); }