gnucash master: Multiple changes pushed

Christopher Lam clam at
Mon Dec 2 10:44:06 EST 2019

Updated	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	 via (commit)
	from (commit)

commit ce32117f70dedaac18021430680d279b6fe891e1
Author: Christopher Lam <christopher.lck at>
Date:   Mon Dec 2 23:38:21 2019 +0800

    [budget] use gnc:html-markup-ol

commit 948a5f45882d44fd4181296b77dadf99e12582fb
Merge: cbc8cc8d8 7833c5989
Author: Christopher Lam <christopher.lck at>
Date:   Mon Dec 2 23:38:15 2019 +0800

    Merge branch 'maint'

commit 7833c59896b2d2705084732407277778ebb8ed85
Author: Christopher Lam <christopher.lck at>
Date:   Mon Dec 2 16:38:25 2019 +0800

    Bug 724219 - Customer Summary includes Closing Entries when reporting across the end of year

commit 7ad4c4afbdd50dec5751f93d5e25bea39c806e25
Author: Christopher Lam <christopher.lck at>
Date:   Mon Dec 2 18:19:28 2019 +0800

    [html-acct-table] compact gnc:html-acct-table-get-cell

commit 8bf54ebfc1c2da11bb1c16c41ed12d1e5ae2b2c8
Author: Christopher Lam <christopher.lck at>
Date:   Mon Dec 2 08:50:56 2019 +0800

    [html-acct-table] compact traverse-accounts!
    * convert for-each to named-let
    * allows reduction of set! calls

commit ab20071d828c6541cebb233954cd748b32b1f2ba
Author: Christopher Lam <christopher.lck at>
Date:   Mon Dec 2 08:26:01 2019 +0800

    [report-utilities] strify hash-table to Hash(kvp-list)
    Hash tables are strified to "Hash()" "Hash(key=value,...)"

commit 2333b6db271ad50bf5a3c5825990647b73077913
Author: Christopher Lam <christopher.lck at>
Date:   Sun Dec 1 23:10:22 2019 +0800

    [reports] avoid "<br/>" literal: use gnc:multiline-to-html-text

commit 3ee434edf6658fde0d79bceb0516e7789b6cd230
Author: Christopher Lam <christopher.lck at>
Date:   Sun Dec 1 22:17:37 2019 +0800

    [new-aging] use gnc:html-markup-ol

commit 4aa17ef65bb0bd1cec3be632fc8af54769169431
Author: Christopher Lam <christopher.lck at>
Date:   Sun Dec 1 22:17:19 2019 +0800

    [html-text][API] gnc:html-markup-ol, gnc:multiline-to-html-text
    * (gnc:html-markup-ol lst)
      creates an ordered list
    * gnc:multiline-to-html-text: creates html-text with <br/> elements
      "line1\nline2\nline3" ->
      (gnc:make-html-text "line1" (gnc:html-markup-br)
                          "line2" (gnc:html-markup-br)

commit a52d60f48e738ee4c91bfa03887dea1014f104fa
Author: Christopher Lam <christopher.lck at>
Date:   Sun Dec 1 22:30:45 2019 +0800

    [business-reports] compact gnc:owner-report-text

commit df1f033f4156c3a3b068591350c0156f74711868
Author: Geert Janssens <geert at>
Date:   Sat Nov 30 13:20:08 2019 +0100

    bindings-python - drop references to gnucash-env
    We no longer ship a gnucash-env script, directly use python(3) instead

commit 0b11a073f0d2f14ea54dbec50ca18ca7d28b4d5f
Merge: c21bb66d6 34c14b44a
Author: Christopher Lam <christopher.lck at>
Date:   Sat Nov 30 16:34:48 2019 +0800

    Merge branch 'maint' of git:// into maint

commit c21bb66d689972042c95694801f9932e8b982a97
Author: Christopher Lam <christopher.lck at>
Date:   Thu Nov 28 22:42:31 2019 +0800

    [balsheet-pnl] refactor common account-balance-list adder
    * use fold, more efficient, removes the need for intermediate list
      (map cdr (filter filter-fn accounts-balances)): filter will create 1
      intermediate list, which is passed as an argument to map which
      creates the final list. using fold will remove the need for
      intermediate list.
    * list->vector for O(1) access

commit def0caa011c32fcb77d40d28527a4d6d174bc22c
Author: Christopher Lam <christopher.lck at>
Date:   Thu Nov 28 12:29:47 2019 +0800

    [balsheet-pnl] use and-let*, reindent

commit e97b78df80251ef21eb268575ae80e08a0fd151e
Author: Christopher Lam <christopher.lck at>
Date:   Thu Nov 28 22:41:47 2019 +0800

    [balsheet-pnl] fix: single-date balsheet missed printing date

commit 54c4575f27a6b6033aac147ee542b2fc6943cc3a
Author: Christopher Lam <christopher.lck at>
Date:   Thu Nov 28 12:17:34 2019 +0800

    [balsheet-pnl] fix: hide Equity sections when not needed
    * If currencies are not converted, Unrealized Gains are
    meaningless. Hide them.
    * If there are no income/expense accounts, retained earnings will be
    nil. Remove row.

commit 34c14b44a9f98035206465ab3543d43bc06ddd3d
Author: Andrey Legayev <andrey at>
Date:   Fri Nov 29 18:32:50 2019 +0200

    Remove not needed semicolons in Python bindings

commit 7853f5a24a4ed6e5cf32fdf6e5eba217a1e312cd
Author: John Ralls <jralls at>
Date:   Thu Nov 28 09:17:59 2019 -0800

    Ignore trailing noise on imported transaction account numbers.
    AQBanking6 uses a separate method for retrieving account numbers
    for account info and transactions, where the transactions method can
    have additional characters, most often the ISO4217 currency code. That
    results in match failures when importing.
    As a work-around, compare only the length of the account-info-generated
    online id when comparing it to the transaction-generated one.
    Note that this is only a partial solution: At least one German bank
    also appends characters to the transaction-generated bank id and that
    will still cause the match to fail.

commit 1af8e272c7603cd08bad11a2f9374e234710783c
Author: Christopher Lam <christopher.lck at>
Date:   Tue Nov 26 21:33:33 2019 +0800

    [balsheet-pnl] unrealized-gain calculator is now much faster.
    Previous code would call gnc:account-get-comm-value-at-date for each
    report-date; this function generates qof-query, retrieves account
    splits, scans them to accumulate split->transaction->currency and
    split->value into a commodity collector.
    This commit will hook into the existing gnc:account-accumulate
    function, accumulating the same split->transaction->currency and
    split->value into a collector.
    Note we must make a copy of the accumulator at each report-date
    via (gnc:collector+ val-coll) otherwise the same val-coll will be
    mutated through subsequent splits.
    For a multicolumn balsheet, for every account with N old splits, and
    reporting on M report dates, it would run in O(N*M) time. This
    algorithm will hook into existing accumulator, i.e. I think O(1).
    The majority speed-up however comes from avoiding M qof-queries per

commit ff298b365f83346e68638abf530d022e8367c459
Author: Christopher Lam <christopher.lck at>
Date:   Tue Nov 26 18:18:14 2019 +0800

    [test-balsheet-pnl] add multicol-balsheet and multicol-pnl tests
    This commit adds tests for multicolumn balance-sheet and
    income-statement. It mainly tests:
    * multiple periods
    * unrealized gains calculators
    * amounts/balances are predictable

commit 88644451ef29089c139a3ca643d3e5fbda04f4b6
Author: Christopher Lam <christopher.lck at>
Date:   Tue Nov 26 18:11:15 2019 +0800

    [test-balsheet-pnl] separate balance-sheet and pnl tests
    This is in preparation for balsheet-pnl tests. Note all tests use same
    data -- there's no (teardown).

commit 119fdc368b41d0a1207e9d281deddcfe08e52d59
Author: Christopher Lam <christopher.lck at>
Date:   Mon Nov 25 22:52:36 2019 +0800

    [report-utilities] can strify records
    srfi-9 records can contain complex objects eg lists/vectors also
    gnc:monetary or gnc:html-table objects. previously gnc:strify would
    use the default printer; this commit modifies so that they are
    example output; a :col-datum record from balsheet-pnl. the record's
    split-balance contains a $0 monetary object.
    Rec::col-datum{last-split=#f, split-balance=[$0.00]}
    this last pretty-printer must be the last one before object->string,
    because we want previous printers which may be records too
    eg. monetary->str etc to use their own printer.

Summary of changes:
 .../python/example_scripts/     |   6 +-
 .../              |   8 +-
 bindings/python/example_scripts/    |   5 +-
 .../example_scripts/      |   5 +-
 .../example_scripts/rest-api/     |  16 +-
 .../example_scripts/      |   4 +-
 .../example_scripts/       |   2 +-
 .../example_scripts/  |   2 +-
 bindings/python/                    |   6 +-
 gnucash/import-export/import-account-matcher.c     |   3 +-
 gnucash/report/html-acct-table.scm                 | 365 +++++-----
 gnucash/report/html-text.scm                       |   3 +
 gnucash/report/html-utilities.scm                  |  34 +-
 gnucash/report/report-utilities.scm                |  24 +
 gnucash/report/report.scm                          |   2 +
 gnucash/report/reports/standard/balsheet-pnl.scm   | 252 ++++---
 gnucash/report/reports/standard/budget.scm         |   5 +-
 .../report/reports/standard/customer-summary.scm   |  15 +-
 gnucash/report/reports/standard/invoice.scm        |  10 +-
 gnucash/report/reports/standard/job-report.scm     |  36 +-
 gnucash/report/reports/standard/new-aging.scm      |   6 +-
 gnucash/report/reports/standard/owner-report.scm   |  39 +-
 .../reports/standard/test/test-balsheet-pnl.scm    | 731 ++++++++++++---------
 gnucash/report/test/test-report-utilities.scm      |  10 +
 24 files changed, 821 insertions(+), 768 deletions(-)

More information about the gnucash-patches mailing list