2 /**********************************************************************
3 Copyright (C) FrontAccounting, LLC.
4 Released under the terms of the GNU General Public License, GPL,
5 as published by the Free Software Foundation, either version 3
6 of the License, or (at your option) any later version.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 $page_security = 'SA_GLREP';
13 // ----------------------------------------------------------------
17 // Title: Chart of GL Accounts
18 // ----------------------------------------------------------------
21 include_once($path_to_root . "/includes/session.inc");
22 include_once($path_to_root . "/includes/date_functions.inc");
23 include_once($path_to_root . "/includes/data_checks.inc");
24 include_once($path_to_root . "/gl/includes/gl_db.inc");
26 //----------------------------------------------------------------------------------------------------
28 function display_type ($type, $typename, &$dec, &$rep, $showbalance, $level)
30 $printtitle = 0; //Flag for printing type name
32 //Get Accounts directly under this group/type
33 $result = get_gl_accounts(null, null, $type);
34 while ($account=db_fetch($result))
36 //Print Type Title if it has atleast one non-zero account
40 for ($sp=1; $sp<=$level; $sp++)
46 $rep->TextCol(0, 1, $type);
47 $rep->TextCol(1, 4, $prefix.$typename);
49 $rep->Line($rep->row);
52 if ($showbalance == 1)
54 $begin = begin_fiscalyear();
55 if (is_account_balancesheet($account["account_code"]))
57 $balance = get_gl_trans_from_to($begin, ToDay(), $account["account_code"], 0);
59 $rep->TextCol(0, 1, $account['account_code']);
60 $rep->TextCol(1, 2, $prefix.$account['account_name']);
61 $rep->TextCol(2, 3, $account['account_code2']);
62 if ($showbalance == 1)
63 $rep->AmountCol(3, 4, $balance, $dec);
67 //Get Account groups/types under this group/type
68 $result = get_account_types(false, false, $type);
69 while ($accounttype=db_fetch($result))
71 //Print Type Title if has sub types and not previously printed
76 $rep->TextCol(0, 1, $type);
77 $rep->TextCol(1, 4, $typename);
79 $rep->Line($rep->row);
82 $nextlevel = $level + 1;
83 display_type($accounttype["id"], $accounttype["name"].' ('.$typename.')', $dec, $rep, $showbalance, $nextlevel);
87 //----------------------------------------------------------------------------------------------------
89 print_Chart_of_Accounts();
91 //----------------------------------------------------------------------------------------------------
93 function print_Chart_of_Accounts()
97 $showbalance = $_POST['PARAM_0'];
98 $comments = $_POST['PARAM_1'];
99 $orientation = $_POST['PARAM_2'];
100 $destination = $_POST['PARAM_3'];
102 include_once($path_to_root . "/reporting/includes/excel_report.inc");
104 include_once($path_to_root . "/reporting/includes/pdf_report.inc");
106 $orientation = ($orientation ? 'L' : 'P');
108 $cols = array(0, 60, 300, 425, 500);
110 $headers = array(_('Account'), _('Account Name'), _('Account Code'), _('Balance'));
112 $aligns = array('left', 'left', 'left', 'right');
114 $params = array(0 => $comments);
116 $rep = new FrontReport(_('Chart of Accounts'), "ChartOfAccounts", user_pagesize(), 9, $orientation);
117 if ($orientation == 'L')
118 recalculate_cols($cols);
121 $rep->Info($params, $cols, $headers, $aligns);
124 $classresult = get_account_classes(false);
125 while ($class = db_fetch($classresult))
128 $rep->TextCol(0, 1, $class['cid']);
129 $rep->TextCol(1, 4, $class['class_name']);
133 //Get Account groups/types under this group/type with no parents
134 $typeresult = get_account_types(false, $class['cid'], -1);
135 while ($accounttype=db_fetch($typeresult))
137 display_type($accounttype["id"], $accounttype["name"], $dec, $rep, $showbalance, 0);
141 $rep->Line($rep->row + 10);