Exemplo n.º 1
0
/**
 * 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])));
}
Exemplo n.º 2
0
/**
 * 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])));
}