diff --git a/src/engine/Scrub2.c b/src/engine/Scrub2.c index 1fda4b94fc..23fbc7f538 100644 --- a/src/engine/Scrub2.c +++ b/src/engine/Scrub2.c @@ -366,7 +366,29 @@ lot_scrub_cb (Account *acc, gpointer data) void xaccGroupScrubLotsBalance (AccountGroup *grp) { + if (!grp) return; xaccGroupForEachAccount (grp, lot_scrub_cb, NULL, TRUE); } +void +xaccAccountScrubLotsBalance (Account *acc) +{ + if (!acc) return; + if (FALSE == xaccAccountHasTrades (acc)) return; + xaccAccountScrubLots (acc); + xaccAccountScrubDoubleBalance (acc); +} + +void +xaccAccountTreeScrubLotsBalance (Account *acc) +{ + if (!acc) return; + + xaccGroupScrubLotsBalance (acc->children); + + if (FALSE == xaccAccountHasTrades (acc)) return; + xaccAccountScrubLots (acc); + xaccAccountScrubDoubleBalance (acc); +} + /* =========================== END OF FILE ======================= */ diff --git a/src/engine/Scrub2.h b/src/engine/Scrub2.h index 5d6477f9ba..044e3f1d08 100644 --- a/src/engine/Scrub2.h +++ b/src/engine/Scrub2.h @@ -90,6 +90,8 @@ void xaccAccountScrubDoubleBalance (Account *acc); * that are trading accounts. */ void xaccGroupScrubLotsBalance (AccountGroup *grp); +void xaccAccountScrubLotsBalance (Account *acc); +void xaccAccountTreeScrubLotsBalance (Account *acc); #endif /* XACC_SCRUB2_H */ /** @} */