gnucash maint: [assistant-stock-transaction] disallow stock split ratio of 0.

Christopher Lam clam at code.gnucash.org
Mon Sep 19 20:50:30 EDT 2022


Updated	 via  https://github.com/Gnucash/gnucash/commit/1752f1d1 (commit)
	from  https://github.com/Gnucash/gnucash/commit/84f4f3b6 (commit)



commit 1752f1d19d3e59de0ba4b6a42dc93af4f79c0385
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Sep 19 23:05:33 2022 +0800

    [assistant-stock-transaction] disallow stock split ratio of 0.
    
    otherwise the reverse stock split would allow a new stock amount
    balance of zero.

diff --git a/gnucash/gnome/assistant-stock-transaction.cpp b/gnucash/gnome/assistant-stock-transaction.cpp
index 2d6734c0b..619f52347 100644
--- a/gnucash/gnome/assistant-stock-transaction.cpp
+++ b/gnucash/gnome/assistant-stock-transaction.cpp
@@ -526,7 +526,7 @@ refresh_page_stock_amount (GtkWidget *widget, gpointer user_data)
     {
         gnc_numeric ratio = gnc_numeric_div (stock_amount, bal,
                                              GNC_DENOM_AUTO, GNC_HOW_DENOM_REDUCE);
-        if (gnc_numeric_check (ratio) || gnc_numeric_negative_p (ratio))
+        if (gnc_numeric_check (ratio) || !gnc_numeric_positive_p (ratio))
             gtk_label_set_text (GTK_LABEL(info->next_amount), nullptr);
         else
         {
@@ -775,10 +775,8 @@ to ensure proper recording."), new_date_str, last_split_date_str);
         stock_amount = gnc_numeric_sub_fixed (stock_amount, info->balance_at_date);
         line.units = xaccPrintAmount (stock_amount, stock_pinfo);
         line.units_in_red = negative_in_red && gnc_numeric_negative_p (stock_amount);
-        if (gnc_numeric_check (ratio))
+        if (gnc_numeric_check (ratio) || !gnc_numeric_positive_p (ratio))
             add_error_str (errors, N_("Invalid stock new balance"));
-        else if (gnc_numeric_negative_p (ratio))
-            add_error_str (errors, N_("New and old balance must have same signs"));
         else if (gnc_numeric_negative_p (delta) && !credit_side)
             add_error_str (errors, N_("New balance must be higher than old balance"));
         else if (gnc_numeric_positive_p (delta) && credit_side)



Summary of changes:
 gnucash/gnome/assistant-stock-transaction.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)



More information about the gnucash-changes mailing list