Example #1
0
/**
 * Take item_id and get DISTINCT list of related items, and copy for new instance.
 *
 * @param unknown_type $item_id
 * @param unknown_type $instance_no
 */
function copy_related_item_instance_relationships($item_id, $instance_no)
{
    $item_instance_rs = NULL;
    $results = fetch_item_instance_relationship_rs($item_id);
    if ($results) {
        while ($item_instance_r = db_fetch_assoc($results)) {
            if ($item_instance_r['instance_no'] != $instance_no) {
                $item_instance_rs[] = $item_instance_r;
            }
        }
        db_free_result($results);
    }
    if (is_array($item_instance_rs)) {
        while (list(, $item_instance_r) = each($item_instance_rs)) {
            insert_item_instance_relationship($item_id, $instance_no, $item_instance_r['item_id'], $item_instance_r['instance_no']);
        }
    }
}
Example #2
0
function perform_update_process(&$item_r, &$status_type_r, &$HTTP_VARS, &$footer_links_r)
{
    global $PHP_SELF;
    do_op_title($item_r, $status_type_r, $HTTP_VARS['start-op'] == 'newinstance' ? 'newinstance' : 'update');
    $errors = NULL;
    $return_val = FALSE;
    if ($HTTP_VARS['start-op'] == 'newinstance') {
        $item_r['instance_no'] = NULL;
        $return_val = handle_item_instance_insert($item_r, $status_type_r, $HTTP_VARS, $errors);
    } else {
        $return_val = handle_item_instance_update($item_r, $status_type_r, $HTTP_VARS, $errors);
    }
    if ($return_val === TRUE) {
        $return_val = handle_item_update($item_r, $HTTP_VARS, $errors);
        if (get_opendb_config_var('item_input', 'related_item_support') !== FALSE) {
            if (!empty($HTTP_VARS['parent_item'])) {
                $parent_item_r = get_item_id_and_instance_no($HTTP_VARS['parent_item']);
                if (is_exists_item_instance($parent_item_r['item_id'], $parent_item_r['instance_no']) && !is_exists_related_item_instance_relationship($item_r['item_id'], $item_r['instance_no'], $parent_item_r['item_id'], $parent_item_r['instance_no'])) {
                    insert_item_instance_relationship($parent_item_r['item_id'], $parent_item_r['instance_no'], $item_r['item_id'], $item_r['instance_no']);
                }
            }
        }
    }
    if ($return_val === "__INVALID_DATA__") {
        echo format_error_block($errors);
        $HTTP_VARS['op'] = 'edit';
        $formContents = handle_edit_or_refresh($HTTP_VARS['op'], $item_r, $status_type_r, $HTTP_VARS, $errors);
        if ($formContents !== FALSE) {
            echo $formContents;
        } else {
            echo format_error_block($errors);
        }
    } else {
        if ($return_val === TRUE) {
            if ($HTTP_VARS['start-op'] == 'newinstance') {
                echo "<p class=\"success\">" . get_opendb_lang_var('item_instance_added') . "</p>";
            } else {
                echo "<p class=\"success\">" . get_opendb_lang_var('item_updated') . "</p>";
            }
            echo format_error_block($errors, 'warning');
            $footer_links_r[] = array(url => "item_display.php?item_id=" . $item_r['item_id'] . "&instance_no=" . $item_r['instance_no'], text => get_opendb_lang_var('back_to_item'));
        } else {
            echo format_error_block($errors);
        }
    }
}