Incorrect Journal Balance (sales invoice) when many decimals in tax and price.
[fa-stable.git] / sales / includes / cart_class.inc
index 6aefabf72f7fcffb65b7ca39c162c681e5ddbae0..f7e05815c285efc2185f7a336e75d07c05ff97c5 100644 (file)
@@ -71,11 +71,11 @@ class Cart
        var $dimension_id;
        var $dimension2_id;
        var $payment;
-       var $payment_terms; // cached payment terms
+       var $payment_terms = array('cash_sale' => false, 'days_before_due' => 0); // cached payment terms
        var $credit;
        // prepayment mode:
-       var $prepaid;           // true for documents issued in prepayment mode
-       var $prep_amount;       // prepayment required for SO, invoiced amount for prepaiament invoice
+       var $prepaid=false;     // true for documents issued in prepayment mode
+       var $prep_amount=0;     // prepayment required for SO, invoiced amount for prepaiament invoice
        var $sum_paid;          // sum of all allocated prepayments both to order and related invoices
        var $alloc;             // sum of payments allocated to this document
        var $prepayments = array(); // allocation records for this document
@@ -293,11 +293,11 @@ class Cart
                {
                        if (!empty($SysPrefs->prefs['ref_no_auto_increase']))
                                $this->reference = $Refs->get_next($this->trans_type, null, array('date' => Today()));
-                       if (!is_new_reference($this->reference, $this->trans_type))     
+                       else    
                        {
                                commit_transaction();
                                return -1;
-                       }       
+                       }
                }
                if (count($this->src_docs) == 0 && ($this->trans_type == ST_SALESINVOICE || $this->trans_type == ST_CUSTDELIVERY) && !$this->is_prepaid()) {
                        // this is direct document - first add parent
@@ -565,7 +565,6 @@ class Cart
                $total = $this->get_items_total() + $this->freight_cost;
                $dec = user_price_dec();
                if (!$this->tax_included ) {
-                       $total += $this->get_shipping_tax();
                        $taxes = $this->get_taxes();
                        foreach($taxes as $tax)
                                $total += round($tax['Value'], $dec);