Commit Graph

2611 Commits

Author SHA1 Message Date
Simon Michael
387325b59e ;pkg: bump version to 1.24 2021-12-01 17:16:28 -10:00
Simon Michael
1d3f7a2aad ;doc: update manuals 2021-12-01 17:16:04 -10:00
Simon Michael
55f5aa9238 ;doc: changelog edits 2021-11-26 21:06:52 -10:00
Simon Michael
4933b9fc45 ;doc: draft changelogs 2021-11-26 12:02:36 -10:00
Simon Michael
cda693a94f imp: stats: run time and throughput on one line 2021-11-26 07:13:20 -10:00
Simon Michael
791f4655df ;doc: update manuals 2021-11-26 05:58:55 -10:00
Simon Michael
308c554603 ;doc: update CLI usage texts 2021-11-26 05:57:12 -10:00
Simon Michael
aba46874f2 ;dev: is: code notes 2021-11-25 11:55:58 -10:00
Simon Michael
4504c173fb ;cln: clarify #1698 test 2021-11-25 11:55:58 -10:00
Simon Michael
7f320ebfa9 imp: balcmds: support --declared on bs/cf/is also (#1765) 2021-11-25 11:55:58 -10:00
Simon Michael
6319d6148f feat: bal: with --declared, include declared leaf accounts (#1765)
Together with -E, this shows a balance for both used and declared
accounts (excluding empty parent accounts, which are usually not
wanted in list-mode reports).

This is somewhat consistent with --declared in the accounts and payees
commands, except for the leaf account restriction.

The idea of this is to be able to see a useful "complete" balance
report, even when you don't have transactions in all of your declared
accounts yet. I mainly want this for hledger-ui, but there's no harm
in exposing it in the balance CLI as well.
2021-11-23 09:47:04 -10:00
Simon Michael
94d92b9760 Revert "feat: bal: with --declared, include all declared accounts (#1765)"
This reverts commit a5e19b7391.
(It breaks filtering by account.)
2021-11-22 12:06:23 -10:00
Simon Michael
a5e19b7391
feat: bal: with --declared, include all declared accounts (#1765)
Together with -E, this allows showing a balance for all accounts, both
used and declared. I mainly want this for hledger-ui, but there's no
harm in exposing it in the balance command as well. This is somewhat
consistent with the accounts and payees commands.
2021-11-22 11:08:33 -10:00
Simon Michael
45da9bb594 bal: fix bcexample test 2021-11-22 10:14:37 -10:00
Simon Michael
6e3695c317 ;dev: commodities: note todo 2021-11-22 09:59:49 -10:00
Simon Michael
af4d269215 ;imp: doc: account types: prioritise short names, hide old syntax 2021-11-22 08:25:53 -10:00
Simon Michael
3763b50ff2 imp: doc: directives: tweak 2021-11-21 23:53:44 -10:00
Simon Michael
df472b6cc5 ;doc: update manuals 2021-11-21 23:52:17 -10:00
Simon Michael
508b180b63 imp: doc: directives: tweak 2021-11-21 23:52:05 -10:00
Simon Michael
1d0fa5a96b ;doc: update manuals 2021-11-21 23:44:35 -10:00
Simon Michael
f6b10df50b imp: doc: directives: tweak 2021-11-21 23:44:19 -10:00
Simon Michael
14aa047e08 ;doc: update manuals 2021-11-21 23:33:44 -10:00
Simon Michael
1c388f0350 imp: doc: directives: tweak 2021-11-21 23:32:08 -10:00
Simon Michael
73d3cafbae ;doc: update manuals 2021-11-21 23:24:43 -10:00
Simon Michael
321a9195aa imp: doc: directives: tweak 2021-11-21 23:24:36 -10:00
Simon Michael
7b59821378 ;doc: update manuals 2021-11-21 23:06:55 -10:00
Simon Michael
6225db6b36 imp: doc: directives ends-at-file-end column 2021-11-21 23:06:45 -10:00
Simon Michael
c7cc1caca0 ;doc: update manuals 2021-11-21 22:41:52 -10:00
Simon Michael
d8205306dc imp: doc: more compact/accurate directives overview 2021-11-21 22:41:02 -10:00
Simon Michael
e0dc028374 ;doc: update manuals 2021-11-20 22:07:45 -10:00
Simon Michael
066a67ad09 ;doc: update CLI usage texts 2021-11-20 22:07:40 -10:00
Simon Michael
c709a22c64 imp: stats: also show run time and throughput
CliOpts has a new field, progstarttime_.

Currently the new stats are always printed on stdout, ignoring --output-file/--output-format.
2021-11-20 20:51:21 -10:00
Stephen Morgan
186995fc8b fix: balance: Balance reports with --depth=0 should report on true
values, not zero everywhere. (#1761)
2021-11-20 15:47:57 -10:00
Simon Michael
568b39734b ;doc: update manuals 2021-11-18 22:48:14 -10:00
Simon Michael
20d8f9f7e2 ;doc: bal: fix list formatting 2021-11-18 22:30:03 -10:00
Simon Michael
678d3b0a06 ;doc: bal: fix link 2021-11-18 22:28:42 -10:00
Simon Michael
cf15dbd7c9 ;doc: update manuals 2021-11-18 22:26:10 -10:00
Simon Michael
be5e6e4167 ;doc: update CLI usage texts 2021-11-18 22:24:59 -10:00
Simon Michael
7ba9a4d06b feat: docs for decimal-mark (#1670, #1726) 2021-11-18 22:17:07 -10:00
Lawrence
fb817ffa55 imp: journal: support decimal-mark directive in journal files
To match csv-rule and override amount-style as described in
https://github.com/simonmichael/hledger/issues/1670
2021-11-18 22:17:07 -10:00
Simon Michael
66b969a74c ;imp: bal --layout: streamline help more (#1751) 2021-11-18 21:27:47 -10:00
Stephen Morgan
4b6fe2c0bd ;doc: balance: Update docs to mention --layout. 2021-11-18 21:26:02 -10:00
Stephen Morgan
d82416b7b9 imp: balance: Add single-line display with elision back in, this time
with a separate option --layout=wide,WIDTH.
2021-11-18 21:26:02 -10:00
Stephen Morgan
8f1ae08f0a test: balance: Add tests for --layout options. 2021-11-18 21:26:02 -10:00
Stephen Morgan
de2776c996 imp!: balance: Stop eliding long amounts. (#1739)
This feature has caused a lot of confusion, and we now have better ways
of making sure columns don't get too wide.
2021-11-18 21:26:02 -10:00
Stephen Morgan
7e21f05a83 imp: balance: Implement multi-line display for multicommodity balance reports.
This allows more control over how multicommodity amounts are displayed.
In addition to the default single-line display, and the recent commodity
column display, we now have multi-line display. This is controlled by
the --layout option, which has possible values "wide", "tall", and
"bare". The --commodity-column option has been hidden, but is equivalent
to --layout=bare.

squash
2021-11-18 21:26:02 -10:00
Stephen Morgan
3dce61ea09 fix: prices: Do not try to generate prices when there would be a zero
denominator.

Also correctly generate reverse prices for zero amounts.
2021-11-18 20:59:52 -10:00
Stephen Morgan
87a7a586d4 fix: csv: Handle multiple zero amounts in postings in csv files. (#1733) 2021-11-18 20:48:55 -10:00
Stephen Morgan
f345fd0b78 imp: balance: Allow --related flag for balance reports. (#1469) 2021-11-08 14:03:50 -10:00
Stephen Morgan
7597e525a3 fix: balance: Balance reports should consider date: queries when calculating
report span with --date2. (#1745)
2021-11-06 08:51:53 -10:00
Stephen Morgan
9d5397deb6 fix: print: auto: The print command should always display inferred
amounts for --auto generated postings. (#1276)
2021-10-31 09:42:58 -10:00
Stephen Morgan
1bc04685b7 pkg: Drop base-compat-batteries dependency.
Our supported stackage versions are now new enough that we don't need
any of the compatibility features anymore.
2021-10-31 07:56:07 -10:00
Dmitry Astapov
4b1919de02 fix: roi: use posting dates when available, honor --date2
This will not change the results computed for the typical use-case,
just makes "roi" more thorough/consistent by supporting posting dates
when they are provided.
2021-10-11 11:22:46 -10:00
Simon Michael
e4263e69e1 areg: begin respecting --date2: show txns' date2 (#1731) 2021-10-10 10:34:45 -10:00
Simon Michael
7af2e79465 ;cabal: update cabal files 2021-10-03 22:56:02 -10:00
Simon Michael
69905dbc25 ;pkg: allow megaparsec 9.2 2021-10-03 22:55:10 -10:00
Stephen Morgan
94d9c28a63 cln: Replace all uses of deprecated !include with include.
Also include a test which makes sure !include is still parsed.
2021-09-27 15:04:35 -10:00
Stephen Morgan
5aadcdea4d ref: Add new helper functions journalValueAndFilterPostings(With)?.
Combining valuation with filtration is subtle and error-prone (see e.g. #1625).
We have to do in in both MultiBalanceReport and PostingsReport, where it
is done in slightly different ways. This refactors this functionality
into separate functions which are called in both reports, for uniform
behaviour.
2021-09-26 08:13:12 -10:00
Simon Michael
a6d70024d2
Merge pull request #1715
;doc: Document restriction on amountless auto postings.
2021-09-26 08:10:18 -10:00
Simon Michael
b857307f64 ;cabal: update cabal files 2021-09-24 12:22:15 -10:00
Simon Michael
8934c115bd ;pkg: bump version to 1.23.99 2021-09-24 12:22:15 -10:00
Stephen Morgan
ce4fcfae84 imp!: value: For register reports with no reporting interval and
--value=end, historical reports should be valued at journal/report end
date.
2021-09-24 11:32:41 -10:00
Stephen Morgan
465a5cf917 imp: cli: Allow general optional argument flags (--pretty and
--forecast) to be moved after the subcommand name.
2021-09-22 12:11:44 -10:00
Stephen Morgan
494b14510b ;doc: Document restriction on amountless auto postings. 2021-09-22 13:21:53 +10:00
Simon Michael
e90fa3ee81 doc: changelogs: cleanup, finalise 2021-09-21 17:15:39 -10:00
Simon Michael
416555b65a doc: update manuals 2021-09-21 17:15:39 -10:00
Simon Michael
1b020e004b ;cabal: update cabal files 2021-09-21 15:34:23 -10:00
Simon Michael
19950df745 ;pkg: bump version to 1.23 2021-09-21 15:34:23 -10:00
Stephen Morgan
afdeb404b0 fix: colour: NO_COLOR flag no longer overrides an explicit --color option. (#1710)
http://no-color.org/ specifies that command line arguments should
override a NO_COLOR flag.
2021-09-21 15:32:53 -10:00
Stephen Morgan
bf3e82f780 imp: pretty: Replace --pretty-tables argument with --pretty=WHEN
argument, which takes yes or no. Default is no for now.
2021-09-21 14:53:52 -10:00
Simon Michael
fbccd7b7ca ;doc: changelogs: tweaks 2021-09-20 18:07:57 -10:00
Simon Michael
17a12f0411 ;doc: changelogs: tweak 2021-09-20 18:01:09 -10:00
Simon Michael
bb4f2ff34f ;doc: update changelogs 2021-09-20 17:58:29 -10:00
Simon Michael
9cae7a076a ;doc: update manuals 2021-09-20 16:56:36 -10:00
Simon Michael
44d494af07 ;doc: update CLI usage texts 2021-09-20 16:55:22 -10:00
Stephen Morgan
378df77001 cln: Remove unnecessary normaliseMixedAmount(SquashPricesForDisplay)? functions. 2021-09-20 14:49:34 -10:00
Arjen Langebaerd
c0fd79a40e fix: extend application of commodity style to prices (except precision) and make --commodity-style a general flag 2021-09-20 08:55:55 -10:00
Stephen Morgan
4cfd3cb590 lib!: Remove GenericSourcePos, and replace it with either SourcePos or
(SourcePos, SourcePos).

This has been marked for possible removal for a while. We are keeping
strictly more information. Possible edge cases arise with Timeclock and
CsvReader, but I think these are covered.

The particular motivation for getting rid of this is that
GenericSourcePos is creating some awkward import considerations for
little gain. Removing this enables some flattening of the module
dependency tree.
2021-09-20 08:38:33 -10:00
Stephen Morgan
8a6d824900 imp: csv: sql: Use . as a decimal point in sql output for Print command. 2021-09-18 14:32:21 -10:00
Malte Brandy
e31eb58ada lib: Allow multiline comments in csv rules 2021-09-18 12:43:49 -10:00
Simon Michael
b79a8473f7 ;doc: update manuals 2021-09-18 12:16:09 -10:00
Simon Michael
9dca1dc7b6 imp: prices: use --infer-market-prices instead of --costs
This command now reuses the --infer-market-prices flag, and uses
a new --infer-reverse-prices flag, instead of the old
--costs and --inverted-costs flags, which are now deprecated and hidden.
2021-09-18 12:12:31 -10:00
Simon Michael
326d6e8dae ref: ReportOptions{infer_value_} renamed to infer_prices_
For more consistency with the flag name (--infer-market-prices).
And BalancingOpts{infer_prices_} is now infer_transaction_prices_.
2021-09-18 12:12:31 -10:00
Simon Michael
daa9fddec9 imp: cli: --infer-market-price renamed to --infer-market-prices
It was too easy to get this wrong, even some of the docs did.
Now either plural or singular spelling works
(since we accept flag prefixes).
2021-09-18 12:12:31 -10:00
Simon Michael
c784cf4a38 imp: cli: hide the old --infer-value flag spelling
Hide this deprecated legacy flag, and also leave more width for flag descriptions in --help.
2021-09-18 12:12:31 -10:00
Simon Michael
993e381307 ;doc: update manuals 2021-09-18 11:24:52 -10:00
Simon Michael
633af61b2e imp: cli: move --today to reportflags (#1674) 2021-09-18 11:24:27 -10:00
Simon Michael
8a4cea2a69 ;doc: update manuals 2021-09-17 17:58:10 -10:00
Stephen Morgan
62351dd329 fix: bal: Make sure boring parent accounts in compound balance reports
include historical postings when account declarations have undeclared
parents. (#1698)
2021-09-17 15:24:19 -10:00
Malte Brandy
724c84fe50 ;doc: Convert some plain urls to links 2021-09-16 07:06:08 -10:00
Stephen Morgan
54f2600db2 imp: cli: Let --today option handle smart dates, determined relative to
the current date.
2021-09-10 10:40:50 -10:00
Simon Michael
7a249cffe9 ;doc: update manuals 2021-09-09 14:45:01 -10:00
Simon Michael
ddec2cedf3 ;doc: update CLI usage texts 2021-09-09 14:44:09 -10:00
Stephen Morgan
c0053cb9ba doc: Document --today in the manual. 2021-09-09 14:40:39 -10:00
Stephen Morgan
6905e40c4d pkg!: cli: Add --today option to explicitly set the current date. (#1674)
rawOptsTo* in hledger-lib now takes a day as an argument, and does not
live in the IO monad, since it's now pure.

This is so that we can run tests containing future transactions that
won't fail as soon as ‘the future’ actually arrives.
2021-09-09 14:40:39 -10:00
Stephen Morgan
50f73b7434 fix: balance: Show all empty accounts in flat balance reports. (#1688)
Previously we only showed empty leaves.
2021-09-08 18:17:27 -10:00
Simon Michael
db45b13249 test: more detailed commodity directive tests 2021-09-07 10:19:01 -10:00
Simon Michael
cea8bc0558 test: split/rename directive tests 2021-09-07 09:51:49 -10:00
Simon Michael
344c421a3b test: update shelltest format 2021-09-07 09:47:31 -10:00
Dmitry Astapov
555a68faa5 fix: roi: rare bug with PnL applied on the first day of investment 2021-09-03 11:02:43 -10:00
Simon Michael
25755c1ddd ;doc: journal: clarify account type auto detection, again 2021-09-02 09:04:55 -10:00
Simon Michael
32bf6284be ;doc: journal: clarify account type auto detection 2021-09-02 07:26:53 -10:00
Simon Michael
703980524b ;doc: csv: clarifiy csv-only interpolation earlier 2021-09-01 07:14:05 -10:00
Stephen Morgan
8274da81fc cln: tests: Remove test and tests, which are just aliases for testCase
and testGroup.

Replacing these removes a layer of indirection, and reduces the need to
depend on Hledger.Utils.Test.
2021-08-30 16:32:19 -10:00
Stephen Morgan
83aa7324eb dev: cli: Move Template Haskell to get git hash from Hledger.Cli.Version
to Hledger.Cli.

Since the git hash changes whenever any file in the repository changes,
this means Hledger.Cli.Version needs to be recompiled all the time.
Since it is at the bottom of the module hierarchy, this means that the
whole hledger package needs to be recompiled. We instead move the
TemplateHaskell splice to one of the top modules, so much less needs to
be recompiled.

Note: Ghc seems to be able to get out of most of the recompiling a lot
of the time (due to caching?), but this makes things more reliable.
2021-08-30 15:57:33 -10:00
Stephen Morgan
1ed06f3bc8 pkg!: Remove Hledger.Utils.UTF8IOCompat module.
This module does nothing beyond define error' and usageError, which have
been moved to Hledger.Utils.
2021-08-30 15:57:33 -10:00
Stephen Morgan
bd113b223f dev: lens: Introduce lenses for CliOpts. 2021-08-28 19:12:04 -10:00
Stephen Morgan
f3eacebc1d dev: lens: Use TemplateHaskell for ReportOpts and ReportSpec.
Also rename overWithReport/setWithReport to overEither/setEither.
2021-08-28 19:12:04 -10:00
Stephen Morgan
13206d0b18 cln: Rename balancingOpts to defbalancingopts, to be consistent with definputopts, defreportopts, etc. 2021-08-28 19:12:04 -10:00
Stephen Morgan
35be02a4f3 cln: hlint: Clean up some examples of using sortOn. 2021-08-27 06:13:56 -10:00
Stephen Morgan
d248aec313 cln: hlint: Remove eta reduce warnings. 2021-08-27 06:13:56 -10:00
Stephen Morgan
32dad455fd cln: hlint: Clean up section related warnings. 2021-08-27 06:13:56 -10:00
Stephen Morgan
8bf7c95697 cln: hlint: Clean up Functor related hlint warnings, and NOINLINE warning. 2021-08-27 06:13:56 -10:00
Stephen Morgan
beecb3c9ac cln: hlint: Clean up list related hlint warnings. 2021-08-27 06:13:56 -10:00
Stephen Morgan
330c21659f cln: hlint: Clean up Maybe related hlint warnings. 2021-08-27 06:13:56 -10:00
Stephen Morgan
e13239386f cln: hlint: Clean up == and elem related hlint warnings. 2021-08-27 06:13:56 -10:00
Stephen Morgan
3431b1b0d9 cln: hlint: Clean up map-fusion related hlint warnings. 2021-08-26 21:00:35 -10:00
Stephen Morgan
eb6047e81b cln: hlint: Remove redundant where and lambda warnings. 2021-08-26 21:00:35 -10:00
Stephen Morgan
71032c637e cln: hlint: Remove cons warnings. 2021-08-26 21:00:35 -10:00
Stephen Morgan
46b0745412 cln: hlint: Remove Either and Bifunctor related warnings. 2021-08-26 21:00:35 -10:00
Simon Michael
8bf7cd30ae ;doc: update changelogs 2021-08-26 20:59:45 -10:00
Simon Michael
405fdf7afe ;doc: forecasting: tweak, report-intervals 2021-08-26 20:41:30 -10:00
Simon Michael
05603ee28f ;doc: forecasting: tweak, mdbook/commonmark eats the required double space 2021-08-26 20:39:14 -10:00
Simon Michael
5a6098b7cd ;doc: rewrite forecasting doc, sync with #1667 2021-08-26 20:33:08 -10:00
Stephen Morgan
c07ad29a87 imp!: forecast: Implements more intuitive logic for the forecast interval. (#1648)
The forecast period begins on:
- the start date supplied to the `--forecast` argument, if present
- otherwise, the later of
  - the report start date if specified with -b/-p/date:
  - the day after the latest normal (non-periodic) transaction in the journal, if any
- otherwise today.
It ends on:
- the end date supplied to the `--forecast` argument, if present
- otherwise the report end date if specified with -e/-p/date:
- otherwise 180 days (6 months) from today.

Note that the previous behaviour did not quite match the documentation,
so this also acts as a bug fix for #1665.
2021-08-26 20:32:30 -10:00
Stephen Morgan
65e10aebd2 dev: test: Convert forecast.test to shelltestrunner format 3
We'll soon implement some tests that have the same input, so this will
reduce duplication.
2021-08-26 20:32:30 -10:00
Stephen Morgan
d13ce0e134 cln: hlint: Remove Unused LANGUAGE pragma ignore. 2021-08-26 07:23:11 -10:00
Stephen Morgan
119e20aa36 cln: hlint: Remove guards warning. 2021-08-26 07:23:11 -10:00
Stephen Morgan
fed75c58e9 cln: hlint: Clean up hlint warnings not already ignored in hlint.yaml. 2021-08-25 20:44:36 -10:00
Simon Michael
03db46cc81 ;doc: close: mention another cause of non-zero bse 2021-08-24 11:15:26 -10:00
Simon Michael
312097d6a5 ;doc: close: clarify and fix retained earnings example 2021-08-24 11:07:37 -10:00
Simon Michael
b957018536 ;doc: close: simpler clopen: tag 2021-08-24 10:05:18 -10:00
Simon Michael
b51daf4b05 ;doc: close: tweak 2021-08-24 09:58:45 -10:00
Simon Michael
acde291632 ;doc: close: clarify close dates 2021-08-24 09:55:27 -10:00
Simon Michael
bffeab45c8 ;doc: update changelogs 2021-08-24 05:14:24 -10:00
Simon Michael
53d9455bdc ;doc: update changelogs 2021-08-24 05:05:50 -10:00
Simon Michael
0ce518f12d ;doc: multiple files -> directives & multiple files 2021-08-24 02:45:12 -10:00
Stephen Morgan
90fd2a9aaf cln: register: Remove unused knot-tying code.
The conclusion is that trying to tie that knot will inevitably lead to
linear memory consumption; any solution which avoids this, if it exists,
will need significantly different code.

cf. https://stackoverflow.com/questions/66563595/can-i-exploit-lazy-evaluation-to-reference-future-values-without-space-leaks
2021-08-22 18:55:37 -10:00
Stephen Morgan
59b89947eb fix: aregister: Make multicommodity amounts are properly aligned in
aregister. (#1656)

This also switches to the renderTable interface for laying out
aregister, just as in postingsReport.
2021-08-22 18:55:37 -10:00
Stephen Morgan
06312c353a fix!: register: Tighten up spacing around the date in register reports. (#1655)
As a side effect, this changes the Json representation of the
PostingsReport. The maybe report end date is now replaced with a maybe
period.
2021-08-22 08:15:22 -10:00
Daniel Gröber
4b654fff94 ;doc: Fix cmdline example typo, f- should be -f- 2021-08-22 08:12:08 -10:00
Simon Michael
993d0b5c54 cli: --forecast now rejects instead of silently ignoring an interval
Something that confused me when testing #1632.
2021-08-20 17:55:59 -10:00
Simon Michael
d3d1b2cfc7 ;doc: clarify that --forecast ignores a report interval (#1632) 2021-08-20 17:34:23 -10:00
Simon Michael
566176c884 doc: try to clarify multi-weekday syntax more (#1632) 2021-08-20 17:02:34 -10:00
Lawrence
8a5addfb02 lib: implement periodic expressions for weekday et al
Implementation lifts DayOfWeek (renamed to DaysOfWeek) to a list of
days. This should match the previous behavior for single-element lists
2021-08-20 20:30:18 -05:00
Simon Michael
ddeeee6046 ;doc: update changelogs 2021-08-19 18:36:34 -10:00
Stephen Morgan
4576f8effd pkg!: Migrate the last of old-time over to time, changing ClockTime to
POSIXTime.

This eliminates old-time, which has been deprecated for a while, from
our dependencies.

This introduces a slight incompatibility, as a small number of functions
now take/return POSIXTime instead of ClockTime. Generally you will be
using the current time, in which case you should use getPOSIXTime from
Data.Time.Clock.POSIX instead of getClockTime.

utcTimeToClockTime has been removed, as it is now equivalent to
utcTimeToPOSIXSeconds from Data.Time.Clock.POSIX.
2021-08-19 17:47:19 -10:00
Simon Michael
c135c1a3fc ;cln: slight typos cleanup (#1654) 2021-08-19 17:43:45 -10:00
Lawrence
0982e3343a test: bal: add functests for transpose and compound commands (#1654) 2021-08-19 17:37:33 -10:00
Lawrence
d7a56a9830 test: give descriptions to commodity-column functests (#1654)
Also renames the file for consistent naming with the flag
2021-08-19 17:37:32 -10:00
Lawrence
710823e5d7 imp: bal: handle commodity-column flag in compound balance reports (#1654) 2021-08-19 17:37:30 -10:00
Lawrence
277227acf8 fix: budget: handle transpose flag with commodity-columns (#1654)
Budget formatting is quite complicated since we must determine widths
for each of the transposed columns
2021-08-19 17:37:29 -10:00
Lawrence
a3c0c0cade fix: bal: handle transpose flag with commodity-columns (#1654)
The textual output needs to be fully transposed instead of just the cell
values. The multi-period csv handling code already does the right thing
so just use those values.

The change in CompoundBalanceCommand.hs is just to match signatures
since commodity-column is not yet enabled there.
2021-08-19 17:37:27 -10:00
Lawrence
44e1ea10fa fix: bal: correctly handle empty commodity in commodity-column (#1654)
We can't filter out empty commodity strings since that is a legitimate
group. Simultaneously, we should only include the empty commodity if it
is explicitly used (part of a posting) and not generated as part of
`Amounts.amounts`
2021-08-19 17:37:19 -10:00
Stephen Morgan
ddba9f6ce4 imp: lib,cli: Implement gain report for balance reports.
A gain report will report on unrealised gains by looking at the
difference between the valuation of an amount (by default, --value=end),
and the valuation of the cost of the amount.
2021-08-18 21:44:30 -10:00
Simon Michael
88b1d3f78b ;bal: doc: add -f options; clarify depth limiting 2021-08-18 00:44:45 -10:00
Arjen Langebaerd
3426030a91 feat: added commodity style commandline option 2021-08-17 22:05:29 -10:00
Simon Michael
b4c516c074 ;doc: period expressions: tweak 2021-08-17 09:17:15 -10:00
Simon Michael
881785c374 ;doc: period expressions: tweak 2021-08-17 09:00:55 -10:00
Simon Michael
7bfed72130 ;doc: period expressions: consistent layout 2021-08-17 08:58:44 -10:00
Simon Michael
1874a971dc ;doc: clarify period expressions, report intervals 2021-08-17 08:54:34 -10:00
Simon Michael
b74aa78345 ;help: doc: clarify 2021-08-08 10:15:21 -10:00
Simon Michael
b43a5263cb ;doc: update manuals 2021-08-08 10:07:44 -10:00
Simon Michael
bfa2ac1dcf ;doc: update CLI usage texts 2021-08-08 10:07:01 -10:00
Simon Michael
9bef817db0 ;bal: doc: --commodity-column: fix link (#1626) 2021-08-08 10:04:52 -10:00
Simon Michael
ca474a8687 ;bal: doc: --commodity-column: fix csv example (#1626)
and make examples reproducible, why not.
2021-08-08 10:02:23 -10:00
Simon Michael
d06d4ca080 ;doc: update manuals 2021-08-08 09:39:20 -10:00
Simon Michael
04812682e8 ;doc: bump man page dates 2021-08-08 09:39:20 -10:00
Simon Michael
bf2e9f24b8 ;doc: update CLI usage texts 2021-08-08 09:39:20 -10:00
Simon Michael
30ea463060 imp: bal: doc: --commodity-column tweaks (#1626)
- promote the heading one level
- periodic CSV reports are supported too
- slight edits to manual and flag description
2021-08-08 09:39:09 -10:00
Lawrence
1be74a01ce fix: bal: handle oneline for custom format correctly
Previously would not actually display anything since the Cell's
WideBuilders are single-element list. Just dispatch to showMixedAmountB
to do the right thing.
2021-08-08 09:19:25 -10:00
Lawrence
234caae557 doc: test: update for commodity-column
Add documentation and sample output for `--commodity-column` behavior
and functional tests e.g single-period balance, yearly balance, and
yearly budget
2021-08-08 09:19:25 -10:00
Lawrence Wu
f3c07144a8 bal: option to view one commodity per row
This adds the `--commodity-column` option that displays each commodity
on a separate line and the commodities themselves as a separate column.
The initial design considerations are at
simonmichael.hledger.issues.1559

The single-period balance report with `--commodity-column` does not
interoperate with custom formats.
2021-08-08 09:19:25 -10:00
Stephen Morgan
720fde3187 test: Add forecast transactions to aregister ordering test. 2021-08-07 14:15:19 -10:00
Simon Michael
233b8c91cb ;doc: finalise 1.22.2 changelogs 2021-08-07 09:27:20 -10:00
Simon Michael
2e28c5a1ef ;doc: update changelogs 2021-08-07 09:20:20 -10:00
Simon Michael
9bc77f87fc ;doc: changelogs 2021-08-06 17:26:37 -10:00
Simon Michael
981849a6c1 ;doc: changelogs 2021-08-06 00:16:20 -10:00
Simon Michael
49ff039312 lib: cli/ui/web: clarify version string code
version -> packageversion
versiondescription -> versionStringFor
2021-08-05 22:54:25 -10:00
Simon Michael
53f02c7b3d ;cabal: update cabal files 2021-08-05 22:04:38 -10:00
Simon Michael
33c5726a96 cli: require githash >=0.1.4.0, simplify version code 2021-08-05 22:04:20 -10:00
Simon Michael
606d992fc8 cli: disable no-longer-used --binary-filename flag
It was still supported (as a hidden flag) by hledger-web,
and now is not.
2021-08-05 21:51:10 -10:00
Simon Michael
1492fca8f1 cli: separate some version things 2021-08-05 21:49:17 -10:00
Stephen Morgan
918c243fa9 fix: forecast: Generate forecast transactions at journal finalisation,
rather than as a postprocessing step. (#1638)

This allows us to have a uniform procedure for balancing transactions,
whether they are normal transactions or forecast transactions, including
dealing with balance assignments, balance assertions, and auto postings.
2021-08-05 21:10:47 -10:00
Stephen Morgan
c404800fbf ref!: forecast: Move forecast_ from ReportOpts to InputOpts. 2021-08-05 21:10:47 -10:00
Stephen Morgan
23b0cad6ef fix: areg: Make sure aregister sorts first by transaction register date,
then by parse order to break any ties. (#1642)
2021-08-05 20:49:25 -10:00
Simon Michael
3270a4f0d7 ;areg: commented test for #1642 2021-08-05 19:08:21 -10:00
Simon Michael
d6504fef37 ;doc: timedot: rewrite 2021-08-04 19:21:51 -10:00
Simon Michael
6afc5ce6b2 ;cabal: update cabal files 2021-08-03 21:05:29 -10:00
Simon Michael
f51ea92cfc deps: require base >=4.11, prevent red squares on hackage matrix
We officially support GHC 8.6+ (and 8.8+ for hledger-web) now.
Hackage matrix builder shows all packages building successfully
with GHC 8.4+, somehow, so we'll adjust the base bound to
allow that but prevent any attempts to build with older GHCs,
2021-08-03 21:05:02 -10:00
Simon Michael
2a39497e21 pkg: add tested-with GHC 9.0.1 2021-08-03 20:52:05 -10:00
Simon Michael
abd63db3e7 ;doc: update changelogs 2021-08-03 09:50:57 -10:00
Simon Michael
81dfbc9ac2 ;doc: changelogs: note some 1.22.1 changes I missed 2021-08-03 09:42:59 -10:00
Simon Michael
95de5a878a ;cabal: update cabal files 2021-08-03 08:00:22 -10:00
Simon Michael
6665ddfb9b ;pkg: bump version to 1.22.99 2021-08-03 00:24:20 -10:00
Simon Michael
d425ce8fd3 ;doc: changelogs: 1.22.1 release date 2021-08-02 22:50:03 -10:00
Stephen Morgan
ae3c7e8756 fix: areg: Make sure the true original transaction is made available in
AccountTransactionsReport.

Only a limited number of journal transformations are allowed in
accountTransactionReports due to the need to include the original
transaction. Document these.

Make sure to remove currency and amount queries from the reportq, so
they do not cause problems after valuation.

Avoid confusion by calculating transaction date at one point, and
passing that down with the transaction.
2021-08-02 22:47:50 -10:00
Stephen Morgan
4e0dcec096 fix: areg: Explicitly avoid filtering by depth queries, perform
valuation after all reportq filtering is done (in both the historical
and recent postings), and make sure filtering is done at the correct
point based on whether --txn-dates is set. (#1634)
2021-08-02 22:47:50 -10:00
Stephen Morgan
1d278993bc fix: forecast: Make sure forecast transactions are generated up to the day before the provided query end date. (#1633) 2021-08-02 20:47:20 -10:00
Simon Michael
1d0b2bf9ce ;doc: update changelogs 2021-08-01 08:05:05 -10:00
Simon Michael
d07d0de2d6 test: areg: disable failing tests for now (#1634) 2021-07-31 18:28:32 -10:00
Simon Michael
136c7ca704 doc: areg: clarify (#1634) 2021-07-31 18:27:23 -10:00
Simon Michael
396b1eb515 test: areg: add more tests (#1634) 2021-07-31 18:27:23 -10:00
Stephen Morgan
fc8aa602cf lib!: modifyTransactions now takes a Map of commodity styles, and will
style amounts according to that argument. journalAddForecast and
journalTransform now return an Either String Journal.

This improves efficiency, as we no longer have to restyle all amounts in
the journal after generating auto postings or periodic transactions.
Changing the return type of journalAddForecast and journalTransform
reduces partiality.

To get the previous behaviour for modifyTransaction, use modifyTransaction mempty.
2021-07-30 13:52:35 -10:00
Stephen Morgan
2da0e67141 fix: Add balancing amounts in periodic transactions before applying auto-postings. (#1412) 2021-07-30 13:52:35 -10:00
Simon Michael
aa60c46597 ;areg: doc: clarify 2021-07-30 09:09:59 -10:00
Stephen Morgan
9df574b3c0 fix: reg: register --related should not create duplicate postings when
more than one posting in a transaction matches. (#1629)
2021-07-30 09:06:27 -10:00
Stephen Morgan
6528f25593 fix: lib: Filter postings before performing valuation and costing in
MultiBalanceReport, PostingsReport, EntriesReport, and
AccountTransactionsReport. (#1625, #1630)
2021-07-30 09:06:27 -10:00
Simon Michael
4451d68a63 ;doc: update manuals 2021-07-29 20:41:19 -10:00
Simon Michael
085b7d4b88 ;doc: update CLI usage texts 2021-07-29 20:37:16 -10:00
Simon Michael
e4a23c95d4 ;doc: changelogs: gather 1.22.1 changes 2021-07-28 10:03:22 -10:00
Simon Michael
b0611a7363 ;doc: regexps: list style that renders in vs code 2021-07-28 09:17:47 -10:00
Simon Michael
666e217bd5 ;doc: update changelogs 2021-07-27 23:21:13 -10:00
Simon Michael
8ae42873c4 ;doc: queries: edit 2021-07-27 22:37:26 -10:00
Simon Michael
6a92953111 ;doc: queries: cleanups (#1625) 2021-07-27 22:16:39 -10:00
Simon Michael
a4d8072393 ;doc: queries: clarify some behaviour (#1625) 2021-07-27 11:19:28 -10:00
Simon Michael
40c8ddd572 ;doc: strict mode: update 2021-07-27 10:57:50 -10:00
Simon Michael
d2b799a717 feat: bal: select budget( transaction)s by name (#1612)
This makes it possible to keep multiple named budgets in one journal,
and select the one you want with --budget's argument.

More precisely, you can select the subset of periodic transactions
rules which contain a certain fixed, case-insensitive substring.

Only one such --budget argument is supported, the last one on the
command line takes precedence.
2021-07-23 10:38:20 -10:00
Stephen Morgan
b0aa70b27a lib!: Rename the fields of ReportSpec.
This is done to be more consistent with future field naming conventions,
and to make automatic generation of lenses simpler. See discussion in
\#1545.

rsOpts -> _rsReportOpts
rsToday -> _rsDay
rsQuery -> _rsQuery
rsQueryOpts -> _rsQueryOpts
2021-07-23 10:37:08 -10:00
Stephen Morgan
7ed2a0aa9b lib!: lib: Remove aismultiplier from Amount.
In Amount, aismultiplier is a boolean flag that will always be False,
except for in TMPostingRules, where it indicates whether the posting
rule is a multiplier. It is therefore unnecessary in the vast majority
of cases. This posting pulls this flag out of Amount and puts it into
TMPostingRule, so it is only kept around when necessary.

This changes the parsing of journals somewhat. Previously you could
include an * before an amount anywhere in a Journal, and it would
happily parse and set the aismultiplier flag true. This will now fail
with a parse error: * is now only acceptable before an amount within an
auto posting rule.

Any usage of the library in which the aismultiplier field is read or set
should be removed. If you truly need its functionality, you should
switch to using TMPostingRule.

This changes the JSON output of Amount, as it will no longer include
aismultiplier.
2021-07-22 19:06:33 -10:00
Stephen Morgan
3969eb2679 lib!: lib,cli,ui,web: For accountTransactionsReport, generate the overall
reportq from the ReportSpec, rather than being supplied as a separate
option.

This is the same approach used by the other reports, e.g. EntryReport,
PostingReport, MultiBalanceReport. This reduces code duplication, as
previously the reportq had to be separately tweaked in each of 5
different places.

If you call accountTransactionreport, there is no need to separately
derive the report query.
2021-07-22 19:00:37 -10:00
Stephen Morgan
58516eea77 imp: json: Decrease indentation in JSON output. 2021-07-20 23:28:18 -10:00
Simon Michael
3beba678fe ;doc: a few more changelog updates 2021-07-20 22:37:27 -10:00
Simon Michael
6569c2aca7 ;doc: update changelogs 2021-07-20 22:24:39 -10:00
Simon Michael
9701e19169 make: shellcompletions: top level rule to build shell completions 2021-07-20 21:29:52 -10:00
Jakob Schöttl
80003a5190 imp: pkg: add bash completion files to cabal package 2021-07-20 20:55:28 -10:00
Jakob Schöttl
f26ffbc6ab imp: pkg: move shell-completions into hledger package 2021-07-20 20:55:14 -10:00
Simon Michael
9aac520edd deps: allow megaparsec 9.1 2021-07-20 20:38:39 -10:00
Stephen Morgan
c606f874fb imp: json: The keys of JSON objects are now displayed in alphabetical order, making it stable across different systems and compilers. 2021-07-20 20:37:33 -10:00
Dmitry Astapov
50b915d12a doc: advice on complex quoting use-cases (closes #1609) 2021-07-18 06:16:16 -10:00
Simon Michael
8653510e3d ;doc: journal: link Transactions -> Postings 2021-07-16 08:09:26 -10:00
Simon Michael
a89815cea0 ;doc: #report-period target 2021-07-15 14:28:16 -10:00
Simon Michael
87f575e643 ref: bal: rename some report types to clarify/sync with docs
ReportType -> BalanceCalculation
 ChangeReport -> CalcChange
 BudgetReport -> CalcBudget
 ValueChangeReport -> CalcValueChange

BalanceType -> BalanceAccumulation
 PeriodChange -> PerPeriod
 CumulativeChange -> Cumulative
 HistoricalBalance -> Historical

ReportOpts:
 reporttype_ -> balancecalc_
 balancetype_ -> balanceaccum_

CompoundBalanceCommandSpec:
 cbctype -> cbcaccum

Hledger.Reports.ReportOptions:
 balanceTypeOverride -> balanceAccumulationOverride
2021-07-15 14:22:20 -10:00
Simon Michael
70dab8eccd cln: bal: indentation 2021-07-14 12:29:00 -10:00
Simon Michael
8d68193c88 ;fix: doc: info: avoid directory paths in directory metadata (#1594)
In each info manual's DIR-ENTRY metadata, it's best to use just the
filename, with no subdirectory. This should facilitate working info
manuals in packaged versions of hledger, eg in nix.

I don't remember the detail of why I added those and I'm not going to
spend a couple of hours retesting; hopefully no other significant
workflows will be affected.

I have left the subdirectory paths in the dir file - this is intended
for hledger developers and they hopefully don't cause a problem there.
2021-07-14 09:07:56 -10:00
Simon Michael
964a019368 ;doc: changelogs: minor release headings 2021-07-13 18:39:43 -10:00
Simon Michael
1f9d89879d ;doc: update changelogs 2021-07-13 18:39:40 -10:00
Stephen Morgan
cf25d7d56d
imp: bal: more predictable sort order with multiple commodities (#1563, #1564)
This change provides more predictable and intuitive behaviour when 
using -S/--sort-amount with multiple commodities. 
It implements a custom Ord (and Eq) instance for MixedAmount 
which substitutes zero for any missing commodities.

As a consequence, all the ways of representing zero with a MixedAmount ([],
[A 0], [A 0, B 0, ...]) are now Eq-ual (==), whereas before they were
not. We have not been able to find anything broken by this change.

* imp: lib: Compare MixedAmounts by substituting zero for any missing commodities. (#1563)
* ;doc: Update docs for new multicommodity sort by amount rules.
2021-07-12 21:11:50 -10:00
Simon Michael
b8f0900edb ;dev: doc: update manuals 2021-07-12 18:50:06 -10:00
Simon Michael
31de526872 ;dev: doc: update CLI usage texts 2021-07-12 18:50:06 -10:00
Simon Michael
daa95aeb7b imp: close: doc: rewrite manual (#1604) 2021-07-12 18:50:06 -10:00
Simon Michael
0a66068ad1 imp: close: clarify date logic, use journal last day if later (#1604) 2021-07-12 18:50:06 -10:00
Simon Michael
a6cfc20e9d ;doc: journal: directives: fix payee link 2021-07-06 20:54:46 -07:00
Simon Michael
f8be423354 ;doc: journal: fix commodity's scope, end-of-file 2021-07-06 17:46:51 -10:00
Simon Michael
a04a0a2f16 ;doc: journal: drop obsolete wide table warning 2021-07-06 17:02:57 -10:00
Simon Michael
b669adb511 ;doc: changelog tweaks 2021-07-04 10:08:39 -10:00
Simon Michael
68e7ff4644 ;doc: finalise changelogs 2021-07-03 14:51:51 -10:00
Simon Michael
52ebfb3dce ;doc: changelog edits 2021-07-03 11:45:50 -10:00
Simon Michael
4971b106ef ;doc: changelog edits 2021-07-02 16:10:56 -10:00
Simon Michael
d5d19f8419 ;update manuals 2021-07-02 12:42:34 -10:00