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