Dmitry Astapov
e4add6df83
lib: fix for multiline descriptions in csv ( fixes #841 , #416 )
2019-11-05 21:16:42 +00:00
Dmitry Astapov
9aab476d53
lib: csv parser supports up to 9 postings. Fixes #570 , #627
2019-11-05 21:16:42 +00:00
Simon Michael
312e772468
prices: style price amounts; always show full precision
2019-10-20 07:09:34 -07:00
Simon Michael
b598f30a8a
;lib: styleAmountExceptPrecision
2019-10-20 07:08:45 -07:00
Simon Michael
2e3b51c03f
;lib: journalConvertAmountsToCost -> journalToCost
2019-10-19 19:58:27 -07:00
Simon Michael
54e1caebf1
;lib: refactor journalConvertAmountsToCost
2019-10-19 19:53:05 -07:00
Simon Michael
905149df86
;lib: transaction valuation helpers
2019-10-19 19:41:21 -07:00
Simon Michael
de0a6b1e62
;lib: Transaction: as Map -> as M
2019-10-19 19:17:35 -07:00
Mykola Orliuk
78146978f4
;lib: store raw opts unquoted
...
It looks like we only need quote when we build query and in some
messages.
Fixes simonmichael/hledger#1079
2019-10-19 14:44:08 -07:00
Simon Michael
eff1b31c86
csv: allow csv records with varying lengths, padding with empties
...
Sometimes trailing empty fields are omitted entirely (including the
commas) in CSV records. (I see this in exported Google spreadsheets.)
Now we don't raise an error in this case, instead we automatically pad
any "short" records with empty fields. Not yet well tested.
2019-10-07 14:54:36 -10:00
Simon Michael
6dcddadd9f
;journal: in generated-transaction:/posting: tags, add a space before the value
2019-10-07 14:54:36 -10:00
Simon Michael
16973ce296
;lib: fix journalInferCommodityStyles debug message
2019-09-27 18:51:37 -07:00
Simon Michael
58a313165c
;journal: infer amount styles more carefully, fix wrong output ( #1091 )
...
Certain journal entries could trigger a bug where we displayed amounts
with the same character for digit group mark and decimal mark. Now if
a comma or period digit group mark is detected, that forces the
decimal mark to be the other character.
2019-09-27 15:40:36 -10:00
Simon Michael
9967ead4c5
;lib: let commodityStylesFromAmounts & co. return an error ( #793 , #1091 )
...
And if they did, the stats command would now throw an error.
Changed:
journalApplyCommodityStyles
journalInferCommodityStyles
commodityStylesFromAmounts
2019-09-27 15:09:39 -10:00
Simon Michael
64f49a8c02
;doc: journal: rewrite Amounts; switch to "digit group mark" term ( #1091 )
2019-09-27 14:25:32 -10:00
Simon Michael
b754abc36b
;lib: commodityStylesFromAmounts: simplify, disable #1091 test
2019-09-26 18:06:22 -10:00
Simon Michael
4884213a3e
;lib: commodityStylesFromAmounts: a failing unit test for #1091
2019-09-25 23:08:00 -10:00
Simon Michael
7ffe38677a
;lib: parseAndFinaliseJournal: note txns order issue ( #1091 )
2019-09-25 23:07:22 -10:00
Simon Michael
6037d701b6
;lib: document RawNumber, AmbiguousNumber, DigitGrp ( #1091 )
2019-09-25 21:26:06 -10:00
Simon Michael
180f4baedb
;lib: csv: note cause of #1087
...
[ci skip]
2019-09-14 03:45:37 -07:00
Simon Michael
f92b2fe6ef
;lib: csv: refactor: clarify, get rid of some IO/ExceptT
...
Rule parsing doesn't need IO (since we are doing expandIncludes as a
pre-parsing step).
2019-09-14 03:45:37 -07:00
Simon Michael
3c05662ce2
;lib: csv: clarify confusing imports
2019-09-13 18:11:40 -07:00
Simon Michael
46caa1d4ef
;lib: csv: rename error-prone default rules
2019-09-13 17:51:14 -07:00
Dmitry Astapov
568cb32677
lib: more runPeriodicTransaction tests (lifted from #1085 and spanIntervalIntersect)
2019-09-11 16:09:28 -07:00
Dmitry Astapov
e9d300bef3
lib: dont raise when there is neither budget nor transactions in the report period
2019-09-11 16:09:28 -07:00
Dmitry Astapov
cf74972148
bin: improve debug output for budger report (show budget txns)
2019-09-11 16:09:28 -07:00
Dmitry Astapov
cf4029a5ed
lib: fix generation of periodic transactions with days/months/... repeat
2019-09-11 16:09:28 -07:00
Simon Michael
499e20c0b2
lib, cli, ui: start using Control.Monad.Fail, allow base-compat 0.11
...
fail is moving out of Monad and into it's own MonadFail class.
This will be enforced in GHC 8.8 (I think).
base-compat/base-compat-batteries 0.11.0 have adapted to this,
and are approaching stackage nightly
(https://github.com/commercialhaskell/stackage/issues/4802 ).
hledger is now ready to build with base-compat-batteries 0.11.0, once
all of our deps do (eg aeson). We are still compatible with the older
0.10.x and GHC 7.10.3 as well.
For now we are using both fails:
- new fail (from Control.Monad.Fail), used in our parsers, imported
via base-compat-batteries Control.Monad.Fail.Compat to work with
older GHC versions.
- old fail (from GHC.Base, exported by Prelude, Control.Monad,
Control.Monad.State.Strict, Prelude.Compat, ...), used in easytest's
Test, since I couldn't find their existing fail implementation to update.
To reduce (my) confusion, these are imported carefully, consistently,
and qualified everywhere as Fail.fail and Prelude.fail, with clashing
re-exports suppressed, like so:
import Prelude hiding (fail)
import qualified Prelude (fail)
import Control.Monad.State.Strict hiding (fail)
import "base-compat-batteries" Prelude.Compat hiding (fail)
import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail
2019-09-08 17:13:47 -07:00
Simon Michael
c7746131fc
;lib: clarify parser monad transformers a little
...
[ci skip]
2019-09-08 10:40:47 -07:00
Simon Michael
a7f172b085
valuation: -V/-X respects report end date, code/doc cleanups ( #1083 )
...
-V (and -X) now respects a report end date set with -e/-p/date: when
choosing the valuation date, similar to hledger 1.14 and Ledger.
This means that -V/-X aren't exactly like either --value=end or
--value=now. The "Effect of --value on reports" doc has been extended
accordingly, and much of it has been reworded and made more accurate.
2019-09-05 13:41:36 -07:00
Simon Michael
095badd7f9
;fix doctests
2019-08-31 17:15:48 -07:00
Simon Michael
5925808108
lib, web: unhide exports, fix build
2019-08-19 12:30:54 +01:00
Simon Michael
11519744d8
;lib: Valuation: hide some exports
2019-08-19 11:59:32 +01:00
Simon Michael
62e96b1b20
;lib: move PriceGraph, PriceOracle, ValuationType to Valuation.hs
2019-08-19 02:21:30 +01:00
Simon Michael
1cbbe8f43d
memoise market valuation, making it fast ( #999 )
2019-08-19 02:16:39 +01:00
Simon Michael
4beb416070
lib: currying helpers
2019-08-19 02:09:27 +01:00
Simon Michael
7177f533b2
;lib: pricesAtDate: refactor
2019-08-01 18:31:39 +02:00
Simon Michael
70986769ef
;lib: derive NFData for MultiBalanceReport, PriceGraph for criterion
...
Allow these to be timed with criterion at ghci prompt.
2019-08-01 18:31:39 +02:00
Simon Michael
d193d757ea
;lib: multiBalanceReport: fix error message typo
2019-08-01 18:22:14 +02:00
Simon Michael
02ed4f5d04
;lib: intervalFromRawOpts: replace undefined with an error message
2019-07-25 10:46:45 +01:00
Simon Michael
35799142dd
Merge pull request #914 from simonmichael/rule-tags
...
tags for matching rule-generated txns and postings
2019-07-17 18:38:14 +01:00
Simon Michael
6e3a264f17
lib: export aliasnamep for hledger-check ( #1072 )
2019-07-16 23:30:15 +01:00
Caleb Maclennan
11d9e5eb6a
code: Strip extraneous trailing whitespace from Haskell sources
2019-07-15 16:40:49 +01:00
Simon Michael
6b61d1e0f1
;lib: move transactionNote/Payee to Transaction.hs
2019-07-15 08:22:16 +01:00
Simon Michael
6f2f8d7638
;deps: a better fix for nubSortBy with ghc 7.10, 8.0
...
nubSortBy and nub . sortBy are not equivalent, it seems.
I didn't notice the failing valuation func tests.
2019-07-13 00:13:33 -07:00
Simon Michael
ec310aea73
;lib: avoid nubSortBy which breaks ghc 7, 8.0 builds
2019-07-12 15:21:57 -07:00
Simon Michael
5c3e4de647
;lib: periodFromRawOpts: clarify doc ( #1011 )
...
[ci skip]
2019-07-01 18:33:18 +01:00
Jakob Schöttl
e483faf7f0
Bugfix for #1011 : begin/end date options
2019-06-30 10:38:06 +02:00
Simon Michael
014db152d9
add, web: disallow unsafe trailing dot paths on windows ( fix #1056 )
...
On Windows, ensureJournalFileExists now rejects file paths
containing any problematic trailing dots, to prevent data loss.
This affects the add command and hledger-web's add form.
2019-06-26 18:19:53 +01:00
Simon Michael
33d03284c3
;valuation: more tests; document default amount style issue
...
[ci skip]
2019-06-17 08:19:23 -07:00
Simon Michael
2da50875ee
lib: setNaturalPrecisionUpTo
2019-06-14 19:04:09 -07:00
Simon Michael
5cb334514c
;lib: rename setMinimalPrecision -> setNaturalPrecision
2019-06-14 19:04:09 -07:00
Simon Michael
69defd497f
;lib: refactor: Data.Prices -> Data.Valuation
2019-06-14 19:04:09 -07:00
Simon Michael
83030a09de
;lib: Prices: refactor
2019-06-14 19:04:09 -07:00
Simon Michael
7dd0c5783a
;lib: multibalancereport: refactor
2019-06-14 19:04:09 -07:00
Simon Michael
0a3af8d9ee
csv: strip outer whitespace when interpolating CSV values ( #1051 )
...
This removes a potential snag in amount field assignments, and
hopefully is harmless and acceptable otherwise.
2019-06-14 16:43:12 -07:00
Simon Michael
d2b3185062
csv: don't show invalid inter-field spaces in CSV error messages
...
Errors involving a record like:
2000-01-01,a,"1"
displayed the record with extra spaces:
the CSV record is: "2000-01-01", "a", "1"
which was not accurate or valid RFC-4180.
2019-06-14 16:17:40 -07:00
Simon Michael
baa15d9bea
;lib: rename MultiBalanceReports.hs -> MultiBalanceReport.hs
2019-06-14 11:45:25 -07:00
Simon Michael
e664fab956
lib: try to simplify, use just one price graph ( #131 )
2019-06-13 15:50:01 -07:00
Simon Michael
dd5afbb6fe
;doc, debug output tweaks ( #131 )
2019-06-13 15:50:01 -07:00
Simon Michael
6a62bd6437
web, api: update for MarketPrice/PriceDirective change
2019-06-13 15:50:01 -07:00
Simon Michael
ce0354ddbe
lib: -X/--exchange now supports indirect price chains ( #131 )
...
Adds fgl as a dependency.
2019-06-13 15:50:01 -07:00
Simon Michael
692620180e
;lib: refactor: change AmountPrice to a Maybe
...
I've wanted to do this for a long time; now that prices are in flux,
seems a good time.
2019-06-13 15:50:01 -07:00
Simon Michael
adb6ee40eb
lib: clarify price types ( #131 )
...
dropped journalPrices
renamed Price to AmountPrice, AKA "transaction price"
renamed MarketPrice to PriceDirective.
added new MarketPrice (more pure form of PriceDirective without the amount style information)
Prices is now a more efficient data structure, but not used yet.
2019-06-13 15:50:01 -07:00
Simon Michael
e24c6292d0
lib: support -X/--exchange (direct/reverse prices only) ( #131 )
2019-06-13 15:50:01 -07:00
Simon Michael
50a52dd467
lib: --value can select commodity (via direct/reverse prices) ( #131 )
2019-06-13 15:50:01 -07:00
Simon Michael
6b6c3385c9
lib: parse optional ,COMM suffix in --value ( #131 )
2019-06-13 15:50:01 -07:00
Caleb Maclennan
18e19b9ad2
;tests: normalize tests, examples, and docs using 2spcs before comments
2019-06-13 12:12:21 -07:00
Caleb Maclennan
8f3e5f9d3b
;print: differentiate posting indent (4spc) and pre-comment space (2spc)
...
Co-authored-by: Simon Michael <simon@joyful.com>
2019-06-13 12:12:21 -07:00
Henning Thielemann
4962b2696a
lib: accountTransactionsReportItems: rewrite using catMaybes and mapAccumL
...
I find the report function less convolved without the integrated recursion.
2019-06-09 18:45:58 -07:00
Simon Michael
88f3f6fc41
print: also canonicalise balance assertions' amount style ( fix #1042 )
2019-06-09 17:39:46 -07:00
Simon Michael
90af360792
csv: fix parse error printing, broken since 1.11 ( #1038 )
2019-06-06 23:10:31 -07:00
Simon Michael
45198d3faa
lib: debug helpers: add ptraceAtWith, dbgNWith
2019-06-02 08:48:41 -07:00
Simon Michael
42ce95aaef
; refactor: centralise valuation logic #131
2019-05-31 15:29:09 -07:00
Simon Michael
ad83919c6a
; lib: drop the Maybe from SummaryPosting
2019-05-31 15:29:09 -07:00
Simon Michael
69d72e8c48
;refactor amountValue
2019-05-25 05:34:29 -07:00
Simon Michael
34a0ad00b1
;lib: encapsulate Prices db
2019-05-25 05:29:34 -07:00
Simon Michael
aa99743096
make -V do --value=end in multiperiod reports ( #329 )
2019-05-24 10:30:35 -07:00
Simon Michael
ea5050963f
web: try to fix RegisterR warning
2019-05-23 22:34:31 -07:00
Simon Michael
20bc386b80
restore TransactionsReport
...
hledger-web's register chart uses it, I didn't see it
because it's called from a hamlet template.
2019-05-23 22:15:40 -07:00
Simon Michael
7212b92079
cleanups ( #329 )
2019-05-23 22:07:50 -07:00
Simon Michael
54c1529638
lib: drop TransactionsReport, BalanceHistoryReport
...
They seem unused.
2019-05-23 21:55:19 -07:00
Simon Michael
04a30fa084
lib: TransactionsReport/AccountTransactionsReport cleanup
...
Split them into separate files, rename journalTransactionsReport to
transactionsReport.
2019-05-23 21:55:19 -07:00
Simon Michael
9977739c76
bal etc.: replace --value=transaction with --value=cost ( #329 )
2019-05-23 21:55:18 -07:00
Simon Michael
adbce22152
bal: --budget: don't always convert to cost
...
And don't show a percentage when budgeted and actual amounts are in
different commodities.
2019-05-23 21:55:18 -07:00
Simon Michael
2355da0f93
reg: replace --value=transaction with --value=cost
2019-05-23 21:55:18 -07:00
Simon Michael
ace215f5f3
print: replace --value=transaction with --value=cost
2019-05-23 21:55:18 -07:00
Simon Michael
37c0edb1f9
lib: drop postingValueAtDate
2019-05-23 21:55:18 -07:00
Simon Michael
4a75971c6d
lib: postingTransformAmount, postingToCost, postingValue
2019-05-23 21:55:17 -07:00
Simon Michael
e5cb082fb5
lib: amountToCost, mixedAmountToCost
2019-05-23 13:11:34 -07:00
Simon Michael
f999bf78e6
opts: new -B/--cost, -V/--market, --value flags ( #329 )
2019-05-23 13:11:20 -07:00
Simon Michael
e21afc466a
bal/bs/bse: -H or --cumulative now disables -T ( #329 )
...
To reduce confusion, multiperiod balance reports using -H/--historical
or --cumulative, which show end balances, no longer show a Totals
column since summing end balances generally doesn't make sense.
Also the underlying MultiBalanceReport now returns zero for those
totals when in cumulative or historical mode.
2019-05-11 20:43:28 -07:00
Simon Michael
76342a3fd0
bal/bs/cf/is: mention valuation type in report title
2019-05-09 15:39:43 -07:00
Simon Michael
e5339218f7
lib: valueTypeFromOpts helper
2019-05-09 15:36:26 -07:00
Simon Michael
d15869f855
;doc: typo
...
[ci skip]
2019-05-09 12:22:48 -07:00
Simon Michael
d77fd5743d
bal/bs/cf/is: support --value-at with -H; fix row/col/grand totals
...
This also includes a big cleanup of multiBalanceReport, which got
accidentally mingled.
2019-05-09 07:58:45 -07:00
Simon Michael
2ffe7914be
;improve valuation code docs
2019-05-07 16:19:49 -07:00
Simon Michael
74e653bfbc
;lib: declare Period exports
2019-05-06 11:52:10 -07:00
Simon Michael
72214a5747
reg: fix --value-at=transaction with -M ( #329 )
2019-05-06 08:07:16 -07:00
Simon Michael
ad00da244b
reg: support --value-at with -H ( #329 )
2019-05-05 17:47:38 -07:00