From 4e88b8cb6c2c2715522a9fe0d5e636c0286530a5 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sat, 18 Aug 2018 16:19:43 -0700 Subject: [PATCH] Remove the number-collector. It is redundant and incorrect since gnc-numeric was replaced with Scheme rationals in the report code. --- gnucash/report/business-reports/receipt.scm | 2 +- .../report/business-reports/taxinvoice.scm | 2 +- .../report-system/commodity-utilities.scm | 22 +++++----- .../report/report-system/report-utilities.scm | 43 +++++-------------- 4 files changed, 23 insertions(+), 46 deletions(-) diff --git a/gnucash/report/business-reports/receipt.scm b/gnucash/report/business-reports/receipt.scm index 7aea7661c0..780dbf0ee0 100644 --- a/gnucash/report/business-reports/receipt.scm +++ b/gnucash/report/business-reports/receipt.scm @@ -46,7 +46,7 @@ (if (or (not taxable) (eq? taxtable '())) (display " ") (let* ((amttot (gnc:make-commodity-collector)) - (pctot (gnc:make-number-collector)) + (pctot (gnc:make-value-collector)) (entries (gncTaxTableGetEntries taxtable)) (amt? #f) ; becomes #t if any entries are amounts (pc? #f)) ; becomes #t if any entries are percentages diff --git a/gnucash/report/business-reports/taxinvoice.scm b/gnucash/report/business-reports/taxinvoice.scm index 326ce4a110..685afdbc6b 100644 --- a/gnucash/report/business-reports/taxinvoice.scm +++ b/gnucash/report/business-reports/taxinvoice.scm @@ -53,7 +53,7 @@ (if (or (not taxable) (eq? taxtable '())) (display " ") (let* ((amttot (gnc:make-commodity-collector)) - (pctot (gnc:make-number-collector)) + (pctot (gnc:make-value-collector)) (entries (gncTaxTableGetEntries taxtable)) (amt? #f) ; becomes #t if any entries are amounts (pc? #f)) ; becomes #t if any entries are percentages diff --git a/gnucash/report/report-system/commodity-utilities.scm b/gnucash/report/report-system/commodity-utilities.scm index 4238d1a4ec..987f52773e 100644 --- a/gnucash/report/report-system/commodity-utilities.scm +++ b/gnucash/report/report-system/commodity-utilities.scm @@ -404,8 +404,8 @@ ;; numeric-collectors, where [abc] are numeric-collectors. See the ;; real variable names below. (define (make-newrate unknown-coll un->known-coll known-pair) - (let ((a (gnc:make-number-collector)) - (b (gnc:make-number-collector))) + (let ((a (gnc:make-value-collector)) + (b (gnc:make-value-collector))) (a 'add (unknown-coll 'total #f)) (b 'add ;; round to (at least) 8 significant digits @@ -448,7 +448,7 @@ ;; If this is an Euro currency, create the ;; pair of appropriately exchanged amounts. (if euro-monetary - (let ((a (gnc:make-number-collector))) + (let ((a (gnc:make-value-collector))) (a 'add (gnc:gnc-monetary-amount euro-monetary)) (list report-commodity @@ -578,8 +578,8 @@ ;; entry doesn't exist in comm-list ;; create sub-alist from scratch (let ((pair (list transaction-comm - (cons (gnc:make-number-collector) - (gnc:make-number-collector))))) + (cons (gnc:make-value-collector) + (gnc:make-value-collector))))) ((caadr pair) 'add value-amount) ((cdadr pair) 'add share-amount) (set! comm-list (list account-comm (list pair))) @@ -603,8 +603,8 @@ (begin (set! pair (list (car foreignlist) - (cons (gnc:make-number-collector) - (gnc:make-number-collector)))) + (cons (gnc:make-value-collector) + (gnc:make-value-collector)))) (set! comm-list (list (car comm-list) (cons pair (cadr comm-list)))) @@ -665,8 +665,8 @@ (if (not comm-list) ;; no, create sub-alist from scratch (let ((pair (list transaction-comm - (cons (gnc:make-number-collector) - (gnc:make-number-collector))))) + (cons (gnc:make-value-collector) + (gnc:make-value-collector))))) ((caadr pair) 'add value-amount) ((cdadr pair) 'add share-amount) (set! comm-list (list account-comm (list pair))) @@ -690,8 +690,8 @@ (begin (set! pair (list (car foreignlist) - (cons (gnc:make-number-collector) - (gnc:make-number-collector)))) + (cons (gnc:make-value-collector) + (gnc:make-value-collector)))) (set! comm-list (list (car comm-list) (cons pair (cadr comm-list)))) diff --git a/gnucash/report/report-system/report-utilities.scm b/gnucash/report/report-system/report-utilities.scm index dbe56c6b9e..3ce125522e 100644 --- a/gnucash/report/report-system/report-utilities.scm +++ b/gnucash/report/report-system/report-utilities.scm @@ -263,28 +263,6 @@ (define (gnc:value-collector-total collector) (collector 'total #f)) - -;; Same as above but with gnc:numeric -(define (gnc:make-number-collector) - (let ;;; values - ((value 0)) - (lambda (action amount) ;;; Dispatch function - (case action - ((add) (if (number? amount) - (set! value (gnc-numeric-add amount value - GNC-DENOM-AUTO GNC-DENOM-LCD)) - (gnc:warn - "gnc:Number-collector called with wrong argument: " - amount))) - ((total) value) - (else (gnc:warn "bad gnc:number-collector action: " action)))))) - -;; Replace all 'action function calls by the normal functions below. -(define (gnc:number-collector-add collector amount) - (collector 'add amount)) -(define (gnc:number-collector-total collector) - (collector 'total #f)) - ;; A commodity collector. This is intended to handle multiple ;; currencies' amounts. The amounts are accumulated via 'add, the ;; result can be fetched via 'format. This used to work with strings @@ -337,12 +315,12 @@ (gnc-commodity-get-fraction commodity) GNC-RND-ROUND))) (if (not pair) (begin - ;; create a new pair, using the gnc:number-collector - (set! pair (list commodity (gnc:make-number-collector))) + ;; create a new pair, using the gnc:value-collector + (set! pair (list commodity (gnc:make-value-collector))) ;; and add it to the alist (set! commoditylist (cons pair commoditylist)))) ;; add the value - (gnc:number-collector-add (cadr pair) rvalue))) + (gnc:value-collector-add (cadr pair) rvalue))) ;; helper function to walk an association list, adding each ;; (commodity -> collector) pair to our list at the appropriate @@ -351,15 +329,14 @@ (cond ((null? clist) '()) (else (add-commodity-value (caar clist) - (gnc:number-collector-total (cadar clist))) + (gnc:value-collector-total (cadar clist))) (add-commodity-clist (cdr clist))))) (define (minus-commodity-clist clist) (cond ((null? clist) '()) (else (add-commodity-value (caar clist) - (gnc-numeric-neg - (gnc:number-collector-total (cadar clist)))) + (- (gnc:value-collector-total (cadar clist)))) (minus-commodity-clist (cdr clist))))) ;; helper function walk the association list doing a callback on @@ -367,7 +344,7 @@ (define (process-commodity-list fn clist) (map (lambda (pair) (fn (car pair) - (gnc:number-collector-total (cadr pair)))) + (gnc:value-collector-total (cadr pair)))) clist)) ;; helper function which is given a commodity and returns, if @@ -380,8 +357,8 @@ (gnc-numeric-zero) (if sign? (gnc-numeric-neg - (gnc:number-collector-total (cadr pair))) - (gnc:number-collector-total (cadr pair)))) + (gnc:value-collector-total (cadr pair))) + (gnc:value-collector-total (cadr pair)))) '())))) ;; helper function which is given a commodity and returns, if @@ -394,8 +371,8 @@ (gnc-numeric-zero) (if sign? (gnc-numeric-neg - (gnc:number-collector-total (cadr pair))) - (gnc:number-collector-total (cadr pair))))))) + (gnc:value-collector-total (cadr pair))) + (gnc:value-collector-total (cadr pair))))))) ;; Dispatch function (lambda (action commodity amount)