close: hide equity amounts by default, for simpler entries (#1165)
-x/--explicit shows them, as with print.
This commit is contained in:
parent
2645b76ff0
commit
7500002ee5
@ -27,6 +27,7 @@ closemode = hledgerCommandMode
|
||||
,flagNone ["opening"] (setboolopt "opening") "show just opening transaction"
|
||||
,flagReq ["close-to"] (\s opts -> Right $ setopt "close-to" s opts) "ACCT" ("account to transfer closing balances to (default: "++defclosingacct++")")
|
||||
,flagReq ["open-from"] (\s opts -> Right $ setopt "open-from" s opts) "ACCT" ("account to transfer opening balances from (default: "++defopeningacct++")")
|
||||
,flagNone ["explicit","x"] (setboolopt "explicit") "show all amounts explicitly"
|
||||
,flagNone ["interleaved"] (setboolopt "interleaved") "keep equity and non-equity postings adjacent"
|
||||
,flagNone ["show-costs"] (setboolopt "show-costs") "keep balances with different costs separate"
|
||||
]
|
||||
@ -61,6 +62,9 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do
|
||||
openingdate = fromMaybe today $ queryEndDate False q
|
||||
closingdate = addDays (-1) openingdate
|
||||
|
||||
-- should we show the amount(s) on the equity posting(s) ?
|
||||
explicit = boolopt "explicit" rawopts
|
||||
|
||||
-- should we preserve cost information ?
|
||||
normalise = case boolopt "show-costs" rawopts of
|
||||
True -> normaliseMixedAmount
|
||||
@ -105,7 +109,7 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do
|
||||
|
||||
-- or a final multicommodity posting transferring all balances to equity
|
||||
-- (print will show this as multiple single-commodity postings)
|
||||
++ [posting{paccount=closingacct, pamount=mapMixedAmount precise totalamt} | not interleaved]
|
||||
++ [posting{paccount=closingacct, pamount=if explicit then mapMixedAmount precise totalamt else missingmixedamt} | not interleaved]
|
||||
|
||||
-- the opening transaction
|
||||
openingtxn = nulltransaction{tdate=openingdate, tdescription="opening balances", tpostings=openingps}
|
||||
@ -129,7 +133,7 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do
|
||||
, let commoditysum = (sum bs)]
|
||||
, (b, mcommoditysum) <- bs'
|
||||
]
|
||||
++ [posting{paccount=openingacct, pamount=mapMixedAmount precise $ negate totalamt} | not interleaved]
|
||||
++ [posting{paccount=openingacct, pamount=if explicit then mapMixedAmount precise (negate totalamt) else missingmixedamt} | not interleaved]
|
||||
|
||||
-- print them
|
||||
when closing $ putStr $ showTransaction closingtxn
|
||||
|
||||
@ -16,18 +16,24 @@ by default. You can choose different account names with the
|
||||
`--close-to` and `--open-from` options. If you specify only one of
|
||||
these, it is used for both.
|
||||
|
||||
The "equity" postings are shown at the end of the transaction
|
||||
by default (and are combined when possible).
|
||||
With `--interleaved`, they are shown next to each posting they
|
||||
balance, which is better for troubleshooting (and may generate more postings).
|
||||
By default, a single balancing equity posting is added at the end of
|
||||
these journal entries, with the amount left implicit.
|
||||
|
||||
When the balances being closed have cost information (because
|
||||
transaction prices were recorded), `--show-costs` will preserve it.
|
||||
Balances with different costs are closed/reopened separately,
|
||||
and balance -B reports will be unchanged after the transition.
|
||||
Note this can generate many postings,
|
||||
if you have a lot of foreign currency or investment transactions.
|
||||
By default, transaction prices are ignored.
|
||||
With `--x/--explicit`, the balancing amount is shown, and if
|
||||
multiple commodities are involved, multiple single-commodity equity
|
||||
postings are shown (like the print command).
|
||||
|
||||
With `--interleaved`, the equity postings are shown next to each
|
||||
posting they balance, which can be better for troubleshooting (and can
|
||||
generate more postings).
|
||||
|
||||
By default, transaction prices in the journal are ignored when
|
||||
generating the closing/opening transactions.
|
||||
With `--show-costs`, this cost information is preserved,
|
||||
so that `balance -B` reports will be unchanged after the transition.
|
||||
Separate postings are generated for each cost in each commodity.
|
||||
Note this can generate very large journal entries, if you have many
|
||||
foreign currency or investment transactions.
|
||||
|
||||
### close usage
|
||||
|
||||
|
||||
@ -23,13 +23,13 @@ $ hledger close -f- -p 2016 assets liabilities
|
||||
assets:bank $-80 = $0
|
||||
assets:cash $-10 = $0
|
||||
liabilities $-25 = $0
|
||||
equity:closing balances $115
|
||||
equity:closing balances
|
||||
|
||||
2017-01-01 opening balances
|
||||
assets:bank $80 = $80
|
||||
assets:cash $10 = $10
|
||||
liabilities $25 = $25
|
||||
equity:opening balances $-115
|
||||
equity:opening balances
|
||||
|
||||
>=0
|
||||
|
||||
@ -41,11 +41,11 @@ $ hledger close -f- -p 2016 assets liabilities
|
||||
$ hledger close -f- -b2017/6/1 -e2018
|
||||
2017-12-31 closing balances
|
||||
a -1 = 0
|
||||
equity:closing balances 1
|
||||
equity:closing balances
|
||||
|
||||
2018-01-01 opening balances
|
||||
a 1 = 1
|
||||
equity:opening balances -1
|
||||
equity:opening balances
|
||||
|
||||
>=0
|
||||
|
||||
@ -73,11 +73,11 @@ $ hledger close -f- -p 2016 assets liabilities --opening
|
||||
assets:bank $80 = $80
|
||||
assets:cash $10 = $10
|
||||
liabilities $25 = $25
|
||||
equity:opening balances $-115
|
||||
equity:opening balances
|
||||
|
||||
>=0
|
||||
|
||||
# 4. Print just the closing transaction
|
||||
# 4. Print just the closing transaction.
|
||||
<
|
||||
2016/1/1 open
|
||||
assets:bank $100
|
||||
@ -101,11 +101,12 @@ $ hledger close -f- -p 2016 assets liabilities --closing
|
||||
assets:bank $-80 = $0
|
||||
assets:cash $-10 = $0
|
||||
liabilities $-25 = $0
|
||||
equity:closing balances $115
|
||||
equity:closing balances
|
||||
|
||||
>=0
|
||||
|
||||
# 5. Supplying --opening --closing is the same as just "close"
|
||||
# Also -x makes it show the equity amounts.
|
||||
<
|
||||
2016/1/1 open
|
||||
assets:bank $100
|
||||
@ -124,7 +125,7 @@ $ hledger close -f- -p 2016 assets liabilities --closing
|
||||
liabilities $25
|
||||
assets:cash
|
||||
|
||||
$ hledger close -f- -p 2016 assets liabilities --opening --closing
|
||||
$ hledger close -f- -p 2016 assets liabilities --opening --closing -x
|
||||
2016-12-31 closing balances
|
||||
assets:bank $-80 = $0
|
||||
assets:cash $-10 = $0
|
||||
@ -146,7 +147,7 @@ $ hledger close -f- -p 2016 assets liabilities --opening --closing
|
||||
assets 1A @ 1C
|
||||
equity
|
||||
|
||||
$ hledger -f- close assets -p 2019
|
||||
$ hledger -f- close assets -p 2019 -x
|
||||
2019-12-31 closing balances
|
||||
assets -2A = 0A
|
||||
equity:closing balances 2A
|
||||
@ -160,7 +161,7 @@ $ hledger -f- close assets -p 2019
|
||||
# 7. With --show-costs, the transaction prices are preserved.
|
||||
# Only the last posting in each commodity gets a balance assertion (#1035).
|
||||
# Balance assertion amounts do not have a price.
|
||||
$ hledger -f- close assets -p 2019 --show-costs
|
||||
$ hledger -f- close assets -p 2019 --show-costs -x
|
||||
2019-12-31 closing balances
|
||||
assets -1A @ 1B
|
||||
assets -1A @ 1C = 0A
|
||||
@ -184,7 +185,7 @@ $ hledger -f- close assets -p 2019 --show-costs
|
||||
2019/01/02
|
||||
(assets) 1A @ 2B
|
||||
|
||||
$ hledger -f- close assets -p 2019
|
||||
$ hledger -f- close assets -p 2019 -x
|
||||
2019-12-31 closing balances
|
||||
assets -2A = 0A
|
||||
equity:closing balances 2A
|
||||
@ -203,7 +204,7 @@ $ hledger -f- close assets -p 2019
|
||||
2019/01/02
|
||||
(assets) 1A @ 2B
|
||||
|
||||
$ hledger -f- close assets -p 2019 --show-costs
|
||||
$ hledger -f- close assets -p 2019 --show-costs -x
|
||||
2019-12-31 closing balances
|
||||
assets -1A @ 1B
|
||||
assets -1A @ 2B = 0A
|
||||
@ -242,7 +243,7 @@ $ hledger -f- close assets -p 2019 --show-costs
|
||||
assets:bank 2,836.00 EUR
|
||||
liabilities:employer
|
||||
|
||||
$ hledger -f- close -p 2016 assets liabilities --show-costs
|
||||
$ hledger -f- close -p 2016 assets liabilities --show-costs -x
|
||||
2016-12-31 closing balances
|
||||
assets:bank -5,733.00 EUR = 0.00 EUR
|
||||
liabilities:employer $-10,000.00
|
||||
@ -270,7 +271,7 @@ $ hledger -f- close -p 2016 assets liabilities --show-costs
|
||||
# 11. With --interleaved, each transfer's postings are adjacent.
|
||||
# (And balances with the same cost are not necessarily combined into
|
||||
# a single posting. Eg the 5734 EUR above is 5733 EUR and 1 EUR below.)
|
||||
$ hledger -f- close -p 2016 assets liabilities --interleaved --show-costs
|
||||
$ hledger -f- close -p 2016 assets liabilities --interleaved --show-costs -x
|
||||
2016-12-31 closing balances
|
||||
assets:bank -5,733.00 EUR = 0.00 EUR
|
||||
equity:closing balances 5,733.00 EUR
|
||||
@ -311,7 +312,7 @@ commodity AAA 0.00000000
|
||||
assets:usd -$0.1280810
|
||||
expenses:banking $0.1280810
|
||||
|
||||
$ hledger -f- close -p 2019 assets --show-costs
|
||||
$ hledger -f- close -p 2019 assets --show-costs -x
|
||||
2019-12-31 closing balances
|
||||
assets:aaa AAA -510.00000000 = AAA 0.00000000
|
||||
assets:usd $-49.50
|
||||
@ -331,7 +332,7 @@ $ hledger -f- close -p 2019 assets --show-costs
|
||||
>=0
|
||||
|
||||
# 13. The same, without costs and with --interleaved.
|
||||
$ hledger -f- close -p 2019 assets --interleaved
|
||||
$ hledger -f- close -p 2019 assets --interleaved -x
|
||||
2019-12-31 closing balances
|
||||
assets:aaa AAA -510.00000000 = AAA 0.00000000
|
||||
equity:closing balances AAA 510.00000000
|
||||
|
||||
Loading…
Reference in New Issue
Block a user