> On Jun 22, 2018, at 9:42 PM, Christopher Lam <christopher....@gmail.com> > wrote: > > Hi All > > I'm working through balance-sheet.scm and overhauling this report. > > At the same time, I can see that balance-sheet.scm and income-statement.scm > can be merged together. > > After all > > * balance sheet = asset/liability/equity balance at date X, > * income statement = difference in income/expense balances at date X and Y > > The issue I have is that the balance sheet can call > xaccAccountGetBalanceAsOfDate(acc,date) directly to nicely retrieve the > balance, whereas income statement cannot directly call it because it also > includes closing transactions. > > My proposal is to augment xaccAccountGetBalanceAsOfDate to accept a 3rd > boolean argument i.e. xaccAccountGetBalanceAsOfDate(acc,date,ignoreclosing) > which will selectively produce the balance, ignore closing transactions. > > This is partly done in the last commit of > https://github.com/christopherlam/gnucash/tree/maint-create-API-call-for-noclosing-balances > - it will augment API everywhere, and also modify Account.cpp, especially > xaccAccountRecomputeBalance which will call > xaccTransGetIsClosingTxn(xaccSplitGetParent(split)) for each split in the > account to determine closing status and cache the balances for each split. > See draft on > https://github.com/christopherlam/gnucash/tree/maint-create-API-call-for-noclosing-balances > - this currently fails because I'm not good at C. > > *My query is whether it will be too expensive to call > xaccTransGetIsClosingTxn for each split in Account.cpp to produce the > split->noclosing_balance, which will be crucial to calculate income between > two dates.* > > *Currently this 'closing-txn' filter is done in income-statement.scm via a > "Closing Entries" string/regex filter and xaccTransGetIsClosingTxn calls, > which IMHO is not ideal either. > * > > Any help welcome! > > P.S. if this last commit is removed, the > https://github.com/christopherlam/gnucash/tree/maint-create-API-call-for-noclosing-balances > branch contains work-so-far for updated balance-sheet. Screenshot > https://screenshots.firefox.com/eelmGQrGCtcP6bqC/null - see the multilevel > subtotals were previously horizonal, are now vertical; original-currency > amounts, and multiple-date balance sheets. > > _
Chris, Only profiling will tell how much of a performance hit this creates. I don’t see where in your commit you’re computing the split’s no-closing balance. Perhaps that’s why it doesn’t work? Regards, John Ralls _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel