diff --git a/src/report/report-system/html-acct-table.scm b/src/report/report-system/html-acct-table.scm index 29106fef2c..c95ea3b76e 100644 --- a/src/report/report-system/html-acct-table.scm +++ b/src/report/report-system/html-acct-table.scm @@ -679,26 +679,31 @@ shares)))) splits)) - (merge-splits (gnc:account-get-trans-type-splits-interval - accts #f start-date end-date) - #f) - (cond - ((equal? balance-mode 'post-closing) #t) - - ((equal? balance-mode 'pre-closing) - (merge-splits (gnc:account-get-trans-type-splits-interval - accts closing-pattern start-date end-date) - #t)) - - ((equal? balance-mode 'pre-adjusting) - (merge-splits (gnc:account-get-trans-type-splits-interval - accts closing-pattern start-date end-date) - #t) - (merge-splits (gnc:account-get-trans-type-splits-interval - accts adjusting-pattern start-date end-date) - #t)) - (else (begin (display "you fail it") - (newline)))) + ;; If you pass a null account list to gnc:account-get-trans-type-splits-interval + ;; it returns splits from all accounts rather than from no accounts. This is + ;; probably a bug but we'll work around it for now. + (if (not (null? accts)) + (begin + (merge-splits (gnc:account-get-trans-type-splits-interval + accts #f start-date end-date) + #f) + (cond + ((equal? balance-mode 'post-closing) #t) + + ((equal? balance-mode 'pre-closing) + (merge-splits (gnc:account-get-trans-type-splits-interval + accts closing-pattern start-date end-date) + #t)) + + ((equal? balance-mode 'pre-adjusting) + (merge-splits (gnc:account-get-trans-type-splits-interval + accts closing-pattern start-date end-date) + #t) + (merge-splits (gnc:account-get-trans-type-splits-interval + accts adjusting-pattern start-date end-date) + #t)) + (else (begin (display "you fail it") + (newline)))))) hash-table ) diff --git a/src/report/standard-reports/balance-sheet.scm b/src/report/standard-reports/balance-sheet.scm index 42da4f5f15..f16d0e2178 100644 --- a/src/report/standard-reports/balance-sheet.scm +++ b/src/report/standard-reports/balance-sheet.scm @@ -507,8 +507,13 @@ neg-retained-earnings #f) (set! neg-trading-balance - (gnc:accountlist-get-comm-balance-at-date - trading-accounts date-tp)) + ;; If you pass a null account list to gnc:accountlist-get-comm-balance-at-date + ;; it calculates a balance for all accounts, instead of no accounts. This is + ;; probably a bug, but for now we'll work around it. + (if (null? trading-accounts) + (gnc:make-commodity-collector) + (gnc:accountlist-get-comm-balance-at-date + trading-accounts date-tp))) (set! trading-balance (gnc:make-commodity-collector)) (trading-balance 'minusmerge neg-trading-balance