251 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			251 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Tests for rewrite addon
 | |
| 
 | |
| # 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
 | |
|     income:remuneration           $-100
 | |
|     income:donations               $-15
 | |
|     assets:bank
 | |
|     (liabilities:tax)              $-33    ; income tax
 | |
|     (liabilities:tax)               $-5    ; income tax
 | |
| 
 | |
| 2016/01/01 withdraw
 | |
|     assets:cash             $20
 | |
|     assets:bank
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # Duplicate posting for budgeting (from documentation)
 | |
| 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
 | |
|     assets:cash               $-15
 | |
|     expenses:gifts        ; [1/2]
 | |
|     (budget:gifts)            $-15    ; [2016/01/02]
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # 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
 | |
|     (assets:unbilled:client1)           0.42h
 | |
|     (assets:to bill:client1)        42.00 CAD
 | |
| 
 | |
| 2017/04/25 * 10:00-11:15
 | |
|     (assets:unbilled:client1)           1.25h
 | |
|     (assets:to bill:client1)       125.00 CAD
 | |
| 
 | |
| 2017/04/25 * 14:00-15:32
 | |
|     (assets:unbilled:client2)           1.54h
 | |
|     (assets:to bill:client2)       231.00 CAD
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| 
 | |
| # 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
 | |
|     (assets:unbilled:client1)           0.42h
 | |
|     assets:to bill:client1             $42.00
 | |
|     income:consulting:client1
 | |
| 
 | |
| 2017/04/25 * 10:00-11:15
 | |
|     (assets:unbilled:client1)           1.25h
 | |
|     assets:to bill:client1            $125.00
 | |
|     income:consulting:client1
 | |
| 
 | |
| 2017/04/25 * 14:00-15:32
 | |
|     (assets:unbilled:client2)           1.54h
 | |
|     assets:to bill:client2            $231.00
 | |
|     income:consulting:client2
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # Add absolute bank processing fee
 | |
| 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
 | |
|     assets:cash              $20
 | |
|     assets:bank
 | |
|     expenses:fee              $5
 | |
|     assets:bank              $-5
 | |
| 
 | |
| 2016/01/02 withdraw
 | |
|     assets:cash
 | |
|     assets:bank             $-30
 | |
|     expenses:fee              $5
 | |
|     assets:bank              $-5
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # 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
 | |
|     expenses:housing         $600.00
 | |
|     assets:cash
 | |
| 
 | |
| 2017/01/01
 | |
|     expenses:food             $20.00
 | |
|     expenses:leisure          $15.00
 | |
|     expenses:grocery          $30.00
 | |
|     assets:cash
 | |
|     Here comes Santa               0
 | |
|     Here comes Santa               0
 | |
|     Here comes Santa               0
 | |
|     Here comes Santa               0
 | |
|     (budget:food)            $-20.00
 | |
|     (budget:food)            $-30.00
 | |
|     (budget:misc)            $-15.00
 | |
| 
 | |
| 2017/01/02
 | |
|     assets:cash              $200.00
 | |
|     assets:bank
 | |
|     Here comes Santa               0
 | |
|     Here comes Santa               0
 | |
|     assets:bank               $-1.60
 | |
|     expenses:fee               $1.60    ; cash withdraw fee
 | |
|     (budget:misc)             $-1.60
 | |
| 
 | |
| 2017/02/01
 | |
|     assets:cash         $100.00
 | |
|     assets:bank
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # 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
 | |
|      assets:cash              $20
 | |
|      assets:bank
 | |
| +    expenses:fee              $5
 | |
| +    assets:bank              $-5
 | |
| @@ -5,3 +7,5 @@
 | |
|  2016/01/02 withdraw
 | |
|      assets:cash
 | |
|      assets:bank             $-30
 | |
| +    expenses:fee              $5
 | |
| +    assets:bank              $-5
 | |
| >>>2
 | |
| >>>=0
 |