diff --git a/gnucash/report/standard-reports/category-barchart.scm b/gnucash/report/standard-reports/category-barchart.scm index c217a138cd..b477ad282a 100644 --- a/gnucash/report/standard-reports/category-barchart.scm +++ b/gnucash/report/standard-reports/category-barchart.scm @@ -355,18 +355,19 @@ developing over time")) (define account-balances-alist (map (lambda (acc) - (let ((ignore-closing? (not (gnc:account-is-inc-exp? acc)))) + (let* ((comm (xaccAccountGetCommodity acc)) + (split->elt (if (reverse-balance? acc) + (lambda (s) + (gnc:make-gnc-monetary + comm (- (xaccSplitGetNoclosingBalance s)))) + (lambda (s) + (gnc:make-gnc-monetary + comm (xaccSplitGetNoclosingBalance s)))))) (cons acc - (map - (if (reverse-balance? acc) gnc:monetary-neg identity) - (gnc:account-get-balances-at-dates - acc dates-list - #:split->amount - (lambda (s) - (and (or ignore-closing? - (not (xaccTransGetIsClosingTxn - (xaccSplitGetParent s)))) - (xaccSplitGetAmount s)))))))) + (gnc:account-accumulate-at-dates + acc dates-list + #:split->elt split->elt + #:nosplit->elt (gnc:make-gnc-monetary comm 0))))) ;; all selected accounts (of report-specific type), *and* ;; their descendants (of any type) need to be scanned. (gnc:accounts-and-all-descendants accounts))) diff --git a/gnucash/report/standard-reports/net-charts.scm b/gnucash/report/standard-reports/net-charts.scm index 396103b2df..c3ce5cb03f 100644 --- a/gnucash/report/standard-reports/net-charts.scm +++ b/gnucash/report/standard-reports/net-charts.scm @@ -251,16 +251,14 @@ ;; gets an account alist balances ;; output: (list acc bal0 bal1 bal2 ...) (define (account->balancelist account) - (let ((ignore-closing? (not (gnc:account-is-inc-exp? account)))) + (let ((comm (xaccAccountGetCommodity account))) (cons account - (gnc:account-get-balances-at-dates + (gnc:account-accumulate-at-dates account dates-list - #:split->amount - (lambda (s) - (and (or ignore-closing? - (not (xaccTransGetIsClosingTxn - (xaccSplitGetParent s)))) - (xaccSplitGetAmount s))))))) + #:split->elt (lambda (s) + (gnc:make-gnc-monetary + comm (xaccSplitGetNoclosingBalance s))) + #:nosplit->elt (gnc:make-gnc-monetary comm 0))))) ;; This calculates the balances for all the 'account-balances' for ;; each element of the list 'dates'. Uses the collector->monetary