Fixed bug in tax calculations for some quick entries using multiply tax types.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Tue, 11 Aug 2009 17:13:08 +0000 (17:13 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Tue, 11 Aug 2009 17:13:08 +0000 (17:13 +0000)
CHANGELOG.txt
includes/ui/ui_view.inc

index 6e589797e38f90cbf3e22c5526480ccd6bc1936f..a92c26921a178ffda494ee70f6343ef7db7076b1 100644 (file)
@@ -19,6 +19,10 @@ Legend:
 ! -> Note
 $ -> Affected files
 
+08-Aug-2009 Janusz Dobrowolski
+# Fixed bug in calculation of taxes for quick entries using multiply tax rates
+$ /includes/ui/ui_view.inc
+
 08-Aug-2009 Janusz Dobrowolski
 # [0000152] Config_db.php changed after failed company database creation
 $ /install/save.php
index df4a2bddbb98fe668cf63f1fe6fa19fc3995dbcf..86062acba8b083cd9d476692443bc57a6fe38620 100644 (file)
@@ -598,13 +598,16 @@ function display_quick_entries(&$cart, $id, $base, $type, $descr='')
                                case "t-": // ditto & reduce base amount
                                        $taxes = get_taxes_for_item_tax($qe_line['dest_id']);
                                        $tax_total = 0;
+                                       $totrate = 0;
+                                       // find total tax 
+                                       if (substr($qe_line['action'],0,1) != 'T') {
+                                               foreach ($taxes as $index => $item_tax) {
+                                                       $totrate += $item_tax['rate'];
+                                               }
+                                       }
+                                       $taxbase = $base/($totrate+100);
                                        foreach ($taxes as $index => $item_tax) {
-                                               if(substr($qe_line['action'],0,1) != 'T')
-                                                       $tax = round2($base * $item_tax['rate'] 
-                                                               / ($item_tax['rate'] + 100),  user_price_dec());
-                                               else
-                                                       $tax = round2($base * $item_tax['rate'] / 100,  user_price_dec());
-
+                                               $tax = round2($taxbase * $item_tax['rate'],  user_price_dec());
                                                $gl_code = ($type == QE_DEPOSIT || ($type == QE_JOURNAL && $base < 0)) 
                                                        ? $item_tax['sales_gl_code'] : $item_tax['purchasing_gl_code'];
                                                $tax_total += $tax;