+ begin_transaction();
+ hook_db_prewrite($order, $order->trans_type);
+
+ if ($order->trans_type == ST_SALESORDER)
+ $allocs = get_payments_for($order_no, $order->trans_type, $order->customer_id);
+
+ $sql = "UPDATE ".TB_PREF."sales_orders SET type =".db_escape($order->so_type)." ,
+ debtor_no = " . db_escape($order->customer_id) . ",
+ branch_code = " . db_escape($order->Branch) . ",
+ customer_ref = ". db_escape($order->cust_ref) .",
+ reference = ". db_escape($order->reference) .",
+ comments = ". db_escape($order->Comments) .",
+ ord_date = " . db_escape($ord_date) . ",
+ order_type = " .db_escape($order->sales_type) . ",
+ ship_via = " . db_escape($order->ship_via) .",
+ deliver_to = " . db_escape($order->deliver_to) . ",
+ delivery_address = " . db_escape($order->delivery_address) . ",
+ contact_phone = " .db_escape($order->phone) . ",
+ freight_cost = " .db_escape($order->freight_cost) .",
+ from_stk_loc = " .db_escape($order->Location) .",
+ delivery_date = " .db_escape($del_date). ",
+ version = ".($version+1).",
+ payment_terms = " .db_escape($order->payment). ",
+ total = ". db_escape($total). ",
+ prep_amount = ". db_escape($order->prep_amount) ."
+ WHERE order_no=" . db_escape($order_no) ."
+ AND trans_type=".$order->trans_type." AND version=".$version;
+ db_query($sql, "order Cannot be Updated, this can be concurrent edition conflict");
+
+ $id_tokeep = array();
+ foreach ($order->line_items as $line) {
+ array_push($id_tokeep , $line->id);
+ }
+ $id_list = implode(', ', $id_tokeep);
+
+ $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no =" . db_escape($order_no) . " AND trans_type=".$order->trans_type;
+ $sql .= " AND id NOT IN ($id_list)";