[Split] xaccSplitGetOtherSplit don't test book trading-accts

don't test trading-acct property when finding other split.
This commit is contained in:
Christopher Lam 2021-08-14 11:25:19 +08:00
parent 6bf5a618de
commit 028bf9826b

View File

@ -2077,45 +2077,27 @@ xaccSplitMergePeerSplits (Split *split, const Split *other_split)
Split *
xaccSplitGetOtherSplit (const Split *split)
{
int i;
Transaction *trans;
int count, num_splits;
Split *other = NULL;
gboolean lot_split;
gboolean trading_accts;
if (!split) return NULL;
trans = split->parent;
if (!trans) return NULL;
trading_accts = xaccTransUseTradingAccounts (trans);
num_splits = xaccTransCountSplits(trans);
count = num_splits;
lot_split = qof_instance_has_slot(QOF_INSTANCE (split), "lot-split");
if (!lot_split && !trading_accts && (2 != count)) return NULL;
for (i = 0; i < num_splits; i++)
for (GList *n = xaccTransGetSplitList (trans); n; n = n->next)
{
Split *s = xaccTransGetSplit(trans, i);
if (s == split)
{
--count;
Split *s = n->data;
if ((s == split) ||
(xaccAccountGetType (xaccSplitGetAccount (s)) == ACCT_TYPE_TRADING) ||
(qof_instance_has_slot (QOF_INSTANCE (s), "lot-split")))
continue;
}
if (qof_instance_has_slot (QOF_INSTANCE (s), "lot-split"))
{
--count;
continue;
}
if (trading_accts &&
xaccAccountGetType(xaccSplitGetAccount(s)) == ACCT_TYPE_TRADING)
{
--count;
continue;
}
if (other)
return NULL;
other = s;
}
return (1 == count) ? other : NULL;
return other;
}
/********************************************************************\