lib: csv reader gets balance-style directive

This commit is contained in:
Dmitry Astapov 2019-11-12 23:33:38 +00:00 committed by Simon Michael
parent fb3c1a132c
commit 39bc183340
2 changed files with 34 additions and 1 deletions

View File

@ -523,6 +523,7 @@ directives =
,"newest-first"
-- ,"base-account"
-- ,"base-currency"
, "balance-style"
]
directivevalp :: CsvRulesParser String
@ -820,7 +821,21 @@ transactionFromCsvRecord sourcepos rules record = t
tprecedingcomment = T.pack precomment,
tpostings = postings
}
toAssertion (a, b) = assertion{
defaultAssertion =
case mdirective "balance-style" of
Nothing -> assertion
Just "=" -> assertion
Just "==" -> assertion {batotal=True}
Just "=*" -> assertion {bainclusive=True}
Just "==*" -> assertion{batotal=True, bainclusive=True}
Just x -> error' $ unlines
[ "balance-style \"" ++ x ++"\" is invalid. Use =, ==, =* or ==*."
, showRecord record
, showRules rules record
]
toAssertion (a, b) = defaultAssertion{
baamount = a,
baposition = b
}

View File

@ -475,6 +475,24 @@ $ ./hledger-csv
>=0
# 22. read CSV with balance-style directive
<
10/2009/09,Flubber Co,50,123
RULES
fields date, description, amount, balance
date-format %d/%Y/%m
balance-style ==*
currency $
account1 assets:myacct
$ ./hledger-csv
2009/09/10 Flubber Co
assets:myacct $50 ==* $123
income:unknown $-50
>=0
# . TODO: without --separator gives obscure error
# |