diff --git a/gnucash/report/standard-reports/balance-sheet.scm b/gnucash/report/standard-reports/balance-sheet.scm index cdebc87715..a4541a5896 100644 --- a/gnucash/report/standard-reports/balance-sheet.scm +++ b/gnucash/report/standard-reports/balance-sheet.scm @@ -462,120 +462,84 @@ ;; Get all the balances for each of the account types. (let* ((asset-balance #f) - (neg-liability-balance #f) ;; credit balances are < 0 (liability-balance #f) - (neg-equity-balance #f) (equity-balance #f) - (neg-retained-earnings #f) ;; credit, income - expenses, < 0 - (retained-earnings #f) - (neg-trading-balance #f) - (trading-balance #f) + (retained-earnings #f) + (trading-balance #f) (unrealized-gain-collector #f) (total-equity-balance #f) (liability-plus-equity #f) - + ;; Create the account tables below where their ;; percentage time can be tracked. - (left-table (gnc:make-html-table)) ;; gnc:html-table - (right-table (if report-form? left-table - (gnc:make-html-table))) - (table-env #f) ;; parameters for :make- - (params #f) ;; and -add-account- + (left-table (gnc:make-html-table)) ;; gnc:html-table + (right-table (if report-form? + left-table + (gnc:make-html-table))) + (table-env #f) ;; parameters for :make- + (params #f) ;; and -add-account- (asset-table #f) ;; gnc:html-acct-table (equity-table #f) ;; gnc:html-acct-table - (get-total-balance-fn - (lambda (account) - (gnc:account-get-comm-balance-at-date - account reportdate #f))) + (get-total-balance-fn + (lambda (account) + (gnc:account-get-comm-balance-at-date + account reportdate #f))) (get-total-value-fn (lambda (account) - (gnc:account-get-comm-value-at-date account reportdate #f))) - ) - - ;; If you ask me, any outstanding(TM) retained earnings and - ;; unrealized gains should be added directly into equity, - ;; since the balance sheet does not have a period over which - ;; to report earnings.... See discussion on bugzilla. - (gnc:report-percent-done 4) - ;; sum assets - (set! asset-balance (account-list-balance asset-accounts date-secs)) - (gnc:report-percent-done 6) - ;; sum liabilities - (set! neg-liability-balance (account-list-balance liability-accounts date-secs)) - (set! liability-balance - (gnc:make-commodity-collector)) - (liability-balance 'minusmerge - neg-liability-balance - #f) - (gnc:report-percent-done 8) - ;; sum equities - (set! neg-equity-balance (account-list-balance equity-accounts date-secs)) - (set! equity-balance (gnc:make-commodity-collector)) - (equity-balance 'minusmerge - neg-equity-balance - #f) - (gnc:report-percent-done 12) - ;; sum any retained earnings - (set! neg-retained-earnings (account-list-balance income-expense-accounts date-secs)) - (set! retained-earnings (gnc:make-commodity-collector)) - (retained-earnings 'minusmerge - neg-retained-earnings - #f) - (set! neg-trading-balance (account-list-balance trading-accounts date-secs)) - (set! trading-balance (gnc:make-commodity-collector)) - (trading-balance 'minusmerge - neg-trading-balance - #f) - (gnc:report-percent-done 14) - ;; sum any unrealized gains - ;; - ;; Hm... unrealized gains.... This is when you purchase - ;; something and its value increases/decreases (prior to - ;; your selling it) and you have to reflect that on your - ;; balance sheet. - ;; + (gnc:account-get-comm-value-at-date account reportdate #f)))) + + ;; If you ask me, any outstanding(TM) retained earnings and + ;; unrealized gains should be added directly into equity, + ;; since the balance sheet does not have a period over which + ;; to report earnings.... See discussion on bugzilla. + (gnc:report-percent-done 4) + + ;; sum assets + (set! asset-balance (account-list-balance asset-accounts date-secs)) + (gnc:report-percent-done 6) + + ;; sum liabilities + (set! liability-balance + (gnc:collector- (account-list-balance liability-accounts date-secs))) + (gnc:report-percent-done 8) + + ;; sum equities + (set! equity-balance + (gnc:collector- (account-list-balance equity-accounts date-secs))) + (gnc:report-percent-done 12) + + ;; sum any retained earnings + (set! retained-earnings + (gnc:collector- (account-list-balance income-expense-accounts date-secs))) + (set! trading-balance + (gnc:collector- (account-list-balance trading-accounts date-secs))) + (gnc:report-percent-done 14) + + ;; sum any unrealized gains + ;; + ;; Hm... unrealized gains.... This is when you purchase + ;; something and its value increases/decreases (prior to + ;; your selling it) and you have to reflect that on your + ;; balance sheet. + ;; ;; Don't calculate unrealized gains if we were asked not to. If we are using ;; commodity trading accounts they will automatically accumulate the gains. - (set! unrealized-gain-collector (gnc:make-commodity-collector)) - (if compute-unrealized-gains? - (let ((asset-basis (gnc:accounts-get-comm-total-assets - asset-accounts - get-total-value-fn)) - (neg-liability-basis (gnc:accounts-get-comm-total-assets - liability-accounts - get-total-value-fn))) - ;; Calculate unrealized gains from assets. - (unrealized-gain-collector 'merge asset-balance #f) - (unrealized-gain-collector 'minusmerge asset-basis #f) - ;; Combine with unrealized gains from liabilities - (unrealized-gain-collector 'merge neg-liability-balance #f) - (unrealized-gain-collector 'minusmerge neg-liability-basis #f))) + (set! unrealized-gain-collector + (if compute-unrealized-gains? + (gnc:collector- asset-balance + liability-balance + (gnc:accounts-get-comm-total-assets + (append asset-accounts liability-accounts) + get-total-value-fn)) + (gnc:collector+))) ;; calculate equity and liability+equity totals - (set! total-equity-balance (gnc:make-commodity-collector)) - (total-equity-balance 'merge - equity-balance - #f) - (total-equity-balance 'merge - retained-earnings - #f) - (total-equity-balance 'merge - unrealized-gain-collector - #f) - (total-equity-balance 'merge - trading-balance - #f) - (gnc:report-percent-done 18) - (set! liability-plus-equity (gnc:make-commodity-collector)) - (liability-plus-equity 'merge - liability-balance - #f) - (liability-plus-equity 'merge - total-equity-balance - #f) - - (gnc:report-percent-done 20) - (gnc:report-percent-done 30) + (set! total-equity-balance + (gnc:collector+ equity-balance retained-earnings + unrealized-gain-collector trading-balance)) + (set! liability-plus-equity + (gnc:collector+ liability-balance total-equity-balance)) + (gnc:report-percent-done 30) ;;; Arbitrarily declare that the building of these tables ;;; takes 50% of the total amount of time spent building