Bug 0001669: get_exchange_rate not raising error
[fa-stable.git] / sales / sales_order_entry.php
index 52cfbd9d526fead1b14a309cb45f6cc8860d8cef..a49ff9af4f9b9b1647d4ab1515d73293708f88e0 100644 (file)
@@ -223,6 +223,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();
@@ -248,22 +250,19 @@ function copy_to_cart()
                if ($newpayment) {
                        $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'];
                }
        } 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
@@ -405,12 +404,10 @@ function can_process() {
                set_focus('ref');
                return false;
        }
-       if ($_SESSION['Items']->trans_no==0 && !is_new_reference($_POST['ref'], 
-               $_SESSION['Items']->trans_type)) {
-               display_error(_("The entered reference is already in use."));
-               set_focus('ref');
-               return false;
-       } elseif ($_SESSION['Items']->get_items_total() < 0) {
+       if (!db_has_currency_rates($_SESSION['Items']->customer_currency, $_POST['OrderDate']))
+               return false;
+       
+       if ($_SESSION['Items']->get_items_total() < 0) {
                display_error("Invoice total amount cannot be less than zero.");
                return false;
        }
@@ -419,37 +416,47 @@ 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');
-               display_footer_exit();
-       }
-       $trans_no = key($_SESSION['Items']->trans_no);
-       $trans_type = $_SESSION['Items']->trans_type;
-       new_doc_date($_SESSION['Items']->document_date);
-       processing_end();
-       if ($modified) {
-               if ($trans_type == ST_SALESQUOTE)
-                       meta_forward($_SERVER['PHP_SELF'], "UpdatedQU=$trans_no");
-               else    
-                       meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$trans_no");
-       } elseif ($trans_type == ST_SALESORDER) {
-               meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no");
-       } elseif ($trans_type == ST_SALESQUOTE) {
-               meta_forward($_SERVER['PHP_SELF'], "AddedQU=$trans_no");
-       } elseif ($trans_type == ST_SALESINVOICE) {
-               meta_forward($_SERVER['PHP_SELF'], "AddedDI=$trans_no&Type=$so_type");
-       } else {
-               meta_forward($_SERVER['PHP_SELF'], "AddedDN=$trans_no&Type=$so_type");
-       }
-}
 
-if (isset($_POST['update'])) {
-       $Ajax->activate('items_table');
+       $ret = $_SESSION['Items']->write(1);
+       if ($ret == -1)
+       {
+               display_error(_("The entered reference is already in use."));
+               set_focus('ref');
+       }
+       else
+       {
+               if (count($messages)) { // abort on failure or error messages are lost
+                       $Ajax->activate('_page_body');
+                       display_footer_exit();
+               }
+               $trans_no = key($_SESSION['Items']->trans_no);
+               $trans_type = $_SESSION['Items']->trans_type;
+               new_doc_date($_SESSION['Items']->document_date);
+               processing_end();
+               if ($modified) {
+                       if ($trans_type == ST_SALESQUOTE)
+                               meta_forward($_SERVER['PHP_SELF'], "UpdatedQU=$trans_no");
+                       else    
+                               meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$trans_no");
+               } elseif ($trans_type == ST_SALESORDER) {
+                       meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no");
+               } elseif ($trans_type == ST_SALESQUOTE) {
+                       meta_forward($_SERVER['PHP_SELF'], "AddedQU=$trans_no");
+               } elseif ($trans_type == ST_SALESINVOICE) {
+                       meta_forward($_SERVER['PHP_SELF'], "AddedDI=$trans_no&Type=$so_type");
+               } else {
+                       meta_forward($_SERVER['PHP_SELF'], "AddedDN=$trans_no&Type=$so_type");
+               }
+       }       
 }
 
 //--------------------------------------------------------------------------------