[Kmymoney-devel] [kmymoney4] [Bug 333498] bulk edit actions results in amount of transaction being zeroed
Chris
DeveloperChris at rebel.com.au
Sun Apr 20 13:07:19 UTC 2014
After a little digging I found the correct function to use
I believe the following change resolves the issue without unintended
consequences. But I may be wrong :)
void StdTransactionEditor::slotUpdateCategory(const QString& id)
{
QLabel *categoryLabel = dynamic_cast<QLabel*>(haveWidget("category-label"));
// qDebug("Update category to %s", qPrintable(id));
kMyMoneyEdit* amount = dynamic_cast<kMyMoneyEdit*>(m_editWidgets["amount"]);
if (categoryLabel && amount->isValid()) {
TabBar* tabbar = dynamic_cast<TabBar*>(haveWidget("tabbar"));
MyMoneyMoney val = amount->value();
if (categoryLabel->text() == i18n("Transfer from")) {
val = -val;
} else {
val = val.abs();
}
There is still the very serious issue of incorrect tax calculations that
most definitely needs to be resolved.
Chris
On 20/04/2014 10:14 PM, Chris wrote:
> Hi Allan
>
> Unfortunately this is not a solution. You should be able to update the
> amount using the bulk edit feature.
>
> The problem seems to be that the val field is not checked whether it has
> changed or not. It is cast to a Mymoneymoney object and as it is an empty
> string that object returns a 0
>
> The object probably should have a "NaN" test, it does not appear to have
> such a test. Failing that the text field should be checked before the
> MyMoneymoney object is instantiated and used.
>
> What is confusing is for some reason
> StdTransactionEditor::slotUpdateCategory tests for the existence of the
> category label "if (categoryLabel)" and skips updating the value if it
> exists. It seems that that may have been a kludge fix for some other
> issue. The fact that the two types of editing, inline and using the form,
> have two different program paths says to me there are bigger issues.
>
> Lastly when editing multiple transactions if you select a category that
> has a tax auto split on it, it silently fails to add the tax split. That
> is pretty crazy. If you rely on this software to do your annual taxes and
> it silently discards taxes, then you may have problems with your tax
> office. At the very least it should issue a warning. preferably it should
> create the split properly. I don't know if I want a stint in jail due to a
> software bug.
>
>
> Chris
>
>
> On 17/04/2014 8:38 AM, allan wrote:
>> https://bugs.kde.org/show_bug.cgi?id=333498
>>
>> --- Comment #3 from allan<agander93 at gmail.com> ---
>> On 16/04/14 13:01, Chris wrote:
>>> https://bugs.kde.org/show_bug.cgi?id=333498
>>>
>>> Bug ID: 333498
>>> Summary: bulk edit actions results in amount of transaction
>>> being zeroed
>> I have a potential fix for this, which appears to do the necessary,
>> without any apparent harmful effects.
>>
>> In void StdTransactionEditor::slotUpdateCategory(const QString& id),
>> circa line 1543, there is an updateAmount(val), which now I execute only
>> if (!isMultiSelection().
>>
>> I don't know if there may be a better way/place to do this.
>>
>> I notice also, that Buy and Sell activities have a similar problem if a
>> fee account is entered.
>>
>> Allan
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kmymoney-devel/attachments/20140420/2f45ef3e/attachment.html>
More information about the KMyMoney-devel
mailing list