Additional fixes in tax display/reporting
authorJanusz Dobrowolski <janusz@frontaccouting.eu>
Tue, 12 Apr 2011 22:47:37 +0000 (00:47 +0200)
committerJanusz Dobrowolski <janusz@frontaccouting.eu>
Tue, 12 Apr 2011 22:47:37 +0000 (00:47 +0200)
includes/ui/ui_view.inc
sales/includes/cart_class.inc
sales/sales_order_entry.php
taxes/tax_calc.inc

index 199f44fd6f3c7c7c7af99add2f96ada8e3154dba..0fa04330a7478483bf9eb5e207f25562d2da6b80 100644 (file)
@@ -391,6 +391,9 @@ function display_customer_trans_tax_details($tax_items, $columns)
        $first = true;
     while ($tax_item = db_fetch($tax_items))
     {
+       if (!$tax_item['amount'])
+               continue;
+
        $tax = number_format2($tax_item['amount'],user_price_dec());
                if (isset($suppress_tax_rates) && $suppress_tax_rates == 1)
                        $tax_type_name = $tax_item['tax_type_name'];
@@ -421,6 +424,9 @@ function display_supp_trans_tax_details($tax_items, $columns)
 {
     while ($tax_item = db_fetch($tax_items))
     {
+       if (!$tax_item['amount'])
+               continue;
+
        $tax = number_format2(abs($tax_item['amount']),user_price_dec());
        if ($tax_item['included_in_price'])
                label_row(_("Included") . " " . $tax_item['tax_type_name'] . " (" . $tax_item['rate'] . "%) "
@@ -439,7 +445,7 @@ function display_edit_tax_items($taxes, $columns, $tax_included, $leftspan=0)
 
     foreach ($taxes as $taxitem)
     {
-       if (isset($taxitem['rate'])) {
+       if ($taxitem['Value'] != 0) {
                if ($tax_included)
                {
                        label_row(_("Included") . " " . $taxitem['tax_type_name']
index f476088e023bf23eaf1087751980fbee3c3d334b..79a90ad7114a4e7150d5cc24624f98d2dcc0e329 100644 (file)
@@ -485,7 +485,7 @@ class cart
                if ($tax_items != null) {
                        foreach ($tax_items as $item_tax) {
                                $index = $item_tax['tax_type_id'];
-                               if (isset($this->tax_group_array[$index])) {
+                               if (isset($this->tax_group_array[$index]['rate'])) {
                                        $tax_rate += $item_tax['rate'];
                                }
                        }
index 52cfbd9d526fead1b14a309cb45f6cc8860d8cef..4d86b18dd327d06216524590c53b6cf3deee11ef 100644 (file)
@@ -248,7 +248,6 @@ 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'];
@@ -257,13 +256,13 @@ function copy_to_cart()
        } 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->freight_cost = input_num('freight_cost');
        if (isset($_POST['email']))
                $cart->email =$_POST['email'];
        else
@@ -419,6 +418,11 @@ 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);
@@ -448,10 +452,6 @@ if (isset($_POST['ProcessOrder']) && can_process()) {
        }
 }
 
-if (isset($_POST['update'])) {
-       $Ajax->activate('items_table');
-}
-
 //--------------------------------------------------------------------------------
 
 function check_item_data()
index 22fc35f3271a2b36b8525fad691a5fcf1b302cba..7d124d7dbf5a0712d4b18095a8fbdc824674a958 100644 (file)
@@ -154,12 +154,11 @@ function get_tax_for_items($items, $prices, $shipping_cost, $tax_group, $tax_inc
        for ($i = 0; $i < count($items); $i++)
        {
                $item_taxes = get_taxes_for_item($items[$i], $ret_tax_array);
-
                if ($item_taxes != null) 
                {
                        foreach ($item_taxes as $item_tax) 
                        {
-                               if ($item_tax['rate'] != null) {
+                               if ($item_tax['rate'] !== null) {
                                        $index = $item_tax['tax_type_id'];
                                        if($tax_included==1) {// 2008-11-26 Joe Hunt Taxes are stored without roundings
                                          $nprice = get_tax_free_price_for_item($items[$i], $prices[$i], $tax_group, $tax_included, null, $item_tax['tax_type_id']);
@@ -194,17 +193,16 @@ function get_tax_for_items($items, $prices, $shipping_cost, $tax_group, $tax_inc
                        }
                        foreach ($item_taxes as $item_tax) 
                        {
-                               if ($item_tax['rate'] != null) {
+                               if ($item_tax['rate'] !== null) {
                                        $index = $item_tax['tax_type_id'];
-                                       if (isset($item_tax[$index]['rate'])) { // use customer tax group on shipment 
+                                       $rate = isset($ret_tax_array[$index]['rate']) ? $item_tax['rate'] : 0; // use customer tax group on shipment 
                                          if($tax_included==1) {// 2008-11-26 Joe Hunt Taxes are stored without roundings
-                                               $ret_tax_array[$index]['Value'] += ($shipping_net * $item_tax['rate'] / 100);
-                                           $ret_tax_array[$index]['Net'] += $shipping_net;
+                                               $ret_tax_array[$index]['Value'] += ($shipping_net * $rate / 100);
+                                       $ret_tax_array[$index]['Net'] += $shipping_net;
                                          } else {
-                                               $ret_tax_array[$index]['Value'] += ($shipping_cost * $item_tax['rate'] / 100);
-                                           $ret_tax_array[$index]['Net'] += $shipping_cost;
-                                        }
-                                       }
+                                               $ret_tax_array[$index]['Value'] += ($shipping_cost * $rate / 100);
+                                       $ret_tax_array[$index]['Net'] += $shipping_cost;
+                                         }
                                }
                        }
                }