Bug 511821

Summary: Scheduled Transactions: Payee field not saved in transactions when there are multiple category splits
Product: [Applications] kmymoney Reporter: Paul Worrall <p.r.worrall>
Component: generalAssignee: KMyMoney Devel Mailing List <kmymoney-devel>
Status: CONFIRMED ---    
Severity: normal    
Priority: NOR    
Version First Reported In: 5.2.1   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Paul Worrall 2025-11-08 12:50:11 UTC
SUMMARY
If you have a scheduled transaction with more than one category split in the split editor, the payee field for the category splits is not saved

STEPS TO REPRODUCE
1. Edit or create a scheduled transaction with more than one category split (e.g. Gross Pay and Income Tax)
2. Assign payees to the splits (e.g. Employer and Government respectively)
3. Save the scheduled transaction
4. Reopen the scheduled transaction for editing and examine the splits

OBSERVED RESULT
The payee field of each category split is blank

EXPECTED RESULT
The payee field of each split shows the value assigned at step 2

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.5.1
KDE Frameworks Version: 6.19.0
Qt Version: 6.10.0
Graphics Platform: Wayland

KMYMONEY COMPONENTS
KMyMoney: 5.2.1
Akonadi: Unknown(I18N_ARGUMENT_MISSING) (build against 6.5.1(I18N_ARGUMENT_MISSING))
Alkimia: 8.2.1(I18N_ARGUMENT_MISSING) (build against 8.2.1(I18N_ARGUMENT_MISSING))
Aqbanking: Unknown(I18N_ARGUMENT_MISSING) (build against 6.6.3(I18N_ARGUMENT_MISSING))
Gpgme: Unknown(I18N_ARGUMENT_MISSING) (build against 2.0.0(I18N_ARGUMENT_MISSING))
Gwenhywfar: Unknown(I18N_ARGUMENT_MISSING) (build against 5.12.1(I18N_ARGUMENT_MISSING))
KDiagram: Unknown(I18N_ARGUMENT_MISSING) (build against (I18N_ARGUMENT_MISSING))
libical: Unknown(I18N_ARGUMENT_MISSING) (build against 3.0.20(I18N_ARGUMENT_MISSING))
libofx: Unknown(I18N_ARGUMENT_MISSING) (build against 0.10.9(I18N_ARGUMENT_MISSING))
SQLCipher: Unknown(I18N_ARGUMENT_MISSING) (build against 3.46.1(I18N_ARGUMENT_MISSING))
KDE Frameworks: 6.19.0
Qt: Using 6.10.0 and built against 6.10.0
Arch Linux (Wayland)
Build ABI: x86_64-little_endian-lp64
Kernel: linux 6.17.7-arch1-1

ADDITIONAL INFORMATION
Doing the same thing with an entered transaction in a ledger, the payees of each category split are saved OK
Comment 1 Jack 2025-11-10 00:33:42 UTC
Confirmed  I thought I had a hint about what is going on. but now I'm not sure.  Note that when you create the scheduled transaction, the split editor looks like the split editor used in the Ledgers View (as it should, I think.)   Note that when you close the split editor, the Payees on the splits are shown in the Memo column, there being no column displayed for Payees (also OK, as far as I can tell.)  However, if you then re-open the split editor (before actually saving the Scheduled Transaction) the Payees are already gone.   I have not yet looked into the code that actually saves the Splits within the Schedule, but I wonder if that is where they might be getting lost.  I'll try diffing into the code.
Comment 2 Paul Worrall 2025-11-10 09:53:23 UTC
I think the relevant code is here: https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/mymoney/mymoneyschedule.cpp?ref_type=heads#L176

The comment a few lines earlier says it's clearing out some "unused information ... for the case that the transaction passed ... is a matched or imported transaction". I don't understand that, but the payee field is not "unused information" for the use case mentioned in my report.

Also, it is inconsistent that you can populate the payee fields when entering a transaction manually but not via a schedule.
Comment 3 Thomas Baumgart 2025-11-10 12:26:50 UTC
In fact it is exactly this line https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/mymoney/mymoneyschedule.cpp?ref_type=heads#L186 which is older than 16 years and dates back to I don't know what. Maybe it's about time to change it a bit.