X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fincludes%2Fdb%2Fsales_order_db.inc;h=c918890b073f10970cf7ac737e6e7b891ea6895b;hb=b8ca787d4997e98d29af963f9e23534796381c44;hp=95f2ead3b740f030f28a842e492c709317ac33eb;hpb=832403f85f84fc91734eca085a32db6a509ffd3d;p=fa-stable.git diff --git a/sales/includes/db/sales_order_db.inc b/sales/includes/db/sales_order_db.inc index 95f2ead3..c918890b 100644 --- a/sales/includes/db/sales_order_db.inc +++ b/sales/includes/db/sales_order_db.inc @@ -72,7 +72,7 @@ function add_sales_order(&$order) } /* inserted line items into sales order details */ add_audit_trail($order->trans_type, $order_no, $order->document_date); - $Refs->save($order->trans_type, $order_no, $order->reference); + $Refs->save($order->trans_type, $order_no, $order->reference, null, $order->fixed_asset); hook_db_postwrite($order, $order->trans_type); commit_transaction(); @@ -130,7 +130,7 @@ function update_sales_order($order) hook_db_prewrite($order, $order->trans_type); if ($order->trans_type == ST_SALESORDER) - $allocs = get_payments_for($order_no, 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) . ", @@ -207,9 +207,9 @@ function update_sales_order($order) } /* inserted line items into sales order details */ if ($order->trans_type == ST_SALESORDER) - reallocate_payments($order_no, ST_SALESORDER, $ord_date, $total, $allocs); + reallocate_payments($order_no, ST_SALESORDER, $ord_date, $total, $allocs, $order->customer_id); add_audit_trail($order->trans_type, $order_no, $order->document_date, _("Updated.")); - $Refs->save($order->trans_type, $order_no, $order->reference); + $Refs->save($order->trans_type, $order_no, $order->reference, null, $order->fixed_asset); hook_db_postwrite($order, $order->trans_type); commit_transaction(); @@ -285,10 +285,10 @@ function get_sales_order_details($order_no, $trans_type) { qty_sent as qty_done, item.units, item.mb_flag, - item.material_cost + item.labour_cost + item.overhead_cost AS standard_cost + item.material_cost FROM ".TB_PREF."sales_order_details line," .TB_PREF."stock_master item - WHERE line.stk_code = line.stock_id + WHERE line.stk_code = item.stock_id AND order_no =".db_escape($order_no) ." AND trans_type = ".db_escape($trans_type) . " ORDER BY id"; @@ -330,7 +330,7 @@ function read_sales_order($order_no, &$order, $trans_type) $order->alloc = $myrow['alloc']; $order->sum_paid = $myrow["sum_paid"]; // sum of all prepayments to so (also invoiced) $order->prep_amount = $myrow["prep_amount"]; - $order->prepayments = get_payments_for($order_no, $myrow['trans_type']); + $order->prepayments = get_payments_for($order_no, $myrow['trans_type'], $myrow['debtor_no']); $result = get_sales_order_details($order_no, $order->trans_type); if (db_num_rows($result) > 0) @@ -340,7 +340,7 @@ function read_sales_order($order_no, &$order, $trans_type) { $order->add_to_cart($line_no,$myrow["stk_code"],$myrow["quantity"], $myrow["unit_price"], $myrow["discount_percent"], - $myrow["qty_done"], $myrow["standard_cost"], $myrow["description"], $myrow["id"] ); + $myrow["qty_done"], $myrow["material_cost"], $myrow["description"], $myrow["id"] ); $line_no++; } } @@ -603,3 +603,42 @@ function sales_order_set_template($id, $status) $sql = "UPDATE ".TB_PREF."sales_orders SET type = ".db_escape($status)." WHERE order_no=".db_escape($id); db_query($sql, "Can't change sales order type"); } + +/* + Check whether sales order is issued in prepaid mode and already opened +*/ + +function is_prepaid_order_open($order_no) +{ + $sql = "SELECT count(*) + FROM ".TB_PREF."sales_orders o, + ((SELECT trans_no_to FROM ".TB_PREF."cust_allocations + WHERE trans_type_to=".ST_SALESORDER." AND trans_no_to=".db_escape($order_no).") + UNION + (SELECT order_ FROM ".TB_PREF."debtor_trans + WHERE type=".ST_SALESINVOICE." AND order_=".db_escape($order_no).")) related + WHERE + o.prep_amount>0 + AND o.trans_type = ".ST_SALESORDER." + AND o.order_no = " . db_escape($order_no); + + $result = db_fetch(db_query($sql, "cannot check prepaid order open")); + + return $result[0]; +} + +function last_sales_order_detail($order, $field) +{ + $sql = "SELECT $field + FROM ".TB_PREF."sales_order_details d + WHERE order_no = + (SELECT order_no FROM ".TB_PREF."sales_orders o + WHERE debtor_no=" . db_escape($order->customer_id) . " + ORDER BY order_no DESC LIMIT 1) + ORDER BY d.id DESC LIMIT 1"; + + $last_query=db_query($sql, "Retreive last order detail"); + $row = db_fetch_row($last_query); + return $row[0]; +} +