mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
[stock-txn-asst] Handle correctly capitalizing fees.
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user