Incorrect Journal Balance (sales invoice) when many decimals in tax and price.
[fa-stable.git] / reporting / rep206.php
index 248f1a3f5fb4a988c8a606f53f18e14d420d3cd5..9d184556b11c08d4e9bbd711c36aa9cd01b410d8 100644 (file)
@@ -148,10 +148,10 @@ function print_supplier_balances()
         $accumulate = 0;
         $rate = $convert ? get_exchange_rate_from_home_currency($myrow['curr_code'], Today()) : 1;
         $bal = get_open_balance($myrow['supplier_id'], $from);
-        $init[0] = $init[1] = 0.0;
-        $init[0] = round2(abs($bal['charges']*$rate), $dec);
-        $init[1] = round2(Abs($bal['credits']*$rate), $dec);
-        $init[2] = round2($bal['Allocated']*$rate, $dec);
+               $init = array();
+        $init[0] = round2(($bal != false ? abs($bal['charges']) : 0)*$rate, $dec);
+        $init[1] = round2(($bal != false ? abs($bal['credits']) : 0)*$rate, $dec);
+        $init[2] = round2(($bal != false ? $bal['Allocated'] : 0)*$rate, $dec);
 
         $init[3] = $init[1] - $init[0];
         $accumulate += $init[3];
@@ -165,7 +165,7 @@ function print_supplier_balances()
             $grandtotal[$i] += $init[$i];
         }
 
-        if (db_num_rows($res) == 0) 
+        if (db_num_rows($res) == 0 && !$no_zeros
         {
             $rep->TextCol(0, 2, $myrow['name']);
             $rep->AmountCol(3, 4, $init[3], $dec);
@@ -178,7 +178,7 @@ function print_supplier_balances()
         $curr_db = $curr_cr = 0;
         while ($trans=db_fetch($res))
         {
-            if ($no_zeros && floatcmp(abs($trans['TotalAmount']), $trans['Allocated']) == 0) continue;
+            //if ($no_zeros && floatcmp(abs($trans['TotalAmount']), $trans['Allocated']) == 0) continue;
             $item[0] = $item[1] = 0.0;
             if ($trans['TotalAmount'] > 0.0)
             {
@@ -211,8 +211,8 @@ function print_supplier_balances()
                if ($no_zeros && $total[3] == 0.0 && $curr_db == 0.0 && $curr_cr == 0.0) continue;
         $rep->TextCol(0, 2, $myrow['name']);
         $rep->AmountCol(3, 4, $total[3] + $curr_cr - $curr_db, $dec);
-        $rep->AmountCol(5, 6, $curr_cr, $dec);
         $rep->AmountCol(4, 5, $curr_db, $dec);
+        $rep->AmountCol(5, 6, $curr_cr, $dec);
         $rep->AmountCol(7, 8, $total[3], $dec);
         for ($i = 2; $i < 4; $i++)
         {