From f697eb2f01daa7259c88d9e36e0b4222a8a98c91 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Wed, 5 Dec 2018 15:37:07 +0800 Subject: [PATCH] [transaction] convert nested if/then/else -> cond This nested if/then/else snippet is more suited to (cond) syntax. --- .../report/standard-reports/transaction.scm | 64 ++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/gnucash/report/standard-reports/transaction.scm b/gnucash/report/standard-reports/transaction.scm index b7823e3b79..f6e949270d 100644 --- a/gnucash/report/standard-reports/transaction.scm +++ b/gnucash/report/standard-reports/transaction.scm @@ -1389,38 +1389,42 @@ be excluded from periodic reporting.") (reverse result) (let* ((mon (retrieve-commodity (car columns) commodity)) (this-column (and mon (gnc:gnc-monetary-amount mon)))) - (if (car merge-list) - ;; We're merging. If a subtotal exists, send to next loop iteration. - (loop #t - this-column + (cond + + ;; We're merging. If a subtotal exists, send to next loop iteration. + ((car merge-list) + (loop #t + this-column + (cdr columns) + (cdr merge-list) + result)) + + ;; We're completing merge. Display debit-credit in correct column. + (merging? + (let* ((sum (and (or last-column this-column) + (- (or last-column 0) (or this-column 0)))) + (sum-table-cell (and sum (gnc:make-html-table-cell/markup + "total-number-cell" + (gnc:make-gnc-monetary + commodity (abs sum))))) + (debit-col (and sum (positive? sum) sum-table-cell)) + (credit-col (and sum (not (positive? sum)) sum-table-cell))) + (loop #f + #f (cdr columns) (cdr merge-list) - result) - (begin - (if merging? - ;; We're completing merge. Display debit-credit in correct column. - (let* ((sum (and (or last-column this-column) - (- (or last-column 0) (or this-column 0)))) - (sum-table-cell (and sum (gnc:make-html-table-cell/markup - "total-number-cell" - (gnc:make-gnc-monetary - commodity (abs sum))))) - (debit-col (and sum (positive? sum) sum-table-cell)) - (credit-col (and sum (not (positive? sum)) sum-table-cell))) - (loop #f - #f - (cdr columns) - (cdr merge-list) - (cons* (or credit-col "") - (or debit-col "") - result))) - ;; Default; not merging nor completed merge. Just add amount to result. - (loop #f - #f - (cdr columns) - (cdr merge-list) - (cons (gnc:make-html-table-cell/markup "total-number-cell" mon) - result))))))))) + (cons* (or credit-col "") + (or debit-col "") + result)))) + + ;; Not merging nor completed merge. Just add amount to result. + (else + (loop #f + #f + (cdr columns) + (cdr merge-list) + (cons (gnc:make-html-table-cell/markup "total-number-cell" mon) + result)))))))) ;; take the first column of each commodity, add onto the subtotal grid (set! grid (grid-add grid row col