Ensure damount == value when currency and security are equivalent.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3196 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2000-11-27 23:14:45 +00:00
parent 41b8f66407
commit 690e14320b
3 changed files with 20 additions and 4 deletions

View File

@ -150,14 +150,13 @@ xaccTransScrubImbalance (Transaction *trans)
if (!trans)
return;
xaccTransScrubSplitImbalance (trans);
{
GList *node;
Account *account;
Account *peer = NULL;
for (node = trans->splits; node; node = node->next)
xaccSplitScrubImbalance (node->data);
imbalance = xaccTransGetImbalance (trans);
if (gnc_numeric_zero_p (imbalance))
return;
@ -231,7 +230,20 @@ xaccTransScrubImbalance (Transaction *trans)
}
}
void xaccSplitScrubImbalance (Split *split)
void
xaccTransScrubSplitImbalance (Transaction *trans)
{
GList *node;
if (!trans)
return;
for (node = trans->splits; node; node = node->next)
xaccSplitScrubImbalance (node->data);
}
void
xaccSplitScrubImbalance (Split *split)
{
Account *account;
Transaction *trans;

View File

@ -63,6 +63,7 @@ void xaccGroupScrubOrphans (AccountGroup *grp);
* account.
*/
void xaccSplitScrubImbalance (Split *split);
void xaccTransScrubSplitImbalance (Transaction *trans);
void xaccTransScrubImbalance (Transaction *trans);
void xaccAccountScrubImbalance (Account *acc);
void xaccAccountTreeScrubImbalance (Account *acc);

View File

@ -36,6 +36,7 @@
#include "BackendP.h"
#include "GNCIdP.h"
#include "Group.h"
#include "Scrub.h"
#include "Transaction.h"
#include "TransactionP.h"
#include "TransLog.h"
@ -1331,6 +1332,8 @@ xaccTransCommitEdit (Transaction *trans)
xaccSplitSetValue(s, gnc_numeric_neg(split->value));
}
xaccTransScrubSplitImbalance (trans);
trans->open &= ~DEFER_REBALANCE;
xaccTransRebalance (trans);