From e5aa63996a1b052a960c7906e4c164fd446b34e5 Mon Sep 17 00:00:00 2001 From: Brett Smith Date: Fri, 17 Jul 2020 10:56:12 -0400 Subject: [PATCH] ledger: Include balances for accounts without activity. --- conservancy_beancount/reports/ledger.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/conservancy_beancount/reports/ledger.py b/conservancy_beancount/reports/ledger.py index 00c1857..e83eae4 100644 --- a/conservancy_beancount/reports/ledger.py +++ b/conservancy_beancount/reports/ledger.py @@ -252,17 +252,16 @@ class LedgerODS(core.BaseODS[data.Posting, data.Account]): self.lock_first_row() def _report_section_balance(self, key: data.Account, date_key: str) -> None: - uses_opening = key.is_under('Assets', 'Equity', 'Liabilities') related = self.account_groups[key] if date_key == 'start': - if not uses_opening: + if not key.keeps_balance(): return date = self.date_range.start balance = related.start_bal description = "Opening Balance" else: date = self.date_range.stop - if uses_opening: + if key.keeps_balance(): balance = related.stop_bal description = "Ending Balance" else: @@ -358,7 +357,7 @@ class LedgerODS(core.BaseODS[data.Posting, data.Account]): tally_by_account = { account: count for account, count in tally_by_account_iter - if count + if count or account.keeps_balance() } sheet_names = self.plan_sheets( tally_by_account, self.required_sheet_names, self.sheet_size, @@ -370,7 +369,12 @@ class LedgerODS(core.BaseODS[data.Posting, data.Account]): while using_sheet_index < sheet_index: using_sheet_index += 1 self.start_sheet(sheet_names[using_sheet_index]) - super().write(self.account_groups[account]) + postings = self.account_groups[account] + if postings: + super().write(postings) + elif account.keeps_balance() and account.is_open_on_date(self.date_range.start): + self.start_section(account) + self.end_section(account) for index in range(using_sheet_index + 1, len(sheet_names)): self.start_sheet(sheet_names[index])