global $loc_notification, $path_to_root, $Refs;
begin_transaction();
-
+ hook_db_prewrite($order, $order->trans_type);
$order_no = get_next_trans_no($order->trans_type);
$del_date = date2sql($order->due_date);
$order_type = 0; // this is default on new order
+ $total = $order->get_trans_total();
$sql = "INSERT INTO ".TB_PREF."sales_orders (order_no, type, debtor_no, trans_type, branch_code, customer_ref, reference, comments, ord_date,
order_type, ship_via, deliver_to, delivery_address, contact_phone,
- freight_cost, from_stk_loc, delivery_date, payment_terms)
+ freight_cost, from_stk_loc, delivery_date, payment_terms, total)
VALUES (" .db_escape($order_no) . "," .db_escape($order_type) . "," . db_escape($order->customer_id) .
", " .db_escape($order->trans_type) . "," .db_escape($order->Branch) . ", ".
db_escape($order->cust_ref) .",".
db_escape($order->freight_cost) .", " .
db_escape($order->Location) .", " .
db_escape($del_date) . "," .
- db_escape($order->payment) . ")";
+ db_escape($order->payment) . "," .
+ db_escape($total). ")";
db_query($sql, "order Cannot be Added");
add_audit_trail($order->trans_type, $order_no, $order->document_date);
$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)
function delete_sales_order($order_no, $trans_type)
{
begin_transaction();
+ hook_db_prevoid($trans_type, $order_no);
$sql = "DELETE FROM ".TB_PREF."sales_orders WHERE order_no=" . db_escape($order_no)
. " AND trans_type=".db_escape($trans_type);
function update_sales_order_version($order)
{
foreach ($order as $so_num => $so_ver) {
- $sql= 'UPDATE '.TB_PREF.'sales_orders SET version=version+1 WHERE order_no='. $so_num.
+ $sql= 'UPDATE '.TB_PREF.'sales_orders SET version=version+1 WHERE order_no='. db_escape($so_num).
' AND version='.$so_ver . " AND trans_type=30";
db_query($sql, 'Concurrent editing conflict while sales order update');
}
$ord_date = date2sql($order->document_date);
$order_no = key($order->trans_no);
$version= current($order->trans_no);
+ $total = $order->get_trans_total();
begin_transaction();
from_stk_loc = " .db_escape($order->Location) .",
delivery_date = " .db_escape($del_date). ",
version = ".($version+1).",
- payment_terms = " .db_escape($order->payment). "
- WHERE order_no=" . $order_no ."
+ payment_terms = " .db_escape($order->payment). ",
+ total = ". db_escape($total) ."
+ 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");
- $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no =" . $order_no . " AND trans_type=".$order->trans_type;
+ $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no =" . db_escape($order_no) . " AND trans_type=".$order->trans_type;
db_query($sql, "Old order Cannot be Deleted");
} /* inserted line items into sales order details */
add_audit_trail($order->trans_type, $order_no, $order->document_date, _("Updated."));
- $Refs->delete($order->trans_type, $order_no);
$Refs->save($order->trans_type, $order_no, $order->reference);
commit_transaction();
if ($loc_notification == 1 && count($st_ids) > 0)
$num = db_num_rows($result);
if ($num > 1)
{
- display_db_error("FATAL : sales order query returned a duplicate - " . db_num_rows($result), $sql, true);
+ display_warning("You have duplicate document in database: (type:$trans_type, number:$order_no).");
}
else if ($num == 1)
{
return db_fetch($result);
}
else
- display_db_error("FATAL : sales order return nothing - " . db_num_rows($result), $sql, true);
+ display_warning("You have missing or invalid sales document in database (type:$trans_type, number:$order_no).");
}
function read_sales_order($order_no, &$order, $trans_type)
{
+
$myrow = get_sales_order_header($order_no, $trans_type);
$order->trans_type = $myrow['trans_type'];
{
$sql = "SELECT SUM(qty_sent) FROM ".TB_PREF.
"sales_order_details WHERE order_no=".db_escape($order_no)
- ." AND trans_type=".ST_SALESORDER."";
+ ." AND trans_type=".ST_SALESORDER;
$result = db_query($sql, "could not query for sales order usage");
// set the quantity of each item to the already sent quantity. this will mark item as closed.
$sql = "UPDATE ".TB_PREF."sales_order_details
SET quantity = qty_sent WHERE order_no = ".db_escape($order_no)
- ." AND trans_type=".ST_SALESORDER."";
+ ." AND trans_type=".ST_SALESORDER;
db_query($sql, "The sales order detail record could not be updated");
}
function get_customer_to_order($customer_id) {
// Now check to ensure this account is not on hold */
- $sql = "SELECT ".TB_PREF."debtors_master.name, "
- .TB_PREF."debtors_master.address, "
- .TB_PREF."credit_status.dissallow_invoices, "
- .TB_PREF."debtors_master.sales_type AS salestype, "
- .TB_PREF."debtors_master.dimension_id, "
- .TB_PREF."debtors_master.dimension2_id, "
- .TB_PREF."sales_types.sales_type, "
- .TB_PREF."sales_types.tax_included, "
- .TB_PREF."sales_types.factor, "
- .TB_PREF."debtors_master.curr_code, "
- .TB_PREF."debtors_master.discount,"
- .TB_PREF."debtors_master.payment_terms,"
- .TB_PREF."debtors_master.pymt_discount
- FROM ".TB_PREF."debtors_master, "
+ $sql = "SELECT cust.name,
+ cust.address, "
+ .TB_PREF."credit_status.dissallow_invoices,
+ cust.sales_type AS salestype,
+ cust.dimension_id,
+ cust.dimension2_id,
+ stype.sales_type,
+ stype.tax_included,
+ stype.factor,
+ cust.curr_code,
+ cust.discount,
+ cust.payment_terms,
+ cust.pymt_discount,
+ cust.credit_limit - Sum(IFNULL(IF(trans.type=11 OR trans.type=12 OR trans.type=2,
+ -1, 1) * (ov_amount + ov_gst + ov_freight + ov_freight_tax + ov_discount),0)) as cur_credit
+ FROM ".TB_PREF."debtors_master cust
+ LEFT JOIN ".TB_PREF."debtor_trans trans ON trans.type!=".ST_CUSTDELIVERY." AND trans.debtor_no = cust.debtor_no,"
.TB_PREF."credit_status, "
- .TB_PREF."sales_types
- WHERE ".TB_PREF."debtors_master.sales_type="
- .TB_PREF."sales_types.id
- AND ".TB_PREF."debtors_master.credit_status=".TB_PREF."credit_status.id
- AND ".TB_PREF."debtors_master.debtor_no = ".db_escape($customer_id);
+ .TB_PREF."sales_types stype
+ WHERE cust.sales_type=stype.id
+ AND cust.credit_status=".TB_PREF."credit_status.id
+ AND cust.debtor_no = ".db_escape($customer_id)
+ ." GROUP by cust.debtor_no";
$result =db_query($sql,"Customer Record Retreive");
return db_fetch($result);
.TB_PREF."cust_branch as branch
WHERE sorder.order_no = line.order_no
AND sorder.trans_type = line.trans_type
- AND sorder.trans_type = $trans_type
+ AND sorder.trans_type = ".db_escape($trans_type)."
AND sorder.debtor_no = debtor.debtor_no
AND sorder.branch_code = branch.branch_code
AND debtor.debtor_no = branch.debtor_no";