Save/retrieve last document date.
[fa-stable.git] / sales / includes / sales_db.inc
index 8c74c9bfbe597194168cea6667c6725552f67c3d..0533babe01964d8ea8314413332c49f0c312d3a2 100644 (file)
@@ -1,5 +1,14 @@
 <?php
-
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
 include_once($path_to_root . "/includes/banking.inc");
 include_once($path_to_root . "/includes/db/inventory_db.inc");
 include_once($path_to_root . "/sales/includes/db/sales_order_db.inc");
@@ -36,14 +45,14 @@ function add_stock_move_customer($type, $stock_id, $trans_id, $location, $date_,
 // $amount is in CUSTOMER'S currency
 
 function add_gl_trans_customer($type, $type_no, $date_, $account, $dimension, $dimension2,
-       $amount, $customer_id, $err_msg="")
+       $amount, $customer_id, $err_msg="", $rate=0)
 {
        if ($err_msg == "")
                $err_msg = "The customer GL transaction could not be inserted";
 
        return add_gl_trans($type, $type_no, $date_, $account, $dimension, $dimension2, "", $amount,
                get_customer_currency($customer_id),
-               payment_person_types::customer(), $customer_id, $err_msg);
+               payment_person_types::customer(), $customer_id, $err_msg, $rate);
 }
 
 //----------------------------------------------------------------------------------------
@@ -51,7 +60,7 @@ function add_gl_trans_customer($type, $type_no, $date_, $account, $dimension, $d
 function get_price ($stock_id, $currency, $sales_type_id, $factor=null, $date=null)
 {
        if ($date == null)
-           $date = Today();
+           $date = new_doc_date();
 
        if ($factor === null) 
        {
@@ -76,7 +85,9 @@ function get_price ($stock_id, $currency, $sales_type_id, $factor=null, $date=nu
        if ($factor == 0) return false; // auto price calculations off
 
        $base_id = get_base_sales_type();
-        $home_curr = get_company_currency();
+       if ($base_id <= 0) return 0; // auto price calculations off
+       
+    $home_curr = get_company_currency();
 
     // get all prices which we can use to guess the price.
     // alternative is make up to 2 additional sql queries
@@ -104,11 +115,11 @@ function get_price ($stock_id, $currency, $sales_type_id, $factor=null, $date=nu
        {
            $price = $prices[$sales_type_id][$home_curr] / $rate;
        }
-       if (isset($prices[$base_id][$currency])) 
+       elseif (isset($prices[$base_id][$currency])) 
        {
            $price = $prices[$base_id][$currency] * $factor;
        }
-       if (isset($prices[$base_id][$home_curr])) 
+       elseif (isset($prices[$base_id][$home_curr])) 
        {
            $price = $prices[$base_id][$home_curr] * $factor / $rate;
        }