Sherlock, What’s this part for? It seems irrelevant to Chang Wang’s example as that doesn’t use trading accounts: - - ;; However skip splits in trading accounts as these counterbalance - ;; the actual value and share amounts back to zero - ((eqv? (xaccAccountGetType (xaccSplitGetAccount (car comm-splits))) - ACCT-TYPE-TRADING) - (loop (cdr comm-splits) - sumlist)) I guess you did a bisect to arrive at the 2019 change date. There were 8 changes to gnc-commodity-utils.scm that day. Which one was the culprit?
Regards, John Ralls > On Aug 23, 2025, at 20:18, Sherlock Holmes <[email protected]> wrote: > > I concur. > > There are significant differences in the implementation between > gnc:get-exchange-totals and gnc:get-exchange-cost-totals that I believe are > the root cause of the issue. These differences appear to date back to May 3, > 2019. As a WAG, I modified gnc:get-exchange-cost-totals to match > gnc:get-exchange-totals in the attached patch and the issue you've raised > appears to be resolved. I have not done any further testing, > > Regards, > > Sherlock > > > > On 8/23/25 2:20 PM, Chang Wang wrote: >> Thanks for the reminder. I'll post to the user list in the future. >> However, in the above example, there is no gain or loss due to currency >> exchange as the exchange rates are set to 1 so no currency gain/loss needs >> to be booked. And the price source is set to be Last up through report date >> instead of average cost. Therefore, I think these are different issues. >> >> On Sat, Aug 23, 2025 at 3:51 PM John Ralls <[email protected] >> <mailto:[email protected]>> wrote: >>> Oddly I just told somebody on IRC the same answer: >>> https://bugs.gnucash.org/show_bug.cgi?id=797796 >>> >>> Unless you’re willing to submit a PR, this is a user-list topic, so in the >>> future please use gnucash-user instead of gnucash-devel. >>> >>> Regards, >>> John Ralls >>> >>> > On Aug 23, 2025, at 1:43 PM, Chang Wang <[email protected] >>> > <mailto:[email protected]>> wrote: >>> > >>> > Hi all, >>> > I noticed an issue with the Trial Balance report when using stock trading >>> > and multiple currencies. Even when transactions are balanced, the Trial >>> > Balance report appears to break due to incorrect calculation of >>> > unrealized gains. >>> > >>> > I've attached an uncompressed minimal example to illustrate the problem. >>> > >>> > Steps to reproduce: >>> > Open the attached book. >>> > Generate a Trial Balance report with reporting currency set to USD, price >>> > source set to Last up through report date, and enable Show Foreign >>> > Currencies and Exchange Rates. >>> > >>> > Observed behavior: >>> > The report shows an Unrealized Gain of $20,800, which is incorrect. >>> > >>> > Expected behavior: >>> > The Unrealized Gain should be $200. >>> > >>> > Explanation: >>> > The example contains three transactions: >>> > 1) 08/02/2025 - Buy one stock for 10,200 JPY. >>> > 2) 08/03/2025 - Exchange 100,000 JPY for 100,000 USD. >>> > 3) 08/04/2025 - Buy one stock for 10,400 JPY. >>> > >>> > The JPY/USD rate is fixed at 1 on all days, so there should be no >>> > realized or unrealized currency gains. Stock prices are set at 10X00 JPY >>> > on 08/0X/2025, where X = 1, 2, 3, 4. >>> > >>> > Therefore, in USD reporting currency, the Trial Balance should show >>> > unrealized gains as: >>> > (10,400 * 2) - 10,200 - 10,400 = 200 JPY = 200 USD >>> > >>> > Notably, the Balance Sheet report does display the correct unrealized >>> > gain. And if transaction 3) or transaction 2) is removed, the Trial >>> > Balance turns out to be correct. >>> > >>> > I'm not familiar with Scheme, so I wasn't able to locate the problem in >>> > the source code. I also wasn't able to file a bug on Bugzilla, since the >>> > registration function appears to be broken. >>> > >>> > Thanks for your attention, >>> > Chang >>> > <tb.gnucash>_______________________________________________ >> >> _______________________________________________ >> gnucash-devel mailing list >> [email protected] <mailto:[email protected]> >> https://lists.gnucash.org/mailman/listinfo/gnucash-devel > <commodity-utilities.scm.patch>_______________________________________________ > gnucash-devel mailing list > [email protected] > https://lists.gnucash.org/mailman/listinfo/gnucash-devel
_______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
