Improved reports, COA, Trial Balance and Tax Report by Chaitanya.
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Mon, 4 Apr 2011 22:16:15 +0000 (00:16 +0200)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Mon, 4 Apr 2011 22:16:15 +0000 (00:16 +0200)
reporting/rep701.php
reporting/rep708.php
reporting/rep709.php

index b4f54c9603ea093ed7716cd2ea0151fbc4505270..8a86114d75fcf8c9372944612ced55aa73e474fa 100644 (file)
@@ -25,7 +25,7 @@ include_once($path_to_root . "/gl/includes/gl_db.inc");
 
 //----------------------------------------------------------------------------------------------------
 
-function display_type ($type, $typename, &$dec, &$rep, $showbalance)
+function display_type ($type, $typename, &$dec, &$rep, $showbalance, $level)\r
 {
        $printtitle = 0; //Flag for printing type name  
        
@@ -36,12 +36,15 @@ function display_type ($type, $typename, &$dec, &$rep, $showbalance)
                //Print Type Title if it has atleast one non-zero account       
                if (!$printtitle)
                {
+                       $prefix = '';\r
+                       for ($sp=1; $sp<=$level; $sp++)\r
+                       {\r
+                               $prefix .= '         ';\r
+                       }               \r
                        $printtitle = 1;
                        $rep->row -= 4;
-                       $rep->Font('bold');
                        $rep->TextCol(0, 1, $type);
-                       $rep->TextCol(1, 4, $typename);
-                       $rep->Font();
+                       $rep->TextCol(1, 4, $prefix.$typename);\r
                        $rep->row -= 4;
                        $rep->Line($rep->row);
                        $rep->NewLine();                
@@ -54,7 +57,7 @@ function display_type ($type, $typename, &$dec, &$rep, $showbalance)
                        $balance = get_gl_trans_from_to($begin, ToDay(), $account["account_code"], 0);
                }
                $rep->TextCol(0, 1,     $account['account_code']);
-               $rep->TextCol(1, 2,     $account['account_name']);
+               $rep->TextCol(1, 2,     $prefix.$account['account_name']);\r
                $rep->TextCol(2, 3,     $account['account_code2']);
                if ($showbalance == 1)  
                        $rep->AmountCol(3, 4, $balance, $dec);
@@ -76,8 +79,8 @@ function display_type ($type, $typename, &$dec, &$rep, $showbalance)
                        $rep->Line($rep->row);
                        $rep->NewLine();                
                }
-
-               display_type($accounttype["id"], $accounttype["name"], $dec, $rep, $showbalance);
+               $nextlevel = $level + 1;\r
+               display_type($accounttype["id"], $accounttype["name"].' ('.$typename.')', $dec, $rep, $showbalance, $nextlevel);\r
        }
 }
 
@@ -128,7 +131,7 @@ function print_Chart_of_Accounts()
                $typeresult = get_account_types(false, $class['cid'], -1);
                while ($accounttype=db_fetch($typeresult))
                {
-                       display_type($accounttype["id"], $accounttype["name"], $dec, $rep, $showbalance);
+                       display_type($accounttype["id"], $accounttype["name"], $dec, $rep, $showbalance, 0);\r
                }
                $rep->NewLine();
        }
index 2095602919aaf7e4ed3b9df4bdf75ba591dde530..44fc271066a6a78bcb7bf1452bc045767b37268f 100644 (file)
@@ -24,6 +24,108 @@ 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");
 
+$pdeb = $pcre = $cdeb = $ccre = $tdeb = $tcre = $pbal = $cbal = $tbal = 0;\r
+$cls_pdeb = $cls_pcre = $cls_cdeb = $cls_ccre = $cls_tdeb = $cls_tcre = $cls_pbal = $cls_cbal = $cls_tbal = 0;\r
+$grp_pdeb = $grp_pcre = $grp_cdeb = $grp_ccre = $grp_tdeb = $grp_tcre = $grp_pbal = $grp_cbal = $grp_tbal = 0;\r
+\r
+//----------------------------------------------------------------------------------------------------\r
+\r
+function display_type ($type, $typename, &$dec, &$rep, $from, $to, $zero, $balances, $dimension, $dimension2)\r
+{\r
+       global $pdeb, $pcre, $cdeb, $ccre, $tdeb, $tcre, $pbal, $cbal, $tbal;\r
+       \r
+       $printtitle = 0; //Flag for printing type name  \r
+       \r
+       //Get Accounts directly under this group/type\r
+       $accounts = get_gl_accounts(null, null, $type); \r
+       \r
+       $pdeb = $pcre = $cdeb = $ccre = $tdeb = $tcre = $pbal = $cbal = $tbal = 0;\r
+\r
+       $begin = begin_fiscalyear();\r
+       if (date1_greater_date2($begin, $from))\r
+               $begin = $from;\r
+       $begin = add_days($begin, -1);\r
+       while ($account=db_fetch($accounts))\r
+       {\r
+               //Print Type Title if it has atleast one non-zero account       \r
+               if (!$printtitle)\r
+               {       \r
+                       $rep->row -= 4;\r
+                       $rep->TextCol(0, 8, _("Group")." - ".$type ." - ".$typename);   \r
+                       $printtitle = 1;\r
+                       $rep->row -= 4;\r
+                       $rep->Line($rep->row);\r
+                       $rep->NewLine();                        \r
+               }\r
+               \r
+               $prev = get_balance($account["account_code"], $dimension, $dimension2, $begin, $from, false, false);\r
+               $curr = get_balance($account["account_code"], $dimension, $dimension2, $from, $to, true, true);\r
+               $tot = get_balance($account["account_code"], $dimension, $dimension2, $begin, $to, false, true);\r
+\r
+               if ($zero == 0 && !$prev['balance'] && !$curr['balance'] && !$tot['balance'])\r
+                       continue;\r
+               $rep->TextCol(0, 1, $account['account_code']);\r
+               $rep->TextCol(1, 2,     $account['account_name']);\r
+               if ($balances != 0)\r
+               {\r
+                       if ($prev['balance'] >= 0.0)\r
+                               $rep->AmountCol(2, 3, $prev['balance'], $dec);\r
+                       else\r
+                               $rep->AmountCol(3, 4, abs($prev['balance']), $dec);\r
+                       if ($curr['balance'] >= 0.0)\r
+                               $rep->AmountCol(4, 5, $curr['balance'], $dec);\r
+                       else\r
+                               $rep->AmountCol(5, 6, abs($curr['balance']), $dec);\r
+                       if ($tot['balance'] >= 0.0)\r
+                               $rep->AmountCol(6, 7, $tot['balance'], $dec);\r
+                       else\r
+                               $rep->AmountCol(7, 8, abs($tot['balance']), $dec);\r
+               }\r
+               else\r
+               {\r
+                       $rep->AmountCol(2, 3, $prev['debit'], $dec);\r
+                       $rep->AmountCol(3, 4, $prev['credit'], $dec);\r
+                       $rep->AmountCol(4, 5, $curr['debit'], $dec);\r
+                       $rep->AmountCol(5, 6, $curr['credit'], $dec);\r
+                       $rep->AmountCol(6, 7, $tot['debit'], $dec);\r
+                       $rep->AmountCol(7, 8, $tot['credit'], $dec);\r
+                       $pdeb += $prev['debit'];\r
+                       $pcre += $prev['credit'];\r
+                       $cdeb += $curr['debit'];\r
+                       $ccre += $curr['credit'];\r
+                       $tdeb += $tot['debit'];\r
+                       $tcre += $tot['credit'];\r
+               }       \r
+               $pbal += $prev['balance'];\r
+               $cbal += $curr['balance'];\r
+               $tbal += $tot['balance'];\r
+               $rep->NewLine();\r
+\r
+               if ($rep->row < $rep->bottomMargin + $rep->lineHeight)\r
+               {\r
+                       $rep->Line($rep->row - 2);\r
+                       $rep->NewPage();\r
+               }\r
+       }\r
+               \r
+       //Get Account groups/types under this group/type\r
+       $result = get_account_types(false, false, $type);\r
+       while ($accounttype=db_fetch($result))\r
+       {\r
+               //Print Type Title if has sub types and not previously printed\r
+               if (!$printtitle)\r
+               {\r
+                       $rep->row -= 4;\r
+                       $rep->TextCol(0, 8, _("Group")." - ".$type ." - ".$typename);   \r
+                       $printtitle = 1;\r
+                       $rep->row -= 4;\r
+                       $rep->Line($rep->row);\r
+                       $rep->NewLine();                \r
+               }\r
+               display_type($accounttype["id"], $accounttype["name"].' ('.$typename.')', $dec, $rep, $from, $to, $zero, $balances, $dimension, $dimension2);\r
+       }\r
+}\r
+\r
 //----------------------------------------------------------------------------------------------------
 
 print_trial_balance();
@@ -33,6 +135,7 @@ print_trial_balance();
 function print_trial_balance()
 {
        global $path_to_root;
+       global $pdeb, $pcre, $cdeb, $ccre, $tdeb, $tcre, $pbal, $cbal, $tbal;\r
 
        $dim = get_company_pref('use_dimension');
        $dimension = $dimension2 = 0;
@@ -74,8 +177,9 @@ function print_trial_balance()
        $aligns2 = array('left', 'left', 'left', 'left', 'left');
 
        //$cols = array(0, 50, 200, 250, 300,   350, 400, 450, 500,     550);
-       $cols = array(0, 50, 150, 210, 270,     330, 390, 450, 510,     570);
-       //------------0--1---2----3----4----5----6----7----8----9--
+       $cols = array(0, 50, 150, 210, 270,     330, 390, 450, 510,     570);\r
+       //$cols = array(0, 50, 190, 250, 310,   370, 430, 490, 550);\r
+       //------------0--1---2----3----4----5----6----7----8--\r
 
        $headers = array(_('Account'), _('Account Name'), _('Debit'), _('Credit'), _('Debit'),
                _('Credit'), _('Debit'), _('Credit'));
@@ -109,65 +213,23 @@ function print_trial_balance()
        $rep->Font();
        $rep->Info($params, $cols, $headers, $aligns, $cols2, $headers2, $aligns2);
        $rep->NewPage();
-
-       $accounts = get_gl_accounts();
-
-       $pdeb = $pcre = $cdeb = $ccre = $tdeb = $tcre = $pbal = $cbal = $tbal = 0;
-       $begin = begin_fiscalyear();
-       if (date1_greater_date2($begin, $from))
-               $begin = $from;
-       $begin = add_days($begin, -1);
-       while ($account=db_fetch($accounts))
+       \r
+       $classresult = get_account_classes(false);\r
+       while ($class = db_fetch($classresult))\r
        {
-               $prev = get_balance($account["account_code"], $dimension, $dimension2, $begin, $from, false, false);
-               $curr = get_balance($account["account_code"], $dimension, $dimension2, $from, $to, true, true);
-               $tot = get_balance($account["account_code"], $dimension, $dimension2, $begin, $to, false, true);
-
-               if ($zero == 0 && !$prev['balance'] && !$curr['balance'] && !$tot['balance'])
-                       continue;
-               $rep->TextCol(0, 1, $account['account_code']);
-               $rep->TextCol(1, 2,     $account['account_name']);
-               if ($balances != 0)
-               {
-                       if ($prev['balance'] >= 0.0)
-                               $rep->AmountCol(2, 3, $prev['balance'], $dec);
-                       else
-                               $rep->AmountCol(3, 4, abs($prev['balance']), $dec);
-                       if ($curr['balance'] >= 0.0)
-                               $rep->AmountCol(4, 5, $curr['balance'], $dec);
-                       else
-                               $rep->AmountCol(5, 6, abs($curr['balance']), $dec);
-                       if ($tot['balance'] >= 0.0)
-                               $rep->AmountCol(6, 7, $tot['balance'], $dec);
-                       else
-                               $rep->AmountCol(7, 8, abs($tot['balance']), $dec);
-               }
-               else
-               {
-                       $rep->AmountCol(2, 3, $prev['debit'], $dec);
-                       $rep->AmountCol(3, 4, $prev['credit'], $dec);
-                       $rep->AmountCol(4, 5, $curr['debit'], $dec);
-                       $rep->AmountCol(5, 6, $curr['credit'], $dec);
-                       $rep->AmountCol(6, 7, $tot['debit'], $dec);
-                       $rep->AmountCol(7, 8, $tot['credit'], $dec);
-                       $pdeb += $prev['debit'];
-                       $pcre += $prev['credit'];
-                       $cdeb += $curr['debit'];
-                       $ccre += $curr['credit'];
-                       $tdeb += $tot['debit'];
-                       $tcre += $tot['credit'];
-                       
-               }       
-               $pbal += $prev['balance'];
-               $cbal += $curr['balance'];
-               $tbal += $tot['balance'];
-               $rep->NewLine();
+               $rep->Font('bold');\r
+               $rep->TextCol(0, 1, $class['cid']);\r
+               $rep->TextCol(1, 4, $class['class_name']);\r
+               $rep->Font();\r
+               $rep->NewLine();\r
 
-               if ($rep->row < $rep->bottomMargin + $rep->lineHeight)
+               //Get Account groups/types under this group/type with no parents\r
+               $typeresult = get_account_types(false, $class['cid'], -1);\r
+               while ($accounttype=db_fetch($typeresult))\r
                {
-                       $rep->Line($rep->row - 2);
-                       $rep->NewPage();
+                       display_type($accounttype["id"], $accounttype["name"], $dec, $rep, $from, $to,  $zero, $balances, $dimension, $dimension2);\r
                }
+               $rep->NewLine();
        }
        $rep->Line($rep->row);
        $rep->NewLine();
@@ -204,7 +266,7 @@ function print_trial_balance()
                $rep->AmountCol(7, 8, abs($tbal), $dec);
        $rep->NewLine();
                
-       $rep->Line($rep->row);
+       $rep->Line($rep->row + 10);
        if (($pbal = round2($pbal, $dec)) != 0.0)
        {
                $rep->NewLine(2);
index e52f293395c08b265a20e203b0eb4cce09a88daa..7c09e308041ef50459a724b51ae2b80a350adad9 100644 (file)
@@ -33,11 +33,13 @@ function getTaxTransactions($from, $to)
        $fromdate = date2sql($from);
        $todate = date2sql($to);
 
-       $sql = "SELECT taxrec.*, taxrec.amount*ex_rate AS amount,
+       $sql = "SELECT tt.name as taxname, taxrec.*, taxrec.amount*ex_rate AS amount,\r
                    taxrec.net_amount*ex_rate AS net_amount,
                                IF(ISNULL(supp.supp_name), debt.name, supp.supp_name) as name,
                                branch.br_name
                FROM ".TB_PREF."trans_tax_details taxrec
+               LEFT JOIN ".TB_PREF."tax_types tt\r
+                       ON taxrec.tax_type_id=tt.id\r
                LEFT JOIN ".TB_PREF."supp_trans strans
                        ON taxrec.trans_no=strans.trans_no AND taxrec.trans_type=strans.type
                LEFT JOIN ".TB_PREF."suppliers as supp ON strans.supplier_id=supp.supplier_id
@@ -49,7 +51,7 @@ function getTaxTransactions($from, $to)
                        AND taxrec.trans_type <> ".ST_CUSTDELIVERY."
                        AND taxrec.tran_date >= '$fromdate'
                        AND taxrec.tran_date <= '$todate'
-               ORDER BY taxrec.tran_date";
+               ORDER BY taxrec.trans_type, taxrec.tran_date, taxrec.trans_no, taxrec.ex_rate";\r
 //display_error($sql);
     return db_query($sql,"No transactions were returned");
 }
@@ -71,7 +73,7 @@ function getTaxInfo($id)
 
 function print_tax_report()
 {
-       global $path_to_root, $trans_dir, $systypes_array;
+       global $path_to_root, $trans_dir, $Hooks, $systypes_array;\r
        
        $from = $_POST['PARAM_0'];
        $to = $_POST['PARAM_1'];
@@ -102,11 +104,11 @@ function print_tax_report()
                                                1 => array('text' => _('Period'), 'from' => $from, 'to' => $to),
                                                2 => array('text' => _('Type'), 'from' => $summary, 'to' => ''));
 
-       $cols = array(0, 100, 130, 180, 290, 370, 420, 470, 520);
+       $cols = array(0, 80, 130, 180, 270, 350, 400, 430, 480, 485, 520);\r
 
        $headers = array(_('Trans Type'), _('Ref'), _('Date'), _('Name'), _('Branch Name'),
-               _('Net'), _('Rate'), _('Tax'));
-       $aligns = array('left', 'left', 'left', 'left', 'left', 'right', 'right', 'right');
+               _('Net'), _('Rate'), _('Tax'), '', _('Name'));\r
+       $aligns = array('left', 'left', 'left', 'left', 'left', 'right', 'right', 'right', 'right','left');\r
        $rep->Font();
        $rep->Info($params, $cols, $headers, $aligns);
        if (!$summaryOnly)
@@ -138,6 +140,8 @@ function print_tax_report()
                        $rep->AmountCol(5, 6, $trans['net_amount'], $dec);
                        $rep->AmountCol(6, 7, $trans['rate'], $dec);
                        $rep->AmountCol(7, 8, $trans['amount'], $dec);
+                       \r
+                       $rep->TextCol(9, 10, $trans['taxname']);\r
 
                        $rep->NewLine();