From 526fd82ca8bc5b2e05c40233c147ddd2c4e1a97a Mon Sep 17 00:00:00 2001 From: Peter Broadbery Date: Mon, 9 Nov 2015 20:42:43 +0000 Subject: [PATCH] cashflow: use the much faster gnc:account-get-trans-type-splits-interval This retrieves all the splits we need, and much faster. --- src/report/standard-reports/cash-flow.scm | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/report/standard-reports/cash-flow.scm b/src/report/standard-reports/cash-flow.scm index f2fb9c6011..2f8d385c4c 100644 --- a/src/report/standard-reports/cash-flow.scm +++ b/src/report/standard-reports/cash-flow.scm @@ -405,7 +405,8 @@ (money-out-alist '()) (money-out-collector (gnc:make-commodity-collector)) - (splits-to-do (gnc:accounts-count-splits accounts)) + (all-splits (gnc:account-get-trans-type-splits-interval accounts '() from-date-tp to-date-tp)) + (splits-to-do (length all-splits)) (seen-split-list '()) (work-done 0)) @@ -499,12 +500,8 @@ ) ) - (define (calc-money-in-out-internal accounts-internal) - (if (not (null? accounts-internal)) - (let* ((current (car accounts-internal)) - (rest (cdr accounts-internal))) - (for-each work-per-split (xaccAccountGetSplitList current)) - (calc-money-in-out-internal rest)))) + (define (calc-money-in-out-internal accounts) + (for-each work-per-split all-splits)) ;; And calculate (calc-money-in-out-internal accounts)