mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
[assistant-stock-transaction.cpp] more sanity checks
- stock amount must be positive. i.e. a negative stock amount during a regular BUY means a SELL. user must choose appropriate txn_type. - don't require account if zero-amount is allowable. eg fees.
This commit is contained in:
parent
aca8351376
commit
c00cacda16
@ -659,6 +659,8 @@ check_page (GtkListStore *list, gnc_numeric& debit, gnc_numeric& credit,
|
|||||||
acctstr = "";
|
acctstr = "";
|
||||||
else if (acct)
|
else if (acct)
|
||||||
acctstr = xaccAccountGetName (acct);
|
acctstr = xaccAccountGetName (acct);
|
||||||
|
else if ((splitfield & FieldMask::ALLOW_ZERO) && gnc_numeric_zero_p (amount))
|
||||||
|
acctstr = "";
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
add_error (errors, N_("Account for %s is missing"), page);
|
add_error (errors, N_("Account for %s is missing"), page);
|
||||||
@ -696,6 +698,8 @@ refresh_page_finish (StockTransactionInfo *info)
|
|||||||
{
|
{
|
||||||
auto stock_amount = gnc_amount_edit_get_amount
|
auto stock_amount = gnc_amount_edit_get_amount
|
||||||
(GNC_AMOUNT_EDIT(info->stock_amount_edit));
|
(GNC_AMOUNT_EDIT(info->stock_amount_edit));
|
||||||
|
if (!gnc_numeric_positive_p (stock_amount))
|
||||||
|
add_error_str (errors, N_("Stock amount must be positive"));
|
||||||
if (info->txn_type->stock_amount & FieldMask::ENABLED_CREDIT)
|
if (info->txn_type->stock_amount & FieldMask::ENABLED_CREDIT)
|
||||||
stock_amount = gnc_numeric_neg (stock_amount);
|
stock_amount = gnc_numeric_neg (stock_amount);
|
||||||
auto new_bal = gnc_numeric_add_fixed (info->balance_at_date, stock_amount);
|
auto new_bal = gnc_numeric_add_fixed (info->balance_at_date, stock_amount);
|
||||||
|
Loading…
Reference in New Issue
Block a user