X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=reporting%2Frep706.php;h=a1dece20730fe782b6a9cb74f0bb4ef547d7e0aa;hb=64ece402c019dd54bd6ca9882fd300362ef42871;hp=e69fc0dba48854aeaa3a6c09b6d8ea5f2e4c95bf;hpb=fc72e71a81a7d2c9d68eabbb1200d4c0cbf17f6e;p=fa-stable.git diff --git a/reporting/rep706.php b/reporting/rep706.php index e69fc0db..a1dece20 100644 --- a/reporting/rep706.php +++ b/reporting/rep706.php @@ -112,53 +112,70 @@ function print_balance_sheet() $assetsopen = 0.0; $assetsperiod = 0.0; $assetsclose = 0.0; + $equityopen = 0.0; + $equityperiod = 0.0; + $equityclose = 0.0; + $lopen = 0.0; + $lperiod = 0.0; + $lclose = 0.0; $typeopen = array(0,0,0,0,0,0,0,0,0,0); $typeperiod = array(0,0,0,0,0,0,0,0,0,0); $typeclose = array(0,0,0,0,0,0,0,0,0,0); $typename = array('','','','','','','','','',''); $closing = array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1); + //$parent = array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1); $level = 0; $last = -1; $closeclass = false; + $ctype = 0; + $convert = 1; $rep->NewLine(); - $types = get_account_types_all(1); + $accounts = get_gl_accounts_all(1); - while ($type=db_fetch($types)) + while ($account=db_fetch($accounts)) { - if (!num_accounts_in_type($type['AccountType'], $type['parent'])) + if ($account['account_code'] == null && $account['parent'] > 0) continue; - if ($type['AccountClassName'] != $classname) + if ($account['account_code'] != null) + { + $prev_balance = get_gl_balance_from_to("", $from, $account["account_code"], $dimension, $dimension2); + + $curr_balance = get_gl_trans_from_to($from, $to, $account["account_code"], $dimension, $dimension2); + + if (!$prev_balance && !$curr_balance) + continue; + } + if ($account['AccountClassName'] != $classname) { if ($classname != '') { $closeclass = true; } } - - if ($type['AccountTypeName'] != $typename[$level]) + if ($account['AccountTypeName'] != $typename[$level]) { //$rep->NewLine(); - //$rep->TextCol(0, 5, "level = $level, closing[level] = ".$closing[$level].", type[parent] = ".$type['parent']." last = ".$last); + //$rep->TextCol(0, 5, "type = ".$account['AccountType'].", level = $level, closing[0]-[1]-[2]-[3] = ".$closing[0]." ".$closing[1]." ".$closing[2]." ".$closing[3]." type[parent] = ".$account['parent']." last = ".$last); //$rep->NewLine(); if ($typename[$level] != '') { for ( ; $level >= 0, $typename[$level] != ''; $level--) { - if ($type['parent'] == $closing[$level] || $type['parent'] == $last || $type['parent'] <= 0) + if ($account['parent'] == $closing[$level] || $account['parent'] < $last || $account['parent'] <= 0) { $rep->row += 6; $rep->Line($rep->row); $rep->NewLine(); $rep->TextCol(0, 2, _('Total') . " " . $typename[$level]); - $rep->AmountCol(2, 3, $typeopen[$level], $dec); - $rep->AmountCol(3, 4, $typeperiod[$level], $dec); - $rep->AmountCol(4, 5, $typeclose[$level], $dec); + $rep->AmountCol(2, 3, $typeopen[$level] * $convert, $dec); + $rep->AmountCol(3, 4, $typeperiod[$level] * $convert, $dec); + $rep->AmountCol(4, 5, $typeclose[$level] * $convert, $dec); if ($graphics) { - $pg->x[] = $$typename[$level]; + $pg->x[] = $typename[$level]; $pg->y[] = abs($typeclose[$level]); } $typeopen[$level] = $typeperiod[$level] = $typeclose[$level] = 0.0; @@ -175,10 +192,22 @@ function print_balance_sheet() $rep->NewLine(); $rep->Font('bold'); $rep->TextCol(0, 2, _('Total') . " " . $classname); - $rep->AmountCol(2, 3, $classopen, $dec); - $rep->AmountCol(3, 4, $classperiod, $dec); - $rep->AmountCol(4, 5, $classclose, $dec); + $rep->AmountCol(2, 3, $classopen * $convert, $dec); + $rep->AmountCol(3, 4, $classperiod * $convert, $dec); + $rep->AmountCol(4, 5, $classclose * $convert, $dec); $rep->Font(); + if ($ctype == CL_EQUITY) + { + $equityopen += $classopen; + $equityperiod += $classperiod; + $equityclose += $classclose; + } + if ($ctype == CL_LIABILITIES) + { + $lopen += $classopen; + $lperiod += $classperiod; + $lclose += $classclose; + } $assetsopen += $classopen; $assetsperiod += $classperiod; $assetsclose += $classclose; @@ -187,36 +216,30 @@ function print_balance_sheet() $closeclass = false; } } - if ($type['AccountClassName'] != $classname) + if ($account['AccountClassName'] != $classname) { $rep->Font('bold'); - $rep->TextCol(0, 5, $type['AccountClassName']); + $rep->TextCol(0, 5, $account['AccountClassName']); $rep->Font(); $rep->NewLine(); } $level++; - if ($type['parent'] != $last) - $last = $type['parent']; - $typename[$level] = $type['AccountTypeName']; - $closing[$level] = $type['parent']; + if ($account['parent'] != $last) + $last = $account['parent']; + $typename[$level] = $account['AccountTypeName']; + $closing[$level] = $account['parent']; $rep->row -= 4; - $rep->TextCol(0, 5, $type['AccountTypeName']); + $rep->TextCol(0, 5, $account['AccountTypeName']); $rep->row -= 4; $rep->Line($rep->row); $rep->NewLine(); } - $classname = $type['AccountClassName']; + $classname = $account['AccountClassName']; + $ctype = $account['ClassType']; + $convert = get_class_type_convert($ctype); - $accounts = get_gl_accounts_in_type($type['AccountType']); - while ($account=db_fetch($accounts)) + if ($account['account_code'] != null) { - $prev_balance = get_gl_balance_from_to("", $from, $account["account_code"], $dimension, $dimension2); - - $curr_balance = get_gl_trans_from_to($from, $to, $account["account_code"], $dimension, $dimension2); - - if (!$prev_balance && !$curr_balance) - continue; - for ($i = 0; $i <= $level; $i++) { $typeopen[$i] += $prev_balance; @@ -229,9 +252,9 @@ function print_balance_sheet() $rep->TextCol(0, 1, $account['account_code']); $rep->TextCol(1, 2, $account['account_name']); - $rep->AmountCol(2, 3, $prev_balance, $dec); - $rep->AmountCol(3, 4, $curr_balance, $dec); - $rep->AmountCol(4, 5, $curr_balance + $prev_balance, $dec); + $rep->AmountCol(2, 3, $prev_balance * $convert, $dec); + $rep->AmountCol(3, 4, $curr_balance * $convert, $dec); + $rep->AmountCol(4, 5, ($curr_balance + $prev_balance) * $convert, $dec); $rep->NewLine(); @@ -242,31 +265,34 @@ function print_balance_sheet() } } } - if ($type['AccountClassName'] != $classname) + if ($account['AccountClassName'] != $classname) { if ($classname != '') { $closeclass = true; } } - if ($type['AccountTypeName'] != $typename[$level]) + if ($account['AccountTypeName'] != $typename[$level]) { + //$rep->NewLine(); + //$rep->TextCol(0, 5, "type = ".$account['AccountType'].", level = $level, closing[0]-[1]-[2]-[3] = ".$closing[0]." ".$closing[1]." ".$closing[2]." ".$closing[3]." type[parent] = ".$account['parent']." last = ".$last); + //$rep->NewLine(); if ($typename[$level] != '') { for ( ; $level >= 0, $typename[$level] != ''; $level--) { - if ($type['parent'] == $closing[$level] || $type['parent'] == $last || $type['parent'] <= 0) + if ($account['parent'] == $closing[$level] || $account['parent'] < $last || $account['parent'] <= 0) { $rep->row += 6; $rep->Line($rep->row); $rep->NewLine(); $rep->TextCol(0, 2, _('Total') . " " . $typename[$level]); - $rep->AmountCol(2, 3, $typeopen[$level], $dec); - $rep->AmountCol(3, 4, $typeperiod[$level], $dec); - $rep->AmountCol(4, 5, $typeclose[$level], $dec); + $rep->AmountCol(2, 3, $typeopen[$level] * $convert, $dec); + $rep->AmountCol(3, 4, $typeperiod[$level] * $convert, $dec); + $rep->AmountCol(4, 5, $typeclose[$level] * $convert, $dec); if ($graphics) { - $pg->x[] = $$typename[$level]; + $pg->x[] = $typename[$level]; $pg->y[] = abs($typeclose[$level]); } $typeopen[$level] = $typeperiod[$level] = $typeclose[$level] = 0.0; @@ -281,13 +307,19 @@ function print_balance_sheet() $calculateopen = -$assetsopen - $classopen; $calculateperiod = -$assetsperiod - $classperiod; $calculateclose = -$assetsclose - $classclose; + if ($ctype == CL_EQUITY) + { + $equityopen += $classopen; + $equityperiod += $classperiod; + $equityclose += $classclose; + } $rep->row += 6; $rep->Line($rep->row); $rep->NewLine(); $rep->TextCol(0, 2, _('Calculated Return')); - $rep->AmountCol(2, 3, $calculateopen, $dec); - $rep->AmountCol(3, 4, $calculateperiod, $dec); - $rep->AmountCol(4, 5, $calculateclose, $dec); + $rep->AmountCol(2, 3, $calculateopen * $convert, $dec); + $rep->AmountCol(3, 4, $calculateperiod * $convert, $dec); + $rep->AmountCol(4, 5, $calculateclose * $convert, $dec); if ($graphics) { $pg->x[] = _('Calculated Return'); @@ -296,11 +328,23 @@ function print_balance_sheet() $rep->NewLine(2); $rep->Font('bold'); $rep->TextCol(0, 2, _('Total') . " " . $classname); - $rep->AmountCol(2, 3, -$assetsopen, $dec); - $rep->AmountCol(3, 4, -$assetsperiod, $dec); - $rep->AmountCol(4, 5, -$assetsclose, $dec); + $rep->AmountCol(2, 3, -$assetsopen * $convert, $dec); + $rep->AmountCol(3, 4, -$assetsperiod * $convert, $dec); + $rep->AmountCol(4, 5, -$assetsclose * $convert, $dec); $rep->Font(); $rep->NewLine(); + if ($equityopen != 0.0 || $equityperiod != 0.0 || $equityclose != 0.0 || + $lopen != 0.0 || $lperiod != 0.0 || $lclose != 0.0) + { + $rep->NewLine(); + $rep->Font('bold'); + $rep->TextCol(0, 2, _('Total') . " " . _('Liabilities') . _(' and ') . _('Equities')); + $rep->AmountCol(2, 3, ($lopen + $equityopen + $calculateopen) * -1, $dec); + $rep->AmountCol(3, 4, ($lperiod + $equityperiod + $calculateperiod) * -1, $dec); + $rep->AmountCol(4, 5, ($lclose + $equityclose + $calculateclose) * -1, $dec); + $rep->Font(); + $rep->NewLine(); + } } } }