gnucash maint: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Sun Jan 24 19:53:08 EST 2021


Updated	 via  https://github.com/Gnucash/gnucash/commit/267a7cb7 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b66eab25 (commit)
	from  https://github.com/Gnucash/gnucash/commit/df30b6da (commit)



commit 267a7cb75d3b54cf359eb913c9f830b48307ae6a
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Jan 24 12:57:48 2021 -0800

    Create opening balance accounts only when there are opening balances.

diff --git a/gnucash/gnome-utils/dialog-account.c b/gnucash/gnome-utils/dialog-account.c
index 21e839ea9..43f66a78a 100644
--- a/gnucash/gnome-utils/dialog-account.c
+++ b/gnucash/gnome-utils/dialog-account.c
@@ -899,9 +899,6 @@ gnc_common_ok (AccountWindow *aw)
         return FALSE;
     }
 
-    /* update opening balance account */
-    gnc_find_or_create_equity_account (root, EQUITY_OPENING_BALANCE, commodity);
-
     LEAVE("passed");
     return TRUE;
 }
diff --git a/gnucash/gnome/gnc-plugin-page-account-tree.c b/gnucash/gnome/gnc-plugin-page-account-tree.c
index 7bc8bdd3a..967dcd876 100644
--- a/gnucash/gnome/gnc-plugin-page-account-tree.c
+++ b/gnucash/gnome/gnc-plugin-page-account-tree.c
@@ -1668,10 +1668,6 @@ gnc_plugin_page_account_tree_cmd_delete_account (GtkAction *action, GncPluginPag
     if (!(xaccAccountGetSplitList (account) != NULL ||
           gnc_account_n_children (account)))
     {
-        /* update opening balance account */
-        gnc_find_or_create_equity_account (gnc_account_get_root(account),
-                                           EQUITY_OPENING_BALANCE,
-                                           xaccAccountGetCommodity (account));
         do_delete_account (account, NULL, NULL, NULL);
         return;
     }
@@ -1708,10 +1704,6 @@ gnc_plugin_page_account_tree_cmd_delete_account (GtkAction *action, GncPluginPag
                                 adopt.subacct.new_account,
                                 adopt.delete_res) == GTK_RESPONSE_ACCEPT)
     {
-        /* update opening balance account */
-        gnc_find_or_create_equity_account (gnc_account_get_root(account),
-                                           EQUITY_OPENING_BALANCE,
-                                           xaccAccountGetCommodity (account));
         do_delete_account (account, adopt.subacct.new_account,
                            adopt.subtrans.new_account, adopt.trans.new_account);
     }

commit b66eab25837ccaa4776a7771e4c249bbda3ea937
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Jan 24 12:57:01 2021 -0800

    Bug 798100 - Equity totals calculating incorrectly
    
    Prevents creation of non-currency opening balance accounts.

diff --git a/gnucash/gnome/assistant-hierarchy.c b/gnucash/gnome/assistant-hierarchy.c
index 40160221d..6d39f37ad 100644
--- a/gnucash/gnome/assistant-hierarchy.c
+++ b/gnucash/gnome/assistant-hierarchy.c
@@ -1408,7 +1408,8 @@ starting_balance_helper (Account *account, hierarchy_data *data)
     balance = get_final_balance (data->balance_hash, account);
     if (gnc_reverse_balance(account))
         balance = gnc_numeric_neg(balance);
-    if (!gnc_numeric_zero_p (balance))
+    if (!gnc_numeric_zero_p (balance) &&
+        gnc_commodity_is_currency (xaccAccountGetCommodity (account)))
         gnc_account_create_opening_balance (account, balance, gnc_time (NULL),
                                             gnc_get_current_book ());
 }
diff --git a/libgnucash/app-utils/gnc-ui-util.c b/libgnucash/app-utils/gnc-ui-util.c
index 0a90aafd6..f03183d0d 100644
--- a/libgnucash/app-utils/gnc-ui-util.c
+++ b/libgnucash/app-utils/gnc-ui-util.c
@@ -975,6 +975,7 @@ gnc_find_or_create_equity_account (Account *root,
     g_return_val_if_fail (equity_type < NUM_EQUITY_TYPES, NULL);
     g_return_val_if_fail (currency != NULL, NULL);
     g_return_val_if_fail (root != NULL, NULL);
+    g_return_val_if_fail (gnc_commodity_is_currency(currency), NULL);
 
     use_eq_op_feature = equity_type == EQUITY_OPENING_BALANCE && gnc_using_equity_type_opening_balance_account (gnc_get_current_book ());
 
@@ -1077,16 +1078,19 @@ gnc_account_create_opening_balance (Account *account,
     Account *equity_account;
     Transaction *trans;
     Split *split;
+    gnc_commodity *commodity;
 
     if (gnc_numeric_zero_p (balance))
         return TRUE;
 
     g_return_val_if_fail (account != NULL, FALSE);
+    commodity = xaccAccountGetCommodity (account);
+    g_return_val_if_fail (gnc_commodity_is_currency (commodity), FALSE);
 
     equity_account =
         gnc_find_or_create_equity_account (gnc_account_get_root(account),
                                            EQUITY_OPENING_BALANCE,
-                                           xaccAccountGetCommodity (account));
+                                           commodity);
     if (!equity_account)
         return FALSE;
 



Summary of changes:
 gnucash/gnome-utils/dialog-account.c         | 3 ---
 gnucash/gnome/assistant-hierarchy.c          | 3 ++-
 gnucash/gnome/gnc-plugin-page-account-tree.c | 8 --------
 libgnucash/app-utils/gnc-ui-util.c           | 6 +++++-
 4 files changed, 7 insertions(+), 13 deletions(-)



More information about the gnucash-changes mailing list