GL Account Transactions Report: improved layout when dimension 2 is not used.
[fa-stable.git] / reporting / rep704.php
index f69d43547c8bc7982178fde55ec932a0cdbe80ea..23a52fca4b9b5006d0f73518e538d21e54f7d78f 100644 (file)
@@ -19,6 +19,7 @@ $page_security = 'SA_GLREP';
 $path_to_root="..";
 
 include_once($path_to_root . "/includes/session.inc");
+include_once($path_to_root . "/admin/db/fiscalyears_db.inc");
 include_once($path_to_root . "/includes/date_functions.inc");
 include_once($path_to_root . "/includes/data_checks.inc");
 include_once($path_to_root . "/gl/includes/gl_db.inc");
@@ -45,43 +46,56 @@ function print_GL_transactions()
                $dimension = $_POST['PARAM_4'];
                $dimension2 = $_POST['PARAM_5'];
                $comments = $_POST['PARAM_6'];
-               $destination = $_POST['PARAM_7'];
+               $orientation = $_POST['PARAM_7'];
+               $destination = $_POST['PARAM_8'];
        }
-       else if ($dim == 1)
+       elseif ($dim == 1)
        {
                $dimension = $_POST['PARAM_4'];
                $comments = $_POST['PARAM_5'];
-               $destination = $_POST['PARAM_6'];
+               $orientation = $_POST['PARAM_6'];
+               $destination = $_POST['PARAM_7'];
        }
        else
        {
                $comments = $_POST['PARAM_4'];
-               $destination = $_POST['PARAM_5'];
+               $orientation = $_POST['PARAM_5'];
+               $destination = $_POST['PARAM_6'];
        }
        if ($destination)
                include_once($path_to_root . "/reporting/includes/excel_report.inc");
        else
                include_once($path_to_root . "/reporting/includes/pdf_report.inc");
+       $orientation = ($orientation ? 'L' : 'P');
 
-       $rep = new FrontReport(_('GL Account Transactions'), "GLAccountTransactions", user_pagesize());
+       $rep = new FrontReport(_('GL Account Transactions'), "GLAccountTransactions", user_pagesize(), 9, $orientation);
        $dec = user_price_dec();
 
-       $cols = array(0, 70, 90, 140, 210, 280, 340, 400, 450, 510, 570);
-       //------------0--1---2---3----4----5----6----7----8----9----10-------
-       //-----------------------dim1-dim2-----------------------------------
-       //-----------------------dim1----------------------------------------
-       //-------------------------------------------------------------------
-       $aligns = array('left', 'left', 'left', 'left', 'left', 'left', 'right', 'right', 'right');
-
        if ($dim == 2)
-               $headers = array(_('Type'),     _('#'), _('Date'), _('Dimension')." 1", _('Dimension')." 2",
+       {
+               $cols = array(0, 65, 105, 125, 175, 230, 290, 345, 405, 465, 525);
+               //------------0--1---2----3----4----5----6----7----8----9----10-------
+               //------------------------dim1-dim2-----------------------------------
+               $headers = array(_('Type'),     _('Ref'), _('#'),       _('Date'), _('Dimension')." 1", _('Dimension')." 2",
                        _('Person/Item'), _('Debit'),   _('Credit'), _('Balance'));
+       }
        elseif ($dim == 1)
-               $headers = array(_('Type'),     _('#'), _('Date'), _('Dimension'), "", _('Person/Item'),
+       {
+               $cols = array(0, 65, 105, 125, 175, 230, 230, 345, 405, 465, 525);
+               //------------0--1---2----3----4----5----6----7----8----9----10-------
+               //------------------------dim1----------------------------------------
+               $headers = array(_('Type'),     _('Ref'), _('#'),       _('Date'), _('Dimension'), "", _('Person/Item'),
                        _('Debit'),     _('Credit'), _('Balance'));
+       }
        else
-               $headers = array(_('Type'),     _('#'), _('Date'), "", "", _('Person/Item'),
+       {
+               $cols = array(0, 65, 105, 125, 175, 175, 175, 345, 405, 465, 525);
+               //------------0--1---2----3----4----5----6----7----8----9----10-------
+               //--------------------------------------------------------------------
+               $headers = array(_('Type'),     _('Ref'), _('#'),       _('Date'), "", "", _('Person/Item'),
                        _('Debit'),     _('Credit'), _('Balance'));
+       }
+       $aligns = array('left', 'left', 'left', 'left', 'left', 'left', 'left', 'right', 'right', 'right');
 
        if ($dim == 2)
        {
@@ -93,7 +107,7 @@ function print_GL_transactions()
                        4 => array('text' => _('Dimension')." 2", 'from' => get_dimension_string($dimension2),
                             'to' => ''));
     }
-    else if ($dim == 1)
+    elseif ($dim == 1)
     {
        $params =   array(      0 => $comments,
                                    1 => array('text' => _('Period'), 'from' => $from, 'to' => $to),
@@ -107,10 +121,12 @@ function print_GL_transactions()
                                    1 => array('text' => _('Period'), 'from' => $from, 'to' => $to),
                                    2 => array('text' => _('Accounts'),'from' => $fromacc,'to' => $toacc));
     }
+    if ($orientation == 'L')
+       recalculate_cols($cols);
 
        $rep->Font();
        $rep->Info($params, $cols, $headers, $aligns);
-       $rep->Header();
+       $rep->NewPage();
 
        $accounts = get_gl_accounts($fromacc, $toacc);
 
@@ -120,7 +136,7 @@ function print_GL_transactions()
                        $begin = "";
                else
                {
-                       $begin = begin_fiscalyear();
+                       $begin = get_fiscalyear_begin_for_date($from);
                        if (date1_greater_date2($begin, $from))
                                $begin = $from;
                        $begin = add_days($begin, -1);
@@ -132,12 +148,12 @@ function print_GL_transactions()
                if ($prev_balance == 0.0 && $rows == 0)
                        continue;
                $rep->Font('bold');
-               $rep->TextCol(0, 3,     $account['account_code'] . " " . $account['account_name']);
-               $rep->TextCol(3, 5, _('Opening Balance'));
+               $rep->TextCol(0, 4,     $account['account_code'] . " " . $account['account_name'], -2);
+               $rep->TextCol(4, 6, _('Opening Balance'));
                if ($prev_balance > 0.0)
-                       $rep->AmountCol(6, 7, abs($prev_balance), $dec);
-               else
                        $rep->AmountCol(7, 8, abs($prev_balance), $dec);
+               else
+                       $rep->AmountCol(8, 9, abs($prev_balance), $dec);
                $rep->Font();
                $total = $prev_balance;
                $rep->NewLine(2);
@@ -147,34 +163,45 @@ function print_GL_transactions()
                        {
                                $total += $myrow['amount'];
 
-                               $rep->TextCol(0, 1, $systypes_array[$myrow["type"]]);
-                               $rep->TextCol(1, 2,     $myrow['type_no']);
-                               $rep->DateCol(2, 3,     $myrow["tran_date"], true);
+                               $rep->TextCol(0, 1, $systypes_array[$myrow["type"]], -2);
+                               $reference = get_reference($myrow["type"], $myrow["type_no"]);
+                               $rep->TextCol(1, 2, $reference);
+                               $rep->TextCol(2, 3,     $myrow['type_no'], -2);
+                               $rep->DateCol(3, 4,     $myrow["tran_date"], true);
                                if ($dim >= 1)
-                                       $rep->TextCol(3, 4,     get_dimension_string($myrow['dimension_id']));
+                                       $rep->TextCol(4, 5,     get_dimension_string($myrow['dimension_id']));
                                if ($dim > 1)
-                                       $rep->TextCol(4, 5,     get_dimension_string($myrow['dimension2_id']));
-                               $rep->TextCol(5, 6,     payment_person_name($myrow["person_type_id"],$myrow["person_id"], false));
-                               if ($myrow['amount'] > 0.0)
-                                       $rep->AmountCol(6, 7, abs($myrow['amount']), $dec);
+                                       $rep->TextCol(5, 6,     get_dimension_string($myrow['dimension2_id']));
+                               $txt = payment_person_name($myrow["person_type_id"],$myrow["person_id"], false);
+                               $memo = $myrow['memo_'];
+                               if ($txt != "")
+                               {
+                                       if ($memo != "")
+                                               $txt = $txt."/".$memo;
+                               }
                                else
+                                       $txt = $memo;
+                               $rep->TextCol(6, 7,     $txt, -2);
+                               if ($myrow['amount'] > 0.0)
                                        $rep->AmountCol(7, 8, abs($myrow['amount']), $dec);
-                               $rep->TextCol(8, 9,     number_format2($total, $dec));
+                               else
+                                       $rep->AmountCol(8, 9, abs($myrow['amount']), $dec);
+                               $rep->TextCol(9, 10, number_format2($total, $dec));
                                $rep->NewLine();
                                if ($rep->row < $rep->bottomMargin + $rep->lineHeight)
                                {
                                        $rep->Line($rep->row - 2);
-                                       $rep->Header();
+                                       $rep->NewPage();
                                }
                        }
                        $rep->NewLine();
                }
                $rep->Font('bold');
-               $rep->TextCol(3, 5,     _("Ending Balance"));
+               $rep->TextCol(4, 6,     _("Ending Balance"));
                if ($total > 0.0)
-                       $rep->AmountCol(6, 7, abs($total), $dec);
-               else
                        $rep->AmountCol(7, 8, abs($total), $dec);
+               else
+                       $rep->AmountCol(8, 9, abs($total), $dec);
                $rep->Font();
                $rep->Line($rep->row - $rep->lineHeight + 4);
                $rep->NewLine(2, 1);
@@ -182,4 +209,3 @@ function print_GL_transactions()
        $rep->End();
 }
 
-?>
\ No newline at end of file