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 {
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); } }