GnuCash
Contact   Instructions
Bug 797648 - Cannot reconcile both splits of a transaction with 2 splits for bank account subaccounts if only 1 is cleared
Summary: Cannot reconcile both splits of a transaction with 2 splits for bank account ...
Status: RESOLVED FIXED
Alias: None
Product: GnuCash
Classification: Unclassified
Component: General (show other bugs)
Version: 3.8
Hardware: PC Windows
: Normal normal
Target Milestone: 3.11
Assignee: Chris Good
QA Contact: general
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-17 00:50 EDT by Chris Good
Modified: 2020-05-03 20:22 EDT (History)
3 users (show)

See Also:


Attachments

Description Chris Good 2020-03-17 00:50:10 EDT
In my credit card account, I keep separate balances for myself, mypartner & joint. During import of the transactions, the bank account transaction is flagged as reconciled. After the import, for some transactions, I split the bank split so I end up with a transaction like:
Account                      Reconciled
-------                      ----------
Expenses:Misc:Person1        n
Expenses:Misc:Person2        n
Liabilities:CrCard:Person1   c
Liabilities:CrCard:Person2   n

In the Reconcile window ('include subaccounts' IS ticked), both bank splits are shown. When I click on the checkbox for the Liabilities:CrCard:Person2 split, it correctly ticks that split, but incorrectly UNTICKS the checkbox for Liabilities:CrCard:Person2.

Also, when I untick the split for one of the bank splits, it incorrectly TICKS the checkbox for the other bank split in the transaction.

My workaround is to cancel the reconciliation, then flag both bank splits as cleared in the register window before restarting the reconciliation.

When the 2 bank account splits have the same status, it sort of makes sense to me to keep them both the same, but because of this problem, I think ticking or unticking the checkbox should only affect the 1 split whose checkbox is clicked.

Does anyone have a use case where all splits for the bank account in 1 transaction SHOULD have the same reconciliation status? If that's the case, then the fix for this should enforce that.

This problem also occurs when using the 'Reconcile Selection' or 'Unreconcile Selection' buttons. This problem occurs if the transactions are in either the 'Funds In' or 'Funds Out' panels of the Reconcile window.
Comment 1 Chris Good 2020-03-17 00:55:00 EDT
Oops, should be:
In the Reconcile window ('include subaccounts' IS ticked), both bank splits are shown. When I click on the checkbox for the Liabilities:CrCard:Person2 split, it correctly ticks that split, but incorrectly UNTICKS the checkbox for Liabilities:CrCard:Person1.

I'll see if I can fix this...
Comment 2 Chris Good 2020-03-20 20:15:19 EDT
Because of the following comment in gnucash/gnome/reconcile-view.c
  gnc_reconcile_view_toggle_children()
    * Need to get all splits in this transaction and identify any that are
    * in the same hierarchy as the account being reconciled (not necessarily
    * the account this split is from.)
    *
    * For each of these splits toggle them all to the same state.
it seems that the reconciliation process expects that all splits for the bank account (and its subaccounts) in a transaction have the same reconciliation status but nothing enforces that.

I have modified the reconciliation process so that when you toggle the reconcile flag on a split, it forces all account splits for the account being reconciled (including its subaccounts), to the same new status.

Please see PR 670 https://github.com/Gnucash/gnucash/pull/670
Comment 3 Chris Good 2020-03-22 18:42:41 EDT
PR 670 has been merged into maint.
This fix will be in GnuCash 3.9.
Comment 4 Derek Atkins 2020-04-27 14:35:58 EDT
I do not agree with this change and think it will introduce another bug:

Forcing all splits of a transaction to have the same reconcile status is WRONG. Here's an example:
I make a purchase at Amazon on my credit card. Total is $100.
They then split the order into $75 that ships immediately and $25 that ships 2 weeks later.
In my mind, the best way to handle this is to split that $100 CC charge into $75 and $25 (and leave the other end of the transaction the same). HOWEVER, what happens if that $75 charge hits one month and the $25 charge hits the next?
This change will not allow this to happen and will force the $25 to get reconciled when it can't be..
Comment 5 Chris Good 2020-05-01 05:56:57 EDT
Reopened. Created new PR https://github.com/Gnucash/gnucash/pull/713 in which I have removed the code which propagates reconciling or unreconciling a split to all splits in the transaction for the reconciliation account and its subaccounts.
Comment 6 Chris Good 2020-05-03 20:19:15 EDT
PR #713 merged into maint 3/5/2020 - Fix will be in GC 3.11

Note You need to log in before you can comment on or make changes to this bug.