mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
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:
parent
41b8f66407
commit
690e14320b
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user