r23029 - gnucash/trunk/src/report/report-system - reports: cleaned up a few methods in report-collectors

Geert Janssens gjanssens at code.gnucash.org
Sun Jun 2 06:34:27 EDT 2013


Author: gjanssens
Date: 2013-06-02 06:34:27 -0400 (Sun, 02 Jun 2013)
New Revision: 23029
Trac: http://svn.gnucash.org/trac/changeset/23029

Modified:
   gnucash/trunk/src/report/report-system/report-collectors.scm
Log:
reports: cleaned up a few methods in report-collectors

Author:    Peter Broadbery <p.broadbery at gmail.com>

Modified: gnucash/trunk/src/report/report-system/report-collectors.scm
===================================================================
--- gnucash/trunk/src/report/report-system/report-collectors.scm	2013-06-02 10:33:59 UTC (rev 23028)
+++ gnucash/trunk/src/report/report-system/report-collectors.scm	2013-06-02 10:34:27 UTC (rev 23029)
@@ -28,6 +28,9 @@
 (define (split->date split)
   (xaccTransGetDate (xaccSplitGetParent split)))
 
+(define (split->account split)
+  (xaccSplitGetAccount split))
+
 (define (split-closing? split)
   (xaccTransGetIsClosingTxn (xaccSplitGetParent split)))
 
@@ -59,25 +62,13 @@
 ;; into a collector structure.  This way there's no O(n^2) or worse
 ;; complexity.
 
-(define (build-account-collector accounts account-destination-alist
-				 split->account
+(define (build-account-collector account-destination-alist
 				 per-account-collector)
   (let ((slotset (slotset-map-input split->account
 				    (alist->slotset account-destination-alist))))
     (collector-from-slotset slotset per-account-collector)))
 
-(define (filter-for-account the-account destination-alist split->account)
-  (let ((wanted-accounts (fold (lambda (pair acc)
-				 (if (equal? (cdr pair) the-account)
-				     (cons (car pair) acc)
-				     acc))
-			       '()
-			       destination-alist)))
-    (make-filter the-account
-		 (lambda (split)
-		   (member (split->account split) wanted-accounts)))))
-
-(define (build-date-collector split->date dates per-date-collector)
+(define (build-date-collector dates per-date-collector)
   (let* ((date-vector (list->vector dates))
 	 (slotset (make-slotset (lambda (split)
 				  (let* ((date (split->date split))
@@ -90,13 +81,12 @@
 				dates)))
     (collector-from-slotset slotset per-date-collector)))
 
-(define (build-category-by-account-collector accounts account-destination-alist dates cell-accumulator result-collector)
-  (build-account-collector accounts account-destination-alist
-			   xaccSplitGetAccount
+(define (build-category-by-account-collector account-destination-alist dates cell-accumulator result-collector)
+  (build-account-collector account-destination-alist
 			   (lambda (account)
 			     (collector-reformat (lambda (result)
 						   (list account (result-collector account result)))
-						 (build-date-collector split->date dates
+						 (build-date-collector dates
 								       (lambda (date)
 									 (cell-accumulator account date)))))))
 
@@ -108,12 +98,9 @@
 (define (category-by-account-report-intervals datepairs account-alist split-collector result-collector progress-range)
   (let* ((min-date (car (list-min-max (map first datepairs) gnc:timepair-lt)))
 	  (max-date (cdr (list-min-max (map second datepairs) gnc:timepair-lt)))
-	  (dest-accounts (collector-add-all (make-eq-set-collector '())
-					    (map cdr account-alist)))
 	  (splits (splits-up-to (map car account-alist)
 			      min-date max-date))
-	  (collector (build-category-by-account-collector dest-accounts
-							 account-alist datepairs
+	  (collector (build-category-by-account-collector account-alist datepairs
 							 split-collector
 							 result-collector)))
      (collector-add-all (collector-do (collector-where (predicate-not split-closing?) collector)
@@ -128,11 +115,9 @@
 						 (pairs-so-far (cdr acc)))
 					     (cons next (cons (list prev next) pairs-so-far))))
 					 (cons min-date '()) dates))))
-	 (dest-accounts (collector-add-all (make-eq-set-collector '())
-					   (map cdr account-alist)))
 	 (splits (splits-up-to (map car account-alist)
 			       min-date max-date))
-	 (collector (build-category-by-account-collector dest-accounts account-alist datepairs split-collector
+	 (collector (build-category-by-account-collector account-alist datepairs split-collector
 							 result-collector)))
     (collector-add-all (collector-do (collector-where (predicate-not split-closing?) collector)
 				     (progress-collector (length splits) progress-range))



More information about the gnucash-changes mailing list