$total = $order->get_trans_total();
begin_transaction();
+ hook_db_prewrite($order, $order->trans_type);
+
if ($order->trans_type == ST_SALESORDER)
$allocs = get_payments_for($order_no, ST_SALESORDER);
+
$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) . ",
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)";
+
+ db_query($sql, "Old order Cannot be Deleted");
+
if ($loc_notification == 1)
{
include_once($path_to_root . "/inventory/includes/inventory_db.inc");
reallocate_payments($order_no, ST_SALESORDER, $ord_date, $total, $allocs);
add_audit_trail($order->trans_type, $order_no, $order->document_date, _("Updated."));
$Refs->save($order->trans_type, $order_no, $order->reference);
+
+ hook_db_postwrite($order, $order->trans_type);
commit_transaction();
if ($loc_notification == 1 && count($st_ids) > 0)
{
$sql = "SELECT sorder.*, "
."cust.name, "
."cust.curr_code, "
+ ."cust.address, "
."loc.location_name, "
."cust.discount, "
."stype.sales_type, "
."stype.id AS sales_type_id, "
."stype.tax_included, "
- ."ship.shipper_name, "
+ ."stype.factor, "
+ ."ship.shipper_name, "
."tax_group.name AS tax_group_name , "
."tax_group.id AS tax_group_id, "
."cust.tax_id,"
."sorder.prep_amount>0 as prepaid"
." FROM ".TB_PREF."sales_orders sorder
LEFT JOIN (SELECT trans_no_to, sum(amt) ord_allocs FROM ".TB_PREF."cust_allocations
- WHERE trans_type_to=".ST_SALESORDER." AND trans_no_to=".db_escape($order_no).")
+ WHERE trans_type_to=".ST_SALESORDER." AND trans_no_to=".db_escape($order_no)." GROUP BY trans_no_to)
allocs ON sorder.trans_type=".ST_SALESORDER." AND allocs.trans_no_to=sorder.order_no
LEFT JOIN (SELECT order_, sum(alloc) inv_allocs FROM ".TB_PREF."debtor_trans
- WHERE type=".ST_SALESINVOICE." AND order_=".db_escape($order_no).")
- inv ON sorder.trans_type=".ST_SALESORDER." AND inv.order_=sorder.order_no,"
+ WHERE type=".ST_SALESINVOICE." AND order_=".db_escape($order_no)." GROUP BY order_)
+ inv ON sorder.trans_type=".ST_SALESORDER." AND inv.order_=sorder.order_no
+ LEFT JOIN ".TB_PREF."shippers ship ON ship.shipper_id = sorder.ship_via,"
.TB_PREF."debtors_master cust,"
.TB_PREF."sales_types stype, "
.TB_PREF."tax_groups tax_group, "
.TB_PREF."cust_branch branch,"
- .TB_PREF."locations loc, "
- .TB_PREF."shippers ship
+ .TB_PREF."locations loc
WHERE sorder.order_type=stype.id
AND branch.branch_code = sorder.branch_code
AND branch.tax_group_id = tax_group.id
AND sorder.debtor_no = cust.debtor_no
AND loc.loc_code = sorder.from_stk_loc
- AND ship.shipper_id = sorder.ship_via
AND sorder.trans_type = " . db_escape($trans_type) ."
AND sorder.order_no = " . db_escape($order_no );
$myrow["tax_group_name"], $myrow["contact_phone"]);
$order->set_sales_type($myrow["sales_type_id"], $myrow["sales_type"],
- $myrow["tax_included"], 0); // no default price calculations on edit
+ $myrow["tax_included"], $myrow["factor"]); // no default price calculations on edit
$order->set_location($myrow["from_stk_loc"], $myrow["location_name"]);
sorder.deliver_to";
return $sql;
}
+
//--------------------------------------------------------------------------------------------------
function update_prepaid_so_line($line_id, $qty_invoiced)
{
$result = db_fetch(db_query($sql, "cannot retrieve sales invoices for sales order"));
return $result[0];
}
-?>
\ No newline at end of file