mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-13 06:05:17 +03:00
9de238757b
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.
254 lines
7.5 KiB
Plaintext
254 lines
7.5 KiB
Plaintext
# 1. Add proportional income tax (from documentation)
|
|
hledger rewrite -f- ^income --add-posting '(liabilities:tax) *.33 ; income tax'
|
|
<<<
|
|
2016/1/1 paycheck
|
|
income:remuneration $-100
|
|
income:donations $-15
|
|
assets:bank
|
|
|
|
2016/1/1 withdraw
|
|
assets:cash $20
|
|
assets:bank
|
|
>>>
|
|
2016-01-01 paycheck ; modified:
|
|
income:remuneration $-100
|
|
(liabilities:tax) $-33 ; income tax, generated-posting: = ^income
|
|
income:donations $-15
|
|
(liabilities:tax) $-5 ; income tax, generated-posting: = ^income
|
|
assets:bank
|
|
|
|
2016-01-01 withdraw
|
|
assets:cash $20
|
|
assets:bank
|
|
|
|
>>>2
|
|
>>>=0
|
|
|
|
# 2. Duplicate posting for budgeting (from documentation).
|
|
# It uses same date as the matched posting.
|
|
hledger rewrite -f- expenses:gifts --add-posting '(budget:gifts) *-1'
|
|
<<<
|
|
2016/1/1 withdraw
|
|
assets:cash $20
|
|
assets:bank
|
|
|
|
2016/1/1 gift
|
|
assets:cash $-15
|
|
expenses:gifts ; [1/2]
|
|
>>>
|
|
2016-01-01 withdraw
|
|
assets:cash $20
|
|
assets:bank
|
|
|
|
2016-01-01 gift ; modified:
|
|
assets:cash $-15
|
|
expenses:gifts ; [1/2]
|
|
(budget:gifts) $-15 ; [2016-01-02], generated-posting: = expenses:gifts
|
|
|
|
>>>2
|
|
>>>=0
|
|
|
|
# 3. Add postings in another commodity
|
|
hledger rewrite -f-
|
|
<<<
|
|
2017/04/24 * 09:00-09:25
|
|
(assets:unbilled:client1) 0.42h
|
|
|
|
2017/04/25 * 10:00-11:15
|
|
(assets:unbilled:client1) 1.25h
|
|
|
|
2017/04/25 * 14:00-15:32
|
|
(assets:unbilled:client2) 1.54h
|
|
|
|
; billing rules
|
|
= ^assets:unbilled:client1
|
|
(assets:to bill:client1) *100.00 CAD
|
|
|
|
= ^assets:unbilled:client2
|
|
(assets:to bill:client2) *150.00 CAD
|
|
>>>
|
|
2017-04-24 * 09:00-09:25 ; modified:
|
|
(assets:unbilled:client1) 0.42h
|
|
(assets:to bill:client1) 42.00 CAD ; generated-posting: = ^assets:unbilled:client1
|
|
|
|
2017-04-25 * 10:00-11:15 ; modified:
|
|
(assets:unbilled:client1) 1.25h
|
|
(assets:to bill:client1) 125.00 CAD ; generated-posting: = ^assets:unbilled:client1
|
|
|
|
2017-04-25 * 14:00-15:32 ; modified:
|
|
(assets:unbilled:client2) 1.54h
|
|
(assets:to bill:client2) 231.00 CAD ; generated-posting: = ^assets:unbilled:client2
|
|
|
|
>>>2
|
|
>>>=0
|
|
|
|
|
|
# 4. Add postings with prices
|
|
hledger rewrite -f- -B
|
|
<<<
|
|
2017/04/24 * 09:00-09:25
|
|
(assets:unbilled:client1) 0.42h
|
|
|
|
2017/04/25 * 10:00-11:15
|
|
(assets:unbilled:client1) 1.25h
|
|
|
|
2017/04/25 * 14:00-15:32
|
|
(assets:unbilled:client2) 1.54h
|
|
|
|
; billing rules
|
|
= ^assets:unbilled:client1
|
|
assets:to bill:client1 *1.00 hours @ $100.00
|
|
income:consulting:client1
|
|
|
|
= ^assets:unbilled:client2
|
|
assets:to bill:client2 *1.00 hours @ $150.00
|
|
income:consulting:client2
|
|
>>>
|
|
2017-04-24 * 09:00-09:25 ; modified:
|
|
(assets:unbilled:client1) 0.42h
|
|
assets:to bill:client1 $42.00 ; generated-posting: = ^assets:unbilled:client1
|
|
income:consulting:client1 ; generated-posting: = ^assets:unbilled:client1
|
|
|
|
2017-04-25 * 10:00-11:15 ; modified:
|
|
(assets:unbilled:client1) 1.25h
|
|
assets:to bill:client1 $125.00 ; generated-posting: = ^assets:unbilled:client1
|
|
income:consulting:client1 ; generated-posting: = ^assets:unbilled:client1
|
|
|
|
2017-04-25 * 14:00-15:32 ; modified:
|
|
(assets:unbilled:client2) 1.54h
|
|
assets:to bill:client2 $231.00 ; generated-posting: = ^assets:unbilled:client2
|
|
income:consulting:client2 ; generated-posting: = ^assets:unbilled:client2
|
|
|
|
>>>2
|
|
>>>=0
|
|
|
|
# 5. Add absolute bank processing fee
|
|
# XXX is "and" really processed here ?
|
|
hledger rewrite -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5'
|
|
<<<
|
|
2016/1/1 withdraw
|
|
assets:cash $20
|
|
assets:bank
|
|
|
|
2016/1/2 withdraw
|
|
assets:cash
|
|
assets:bank $-30
|
|
|
|
# # TODO: Fix to filter out this txn by missing amt:<0 condition on assets:bank
|
|
# 2016/1/31 paycheck
|
|
# income:remuneration $-100
|
|
# assets:bank
|
|
>>>
|
|
2016-01-01 withdraw ; modified:
|
|
assets:cash $20
|
|
assets:bank
|
|
expenses:fee $5 ; generated-posting: = assets:bank and "amt:<0"
|
|
assets:bank $-5 ; generated-posting: = assets:bank and "amt:<0"
|
|
|
|
2016-01-02 withdraw ; modified:
|
|
assets:cash
|
|
assets:bank $-30
|
|
expenses:fee $5 ; generated-posting: = assets:bank and "amt:<0"
|
|
assets:bank $-5 ; generated-posting: = assets:bank and "amt:<0"
|
|
|
|
>>>2
|
|
>>>=0
|
|
|
|
# 6. Rewrite rule within journal
|
|
hledger rewrite -f- date:2017/1 --add-posting 'Here comes Santa $0'
|
|
<<<
|
|
= ^assets:bank$ date:2017/1 amt:<0
|
|
assets:bank *0.008
|
|
expenses:fee *-0.008 ; cash withdraw fee
|
|
= ^expenses:housing
|
|
(budget:housing) *-1
|
|
= ^expenses:grocery ^expenses:food
|
|
(budget:food) *-1
|
|
|
|
2016/12/31
|
|
expenses:housing $600
|
|
assets:cash
|
|
|
|
2017/1/1
|
|
expenses:food $20
|
|
expenses:leisure $15
|
|
expenses:grocery $30
|
|
assets:cash
|
|
|
|
2017/1/2
|
|
assets:cash $200.00
|
|
assets:bank
|
|
|
|
2017/2/1
|
|
assets:cash $100.00
|
|
assets:bank
|
|
|
|
; order with normal entries doesn't matter
|
|
; but relative order matters to refer-rewritten transactions
|
|
= ^expenses not:housing not:grocery not:food
|
|
(budget:misc) *-1
|
|
>>>
|
|
2016-12-31 ; modified:
|
|
expenses:housing $600.00
|
|
(budget:housing) $-600.00 ; generated-posting: = ^expenses:housing
|
|
assets:cash
|
|
|
|
2017-01-01 ; modified:
|
|
expenses:food $20.00
|
|
(budget:food) $-20.00 ; generated-posting: = ^expenses:grocery ^expenses:food
|
|
Here comes Santa 0 ; generated-posting: = date:2017/1
|
|
expenses:leisure $15.00
|
|
(budget:misc) $-15.00 ; generated-posting: = ^expenses not:housing not:grocery not:food
|
|
Here comes Santa 0 ; generated-posting: = date:2017/1
|
|
expenses:grocery $30.00
|
|
(budget:food) $-30.00 ; generated-posting: = ^expenses:grocery ^expenses:food
|
|
Here comes Santa 0 ; generated-posting: = date:2017/1
|
|
assets:cash
|
|
Here comes Santa 0 ; generated-posting: = date:2017/1
|
|
|
|
2017-01-02 ; modified:
|
|
assets:cash $200.00
|
|
Here comes Santa 0 ; generated-posting: = date:2017/1
|
|
assets:bank
|
|
assets:bank $-1.60 ; generated-posting: = ^assets:bank$ date:2017/1 amt:<0
|
|
expenses:fee $1.60 ; cash withdraw fee, generated-posting: = ^assets:bank$ date:2017/1 amt:<0
|
|
(budget:misc) $-1.60 ; generated-posting: = ^expenses not:housing not:grocery not:food
|
|
Here comes Santa 0 ; generated-posting: = date:2017/1
|
|
|
|
2017-02-01
|
|
assets:cash $100.00
|
|
assets:bank
|
|
|
|
>>>2
|
|
>>>=0
|
|
|
|
# 7. Rewrite using diff output
|
|
hledger rewrite --diff -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5'
|
|
<<<
|
|
2016/01/01 withdraw
|
|
assets:cash $20
|
|
assets:bank
|
|
|
|
2016/01/02 withdraw
|
|
assets:cash
|
|
assets:bank $-30
|
|
>>>
|
|
--- -
|
|
+++ -
|
|
@@ -1,3 +1,5 @@
|
|
-2016/01/01 withdraw
|
|
+2016-01-01 withdraw ; modified:
|
|
assets:cash $20
|
|
assets:bank
|
|
+ expenses:fee $5 ; generated-posting: = assets:bank and "amt:<0"
|
|
+ assets:bank $-5 ; generated-posting: = assets:bank and "amt:<0"
|
|
@@ -5,3 +7,5 @@
|
|
-2016/01/02 withdraw
|
|
+2016-01-02 withdraw ; modified:
|
|
assets:cash
|
|
assets:bank $-30
|
|
+ expenses:fee $5 ; generated-posting: = assets:bank and "amt:<0"
|
|
+ assets:bank $-5 ; generated-posting: = assets:bank and "amt:<0"
|
|
>>>2
|
|
>>>=0
|