----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/128061/#review96155 -----------------------------------------------------------
This is not a good area for me, and takes me out of my comfort zone. However, I've been having a look at this, and there are one or two points, which may or may not be relevant. Firstly, the file attached to https://bugs.kde.org/show_bug.cgi?id=303026 does illustrate the problem. Secondly, the sell transaction shows a missing assignment of "ACME 0.005". Next, I edited it to remove the fee split, to simplify things a bit. It still shows the missing assignment. Looking now at the void MyMoneyFile::fixSplitPrecision(MyMoneyTransaction& t) const routine, and specifically at the last line, "(*its).setValue((*its).value().convertDenominator(fraction).canonicalize());" For the first split, I get "16180.520000", but with the canonicalize() removed, I get "16180.525000". The second split gives "-16180.525000". Whether or not this is relevant, I really don't know and an expert opinion is needed, I think. - Allan Anderson On May 30, 2016, 6:10 p.m., Thomas Baumgart wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/128061/ > ----------------------------------------------------------- > > (Updated May 30, 2016, 6:10 p.m.) > > > Review request for KMymoney. > > > Bugs: 345655 > http://bugs.kde.org/show_bug.cgi?id=345655 > > > Repository: kmymoney > > > Description > ------- > > The problem described in bug 345655 is caused by a fraction of the splits > value that is larger than the fraction of the accounts currency. This leads > to the effect, that values are displayed with correct value but the > underlying value used for calculations is not equal to the amount displayed. > This will end up in KMyMoney presenting the user strange messages like > 'Unassigned value of 0.00' which do not make sense. The difference is in > reality between 0 and 0.01, e.g. 0.008. > > The attached patch resolves this problem by rounding the numbers to the > correct fraction of the referrenced account. > > > Diffs > ----- > > kmymoney/mymoney/mymoneyfile.h 0fd558b > kmymoney/mymoney/mymoneyfile.cpp 568675c > kmymoney/mymoney/mymoneyfiletest.h 657ed39 > kmymoney/mymoney/mymoneyfiletest.cpp 810b15f > > Diff: https://git.reviewboard.kde.org/r/128061/diff/ > > > Testing > ------- > > Test case is part of the patch. It uses the values provided in the sample > attached to the bug 345655 entry. > > > Thanks, > > Thomas Baumgart > >