Sales quotation and Sales order should not require sufficient stock.
[fa-stable.git] / sales / includes / ui / sales_order_ui.inc
index 370894df2d86ff3e993039c2ef0e4d5ffd3bed23..0ace8627c9e1706db58ab691fbc2a03af5eb8fc2 100644 (file)
@@ -72,6 +72,8 @@ function add_to_order(&$order, $new_item, $new_item_qty, $price, $discount, $des
 
 function get_customer_details_to_order(&$order, $customer_id, $branch_id)
 {
+       global $SysPrefs;
+       
        $ret_error = "";
 
        $myrow = get_customer_to_order($customer_id);
@@ -116,9 +118,11 @@ function get_customer_details_to_order(&$order, $customer_id, $branch_id)
 
        $order->set_delivery($myrow["default_ship_via"], $myrow["br_name"],
                $address);
-       if ($order->trans_type == ST_SALESINVOICE || $order->trans_type == ST_SALESORDER) {
+       if ($order->trans_type == ST_SALESINVOICE) {
                $order->due_date = get_invoice_duedate($order->payment, $order->document_date);
        }
+       elseif ($order->trans_type == ST_SALESORDER)
+               $order->due_date = add_days($order->document_date, $SysPrefs->default_delivery_required_by());
        if($order->payment_terms['cash_sale']) {
                $order->set_location($order->pos["pos_location"], $order->pos["location_name"]);
        } else
@@ -164,10 +168,11 @@ function display_order_summary($title, &$order, $editable_items=false)
                $qoh_msg = '';
                if (!$editable_items || $id != $line_no)
                {
-                       if (!$SysPrefs->allow_negative_stock() && is_inventory_item($stock_item->stock_id)) {
+                       if (!$SysPrefs->allow_negative_stock() && is_inventory_item($stock_item->stock_id) && 
+                               $order->trans_type != ST_SALESORDER && $order->trans_type!=ST_SALESQUOTE) {
                                $qoh = get_qoh_on_date($stock_item->stock_id, 
-                                       $_POST['Location'], $_POST['OrderDate']);
-                               if ($stock_item->qty_dispatched > $qoh) 
+                                       $_POST['Location'], $_POST['delivery_date']);
+                               if (($stock_item->qty_dispatched -$stock_item->qty_done) > $qoh)
                                {
                                        // oops, we don't have enough of one of the component items
                                        start_row("class='stockmankobg'");
@@ -410,7 +415,7 @@ function display_order_header(&$order, $editable, $date_text)
        }
 
        if($editable) {
-               $str = sales_types_list_row(_("Price List"), 'sales_type', null, true);
+               $str = sales_types_list_row(_("Price List:"), 'sales_type', null, true);
        } else {
                label_row(_("Price List:"), $order->sales_type_name);
        }
@@ -588,6 +593,7 @@ function display_delivery_details(&$order)
                label_row(_("Cash account:"), $order->pos['bank_account_name']);
                textarea_row(_("Comments:"), "Comments", $order->Comments, 31, 5);
                end_table();
+               hidden('delivery_date', $order->due_date);
        } else {
                if ($order->trans_type==ST_SALESINVOICE)
                {