Related to #563, when rendering a transaction, we reserve two more chars of width so that amounts remain aligned when there are posting flags. Affects hledger-ui's transaction screen, print, hledger-rewrite etc.
		
			
				
	
	
		
			109 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 1. read CSV to hledger journal format
 | |
|  rm -rf t.rules$$; printf 'fields date, description, amount\ndate-format %%d/%%Y/%%m\ncurrency $\naccount1 assets:myacct\n' >t.rules$$; echo '10/2009/09,Flubber Co,50' | hledger -f- print --rules-file t.rules$$; rm -rf t.rules$$
 | |
| >>>
 | |
| 2009/09/10 Flubber Co
 | |
|     income:unknown            $-50
 | |
|     assets:myacct              $50
 | |
| 
 | |
| >>>2 /using conversion rules file.*t.rules/
 | |
| >>>=0
 | |
| 
 | |
| # 2. reading CSV with in-field and out-field
 | |
|  printf 'account1 Assets:MyAccount\ndate %%1\ndate-format %%d/%%Y/%%m\ndescription %%2\namount-in %%3\namount-out %%4\ncurrency $\n' >$$.rules ; hledger -f- print --rules-file $$.rules; rm -rf $$.rules
 | |
| <<<
 | |
| 10/2009/09,Flubber Co,50,
 | |
| 11/2009/09,Flubber Co,,50
 | |
| >>>
 | |
| 2009/09/10 Flubber Co
 | |
|     income:unknown              $-50
 | |
|     Assets:MyAccount             $50
 | |
| 
 | |
| 2009/09/11 Flubber Co
 | |
|     expenses:unknown             $50
 | |
|     Assets:MyAccount            $-50
 | |
| 
 | |
| >>>2 /using conversion rules file.*[0-9]+\.rules/
 | |
| >>>=0
 | |
| 
 | |
| # 3. report rules parse error
 | |
| # rm -rf t.rules$$; printf 'date-fiel 0\ndate-format %%d/%%Y/%%m\ndescription-field 1\namount-field 2\ncurrency $\nbase-account assets:myacct\n' >t.rules$$; echo '10/2009/09,Flubber Co,50' | hledger convert --rules-file t.rules$$; rm -rf t.rules$$
 | |
| # >>>
 | |
| # 2009/09/10 Flubber Co
 | |
| #     income:unknown          $-50
 | |
| #     assets:myacct            $50
 | |
| 
 | |
| # >>>2 /using conversion rules file.*t.rules/
 | |
| # >>>=0
 | |
| 
 | |
| # 4. handle conditions assigning multiple fields
 | |
|  rm -rf t.rules$$; printf 'fields date, description, amount\ndate-format %%d/%%Y/%%m\ncurrency $\naccount1 assets:myacct\nif Flubber\n  account2 acct\n  comment cmt' >t.rules$$; echo '10/2009/09,Flubber Co,50' | hledger -f- print --rules-file t.rules$$; rm -rf t.rules$$
 | |
| >>>
 | |
| 2009/09/10 Flubber Co    ; cmt
 | |
|     acct                     $-50
 | |
|     assets:myacct             $50
 | |
| 
 | |
| >>>2 /using conversion rules file.*t.rules/
 | |
| >>>=0
 | |
| 
 | |
| # 5. this should infer display styles correctly
 | |
| # XXX but doesn't: (#415)
 | |
| # Got stdout:
 | |
| #            $-1001.00  income:unknown
 | |
| #            $1,001.00  unknown
 | |
| #hledger --rules-file minimal.csv.rules -f- balance --no-total
 | |
| #<<<
 | |
| #"2016/1/1","$1"
 | |
| #"2016/2/2","$1,000.00"
 | |
| #>>>
 | |
| #          $-1,001.00  income:unknown
 | |
| #           $1,001.00  unknown
 | |
| #>>>=0
 | |
| # 6. read CSV with balance field
 | |
|  rm -rf t.rules$$; printf 'fields date, description, amount, balance\ndate-format %%d/%%Y/%%m\ncurrency $\naccount1 assets:myacct\n' >t.rules$$; echo '10/2009/09,Flubber Co,50,123' | hledger -f- print --rules-file t.rules$$; rm -rf t.rules$$
 | |
| >>>
 | |
| 2009/09/10 Flubber Co
 | |
|     income:unknown            $-50
 | |
|     assets:myacct              $50 = $123
 | |
| 
 | |
| >>>2 /using conversion rules file.*t.rules/
 | |
| >>>=0
 | |
| # 7. read CSV with blank balance field
 | |
|  rm -rf t.rules$$; printf 'fields date, description, amount, balance\ndate-format %%d/%%Y/%%m\ncurrency $\naccount1 assets:myacct\n' >t.rules$$; echo '10/2009/09,Flubber Co,50,123\n11/2009/09,Blubber Co,60,' | hledger -f- print --rules-file t.rules$$; rm -rf t.rules$$
 | |
| >>>
 | |
| 2009/09/10 Flubber Co
 | |
|     income:unknown            $-50
 | |
|     assets:myacct              $50 = $123
 | |
| 
 | |
| 2009/09/11 Blubber Co
 | |
|     income:unknown            $-60
 | |
|     assets:myacct              $60
 | |
| 
 | |
| >>>2 /using conversion rules file.*t.rules/
 | |
| >>>=0
 | |
| # 8. read CSV with empty balance field
 | |
|  rm -rf t.rules$$; printf 'fields date, description, amount, balance\ndate-format %%d/%%Y/%%m\ncurrency $\naccount1 assets:myacct\n' >t.rules$$; echo '10/2009/09,Flubber Co,50,123\n11/2009/09,Blubber Co,60,   ' | hledger -f- print --rules-file t.rules$$; rm -rf t.rules$$
 | |
| >>>
 | |
| 2009/09/10 Flubber Co
 | |
|     income:unknown            $-50
 | |
|     assets:myacct              $50 = $123
 | |
| 
 | |
| 2009/09/11 Blubber Co
 | |
|     income:unknown            $-60
 | |
|     assets:myacct              $60
 | |
| 
 | |
| >>>2 /using conversion rules file.*t.rules/
 | |
| >>>=0
 | |
| # 9. read CSV with rule double-negating column
 | |
|  rm -rf t.rules$$; printf 'skip 1\n\ncurrency $\n\nfields date, payee, payment\n\namount -%%payment\naccount1 liabilities:bank\naccount2 expense:other' >t.rules$$; echo 'date,payee,amount\n2009/10/9,Flubber Co,50\n2009/11/09,Merchant Credit,-60' | hledger -f- print --rules-file t.rules$$; rm -rf t.rules$$
 | |
| >>>
 | |
| 2009/10/09
 | |
|     expense:other                $50
 | |
|     liabilities:bank            $-50
 | |
| 
 | |
| 2009/11/09
 | |
|     expense:other               $-60
 | |
|     liabilities:bank             $60
 | |
| 
 | |
| >>>2 /using conversion rules file.*t.rules/
 | |
| >>>=0
 |