mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-20 02:37:12 +03:00
fix: balance: Show all empty accounts in flat balance reports. (#1688)
Previously we only showed empty leaves.
This commit is contained in:
parent
4cb631c0f2
commit
50f73b7434
@ -409,13 +409,18 @@ displayedAccounts ReportSpec{_rsQuery=query,_rsReportOpts=ropts} valuedaccts
|
||||
|
||||
-- Accounts interesting for their own sake
|
||||
isInteresting name amts =
|
||||
d <= depth -- Throw out anything too deep
|
||||
&& ((empty_ ropts && all (null . asubs) amts) -- Keep all leaves when using empty_
|
||||
|| not (isZeroRow balance amts)) -- Throw out anything with zero balance
|
||||
d <= depth -- Throw out anything too deep
|
||||
&& ( (empty_ ropts && keepWhenEmpty amts) -- Keep empty accounts when called with --empty
|
||||
|| not (isZeroRow balance amts) -- Keep everything with a non-zero balance in the row
|
||||
)
|
||||
where
|
||||
d = accountNameLevel name
|
||||
balance | ALTree <- accountlistmode_ ropts, d == depth = maybeStripPrices . aibalance
|
||||
| otherwise = maybeStripPrices . aebalance
|
||||
keepWhenEmpty = case accountlistmode_ ropts of
|
||||
ALFlat -> const True -- Keep all empty accounts in flat mode
|
||||
ALTree -> all (null . asubs) -- Keep only empty leaves in tree mode
|
||||
balance = maybeStripPrices . case accountlistmode_ ropts of
|
||||
ALTree | d == depth -> aibalance
|
||||
_ -> aebalance
|
||||
where maybeStripPrices = if show_costs_ ropts then id else mixedAmountStripPrices
|
||||
|
||||
-- Accounts interesting because they are a fork for interesting subaccounts
|
||||
|
@ -21,7 +21,7 @@ $ hledger -f - balance
|
||||
(a:b) 1
|
||||
|
||||
# 2. An uninteresting parent account (with same balance as its single subaccount) is elided by default, like ledger
|
||||
$ hledger -f - balance --no-total
|
||||
$ hledger -f - balance --no-total --tree
|
||||
>
|
||||
1 a:b
|
||||
>=0
|
||||
@ -98,3 +98,19 @@ Balance changes in 2020:
|
||||
a || 1
|
||||
aa || 0
|
||||
aaa || 0
|
||||
|
||||
# 11. In flat mode, display all zero-balance accounts, including non-leaves
|
||||
$ hledger -f - balance --flat --no-total --empty
|
||||
1 a
|
||||
0 a:aa
|
||||
0 a:aa:aaa
|
||||
|
||||
# 12. Same as 11 for multiperiod
|
||||
$ hledger -f - balance --flat --no-total -Y --empty
|
||||
Balance changes in 2020:
|
||||
|
||||
|| 2020
|
||||
==========++======
|
||||
a || 1
|
||||
a:aa || 0
|
||||
a:aa:aaa || 0
|
||||
|
Loading…
Reference in New Issue
Block a user