2012-03-26 02:12:52 +04:00
|
|
|
# 1. read CSV to hledger journal format
|
2015-07-12 21:54:08 +03:00
|
|
|
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$$
|
2010-12-21 20:57:06 +03:00
|
|
|
>>>
|
|
|
|
2009/09/10 Flubber Co
|
2012-01-30 21:18:32 +04:00
|
|
|
income:unknown $-50
|
|
|
|
assets:myacct $50
|
2010-12-21 20:57:06 +03:00
|
|
|
|
2012-05-30 12:36:01 +04:00
|
|
|
>>>2 /using conversion rules file.*t.rules/
|
2011-08-15 02:15:39 +04:00
|
|
|
>>>=0
|
2012-01-30 21:18:32 +04:00
|
|
|
|
2012-03-26 02:12:52 +04:00
|
|
|
# 2. reading CSV with in-field and out-field
|
2015-07-12 21:54:08 +03:00
|
|
|
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
|
2012-03-26 02:12:52 +04:00
|
|
|
<<<
|
|
|
|
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
|
|
|
|
|
2012-05-30 12:36:01 +04:00
|
|
|
>>>2 /using conversion rules file.*[0-9]+\.rules/
|
2012-03-26 02:12:52 +04:00
|
|
|
>>>=0
|
|
|
|
|
|
|
|
# 3. report rules parse error
|
2015-07-12 21:54:08 +03:00
|
|
|
# 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$$
|
2012-01-30 21:18:32 +04:00
|
|
|
# >>>
|
|
|
|
# 2009/09/10 Flubber Co
|
|
|
|
# income:unknown $-50
|
|
|
|
# assets:myacct $50
|
|
|
|
|
2012-05-30 12:36:01 +04:00
|
|
|
# >>>2 /using conversion rules file.*t.rules/
|
2012-01-30 21:18:32 +04:00
|
|
|
# >>>=0
|
|
|
|
|
2013-06-19 11:29:45 +04:00
|
|
|
# 4. handle conditions assigning multiple fields
|
2015-07-12 21:54:08 +03:00
|
|
|
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$$
|
2013-06-19 11:29:45 +04:00
|
|
|
>>>
|
2013-09-10 21:32:49 +04:00
|
|
|
2009/09/10 Flubber Co ; cmt
|
2013-06-19 11:29:45 +04:00
|
|
|
acct $-50
|
|
|
|
assets:myacct $50
|
|
|
|
|
|
|
|
>>>2 /using conversion rules file.*t.rules/
|
|
|
|
>>>=0
|
2016-10-09 04:20:26 +03:00
|
|
|
|
|
|
|
# 5. this should infer display styles correctly
|
2016-10-22 01:38:59 +03:00
|
|
|
# XXX but doesn't: (#415)
|
|
|
|
# Got stdout:
|
2016-10-09 04:20:26 +03:00
|
|
|
# $-1001.00 income:unknown
|
|
|
|
# $1,001.00 unknown
|
2016-10-22 01:38:59 +03:00
|
|
|
#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
|
2017-04-15 00:52:03 +03:00
|
|
|
# 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
|
2017-04-18 19:07:30 +03:00
|
|
|
# 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
|
2017-04-15 00:52:03 +03:00
|
|
|
|
2017-04-18 19:07:30 +03:00
|
|
|
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
|
2017-05-14 03:34:33 +03:00
|
|
|
# 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
|