PHP 7.4 Bugs in some reports.
[fa-stable.git] / reporting / rep115.php
index 74ef3c0a63bcaecf89c804b77286ffb578a0d1be..0ed751930cfdc56ff19e56ce681facb8599c6c1a 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.
@@ -114,7 +114,6 @@ function print_customer_balances()
     $folk = $_POST['PARAM_4'];  // added by Faisal to filter by sales person
     $currency = $_POST['PARAM_5'];
     $no_zeros = $_POST['PARAM_6'];
-    $hide_trans = 1;
     $comments = $_POST['PARAM_7'];
     $orientation = $_POST['PARAM_8'];
     $destination = $_POST['PARAM_9'];
@@ -156,17 +155,20 @@ function print_customer_balances()
     if ($no_zeros) $nozeros = _('Yes');
     else $nozeros = _('No');
 
-    $cols = array(0, 70, 140, 180, 230, 270, 350, 445, 495, 555);
+    $cols = array(0, 100, 130, 190, 250, 320, 385, 450, 515);
+    //$cols = array(0, 70, 140, 180, 230, 270, 350, 445, 495, 555);
 
-    $headers = array(_('Name'), '', '', _('Open Balance'), '', _('Debit'), _('Credit'), '', _('Balance'));
+    $headers = array(_('Name'), '', '', _('Open Balance'), _('Debit'), _('Credit'), '', _('Balance'));
 
-    $aligns = array('left', 'left', 'left', 'right', 'left', 'right', 'right', 'right', 'right');
+    $aligns = array('left', 'left', 'left', 'right', 'right', 'right', 'right', 'right');
 
     $params =   array(  0 => $comments,
                         1 => array('text' => _('Period'), 'from' => $from,   'to' => $to),
                         2 => array('text' => _('Customer'), 'from' => $cust, 'to' => ''),
-                        3 => array('text' => _('Currency'), 'from' => $currency, 'to' => ''),
-                        4 => array('text' => _('Suppress Zeros'), 'from' => $nozeros, 'to' => ''));
+                                   3 => array('text' => _('Sales Areas'), 'from' => $sarea,            'to' => ''),
+                                   4 => array('text' => _('Sales Folk'), 'from' => $salesfolk,         'to' => ''),
+                        5 => array('text' => _('Currency'), 'from' => $currency, 'to' => ''),
+                        6 => array('text' => _('Suppress Zeros'), 'from' => $nozeros, 'to' => ''));
 
     $rep = new FrontReport(_('Customer Trial Balance'), "CustomerTB", user_pagesize(), 9, $orientation);
     if ($orientation == 'L')
@@ -214,7 +216,11 @@ function print_customer_balances()
         $accumulate = 0;
         $rate = $convert ? get_exchange_rate_from_home_currency($myrow['curr_code'], Today()) : 1;
         $bal = get_open_balance($myrow['debtor_no'], $from, $convert);
-        $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);
@@ -230,13 +236,11 @@ function print_customer_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);
-            $rep->AmountCol(8, 9, $init[3], $dec);
+            $rep->AmountCol(7, 8, $init[3], $dec);
             //$rep->Line($rep->row  - 2);
             $rep->NewLine(1);
             continue;
@@ -277,12 +281,12 @@ function print_customer_balances()
             }
             $total[3] = $total[0] - $total[1];
         }
-
+               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_db, $dec);
-        $rep->AmountCol(6, 7, $curr_cr, $dec);
-        $rep->AmountCol(8, 9, $total[3], $dec);
+        $rep->AmountCol(4, 5, $curr_db, $dec);
+        $rep->AmountCol(5, 6, $curr_cr, $dec);
+        $rep->AmountCol(7, 8, $total[3], $dec);
         //$rep->Line($rep->row  - 2);
         $rep->NewLine(1);
     }
@@ -294,9 +298,9 @@ function print_customer_balances()
     $grandtotal[3] = $grandtotal[0] - $grandtotal[1];
 
     $rep->AmountCol(3, 4, $grandtotal[3] - $tot_cur_db + $tot_cur_cr, $dec);
-    $rep->AmountCol(5, 6, $tot_cur_db, $dec);
-    $rep->AmountCol(6, 7, $tot_cur_cr, $dec);
-    $rep->AmountCol(8, 9, $grandtotal[3], $dec);
+    $rep->AmountCol(4, 5, $tot_cur_db, $dec);
+    $rep->AmountCol(5, 6, $tot_cur_cr, $dec);
+    $rep->AmountCol(7, 8, $grandtotal[3], $dec);
     $rep->Line($rep->row - 6, 1);
     $rep->NewLine();
     $rep->End();