X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=reporting%2Frep701.php;h=65211df69e36a05b8cb1c12b3a5ef23495efd6c3;hb=630e99edecc3eabe708a9e7bda94eaa60bf16db7;hp=63c90c39ede42b88b85206d4c4224389b1e33793;hpb=ad96cd0abbfd826592b851b8e0cb6d89e450fdf4;p=fa-stable.git diff --git a/reporting/rep701.php b/reporting/rep701.php index 63c90c39..65211df6 100644 --- a/reporting/rep701.php +++ b/reporting/rep701.php @@ -9,7 +9,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License here . ***********************************************************************/ -$page_security = 2; +$page_security = 'SA_GLREP'; // ---------------------------------------------------------------- // $ Revision: 2.0 $ // Creator: Joe Hunt @@ -25,6 +25,67 @@ include_once($path_to_root . "/gl/includes/gl_db.inc"); //---------------------------------------------------------------------------------------------------- +function display_type ($type, $typename, &$dec, &$rep, $showbalance, $level) +{ + $printtitle = 0; //Flag for printing type name + + //Get Accounts directly under this group/type + $result = get_gl_accounts(null, null, $type); + while ($account=db_fetch($result)) + { + //Print Type Title if it has atleast one non-zero account + if (!$printtitle) + { + $prefix = ''; + for ($sp=1; $sp<=$level; $sp++) + { + $prefix .= ' '; + } + $printtitle = 1; + $rep->row -= 4; + $rep->TextCol(0, 1, $type); + $rep->TextCol(1, 4, $prefix.$typename); + $rep->row -= 4; + $rep->Line($rep->row); + $rep->NewLine(); + } + if ($showbalance == 1) + { + $begin = begin_fiscalyear(); + if (is_account_balancesheet($account["account_code"])) + $begin = ""; + $balance = get_gl_trans_from_to($begin, ToDay(), $account["account_code"], 0); + } + $rep->TextCol(0, 1, $account['account_code']); + $rep->TextCol(1, 2, $prefix.$account['account_name']); + $rep->TextCol(2, 3, $account['account_code2']); + if ($showbalance == 1) + $rep->AmountCol(3, 4, $balance, $dec); + $rep->NewLine(); + } + + //Get Account groups/types under this group/type + $result = get_account_types(false, false, $type); + while ($accounttype=db_fetch($result)) + { + //Print Type Title if has sub types and not previously printed + if (!$printtitle) + { + $printtitle = 1; + $rep->row -= 4; + $rep->TextCol(0, 1, $type); + $rep->TextCol(1, 4, $typename); + $rep->row -= 4; + $rep->Line($rep->row); + $rep->NewLine(); + } + $nextlevel = $level + 1; + display_type($accounttype["id"], $accounttype["name"].' ('.$typename.')', $dec, $rep, $showbalance, $nextlevel); + } +} + +//---------------------------------------------------------------------------------------------------- + print_Chart_of_Accounts(); //---------------------------------------------------------------------------------------------------- @@ -35,15 +96,16 @@ function print_Chart_of_Accounts() $showbalance = $_POST['PARAM_0']; $comments = $_POST['PARAM_1']; - $destination = $_POST['PARAM_2']; + $orientation = $_POST['PARAM_2']; + $destination = $_POST['PARAM_3']; if ($destination) include_once($path_to_root . "/reporting/includes/excel_report.inc"); else include_once($path_to_root . "/reporting/includes/pdf_report.inc"); - $dec = 0; + $orientation = ($orientation ? 'L' : 'P'); - $cols = array(0, 50, 300, 425, 500); + $cols = array(0, 60, 300, 425, 500); $headers = array(_('Account'), _('Account Name'), _('Account Code'), _('Balance')); @@ -51,61 +113,32 @@ function print_Chart_of_Accounts() $params = array(0 => $comments); - $rep = new FrontReport(_('Chart of Accounts'), "ChartOfAccounts", user_pagesize()); + $rep = new FrontReport(_('Chart of Accounts'), "ChartOfAccounts", user_pagesize(), 9, $orientation); + if ($orientation == 'L') + recalculate_cols($cols); $rep->Font(); $rep->Info($params, $cols, $headers, $aligns); - $rep->Header(); + $rep->NewPage(); - $classname = ''; - $group = ''; - - $accounts = get_gl_accounts_all(); - - while ($account=db_fetch($accounts)) + $classresult = get_account_classes(false); + while ($class = db_fetch($classresult)) { - if ($showbalance == 1) - { - $begin = begin_fiscalyear(); - if (is_account_balancesheet($account["account_code"])) - $begin = ""; - $balance = get_gl_trans_from_to($begin, ToDay(), $account["account_code"], 0); - } - if ($account['AccountTypeName'] != $group) - { - if ($classname != '') - $rep->row -= 4; - if ($account['AccountClassName'] != $classname) - { - $rep->Font('bold'); - $rep->TextCol(0, 4, $account['AccountClassName']); - $rep->Font(); - //$rep->row -= ($rep->lineHeight + 4); - $rep->NewLine(); - } - $group = $account['AccountTypeName']; - $rep->TextCol(0, 4, $account['AccountTypeName']); - //$rep->Line($rep->row - 4); - //$rep->row -= ($rep->lineHeight + 4); - $rep->NewLine(); - } - $classname = $account['AccountClassName']; - - $rep->TextCol(0, 1, $account['account_code']); - $rep->TextCol(1, 2, $account['account_name']); - $rep->TextCol(2, 3, $account['account_code2']); - if ($showbalance == 1) - $rep->AmountCol(3, 4, $balance, $dec); - + $rep->Font('bold'); + $rep->TextCol(0, 1, $class['cid']); + $rep->TextCol(1, 4, $class['class_name']); + $rep->Font(); $rep->NewLine(); - if ($rep->row < $rep->bottomMargin + 3 * $rep->lineHeight) + + //Get Account groups/types under this group/type with no parents + $typeresult = get_account_types(false, $class['cid'], -1); + while ($accounttype=db_fetch($typeresult)) { - $rep->Line($rep->row - 2); - $rep->Header(); + display_type($accounttype["id"], $accounttype["name"], $dec, $rep, $showbalance, 0); } + $rep->NewLine(); } - $rep->Line($rep->row); + $rep->Line($rep->row + 10); $rep->End(); } -?> \ No newline at end of file