Hi!
I currently find it a bit difficult to handle multi-split transactions that include several
"splits" going to the same account. For example, if I'm buying some computer hardware I
want to record the prices of each part for later reference, but all those parts are recorded in
"Hardware" account - thus several splits go into the same account.
In default "Basic Ledger" view this is shown in a confusing way - each split
gets its own row, but each row displays the same transaction description (not the name of
the individual part).
For the moment I explored several different solutions to this situation:
1. Record each item (hardware part in this example) as a separate transaction.
This solves the issue with display since I can now put each item name into the
description field. But now I have multiple transactions my credit card account,
which would make reliable reconciliation almost impossible.
2. Use the "Transaction Journal" view. It handles this situation a bit better than
"Basic Ledger" - the rows are not duplicated. But it show all the splits, even the ones
not related to the currently viewed account, and the simple two-split transactions start taking 3
rows each, which is too verbose, especially since this is a global setting.
3. Show "memo" as a separate column in "Basic Ledger" view (I've attached the
code patch that does it, applies to version 4.8). This works quite nicely - simple transactions
keep using one row, complex transactions display only the splits related to the current register
and each split shows its memo right in the register. However this is a code customization, won't
help anybody else with similar problems, and maintaining it is going to be more difficult than
built-in solutions.
Do you have any suggestions about a better way of handling this?
Best regards,
Platon Pronko
Add a memo column after description column.
diff --git a/gnucash/register/ledger-core/split-register-layout.c b/gnucash/register/ledger-core/split-register-layout.c
index 6f7f2bef9..6fbc14789 100644
--- a/gnucash/register/ledger-core/split-register-layout.c
+++ b/gnucash/register/ledger-core/split-register-layout.c
@@ -93,20 +93,21 @@ gnc_split_register_set_cells (SplitRegister* reg, TableLayout* layout)
gnc_table_layout_set_cell (layout, curs, DATE_CELL, 0, 0);
gnc_table_layout_set_cell (layout, curs, NUM_CELL, 0, 1);
gnc_table_layout_set_cell (layout, curs, DESC_CELL, 0, 2);
- gnc_table_layout_set_cell (layout, curs, MXFRM_CELL, 0, 3);
- gnc_table_layout_set_cell (layout, curs, RECN_CELL, 0, 4);
+ gnc_table_layout_set_cell (layout, curs, MEMO_CELL, 0, 3);
+ gnc_table_layout_set_cell (layout, curs, MXFRM_CELL, 0, 4);
+ gnc_table_layout_set_cell (layout, curs, RECN_CELL, 0, 5);
if (reg->is_template)
{
- gnc_table_layout_set_cell (layout, curs, FDEBT_CELL, 0, 5);
- gnc_table_layout_set_cell (layout, curs, FCRED_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, FDEBT_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, FCRED_CELL, 0, 7);
}
else
{
- gnc_table_layout_set_cell (layout, curs, DEBT_CELL, 0, 5);
- gnc_table_layout_set_cell (layout, curs, CRED_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, DEBT_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, CRED_CELL, 0, 7);
}
- gnc_table_layout_set_cell (layout, curs, BALN_CELL, 0, 7);
- gnc_table_layout_set_cell (layout, curs, RATE_CELL, 0, 8);
+ gnc_table_layout_set_cell (layout, curs, BALN_CELL, 0, 8);
+ gnc_table_layout_set_cell (layout, curs, RATE_CELL, 0, 9);
curs_last = curs;
curs = gnc_table_layout_get_cursor (layout,
@@ -135,10 +136,10 @@ gnc_split_register_set_cells (SplitRegister* reg, TableLayout* layout)
gnc_table_layout_set_cell (layout, curs, DATE_CELL, 0, 0);
gnc_table_layout_set_cell (layout, curs, NUM_CELL, 0, 1);
gnc_table_layout_set_cell (layout, curs, DESC_CELL, 0, 2);
- gnc_table_layout_set_cell (layout, curs, TDEBT_CELL, 0, 5);
- gnc_table_layout_set_cell (layout, curs, TCRED_CELL, 0, 6);
- gnc_table_layout_set_cell (layout, curs, TBALN_CELL, 0, 7);
- gnc_table_layout_set_cell (layout, curs, RATE_CELL, 0, 8);
+ gnc_table_layout_set_cell (layout, curs, TDEBT_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, TCRED_CELL, 0, 7);
+ gnc_table_layout_set_cell (layout, curs, TBALN_CELL, 0, 8);
+ gnc_table_layout_set_cell (layout, curs, RATE_CELL, 0, 9);
curs_last = curs;
curs = gnc_table_layout_get_cursor (layout,
@@ -165,19 +166,19 @@ gnc_split_register_set_cells (SplitRegister* reg, TableLayout* layout)
gnc_table_layout_set_cell (layout, curs, ACTN_CELL, 0, 1);
gnc_table_layout_set_cell (layout, curs, MEMO_CELL, 0, 2);
- gnc_table_layout_set_cell (layout, curs, XFRM_CELL, 0, 3);
- gnc_table_layout_set_cell (layout, curs, RECN_CELL, 0, 4);
+ gnc_table_layout_set_cell (layout, curs, XFRM_CELL, 0, 4);
+ gnc_table_layout_set_cell (layout, curs, RECN_CELL, 0, 5);
if (reg->is_template)
{
- gnc_table_layout_set_cell (layout, curs, FDEBT_CELL, 0, 5);
- gnc_table_layout_set_cell (layout, curs, FCRED_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, FDEBT_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, FCRED_CELL, 0, 7);
}
else
{
- gnc_table_layout_set_cell (layout, curs, DEBT_CELL, 0, 5);
- gnc_table_layout_set_cell (layout, curs, CRED_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, DEBT_CELL, 0, 6);
+ gnc_table_layout_set_cell (layout, curs, CRED_CELL, 0, 7);
}
- gnc_table_layout_set_cell (layout, curs, RATE_CELL, 0, 8);
+ gnc_table_layout_set_cell (layout, curs, RATE_CELL, 0, 9);
break;
}
@@ -678,7 +679,7 @@ gnc_split_register_layout_add_cells (SplitRegister* reg,
QUICKFILL_CELL_TYPE_NAME,
C_ ("sample", "Description of a transaction"),
CELL_ALIGN_LEFT,
- TRUE,
+ FALSE,
FALSE);
gnc_register_add_cell (layout,
_______________________________________________
gnucash-user mailing list
[email protected]
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
If you are using Nabble or Gmane, please see
https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.