254 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			254 lines
		
	
	
		
			7.4 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
 |