Bug 5685: Bank Statement w/Reconcile report includes gl_trans values that are "0...
[fa-stable.git] / reporting / rep601.php
index 505ac4d38408d94d98532aeb63dffbbeff4c681e..305ef97a4ffd39e73c32ad73f76952e4bbb0fcbe 100644 (file)
@@ -63,6 +63,7 @@ function print_bank_transactions()
        $comments = $_POST['PARAM_4'];
        $orientation = $_POST['PARAM_5'];
        $destination = $_POST['PARAM_6'];
+
        if ($destination)
                include_once($path_to_root . "/reporting/includes/excel_report.inc");
        else
@@ -72,104 +73,111 @@ function print_bank_transactions()
        $rep = new FrontReport(_('Bank Statement'), "BankStatement", user_pagesize(), 9, $orientation);
        $dec = user_price_dec();
 
-       $cols = array(0, 90, 110, 170, 225, 350, 400, 460, 520);
+       $cols = array(0, 90, 120, 170, 225, 350, 400, 460, 520);
 
        $aligns = array('left', 'left', 'left', 'left', 'left', 'right', 'right', 'right');
 
        $headers = array(_('Type'),     _('#'), _('Reference'), _('Date'), _('Person/Item'),
                _('Debit'),     _('Credit'), _('Balance'));
 
-       $account = get_bank_account($acc);
-       $act = $account['bank_account_name']." - ".$account['bank_curr_code']." - ".$account['bank_account_number'];
-       $params =   array(      0 => $comments,
-           1 => array('text' => _('Period'), 'from' => $from, 'to' => $to),
-           2 => array('text' => _('Bank Account'),'from' => $act,'to' => ''));
+       if ($orientation == 'L')
+               recalculate_cols($cols);
+       $sql = "SELECT id, bank_account_name, bank_curr_code, bank_account_number FROM ".TB_PREF."bank_accounts";
+       if ($acc != ALL_TEXT)
+               $sql .= " WHERE id = $acc";
+       $result = db_query($sql, "could not retreive bank accounts");
+       while ($account=db_fetch($result))
+       {
+               $act = $account['bank_account_name']." - ".$account['bank_curr_code']." - ".$account['bank_account_number'];
+               $params =   array(      0 => $comments,
+                       1 => array('text' => _('Period'), 'from' => $from, 'to' => $to),
+                       2 => array('text' => _('Bank Account'),'from' => $act,'to' => ''));
 
-    if ($orientation == 'L')
-       recalculate_cols($cols);
-       $rep->Font();
-       $rep->Info($params, $cols, $headers, $aligns);
-       $rep->NewPage();
+               $rep->Font();
+               $rep->pageNumber = 0;
+               $rep->Info($params, $cols, $headers, $aligns);
+               $rep->NewPage();
 
 
-       $prev_balance = get_bank_balance_to($from, $account["id"]);
+               $prev_balance = get_bank_balance_to($from, $account["id"]);
 
-       $trans = get_bank_transactions($from, $to, $account['id']);
+               $trans = get_bank_transactions($from, $to, $account['id']);
 
-       $rows = db_num_rows($trans);
-       if ($prev_balance != 0.0 || $rows != 0)
-       {
-               $rep->Font('bold');
-               $rep->TextCol(0, 3,     $act);
-               $rep->TextCol(3, 5, _('Opening Balance'));
-               if ($prev_balance > 0.0)
-                       $rep->AmountCol(5, 6, abs($prev_balance), $dec);
-               else
-                       $rep->AmountCol(6, 7, abs($prev_balance), $dec);
-               $rep->Font();
-               $total = $prev_balance;
-               $rep->NewLine(2);
-               $total_debit = $total_credit = 0;
-               if ($rows > 0)
+               $rows = db_num_rows($trans);
+               if ($prev_balance != 0.0 || $rows != 0)
                {
-                       // Keep a running total as we loop through
-                       // the transactions.
-                       
-                       while ($myrow=db_fetch($trans))
+                       $rep->Font('bold');
+                       $rep->TextCol(0, 3,     $act);
+                       $rep->TextCol(3, 5, _('Opening Balance'));
+                       if ($prev_balance > 0.0)
+                               $rep->AmountCol(5, 6, abs($prev_balance), $dec);
+                       else
+                               $rep->AmountCol(6, 7, abs($prev_balance), $dec);
+                       $rep->Font();
+                       $total = $prev_balance;
+                       $rep->NewLine(2);
+                       $total_debit = $total_credit = 0;
+                       if ($rows > 0)
                        {
-                               if ($zero == 0 && $myrow['amount'] == 0.0)
-                                       continue;
-                               $total += $myrow['amount'];
-
-                               $rep->TextCol(0, 1, $systypes_array[$myrow["type"]]);
-                               $rep->TextCol(1, 2,     $myrow['trans_no']);
-                               $rep->TextCol(2, 3,     $myrow['ref']);
-                               $rep->DateCol(3, 4,     $myrow["trans_date"], true);
-                               $rep->TextCol(4, 5,     get_counterparty_name($myrow["type"], $myrow["trans_no"], false));
-                               if ($myrow['amount'] > 0.0)
+                               // Keep a running total as we loop through
+                               // the transactions.
+                               
+                               while ($myrow=db_fetch($trans))
                                {
-                                       $rep->AmountCol(5, 6, abs($myrow['amount']), $dec);
-                                       $total_debit += abs($myrow['amount']);
+                                       if ($zero == 0 && $myrow['amount'] == 0.0)
+                                               continue;
+                                       $total += $myrow['amount'];
+
+                                       $rep->TextCol(0, 1, $systypes_array[$myrow["type"]]);
+                                       $rep->TextCol(1, 2,     $myrow['trans_no']);
+                                       $rep->TextCol(2, 3,     $myrow['ref']);
+                                       $rep->DateCol(3, 4,     $myrow["trans_date"], true);
+                                       $rep->TextCol(4, 5,     payment_person_name($myrow["person_type_id"],$myrow["person_id"], false));
+                                       if ($myrow['amount'] > 0.0)
+                                       {
+                                               $rep->AmountCol(5, 6, abs($myrow['amount']), $dec);
+                                               $total_debit += abs($myrow['amount']);
+                                       }
+                                       else
+                                       {
+                                               $rep->AmountCol(6, 7, abs($myrow['amount']), $dec);
+                                               $total_credit += abs($myrow['amount']);
+                                       }
+                                       $rep->AmountCol(7, 8, $total, $dec);
+                                       $rep->NewLine();
+                                       if ($rep->row < $rep->bottomMargin + $rep->lineHeight)
+                                       {
+                                               $rep->Line($rep->row - 2);
+                                               $rep->NewPage();
+                                       }
                                }
-                               else
-                               {
-                                       $rep->AmountCol(6, 7, abs($myrow['amount']), $dec);
-                                       $total_credit += abs($myrow['amount']);
-                               }
-                               $rep->AmountCol(7, 8, $total, $dec);
                                $rep->NewLine();
-                               if ($rep->row < $rep->bottomMargin + $rep->lineHeight)
-                               {
-                                       $rep->Line($rep->row - 2);
-                                       $rep->NewPage();
-                               }
                        }
-                       $rep->NewLine();
+                       
+                       // Print totals for the debit and credit columns.
+                       $rep->TextCol(3, 5, _("Total Debit / Credit"));
+                       $rep->AmountCol(5, 6, $total_debit, $dec);
+                       $rep->AmountCol(6, 7, $total_credit, $dec);
+                       $rep->NewLine(2);
+
+                       $rep->Font('bold');
+                       $rep->TextCol(3, 5,     _("Ending Balance"));
+                       if ($total > 0.0)
+                               $rep->AmountCol(5, 6, abs($total), $dec);
+                       else
+                               $rep->AmountCol(6, 7, abs($total), $dec);
+                       $rep->Font();
+                       $rep->Line($rep->row - $rep->lineHeight + 4);
+                       $rep->NewLine(2, 1);
+                       
+                       // Print the difference between starting and ending balances.
+                       $net_change = ($total - $prev_balance); 
+                       $rep->TextCol(3, 5, _("Net Change"));
+                       if ($total > 0.0)
+                               $rep->AmountCol(5, 6, $net_change, $dec, 0, 0, 0, 0, null, 1, True);
+                       else
+                               $rep->AmountCol(6, 7, $net_change, $dec, 0, 0, 0, 0, null, 1, True);
                }
-               
-               // Print totals for the debit and credit columns.
-               $rep->TextCol(3, 5, _("Total Debit / Credit"));
-               $rep->AmountCol(5, 6, $total_debit, $dec);
-               $rep->AmountCol(6, 7, $total_credit, $dec);
-               $rep->NewLine(2);
-
-               $rep->Font('bold');
-               $rep->TextCol(3, 5,     _("Ending Balance"));
-               if ($total > 0.0)
-                       $rep->AmountCol(5, 6, abs($total), $dec);
-               else
-                       $rep->AmountCol(6, 7, abs($total), $dec);
-               $rep->Font();
-               $rep->Line($rep->row - $rep->lineHeight + 4);
-               $rep->NewLine(2, 1);
-               
-               // Print the difference between starting and ending balances.
-               $net_change = ($total - $prev_balance); 
-               $rep->TextCol(3, 5, _("Net Change"));
-               if ($total > 0.0)
-                       $rep->AmountCol(5, 6, $net_change, $dec, 0, 0, 0, 0, null, 1, True);
-               else
-                       $rep->AmountCol(6, 7, $net_change, $dec, 0, 0, 0, 0, null, 1, True);
        }
        $rep->End();
 }