Fixed additional rounding errors posting when tax included invoice is saved.
authorJanusz Dobrowolski <janusz@frontaccouting.eu>
Fri, 19 Aug 2011 08:22:11 +0000 (10:22 +0200)
committerJanusz Dobrowolski <janusz@frontaccouting.eu>
Fri, 19 Aug 2011 08:22:11 +0000 (10:22 +0200)
taxes/tax_calc.inc

index 5d9852991038e6da43cf39ada5f7e7c5afb719c0..ea6b805dfb1f9e94e73a8aff75547ccadd929da5 100644 (file)
@@ -160,9 +160,9 @@ function get_tax_for_items($items, $prices, $shipping_cost, $tax_group, $tax_inc
                        {
                                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
+                                       if ($tax_included == 1) {
                                          $nprice = get_tax_free_price_for_item($items[$i], $prices[$i], $tax_group, $tax_included, null, $item_tax['tax_type_id']);
-                                         $ret_tax_array[$index]['Value'] += $nprice*$item_tax['rate']/100;
+                                         $ret_tax_array[$index]['Value'] += round2($prices[$i] - $nprice, $dec);
                                          $ret_tax_array[$index]['Net'] += $nprice;
                                        } else {
                                          $ret_tax_array[$index]['Value'] += ($prices[$i] * $item_tax['rate'] / 100);
@@ -195,8 +195,8 @@ function get_tax_for_items($items, $prices, $shipping_cost, $tax_group, $tax_inc
                        {
                                $index = $item_tax['tax_type_id'];
                                if ($item_tax['rate'] !== null && $ret_tax_array[$index]['rate'] !== null) {
-                                         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);
+                                         if($tax_included==1) {
+                                           $ret_tax_array[$index]['Value'] += round2($shipping_cost - $shipping_net, $dec);
                                            $ret_tax_array[$index]['Net'] += $shipping_net;
                                          } else {
                                                $ret_tax_array[$index]['Value'] += ($shipping_cost * $item_tax['rate'] / 100);