From b8c9b1a6ce0e1e4c6740e1de450859b90cbadcec Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Fri, 24 Sep 2021 21:41:27 +0800 Subject: [PATCH] [gnc-plugin-page-register] when reversing reversed txn, offer jump When reversing a transaction which is already reversed, offer a jump to the reversal transaction. --- gnucash/gnome/gnc-plugin-page-register.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c index 6ed0f4d847d..9f0eba20764 100644 --- a/gnucash/gnome/gnc-plugin-page-register.c +++ b/gnucash/gnome/gnc-plugin-page-register.c @@ -4072,13 +4072,6 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action, if (trans == NULL) return; - if (xaccTransGetReversedBy (trans)) - { - gnc_error_dialog (GTK_WINDOW (window), "%s", - _ ("A reversing entry has already been created for this transaction.")); - return; - } - split = gnc_split_register_get_current_split (reg); account = xaccSplitGetAccount (split); @@ -4088,6 +4081,17 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action, return; } + new_trans = xaccTransGetReversedBy (trans); + if (new_trans) + { + const char *rev = _("A reversing entry has already been created for this transaction."); + const char *jump = _("Jump to the transaction?"); + if (gnc_verify_dialog (GTK_WINDOW (window), TRUE, "%s\n\n%s", rev, jump)) + goto jump_to_trans; + else + return; + } + if (!gnc_dup_time64_dialog (window, _("Reverse Transaction"), _("New Transaction Information"), &date)) { @@ -4104,6 +4108,7 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action, gnc_resume_gui_refresh(); + jump_to_trans: /* Now jump to new trans */ gsr = gnc_plugin_page_register_get_gsr (GNC_PLUGIN_PAGE (page)); split = xaccTransFindSplitByAccount(new_trans, account);