moneymanagerex / moneymanagerex

Money Manager Ex is an easy to use, money management application built with wxWidgets
http://moneymanagerex.org
GNU General Public License v2.0
1.78k stars 275 forks source link

Set custom fields when editing multiple transactions #4207

Closed cmbarbu closed 2 years ago

cmbarbu commented 2 years ago

Description of the feature

I recently (re)discovered MMEX's custom fields manager. It is a very useful feature that allows me to enrich transactions with additional information (e.g., loyalty points from merchants). However, if I want to update many past transactions with the same custom field value, I have to edit them one by one. Sadly, the excellent Multi Transactions Update does not yet support custom fields.

Therefore, the feature request is to allow users to set/unset/update custom fields when using the multiple transactions feature.

Related to https://github.com/moneymanagerex/moneymanagerex/issues/4159

mmex-feature-custom-fields

vomikan commented 2 years ago

image

tactilis commented 2 years ago

@vomikan

The field widths have expanded for some reason.

Single transaction edit and multi-transaction edit shown at same scale.

image

vomikan commented 2 years ago

@tactilis I can reproduce this issue. It happens because some payee mane lenght is too long. The same will happen if some [Transfer to] account name is too long.

tactilis commented 2 years ago

You are correct. I have a long payee name that came from testing somebody's CSV statement import:

image

But the long name doesn't make the single transaction edit dialog become wider than normal.

The field widths on the single transaction edit dialog are constrained. I believe the multi transaction edit dialog should have its field widths similarly constrained.

tactilis commented 2 years ago

When editing multiple transactions, you also need an additional 'Specify' tick box, like on the left hand side of the dialog but in the custom fields panel, for the user to indicate whether they are editing the custom fields or not.

Consider this:

There are 3 transactions selected for editing with custom fields values of XX, YY, and [not set].

image

I multi-edit the transactions and open the custom fields panel. Observe that the custom field Trans type is not ticked.

image

Without changing anything, I click OK and find that the transactions previously having the XX and YY custom fields are now [not set]. This is not the desired behaviour. There should be a way to say that the existing custom fields should not be changed.

image

By default the new 'Specify' tick box in the custom fields panel should be unticked, like the tick boxes on the left.

tactilis commented 2 years ago

Thinking about this further, I believe that there should be a separate Specify tick box for each custom field type.

Originally I was thinking just one tick box for all custom fields, but that is not sufficient.

vomikan commented 2 years ago

@tactilis I don't understand your explanation of the problem. It turned out to reproduce

tactilis commented 2 years ago

I think the screenshots explain it exactly.

Try setting up the scenario I have shown:

I have one custom field Trans Type, with three state XX, YY, ZZ

image

Apply XX to one transaction as shown. Apply YY to the next transaction. Don't set the custom field on the next transaction.

Now multi-edit all three transactions. Just click OK (you don't even have to open the custom panel)

Now observe that XX and YY are gone from the first 2 transactions!

This is because the Trans Type tick box is part of the custom field state.

You need a 'Select' tick box for each custom field tick box & value to indicate whether that custom field is to be changed or not

vomikan commented 2 years ago

I think I've fixed the bug. Please check.

tactilis commented 2 years ago

Tested. All working as it should now.

I misunderstood the intended operation of the existing custom field tick boxes, so everything I said about needing an extra 'Select' tick box was nonsense!

This is a great addition to MMEX. Thanks Nikolay.

@cmbarbu will be happy too :grinning:

cmbarbu commented 2 years ago

Amazing, thank you for the quick implementation and bugfix!