gnucash stable: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Sat Sep 13 04:26:05 EDT 2025
Updated via https://github.com/Gnucash/gnucash/commit/2798ed7e (commit)
via https://github.com/Gnucash/gnucash/commit/28beaf15 (commit)
from https://github.com/Gnucash/gnucash/commit/6b74812f (commit)
commit 2798ed7e8e871edbdaab939a8f323de1dce63aa6
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Sat Sep 13 16:24:07 2025 +0800
[balsheet-pnl] use gnc:accounts-get-commodities-sorted
diff --git a/gnucash/report/reports/standard/balsheet-pnl.scm b/gnucash/report/reports/standard/balsheet-pnl.scm
index 0e1e42bfa2..de8ed13865 100644
--- a/gnucash/report/reports/standard/balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/balsheet-pnl.scm
@@ -779,7 +779,8 @@ also show overall period profit & loss."))
;; missing price, say so.
(get-exchange-rates-fn
(lambda (accounts col-idx)
- (let ((commodities (gnc:accounts-get-commodities accounts common-currency))
+ (let ((commodities (gnc:accounts-get-commodities-sorted
+ accounts common-currency))
(cell (gnc:make-html-text)))
(for-each
(lambda (commodity)
commit 28beaf1526a661b69808aa0bff4266288b93faaf
Author: Sherlock <119709043+agwekixj at users.noreply.github.com>
Date: Fri Sep 12 20:27:39 2025 -0700
Bug 799661 - Exchange Rate entries displayed in reports in an unstable order
Added gnc:accounts-get-commodities-sorted
diff --git a/gnucash/report/html-utilities.scm b/gnucash/report/html-utilities.scm
index 579dfd2e85..670e424b4b 100644
--- a/gnucash/report/html-utilities.scm
+++ b/gnucash/report/html-utilities.scm
@@ -257,7 +257,7 @@
(define (gnc:html-make-rates-table currency price-fn accounts)
(define (cell c) (gnc:make-html-table-cell/markup "number-cell" c))
(define table (gnc:make-html-table))
- (let lp ((comm-list (gnc:accounts-get-commodities accounts currency)) (entries 0))
+ (let lp ((comm-list (gnc:accounts-get-commodities-sorted accounts currency)) (entries 0))
(match comm-list
(()
(unless (zero? entries)
diff --git a/gnucash/report/report-utilities.scm b/gnucash/report/report-utilities.scm
index 7a39221f59..68160ffdeb 100644
--- a/gnucash/report/report-utilities.scm
+++ b/gnucash/report/report-utilities.scm
@@ -46,6 +46,7 @@
(export gnc:decompose-accountlist)
(export gnc:account-get-type-string-plural)
(export gnc:accounts-get-commodities)
+(export gnc:accounts-get-commodities-sorted)
(export gnc:get-current-account-tree-depth)
(export gnc:accounts-and-all-descendants)
(export gnc:make-value-collector)
@@ -227,6 +228,17 @@
(accum (gnc:accounts-get-commodities (cdr accounts) exclude-commodity)))
(if (or (equal? exclude-commodity comm) (member comm accum)) accum (cons comm accum)))))
+(define (gnc:accounts-get-commodities-sorted accounts exclude-commodity)
+ (stable-sort!
+ (stable-sort!
+ (gnc:accounts-get-commodities accounts exclude-commodity)
+ (lambda (a b)
+ (gnc:string-locale<?
+ (gnc-commodity-get-nice-symbol a) (gnc-commodity-get-nice-symbol b))))
+ (lambda (a b)
+ (gnc:string-locale<?
+ (gnc-commodity-get-namespace a) (gnc-commodity-get-namespace b)))))
+
;; Returns the depth of the current account hierarchy, that is, the
;; maximum level of subaccounts in the tree
(define (gnc:get-current-account-tree-depth)
diff --git a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
index 64428a09e9..8c92cf8ad1 100644
--- a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm
@@ -332,7 +332,7 @@
'("#200.00" "$340.00" "30. FUNDS" "$14,424.52" "$106,709.00" "$106,709.00")
(sxml->table-row-col sxml 1 3 6))
(test-equal "show-rates enabled"
- '("1. FUNDS" "$480 + 85/104" "#1.00" "$1.70")
+ '("#1.00" "$1.70" "1. FUNDS" "$480 + 85/104")
(sxml->table-row-col sxml 2 #f #f)))
;;make-multilevel
Summary of changes:
gnucash/report/html-utilities.scm | 2 +-
gnucash/report/report-utilities.scm | 12 ++++++++++++
gnucash/report/reports/standard/balsheet-pnl.scm | 3 ++-
gnucash/report/reports/standard/test/test-balsheet-pnl.scm | 2 +-
4 files changed, 16 insertions(+), 3 deletions(-)
More information about the gnucash-changes
mailing list