Bug 295533

Summary: Balance column sums different currencies without converting on reports with unchecked "convert to base currency"
Product: [Applications] kmymoney Reporter: Tristan Grimaux <info>
Component: generalAssignee: KMyMoney Devel Mailing List <kmymoney-devel>
Status: RESOLVED FIXED    
Severity: normal CC: asoliverez, onet.cristian
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: This patch contains a test case for this problem which can be committed once the bug is fixed

Description Tristan Grimaux 2012-03-08 14:25:24 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 Iceweasel/10.0.2
Build Identifier: 

When creating a report that should express accounts of different currencies in their original values, transfers between them are messed in the balance column.


Reproducible: Always

Steps to Reproduce:
1. on a new file create 2 accounts with different currencies. I used dolllars and south african dollars
2. on account "local" add 2 expenditures: 1000 yesterday and 2000 today.
3. on account "foreigner" add a deposit of 1000 for today
4. Now a transfer of 1000 from account "foreigner" to local for 1000. It's 132 dollars as of today
5. Now go to Reports and choose Transactions by account
6. Customize reports by unchecking "convert values to base currency"
Actual Results:  
Local
yesterday   Spent                               -1000               -1000
today         Transfer from foreigner    ZAR 999.94     ZAR -0.06
today         Spent                               -20000           -2,000.06
today         Closing Balance                                        -2,867.20

Foreigner
today        Deposit                                 ZAR 994.94    ZAR 994.94
today        Transfer to local                    ZAR -994.94   ZAR 0
today Closing balance                      0


Expected Results:  
Local
yesterday   Spent                               -1000               -1000
today         Transfer from foreigner    ZAR 1000.00     -867.20
today         Spent                               -20000           -2,867.20
today         Closing Balance                                        -2,867.20

Foreigner
today        Deposit                                 ZAR 1000.00    ZAR 1000.00
today        Transfer to local                    ZAR -1000.00   ZAR 0
today Closing balance                      0


On one line of the report balance column is expressed in foreign currency and calculated in dollars. The next line expresses the balance in local currency but i keeps calculating the numbers as if they where plain.
Comment 1 Cristian OneČ› 2012-03-08 19:32:06 UTC
Created attachment 69387 [details]
This patch contains a test case for this problem which can be committed once the bug is fixed

I couldn't fix the problem - reports code is too complex for me but I came up with a test case for it to make it easier to develop a fix.
Comment 2 Alvaro Soliverez 2012-04-30 22:38:08 UTC
The problem with both comments above is that the report by account should show all transactions in the currency of that account.
So, transaction in local account will be in local currency, and transactions in foreign account will be in foreign account.
The test is wrong in that regard, too.
I'm working on this. It's not an easy fix though.
Comment 3 Alvaro Soliverez 2012-05-06 01:15:59 UTC
Git commit 9fc583d3db4fe2c16448790d7ee17145fbe8bd2f by Alvaro Soliverez.
Committed on 01/05/2012 at 00:33.
Pushed by asoliverez into branch 'master'.

Multi-currency transaction reports: each individual should be shown in
its own currency, not the one of the main split.
Fixed the display of currency for those cases when the currency is
different from the base currency.
Added test for Transaction by Account report with multiple currencies,
contributed by Cristian Onet.

There might be some more fixing to do, as it's one of the most complex
reports.
Related: bug 297437
REVIEW:104774

M  +18   -10   kmymoney/reports/querytable.cpp
M  +79   -0    kmymoney/reports/querytabletest.cpp
M  +1    -0    kmymoney/reports/querytabletest.h

http://commits.kde.org/kmymoney/9fc583d3db4fe2c16448790d7ee17145fbe8bd2f