[stock-txn-asst] Handle correctly capitalizing fees.

This commit is contained in:
John Ralls
2023-08-27 12:21:40 -07:00
parent acff356fec
commit c3f56e89e5
2 changed files with 14 additions and 7 deletions

View File

@@ -887,16 +887,23 @@ void
StockTransactionFeesEntry::create_split(Transaction* trans, AccountVec& commits)
{
g_return_if_fail(trans);
if (!m_account || !m_capitalize || gnc_numeric_check(m_value))
return;
if ((!m_account && !m_capitalize) || gnc_numeric_check(m_value))
return;
auto split = xaccMallocSplit(qof_instance_get_book(trans));
xaccSplitSetParent(split, trans);
xaccAccountBeginEdit(m_account);
commits.push_back(m_account);
xaccSplitSetAccount(split, m_account);
if (m_capitalize)
{
xaccSplitSetAccount(split, commits[0]); // Should be the stock account
}
else
{
xaccAccountBeginEdit(m_account);
commits.push_back(m_account);
xaccSplitSetAccount(split, m_account);
xaccSplitSetAmount(split, amount());
}
xaccSplitSetMemo(split, m_memo);
xaccSplitSetValue(split, m_debit_side ? m_value : gnc_numeric_neg(m_value));
xaccSplitSetAmount(split, amount());
PINFO("creating %s split in Acct(%s): Val(%s), Amt(%s) => Val(%s), Amt(%s)",
m_action, m_account ? xaccAccountGetName (m_account) : "Empty!",
gnc_num_dbg_to_string(m_value),

View File

@@ -270,6 +270,6 @@ TEST_F(StockAssistantTest, testAggregateResults)
dump_acct (cash_account);
EXPECT_EQ (xaccAccountGetBalance (dividend_account).num, 42000);
EXPECT_EQ (xaccAccountGetBalance (capgains_account).num, -995981);
EXPECT_EQ (xaccAccountGetBalance (fees_account).num, 5473);
EXPECT_EQ (xaccAccountGetBalance (fees_account).num, 4478);
EXPECT_EQ (xaccAccountGetBalance (cash_account).num, 1663049);
}