This introduces some new helper functions which are exactly the same as what we had before, but do not call normaliseMixedAmountSquashPricesForDisplay, so that we can use the new functions for displaying Transaction and Posting. It also goes through and gets rid of most uses of the old showMixed* functions which would benefit from using the new interface.
306 lines
11 KiB
Plaintext
306 lines
11 KiB
Plaintext
|
|
# 1. Simple case
|
|
<
|
|
2016/1/1 open
|
|
assets:bank $100
|
|
assets:cash $20
|
|
equity:opening
|
|
|
|
2016/1/15 spend
|
|
expenses:sweets $5
|
|
assets:cash
|
|
|
|
2016/1/19 withdraw
|
|
assets:cash $20
|
|
assets:bank
|
|
|
|
2016/1/20 lend
|
|
liabilities $25
|
|
assets:cash
|
|
|
|
$ hledger close -f- -e 2017-01-01 assets liabilities
|
|
2016-12-31 closing balances
|
|
assets:bank $-80 = $0
|
|
assets:cash $-10 = $0
|
|
liabilities $-25 = $0
|
|
equity:opening/closing balances
|
|
|
|
2017-01-01 opening balances
|
|
assets:bank $80 = $80
|
|
assets:cash $10 = $10
|
|
liabilities $25 = $25
|
|
equity:opening/closing balances
|
|
|
|
>=0
|
|
|
|
# 2. A begin date should be ignored
|
|
$ hledger close -f- -e 2017-01-01 assets liabilities -b 2016-12-01
|
|
2016-12-31 closing balances
|
|
assets:bank $-80 = $0
|
|
assets:cash $-10 = $0
|
|
liabilities $-25 = $0
|
|
equity:opening/closing balances
|
|
|
|
2017-01-01 opening balances
|
|
assets:bank $80 = $80
|
|
assets:cash $10 = $10
|
|
liabilities $25 = $25
|
|
equity:opening/closing balances
|
|
|
|
>=0
|
|
|
|
# 3. Print just the opening transaction
|
|
<
|
|
2016/1/1 open
|
|
assets:bank $100
|
|
assets:cash $20
|
|
equity:opening
|
|
|
|
2016/1/15 spend
|
|
expenses:sweets $5
|
|
assets:cash
|
|
|
|
2016/1/19 withdraw
|
|
assets:cash $20
|
|
assets:bank
|
|
|
|
2016/1/20 lend
|
|
liabilities $25
|
|
assets:cash
|
|
|
|
$ hledger close -f- -p 2016 assets liabilities --open
|
|
2017-01-01 opening balances
|
|
assets:bank $80 = $80
|
|
assets:cash $10 = $10
|
|
liabilities $25 = $25
|
|
equity:opening/closing balances
|
|
|
|
>=0
|
|
|
|
# 4. Print just the closing transaction.
|
|
$ hledger close -f- -p 2016 assets liabilities --close
|
|
2016-12-31 closing balances
|
|
assets:bank $-80 = $0
|
|
assets:cash $-10 = $0
|
|
liabilities $-25 = $0
|
|
equity:opening/closing balances
|
|
|
|
>=0
|
|
|
|
# 5. Supplying --open --close is the same as just "close"
|
|
# Also -x makes it show the equity amounts.
|
|
$ hledger close -f- -p 2016 assets liabilities --open --close -x
|
|
2016-12-31 closing balances
|
|
assets:bank $-80 = $0
|
|
assets:cash $-10 = $0
|
|
liabilities $-25 = $0
|
|
equity:opening/closing balances $115
|
|
|
|
2017-01-01 opening balances
|
|
assets:bank $80 = $80
|
|
assets:cash $10 = $10
|
|
liabilities $25 = $25
|
|
equity:opening/closing balances $-115
|
|
|
|
>=0
|
|
|
|
# 6. Closing a multi-priced balance. By default the transaction prices are ignored.
|
|
<
|
|
2019/01/01
|
|
assets 1A @ 1B
|
|
assets 1A @ 1C
|
|
equity
|
|
|
|
$ hledger -f- close assets -p 2019 -x
|
|
2019-12-31 closing balances
|
|
assets -2A = 0A
|
|
equity:opening/closing balances 2A
|
|
|
|
2020-01-01 opening balances
|
|
assets 2A = 2A
|
|
equity:opening/closing balances -2A
|
|
|
|
>=0
|
|
|
|
# 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 -x
|
|
2019-12-31 closing balances
|
|
assets -1A @ 1B
|
|
assets -1A @ 1C = 0A
|
|
equity:opening/closing balances 1A @ 1B
|
|
equity:opening/closing balances 1A @ 1C
|
|
|
|
2020-01-01 opening balances
|
|
assets 1A @ 1B
|
|
assets 1A @ 1C = 2A
|
|
equity:opening/closing balances -1A @ 1B
|
|
equity:opening/closing balances -1A @ 1C
|
|
|
|
>=0
|
|
|
|
# 8. Closing a multi-priced balance, slightly more complex
|
|
# (different price in each transaction).
|
|
<
|
|
2019/01/01
|
|
(assets) 1A @ 1B
|
|
|
|
2019/01/02
|
|
(assets) 1A @ 2B
|
|
|
|
$ hledger -f- close assets -p 2019 -x
|
|
2019-12-31 closing balances
|
|
assets -2A = 0A
|
|
equity:opening/closing balances 2A
|
|
|
|
2020-01-01 opening balances
|
|
assets 2A = 2A
|
|
equity:opening/closing balances -2A
|
|
|
|
>=0
|
|
|
|
# 9. The same, with costs.
|
|
$ hledger -f- close assets -p 2019 --show-costs -x
|
|
2019-12-31 closing balances
|
|
assets -1A @ 1B
|
|
assets -1A @ 2B = 0A
|
|
equity:opening/closing balances 1A @ 1B
|
|
equity:opening/closing balances 1A @ 2B
|
|
|
|
2020-01-01 opening balances
|
|
assets 1A @ 1B
|
|
assets 1A @ 2B = 2A
|
|
equity:opening/closing balances -1A @ 1B
|
|
equity:opening/closing balances -1A @ 2B
|
|
|
|
>=0
|
|
|
|
# 10. Closing a multi-priced balance, a more complex example.
|
|
# Decimal places specified by the amount display style should not be stripped
|
|
# even if they are zeros (#1137).
|
|
<
|
|
2016/01/31
|
|
liabilities:employer $5,000.00
|
|
income:salary
|
|
|
|
2016/02/05
|
|
liabilities:employer $-5,000.00 @ 0.95 EUR
|
|
expenses:tax 1,852.50 EUR
|
|
assets:bank 2,897.00 EUR
|
|
liabilities:employer
|
|
|
|
2016/02/29
|
|
liabilities:employer $5,000.00
|
|
income:salary
|
|
|
|
2016/03/04
|
|
liabilities:employer $-5,000.00 @ 0.93 EUR
|
|
expenses:tax 1,813.50 EUR
|
|
assets:bank 2,836.00 EUR
|
|
liabilities:employer
|
|
|
|
$ 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
|
|
liabilities:employer $5,000.00 @ 0.93 EUR
|
|
liabilities:employer $5,000.00 @ 0.95 EUR = $0.00
|
|
liabilities:employer -1.00 EUR = 0.00 EUR
|
|
equity:opening/closing balances $10,000.00
|
|
equity:opening/closing balances $-5,000.00 @ 0.93 EUR
|
|
equity:opening/closing balances $-5,000.00 @ 0.95 EUR
|
|
equity:opening/closing balances 5,734.00 EUR
|
|
|
|
2017-01-01 opening balances
|
|
assets:bank 5,733.00 EUR = 5,733.00 EUR
|
|
liabilities:employer $10,000.00
|
|
liabilities:employer $-5,000.00 @ 0.93 EUR
|
|
liabilities:employer $-5,000.00 @ 0.95 EUR = $0.00
|
|
liabilities:employer 1.00 EUR = 1.00 EUR
|
|
equity:opening/closing balances $-10,000.00
|
|
equity:opening/closing balances $5,000.00 @ 0.93 EUR
|
|
equity:opening/closing balances $5,000.00 @ 0.95 EUR
|
|
equity:opening/closing balances -5,734.00 EUR
|
|
|
|
>=0
|
|
|
|
# 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 -x
|
|
2016-12-31 closing balances
|
|
assets:bank -5,733.00 EUR = 0.00 EUR
|
|
equity:opening/closing balances 5,733.00 EUR
|
|
liabilities:employer $-10,000.00
|
|
equity:opening/closing balances $10,000.00
|
|
liabilities:employer $5,000.00 @ 0.93 EUR
|
|
equity:opening/closing balances $-5,000.00 @ 0.93 EUR
|
|
liabilities:employer $5,000.00 @ 0.95 EUR = $0.00
|
|
equity:opening/closing balances $-5,000.00 @ 0.95 EUR
|
|
liabilities:employer -1.00 EUR = 0.00 EUR
|
|
equity:opening/closing balances 1.00 EUR
|
|
|
|
2017-01-01 opening balances
|
|
assets:bank 5,733.00 EUR = 5,733.00 EUR
|
|
equity:opening/closing balances -5,733.00 EUR
|
|
liabilities:employer $10,000.00
|
|
equity:opening/closing balances $-10,000.00
|
|
liabilities:employer $-5,000.00 @ 0.93 EUR
|
|
equity:opening/closing balances $5,000.00 @ 0.93 EUR
|
|
liabilities:employer $-5,000.00 @ 0.95 EUR = $0.00
|
|
equity:opening/closing balances $5,000.00 @ 0.95 EUR
|
|
liabilities:employer 1.00 EUR = 1.00 EUR
|
|
equity:opening/closing balances -1.00 EUR
|
|
|
|
>=0
|
|
|
|
# 12. A tricky case where a closing posting was rounded and failed to balance (#1164)
|
|
<
|
|
commodity $0.00
|
|
commodity AAA 0.00000000
|
|
|
|
2019-01-01 opening balance
|
|
(assets:usd) $49.50
|
|
|
|
2019-01-02 buy some AAA
|
|
assets:usd -$49.2619200
|
|
assets:aaa AAA 510
|
|
assets:usd -$0.1280810
|
|
expenses:banking $0.1280810
|
|
|
|
$ 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
|
|
assets:usd $49.390001 @ AAA 10.3528242505 = $0.00
|
|
equity:opening/closing balances $49.50
|
|
equity:opening/closing balances $-49.390001 @ AAA 10.3528242505
|
|
equity:opening/closing balances AAA 510.00000000
|
|
|
|
2020-01-01 opening balances
|
|
assets:aaa AAA 510.00000000 = AAA 510.00000000
|
|
assets:usd $49.50
|
|
assets:usd $-49.390001 @ AAA 10.3528242505 = $0.109999
|
|
equity:opening/closing balances $-49.50
|
|
equity:opening/closing balances $49.390001 @ AAA 10.3528242505
|
|
equity:opening/closing balances AAA -510.00000000
|
|
|
|
>=0
|
|
|
|
# 13. The same, without costs and with --interleaved.
|
|
$ hledger -f- close -p 2019 assets --interleaved -x
|
|
2019-12-31 closing balances
|
|
assets:aaa AAA -510.00000000 = AAA 0.00000000
|
|
equity:opening/closing balances AAA 510.00000000
|
|
assets:usd $-0.109999 = $0.00
|
|
equity:opening/closing balances $0.109999
|
|
|
|
2020-01-01 opening balances
|
|
assets:aaa AAA 510.00000000 = AAA 510.00000000
|
|
equity:opening/closing balances AAA -510.00000000
|
|
assets:usd $0.109999 = $0.109999
|
|
equity:opening/closing balances $-0.109999
|
|
|
|
>=0
|