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)