When reporting the transactions for a Foreign Currency account (US$ in my case) in the Foreign Currency (i.e with the box "Convert values to base currency" UNticked, Kmymoney does not seem to report the original foreign currency transaction amount as stored in the database (and shown correctly in the account) but instead it appears recalculate the orignal foreign amount as a multiple of the base currency amount and the stored exchange rate price. This leads to significant changes in value for larger sums and completely incorrect velues when no exchange rate was stored (i.e if the amount was converted to an absolute value when posted - which seems to record a rate of 1 against he transaction. If this analysis is correct - would it to be better for the report to reference the foreign amount as stored in the database for the report rather than tryimng to recalculate it from the base currency value and a rounded exchange rate. Reproducible: Always Steps to Reproduce: 1. Create a few transactions in a foreign currency account, some posted via exchange rates and some converted to absolute amounts inthe base currency 2.Run the transactions report for the account with the option "Convert values to base currency" UNticked 3.Compare the report foreign values to those stored in the account Actual Results: The foreign currency amount is frequently reported inaccurately - sometimes wildly Expected Results: the report of a foreign currency account transactions, in that foreign currency should be 100% accurate. The reprot should reference the foreign currency value as stored in the database and shown in the account screen
Could you create a test file or an anonymous test file that demonstrates this problem? Take a look at this description of the anonymous file: https://docs.kde.org/stable/en/extragear-office/kmymoney/details.formats.anonymous.html I'm asking for this because last time I've checked a report for an account using a currency other than the base currency everything looked fine. The fact that you said that you had the currency conversion checkbox unchecked makes me even more suspicious since in that case there is really no conversion of values performed so the amounts should match those in the account.
Created attachment 91761 [details] TEst1.kmy Hi Cristian, Thanks you for the very quick reply. I have attached a test .kmy file which seems to clearly demonstrate the issue. I have posted 2 transactions to the Foreign account. The first I converted to an absolute GBP value and the second I used an exchange rate. If you run the Transactions report for the account you'll see it does not accurately reflect the Dollar amounts posted when the "use base currency" box is unchecked. I saved the report as a Transaction report too. I trust the fault is not mine and that this helps identify the problem (in an otherwise great piece of software) Regards John On 26/03/15 15:26, Cristian Oneț wrote: > https://bugs.kde.org/show_bug.cgi?id=345550 > > Cristian Oneț <onet.cristian@gmail.com> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > Status|UNCONFIRMED |NEEDSINFO > CC| |onet.cristian@gmail.com > Resolution|--- |WAITINGFORINFO > > --- Comment #1 from Cristian Oneț <onet.cristian@gmail.com> --- > Could you create a test file or an anonymous test file that demonstrates this > problem? Take a look at this description of the anonymous file: > https://docs.kde.org/stable/en/extragear-office/kmymoney/details.formats.anonymous.html > > I'm asking for this because last time I've checked a report for an account > using a currency other than the base currency everything looked fine. The fact > that you said that you had the currency conversion checkbox unchecked makes me > even more suspicious since in that case there is really no conversion of values > performed so the amounts should match those in the account. >
I saw the problem. From looking at the file, things seem to be stored correctly. One other thing to be aware of: in case you check the 'convert all values to base currency' then the opening balance is not adjusted. That could be due to a missing price information. For the other transactions we do have a price: the one that is stored with the transaction. This certainly looks like a little bug. Thanks to John for reporting and providing a test file.
(In reply to Thomas Baumgart from comment #3) > I saw the problem. From looking at the file, things seem to be stored > correctly. One other thing to be aware of: in case you check the 'convert > all values to base currency' then the opening balance is not adjusted. That > could be due to a missing price information. For the other transactions we > do have a price: the one that is stored with the transaction. This certainly > looks like a little bug. Thanks to John for reporting and providing a test > file. I've identified the problem, it was introduced by this fix: https://projects.kde.org/projects/extragear/office/kmymoney/repository/revisions/9fc583d3db4fe2c16448790d7ee17145fbe8bd2f I've added a testcase to catch the issue and proposed a fix at: https://git.reviewboard.kde.org/r/123154/
Git commit 31adc38e7d632fb79eb3163998c8c568ee957383 by Cristian Oneț. Committed on 27/03/2015 at 17:08. Pushed by conet into branch 'master'. Fix foreign currency income/expense transactions in reports. Since commit 9fc583d3db4fe2c16448790d7ee17145fbe8bd2f was added as a fix for some currency conversions performed in reports income/expense transactions which involved a currency conversion were not properly displayed in the transactions by account report. Extended the multi-currency report testcase to catch this error and fixed the problem by resurrecting some conversion code which was removed by that commit, but moved it to a place where it's applied only to income/expense transactions. REVIEW: 123154 M +6 -1 kmymoney/reports/querytable.cpp M +7 -2 kmymoney/reports/querytabletest.cpp http://commits.kde.org/kmymoney/31adc38e7d632fb79eb3163998c8c568ee957383
Git commit 7b10760b947432e77078ade8d6ef1557321b3a74 by Cristian Oneț. Committed on 27/03/2015 at 17:08. Pushed by conet into branch '4.7'. Fix foreign currency income/expense transactions in reports. Since commit 9fc583d3db4fe2c16448790d7ee17145fbe8bd2f was added as a fix for some currency conversions performed in reports income/expense transactions which involved a currency conversion were not properly displayed in the transactions by account report. Extended the multi-currency report testcase to catch this error and fixed the problem by resurrecting some conversion code which was removed by that commit, but moved it to a place where it's applied only to income/expense transactions. REVIEW: 123154 (cherry picked from commit 31adc38e7d632fb79eb3163998c8c568ee957383) M +6 -1 kmymoney/reports/querytable.cpp M +7 -2 kmymoney/reports/querytabletest.cpp http://commits.kde.org/kmymoney/7b10760b947432e77078ade8d6ef1557321b3a74
Sorry to have to reopen this: using the attaced test file still does not show correct results when the 'convert all values to base currency' option is set/removed. The values do not change, only the currency is identified in case the option is turned off (USD in our case). I thought this would be caused by the conversion rate in the test file which is set to 1, but even if you change the rate to e.g. 1.5 , the values do not change in the report if the option is turned on.
(In reply to Thomas Baumgart from comment #7) > Sorry to have to reopen this: using the attaced test file still does not > show correct results when the 'convert all values to base currency' option > is set/removed. The values do not change, only the currency is identified in > case the option is turned off (USD in our case). I thought this would be > caused by the conversion rate in the test file which is set to 1, but even > if you change the rate to e.g. 1.5 , the values do not change in the report > if the option is turned on. You are right, the code I brought back was originally on the else branch of the if 'convert all values to base currency' so I must add that check, I'll fix it in a minute.
Git commit 6780bf61922eab24542f5d02b29a17b0df12299d by Cristian Oneț. Committed on 29/03/2015 at 12:48. Pushed by conet into branch 'master'. Fix foreign currency income/expense transactions in reports. The previous commit broke the convert all values to the base currency use case. Fixed this by properly checking that flag before converting a split's value to the currency of the starting account. Extended the multiple currencies report test case to check this scenario. M +1 -1 kmymoney/reports/querytable.cpp M +32 -1 kmymoney/reports/querytabletest.cpp http://commits.kde.org/kmymoney/6780bf61922eab24542f5d02b29a17b0df12299d
Git commit e3967e5918ba887c69e4de809605072686bc2f91 by Cristian Oneț. Committed on 29/03/2015 at 12:48. Pushed by conet into branch '4.7'. Fix foreign currency income/expense transactions in reports. The previous commit broke the convert all values to the base currency use case. Fixed this by properly checking that flag before converting a split's value to the currency of the starting account. Extended the multiple currencies report test case to check this scenario. (cherry picked from commit 6780bf61922eab24542f5d02b29a17b0df12299d) M +1 -1 kmymoney/reports/querytable.cpp M +32 -1 kmymoney/reports/querytabletest.cpp http://commits.kde.org/kmymoney/e3967e5918ba887c69e4de809605072686bc2f91