PHP 7.4 Bugs in some reports.
[fa-stable.git] / reporting / rep206.php
index dc0fab32b3f0834e045de7ea970d708954e4fce9..79f4f1f3b40338eeac0db6085069661037056eb7 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**********************************************************************
-    Copyright (C) Boxygen, LLC, and FrontAccounting Team.
+    Copyright (C) FrontAccounting Team.
     Released under the terms of the GNU General Public License, GPL,
     as published by the Free Software Foundation, either version 3
     of the License, or (at your option) any later version.
@@ -148,7 +148,11 @@ 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 = array();
+               $bal['charges'] = isset($bal['charges']) ? $bal['charges'] : 0;
+               $bal['credits'] = isset($bal['credits']) ? $bal['credits'] : 0;
+               $bal['Allocated'] = isset($bal['Allocated']) ? $bal['Allocated'] : 0;
+               $bal['OutStanding'] = isset($bal['OutStanding']) ? $bal['OutStanding'] : 0;
         $init[0] = round2(abs($bal['charges']*$rate), $dec);
         $init[1] = round2(Abs($bal['credits']*$rate), $dec);
         $init[2] = round2($bal['Allocated']*$rate, $dec);
@@ -165,9 +169,7 @@ function print_supplier_balances()
             $grandtotal[$i] += $init[$i];
         }
 
-        if ($no_zeros && $init[3] == 0) continue;
-
-        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);
@@ -180,7 +182,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)
             {
@@ -210,10 +212,11 @@ function print_supplier_balances()
             }
             $total[3] = $total[1] - $total[0];
         }
+               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++)
         {