/**
 * Update an existing membership status
 *
 * This api is used for updating an existing membership status.
 * Required parrmeters : id of a membership status
 *
 * @param  Array   $params  an associative array of name/value property values of civicrm_membership_status
 * @deprecated - should just use create
 *
 * @return array of updated membership status property values
 * @access public
 */
function &civicrm_api3_membership_status_update($params)
{
    civicrm_api3_verify_mandatory($params, NULL, array('id'));
    //don't allow duplicate names.
    $name = CRM_Utils_Array::value('name', $params);
    if ($name) {
        require_once 'CRM/Member/DAO/MembershipStatus.php';
        $status = new CRM_Member_DAO_MembershipStatus();
        $status->name = $params['name'];
        if ($status->find(TRUE) && $status->id != $params['id']) {
            return civicrm_api3_create_error(ts('A membership status with this name already exists.'));
        }
    }
    require_once 'CRM/Member/BAO/MembershipStatus.php';
    $membershipStatusBAO = new CRM_Member_BAO_MembershipStatus();
    $membershipStatusBAO->id = $params['id'];
    if ($membershipStatusBAO->find(TRUE)) {
        $fields = $membershipStatusBAO->fields();
        foreach ($fields as $name => $field) {
            if (array_key_exists($name, $params)) {
                $membershipStatusBAO->{$name} = $params[$name];
            }
        }
        $membershipStatusBAO->save();
    }
    $membershipStatus = array();
    _civicrm_api3_object_to_array(clone $membershipStatusBAO, $membershipStatus);
    $membershipStatus['is_error'] = 0;
    return $membershipStatus;
}
/**
 * Update an existing membership status
 *
 * This api is used for updating an existing membership status.
 * Required parrmeters : id of a membership status
 *
 * @param  Array   $params  an associative array of name/value property values of civicrm_membership_status
 *
 * @return array of updated membership status property values
 * @access public
 */
function &civicrm_membership_status_update(&$params)
{
    _civicrm_initialize();
    if (!is_array($params)) {
        return civicrm_create_error('Params is not an array');
    }
    if (!isset($params['id'])) {
        return civicrm_create_error('Required parameter missing');
    }
    //don't allow duplicate names.
    $name = CRM_Utils_Array::value('name', $params);
    if ($name) {
        require_once 'CRM/Member/DAO/MembershipStatus.php';
        $status = new CRM_Member_DAO_MembershipStatus();
        $status->name = $params['name'];
        if ($status->find(TRUE) && $status->id != $params['id']) {
            return civicrm_create_error(ts('A membership status with this name already exists.'));
        }
    }
    require_once 'CRM/Member/BAO/MembershipStatus.php';
    $membershipStatusBAO = new CRM_Member_BAO_MembershipStatus();
    $membershipStatusBAO->id = $params['id'];
    if ($membershipStatusBAO->find(TRUE)) {
        $fields = $membershipStatusBAO->fields();
        foreach ($fields as $name => $field) {
            if (array_key_exists($name, $params)) {
                $membershipStatusBAO->{$name} = $params[$name];
            }
        }
        $membershipStatusBAO->save();
    }
    $membershipStatus = array();
    _civicrm_object_to_array(clone $membershipStatusBAO, $membershipStatus);
    $membershipStatus['is_error'] = 0;
    return $membershipStatus;
}