Changed hardcoded trans days in inquiries (30) to be a user preference.
[fa-stable.git] / sales / sales_order_entry.php
index 856c5a235c1c457a0835f2341de4209a1a146bef..25d804fd5bf572ef14d0cdb3e779ff2e62545cd0 100644 (file)
@@ -87,6 +87,7 @@ if (isset($_GET['NewDelivery']) && is_numeric($_GET['NewDelivery'])) {
 }
 
 page($_SESSION['page_title'], false, false, "", $js);
+
 //-----------------------------------------------------------------------------
 
 if (list_updated('branch_id')) {
@@ -223,6 +224,8 @@ if (isset($_GET['AddedID'])) {
                submenu_option(_("Enter a &New Direct Invoice"),
                        "/sales/sales_order_entry.php?NewInvoice=0");
 
+       submenu_option(_("Add an Attachment"), "/admin/attachments.php?filterType=".ST_SALESINVOICE."&trans_no=$invoice");
+
        display_footer_exit();
 } else
        check_edit_conflicts();
@@ -244,24 +247,23 @@ function copy_to_cart()
                $cart->payment_terms = get_payment_terms($_POST['payment']);
                $newpayment = true;
        }
-       if ($newpayment && $cart->payment_terms['cash_sale']) {
-               $cart->due_date = $cart->document_date;
-               $cart->phone = $cart->cust_ref = $cart->delivery_address = '';
-               $cart->freight_cost = input_num('freight_cost');
-               $cart->ship_via = 1;
-               $cart->deliver_to = '';
-               $cart->Location = $cart->pos['pos_location'];
-               $cart->location_name = $cart->pos['location_name'];
+       if ($cart->payment_terms['cash_sale']) {
+               if ($newpayment) {
+                       $cart->due_date = $cart->document_date;
+                       $cart->phone = $cart->cust_ref = $cart->delivery_address = '';
+                       $cart->ship_via = 1;
+                       $cart->deliver_to = '';
+               }
        } else {
                $cart->due_date = $_POST['delivery_date'];
                $cart->cust_ref = $_POST['cust_ref'];
-               $cart->freight_cost = input_num('freight_cost');
                $cart->deliver_to = $_POST['deliver_to'];
                $cart->delivery_address = $_POST['delivery_address'];
                $cart->phone = $_POST['phone'];
                $cart->ship_via = $_POST['ship_via'];
-               $cart->Location = $_POST['Location'];
        }
+       $cart->Location = $_POST['Location'];
+       $cart->freight_cost = input_num('freight_cost');
        if (isset($_POST['email']))
                $cart->email =$_POST['email'];
        else
@@ -273,7 +275,7 @@ function copy_to_cart()
        if ($cart->trans_type!=ST_SALESORDER && $cart->trans_type!=ST_SALESQUOTE) { // 2008-11-12 Joe Hunt
                $cart->dimension_id = $_POST['dimension_id'];
                $cart->dimension2_id = $_POST['dimension2_id'];
-       }       
+       }
 }
 
 //-----------------------------------------------------------------------------
@@ -341,7 +343,7 @@ function can_process() {
                return false;
        }
        if ($_SESSION['Items']->trans_type!=ST_SALESORDER && $_SESSION['Items']->trans_type!=ST_SALESQUOTE && !is_date_in_fiscalyear($_POST['OrderDate'])) {
-               display_error(_("The entered date is not in fiscal year"));
+               display_error(_("The entered date is out of fiscal year or is closed for further data entry."));
                set_focus('OrderDate');
                return false;
        }
@@ -417,10 +419,16 @@ function can_process() {
 
 //-----------------------------------------------------------------------------
 
+if (isset($_POST['update'])) {
+       copy_to_cart();
+       $Ajax->activate('items_table');
+}
+
 if (isset($_POST['ProcessOrder']) && can_process()) {
        copy_to_cart();
        $modified = ($_SESSION['Items']->trans_no != 0);
        $so_type = $_SESSION['Items']->so_type;
+       
        $_SESSION['Items']->write(1);
        if (count($messages)) { // abort on failure or error messages are lost
                $Ajax->activate('_page_body');
@@ -446,10 +454,6 @@ if (isset($_POST['ProcessOrder']) && can_process()) {
        }
 }
 
-if (isset($_POST['update'])) {
-       $Ajax->activate('items_table');
-}
-
 //--------------------------------------------------------------------------------
 
 function check_item_data()
@@ -491,6 +495,22 @@ function check_item_data()
                }
                return true;
        }
+       $cost_home = get_standard_cost(get_post('stock_id')); // Added 2011-03-27 Joe Hunt
+       $cost = $cost_home / get_exchange_rate_from_home_currency($_SESSION['Items']->customer_currency, $_SESSION['Items']->document_date);
+       if (input_num('price') < $cost)
+       {
+               $dec = user_price_dec();
+               $curr = $_SESSION['Items']->customer_currency;
+               $price = number_format2(input_num('price'), $dec);
+               if ($cost_home == $cost)
+                       $std_cost = number_format2($cost_home, $dec);
+               else
+               {
+                       $price = $curr . " " . $price;
+                       $std_cost = $curr . " " . number_format2($cost, $dec);
+               }
+               display_warning(sprintf(_("Price %s is below Standard Cost %s"), $price, $std_cost));
+       }       
        return true;
 }