Commit Graph

159 Commits

Author SHA1 Message Date
Stephen Morgan
dc41cee2b0 lib: datep now requires years to be at least four digits. 2020-07-31 17:22:27 -07:00
Dmitry Astapov
a82c383370 lib: disallow tabs in simplecommoditysymbolp (fixes #1301) 2020-07-28 15:33:47 -07:00
Simon Michael
cb599111a6 ;journal: account types: fix broken tests 2020-07-17 10:04:06 -07:00
Simon Michael
e4f8b80d3b ;journal: account types: fix detection of Cash as an Asset, add tests 2020-07-17 10:02:14 -07:00
Stephen Morgan
1425301a8c lib, cli: Use --flat as the default mode for all reports. 2020-07-07 15:49:08 -07:00
Stephen Morgan
604868cea5 lib, cli: Move CompoundBalanceReport into ReportTypes, compoundReportWith into MultiBalanceReport, share postings amongst subreports. 2020-06-28 07:29:49 -07:00
Stephen Morgan
d2e0312ab1 cli: Make --no-total remove subtotals from CompoundBalanceReport, not just net total. 2020-06-22 12:16:07 -07:00
Simon Michael
e3cae4aadc valuation: implement new --infer-value flag & semantics (#1239, #1253) 2020-06-19 14:40:20 -07:00
Stephen Morgan
2f71da8838 lib: More consistent period formatting. 2020-06-04 19:30:42 -07:00
Dmitry Astapov
cbf4029b8b lib: test for issue with sign checking code + fix 2020-06-01 15:17:15 -07:00
Simon Michael
0a5fa33f9d split more long transaction balancing errors into lines; refactor 2020-05-29 16:31:15 -07:00
Simon Michael
924ec1c98d journal: clearer transaction balancing errors; refactor
As mentioned by netvor on IRC, the unbalanced transaction error was
not too clear when postings all have the same sign.

Some other wording has been clarified, and the main error message is
now shown on multiple lines for readability (at the cost of
predictability/grepability..)

There's also a probably unnoticeable change: selecting which parts of
the error to show is now based on display precisions (reusing the
balanced check logic), rather than original precisions.
2020-05-29 16:07:58 -07:00
Simon Michael
e1ddfc3a1b lib: also infer market prices from transactions, like Ledger (#1239) (WIP) 2020-05-25 17:45:31 -07:00
Simon Michael
84165f5a0c ;journal: fix tests 2020-03-17 17:48:17 -07:00
Simon Michael
21fdcec6b7 journal: inclusive balance assignments now work (#1207) 2020-03-05 13:38:19 -08:00
Simon Michael
41bb7865f3 ;convert balance assertion/assignment tests to new format
And update a seemingly obsolete test description.

[ci skip]
2020-03-05 11:19:21 -08:00
Simon Michael
f18c74fff7 ;journal: a test for inclusive balance assignment, disabled (#1207)
[ci skip]
2020-03-05 11:19:04 -08:00
Simon Michael
b1f3880c3d lib: drop the file format auto-detection feature
For a long time hledger has auto-detected the file format when it's
not known, eg when reading from a file with unusual extension (like
.dat or .txt), or from standard input (-f-), or when using the include
directive (which currently ignores file extensions).

Auto-detecting has been done by trying all readers until one succeeds.
This could guess wrong in some cases, but it was so rare that it has
been working fine.

Recently, more conveniences have been added to timedot format,
increasing its overlap with journal format, which makes this kind of
auto-detection unreliable.

Auto-detection and auto-detection failures are (probably) still pretty
rare in practice. But when it does happen it's confusing, giving
misleading errors or false successes (eg printing timedot entries
instead of a journal error).

For predictability and to minimise confusion, hledger no longer tries
to guess; when there's no file extension or reader prefix, it assumes
journal format. To specify one of the other formats, you must use a
standard file extension (.timeclock, .timedot, .csv, .ssv, .tsv), or a
reader prefix (-f csv:foo.txt, -f timedot:-).

For now, the include directive still tries to autodetect
(journal/timeclock/timedot), and this can't be overridden; it will be
fixed later.

Experimental; testing and feedback welcome.
2020-03-01 14:06:29 -08:00
Simon Michael
e4a0bdff8d journal: default commodity (D) limits display precision too (#1187)
D directives are now fully equivalent to commodity directives for
setting a commodity's display style. (Previously it was equivalent to
a posting amount, so it couldn't limit the number of decimal places.)
When both kinds of directive exist, commodity directives take precedence.
When there are multiple D directives in the journal, only the last one
affects display style.
2020-02-11 09:47:26 -08:00
Simon Michael
1741b607e2 lib: more cleanup of amount canonicalisation helpers (#1187)
Stop exporting journalAmounts, overJournalAmounts, traverseJournalAmounts.
Rename journalAmounts helper to journalStyleInfluencingAmounts.

D directives are now a little better at influencing amount
canonicalisation, eg in the updated test case.
2020-02-11 09:23:04 -08:00
Simon Michael
242bf528fd ;tests: convert default commodity tests to new format
[ci skip]
2020-02-11 08:34:22 -08:00
Simon Michael
dad4d9b662 print: be sure to value all postings; -V/-X/--value now imply -x
Previously -B implied -x; now any of the valuation flags do.
This avoids a bug where print -V of a transaction with an implicit
commodity conversion would convert only some of its postings to value.

Also, more valuation tests.
2020-02-10 12:41:36 -08:00
Simon Michael
aa96b41efe print, register: add --value=then, valuing at each posting's date
Currently this will give an error with other kinds of report.
2020-02-10 08:20:39 -08:00
Simon Michael
b3711488a7 lib: apply canonical display styles to auto posting amounts too 2020-01-31 06:00:06 -08:00
Brian Wignall
c823f5b51a Get "make functest" working again 2020-01-07 15:58:54 -08:00
Brian Wignall
03e68f3925 Get "make functest" working again 2020-01-07 15:58:54 -08:00
Brian Wignall
e12b0a4f05 Get "make functest" working again 2020-01-07 15:58:54 -08:00
Brian Wignall
28f9f043e5 Get "make functest" (mostly) working again 2020-01-07 15:58:54 -08:00
Simon Michael
8f1aa0981e ;make that auto posting test independent of current date
[ci skip]
2020-01-04 17:36:57 -08:00
Aleksandar Dimitrov
f55f814155 Fix auto postings test.
Happy new year!
2020-01-02 09:54:14 -08:00
Mykola Orliuk
6dbe925eed cli: anonymize transaction code also 2019-11-18 17:42:22 -08:00
Mykola Orliuk
0a273561f7 cli: anonymize declared accounts also
Fixes simonmichael/hledger#901
2019-11-18 17:42:22 -08: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
39635b2fde ;valuation: test documenting new end-date behaviour (#1083)
[ci skip]
2019-09-05 21:03:30 -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
07c4b3e0ab ;tests: consolidate query tests slightly
[ci skip]
2019-07-26 23:22:46 +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
5ceb278296 ;journal: tests: note surprising decimal mark parsing
[ci skip]
2019-07-09 11:31:56 +01:00
Simon Michael
6c2398e4d7 close: preserve transaction prices (costs) accurately (#1035)
Transaction prices were being collapsed/misreported after close/open;
this is fixed. Now each separately-priced amount gets its own posting,
and only the last of these (for each commodity) gets a balance
assertion. Also the equity posting's amount is now always shown
explicitly, which in multicommodity situations means that multiple
equity postings are shown. The upshot is that a balance -B report
will be unchanged after closing & opening transactions.
2019-07-09 11:21:22 +01:00
Simon Michael
19ba1628bf ;print: more valuation-related tests
[ci skip]
2019-07-08 06:00:28 +01:00
Simon Michael
33d03284c3 ;valuation: more tests; document default amount style issue
[ci skip]
2019-06-17 08:19:23 -07:00
Caleb Maclennan
18e19b9ad2 ;tests: normalize tests, examples, and docs using 2spcs before comments 2019-06-13 12:12:21 -07:00
Simon Michael
aa99743096 make -V do --value=end in multiperiod reports (#329) 2019-05-24 10:30:35 -07:00
Simon Michael
37b30415d5 update valuation tests to match latest #329 scheme 2019-05-23 21:55:19 -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
fb18019212 bal: document and test --value-at with --budget (#329) 2019-05-09 12:23:51 -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
9680e894cc ;tests: fix totals in a --value-at test
[ci skip]
2019-05-09 07:57:03 -07:00
Simon Michael
72214a5747 reg: fix --value-at=transaction with -M (#329) 2019-05-06 08:07:16 -07:00