Ejemplo n.º 1
0
    if (!is_numeric($oid)) {
        cw_header_location("index.php?target=error_message&error=access_denied&id=8");
    }
}
$smarty->assign('usertype_layout', 'A');
$smarty->assign('doc_id', $doc_id);
if ((!$doc_data['doc_id'] || $doc_data['type'] != $docs_type) && $mode != 'edit') {
    cw_header_location('index.php?target=' . $target);
}
if (in_array($current_area, array('A', 'P', 'V')) && $action == "status_change") {
    # Update order
    $query_data = array('tracking' => $request_prepared['tracking'], 'ship_time' => $request_prepared['ship_time'], 'customer_notes' => $request_prepared['customer_notes'], 'notes' => $request_prepared['notes']);
    if (isset($details)) {
        $query_data['details'] = cw_crypt_text($details);
    }
    cw_doc_update_info($doc_data['doc_info_id'], $query_data);
    cw_doc_update_quotes($doc_id, $quote);
    cw_call('cw_doc_change_status', array($doc_id, $status));
    $top_message['content'] = cw_get_langvar_by_name('txt_order_has_been_changed');
    cw_header_location("index.php?target={$target}&mode=details&doc_id=" . $doc_id);
}
if (in_array($current_area, array('A', 'P')) && $action == "delete") {
    cw_call('cw_doc_delete', array($doc_id));
    cw_header_location("index.php?target={$target}" . $query_string);
}
$smarty->assign('main', 'document');
$predefined_lng_variables[] = 'lbl_doc_info_' . $doc_data['type'];
if ($mode == 'edit' && $current_area == 'A') {
    cw_include('include/orders/order_edit.php');
    return;
} else {
Ejemplo n.º 2
0
function cw_doc_update($doc_id, $cart, $old_products = array(), $is_create_user = false)
{
    global $tables, $addons, $config;
    global $app_main_dir;
    $old_doc = cw_call('cw_doc_get', array($doc_id));
    $products = $cart['products'];
    $userinfo = $cart['userinfo'];
    $_extra = $cart['info']['extra'];
    $_extra['tax_info']['taxed_subtotal'] = $cart['info']['display_subtotal'];
    $_extra['tax_info']['taxed_discounted_subtotal'] = $cart['info']['display_discounted_subtotal'];
    $_extra['tax_info']['taxed_shipping'] = $cart['info']['display_shipping_cost'];
    unset($_extra['tax_info']['product_tax_name']);
    $_extra['additional_fields'] = $userinfo['additional_fields'];
    if (!empty($dhl_ext_country)) {
        $is_dhl_shipping = cw_query_first_cell("SELECT COUNT(*) FROM {$tables['shipping']} WHERE shipping_id = '{$cart['shipping_id']}' AND code = 'ARB' AND destination = 'I'") > 0;
        if ($is_dhl_shipping) {
            if (!function_exists("cw_shipper_ARB")) {
                require_once $app_main_dir . '/addons/shipping_dhl/mod_ARB.php';
            } else {
                global $dhl_ext_countries;
            }
            if (empty($dhl_ext_countries)) {
                $dhl_ext_country = false;
            }
        } else {
            $dhl_ext_country = false;
        }
    }
    if (!empty($dhl_ext_country)) {
        $_extra['dhl_ext_country'] = $dhl_ext_country;
    } else {
        cw_unset($_extra, 'dhl_ext_country');
    }
    $applied_taxes = addslashes(serialize($cart['info']['taxes']));
    $cart['info']['extra'] = addslashes(serialize($_extra));
    # kornev, update order information
    cw_doc_update_general($doc_id, $cart);
    # kornev, update calculated information
    $doc_info_id = $cart['info']['doc_info_id'];
    cw_doc_update_info($doc_info_id, $cart['info']);
    cw_doc_update_settings($doc_info_id, $cart['settings']);
    if ($cart['type'] == 'G' && $addons['pos']) {
        cw_doc_update_pos($doc_info_id, $cart['pos']);
    }
    # kornev, update address information
    cw_doc_update_user_information($cart['type'], $doc_info_id, $userinfo, $is_create_user);
    $margin_value = $cart['info']['total'];
    if (is_array($products)) {
        $items = array();
        foreach ($products as $pk => $product) {
            // if used quote
            if ($addons['quote_system'] && isset($cart['info']['quote_doc_id']) && !empty($cart['info']['quote_doc_id'])) {
                $product['item_id'] = null;
            }
            $items[] = cw_call('cw_doc_update_item', array($doc_id, &$product));
            // Calculate margin
            $margin_value = $margin_value - $product['cost'] * $product['amount'];
        }
        $deleted_items = cw_query_column("select item_id from {$tables['docs_items']} where doc_id='{$doc_id}' and item_id not in ('" . implode("','", $items) . "')");
        if ($deleted_items) {
            db_query("delete from {$tables['docs_items']} where item_id in ('" . implode("', '", $deleted_items) . "')");
        }
    }
    $_extras = $cart['info']['extras'];
    // Calculate and save margin
    $shipping_value = $config['General']['include_shipping_in_margin_calc'] == 'Y' ? $cart['info']['display_shipping_cost'] : 0;
    $margin_value = $margin_value - $shipping_value;
    if ($margin_value < 0) {
        $margin_value = 0;
    }
    $_extras['margin_value'] = price_format($margin_value);
    cw_call('cw_doc_place_extras_data', array($doc_id, $_extras));
    cw_load('accounting');
    if ($old_doc['info']['payment_id'] != $cart['info']['payment_id'] || 1) {
        $ready_part = cw_doc_update_quote($doc_id, $cart);
        cw_doc_update_commissions($doc_id, $cart, $ready_part);
    } else {
        cw_doc_update_commissions($doc_id, $cart);
    }
}