Commit Graph

1168 Commits

Author SHA1 Message Date
Stephen Morgan
d6a4310d8f lib,cli,ui,bin: Eliminate all uses of Mixed outside of Hledger.Data.Amount.
Exceptions are for dealing with the pamount field, which is really just
dealing with an unnormalised list of amounts.

This creates an API for dealing with MixedAmount, so we never have to
access the internals outside of Hledger.Data.Amount.

Also remove a comment, since it looks like #1207 has been resolved.
2021-03-18 09:47:59 +11:00
Stephen Morgan
dabb3ef82e lib,cli,ui,bin: Create a new API for MixedAmount arithmetic. This should
supplant the old interface, which relied on the Num typeclass.

MixedAmount did not have a very good Num instance. The only functions
which were defined were fromInteger, (+), and negate. Furthermore, it
was not law-abiding, as 0 + a /= a in general. Replacements for used
functions are:
0 -> nullmixedamt / mempty
(+) -> maPlus / (<>)
(-) -> maMinus
negate -> maNegate
sum -> maSum
sumStrict -> maSum

Also creates some new constructors for MixedAmount:
mixedAmount :: Amount -> MixedAmount
maAddAmount :: MixedAmount -> Amount -> MixedAmount
maAddAmounts :: MixedAmount -> [Amount] -> MixedAmount

Add Semigroup and Monoid instances for MixedAmount.
Ideally we would remove the Num instance entirely.

The only change needed have nullmixedamt/mempty substitute for
0 without problems was to not squash prices in
mixedAmount(Looks|Is)Zero. This is correct behaviour in any case.
2021-03-18 09:47:21 +11:00
Simon Michael
4ae401cbec ;bal: cli help tweaks 2021-03-09 07:29:40 -08:00
Simon Michael
72a9b612c1 ;cli: fix "hledger CMD --info" with older info
This should open the info node for CMD, but was giving an
error with info 4.8 on macs. Now it's more robust.
2021-03-07 17:40:50 -08:00
Simon Michael
5dc644d280 ;update CLI usage texts 2021-03-07 10:25:08 -08:00
Simon Michael
3a7c578f2d ;bal: doc: tweaks 2021-03-05 14:55:24 -08:00
Simon Michael
e521518eb6 ;bal: doc: tweaks 2021-03-05 10:43:47 -08:00
Simon Michael
2023e9cd65 ;bal: doc: more updates & cleanups (#1496) 2021-03-05 10:21:46 -08:00
Stephen Morgan
efb37c3343 lib: Default to PeriodChange report when using ValueChangeReport. 2021-03-05 10:09:14 -08:00
Stephen Morgan
3f408c2117 lib,cli: Restore old --change option for per-period summation, use --sum for basic ValueChange balance report. 2021-03-05 10:09:14 -08:00
Simon Michael
ae73eea7cb ;bs,bse,cf,is: update docs 2021-03-04 10:26:58 -08:00
Simon Michael
7b8a873471 ;check: update manual 2021-03-03 15:43:38 -08:00
Stephen Morgan
d931e4919e cli: Allow overriding with --periodic (rather than the old --change) and properly calculate requestedspan in CompoundBalanceReport. 2021-03-03 15:43:02 -08:00
Simon Michael
e9f04d5ed6 check: ordereddates now checks each file separately (fix #1493) 2021-03-03 06:44:50 -08:00
Simon Michael
642ad24b0e ;check: refactor 2021-03-03 06:06:39 -08:00
Simon Michael
cb0526381e ;bal: doc updates 2021-03-03 05:30:53 -08:00
Simon Michael
ff5e810c78 ;bal: more doc updates 2021-03-03 04:10:23 -08:00
Simon Michael
4c9b72ea15 ;bal: mention --valuechange (#1480) 2021-02-27 18:53:05 -08:00
Simon Michael
f63c38a7e2 bal: docs rewritten, and updated for new flags 2021-02-27 18:51:44 -08:00
Stephen Morgan
7f2536a2a7 lib,cli: Add --valuechange report type for calculating change of value
of accounts, restore --value=end behaviour to that of hledger-1.19.
2021-02-27 18:42:02 -08:00
Stephen Morgan
351648e4fa lib,cli: Add --periodic option to indicate PeriodChange accumulation (renamed from --change). 2021-02-27 18:42:02 -08:00
Dmitry Astapov
582a1651b3 roi: cmdline help simplified 2021-02-23 15:13:19 -08:00
Dmitry Astapov
0fa51482c6 roi: check valuation on dates we have price directives for 2021-02-23 14:11:29 -08:00
Dmitry Astapov
8013d650f3 roi: honor all kinds of --value switches 2021-02-23 14:11:29 -08:00
Simon Michael
f4d81377af print --match: show --match's argument in debug output
If you forget that the argument is required by the --match
option, and not the command as a whole - eg if instead of

  hledger print --match somebank -x

you write:

  hledger print --match -x somebank

that gets quietly parsed as:

  hledger print --match="-x"

which is not great. Adding --debug now at least gives some insight:

  hledger print --match -x somebank --debug
  finding best match for description: "-x"
  similar transactions:
  ...
2021-02-20 14:29:40 -08:00
Simon Michael
44508f58c8 add, lib: debug output, refactor similar transactions lookup
add --debug=1 shows the top hits for similar past transactions.

added:
Hledger.Cli.Utils.journalSimilarTransaction
 provides --debug=1 output

changed:
Hledger.Cli.Commands.Add.transactionsSimilarTo -> Hledger.Data.Journal.journalTransactionsSimilarTo
 now takes an extra number-of-results argument
2021-02-20 13:41:37 -08:00
Simon Michael
7979c7d74c ;import: doc: tweak 2021-02-18 18:43:22 -08:00
Simon Michael
125ba49992 ;import: doc: tweak 2021-02-18 18:38:51 -08:00
Simon Michael
554f7a59fd ;import, print: better deduplication docs 2021-02-18 18:35:06 -08:00
Simon Michael
f4c8b52885 ;update CLI usage texts 2021-02-17 12:07:06 -08:00
Simon Michael
d865ec5d65 lib: refactor: more consistent amount precision helpers
Hledger.Data.Amount:
renamed:
setAmountPrecision -> amountSetPrecision
setFullPrecision -> amountSetFullPrecision
setMixedAmountPrecision -> mixedAmountSetPrecision
added:
mixedAmountSetFullPrecision
2021-02-05 16:09:49 -08:00
Simon Michael
37e49ada70 cli: rename --infer-value to --infer-market-price
For clarity; infer-value was too vague. The old spelling remains
supported for compatibility, but is now deprecated.
When typing, --infer-market or even --infer (for now) is sufficient.
2021-02-05 15:16:39 -08:00
Simon Michael
6101368954 print: always show all decimal places (#931)
Ensures parseable and more sensible-looking output in more cases, and behaves more like Ledger's print.

There is still an issue with adding trailing zeroes, which would be nice to prevent.
2021-02-04 08:13:55 -08:00
Stephen Morgan
b619b68f71 doc: Remove references to --value=cost, replacing them with --cost.
Since this is option is now just an alias for -B/--cost, and since it
may be removed soon, we make it undocumented, though it will still
behave as before. --value=cost,COMM is unsupported as well.
2021-01-28 13:57:48 -08:00
Stephen Morgan
c9eb7d1bcf lib,cli,ui: Separate costing from valuation; each can now be specified
independently.

You can now combine costing and valuation, for example "--cost
--value=then" will first convert to costs, and then value according to
the "--value=then" strategy. Any valuation strategy can be used with or
without costing.

If multiple valuation and costing strategies are specified on the
command line, then if any of them include costing
(-B/--cost/--value=cost) then amounts will be converted to cost, and for
valuation strategy the rightmost will be used.

--value=cost is deprecated, but still supported and is equivalent to
--cost/-B. --value=cost,COMM is no longer supported, but this behaviour can be
achieved with "--cost --value=then,COMM".
2021-01-28 13:57:48 -08:00
Stephen Morgan
130739e3ef lib,cli,ui: Introduce *ApplyCostValuation functions, which perform both
costing and valuation.

This currently is given a dummy NoCost argument and is equivalent to
"maybe id (*ApplyValuation ...)", but provides a constant interface so
that internal behaviour can be changed freely.
2021-01-28 13:57:48 -08:00
Simon Michael
93e5355a2b ;areg: doc: clarify account selection 2021-01-28 07:22:21 -08:00
Simon Michael
6650a563fb ;areg: doc: try to clarify aregister's purpose 2021-01-27 12:53:49 -08:00
Simon Michael
a91ca6892b ;areg: doc: mention depth limit is ignored (#1468) 2021-01-24 10:02:34 -08:00
Simon Michael
08c5857ac9 areg: ignore a depth limit, as in 1.19 (#1468)
aregister always shows transactions to subaccounts as well, ignoring any depth limit, so that the register's final total matches a corresponding balance report.
This was broken since 2020-09-02 c45663d41.
2021-01-24 09:46:12 -08:00
Simon Michael
337bc989ab ;bal: notes for single-period html output 2021-01-21 16:44:26 -08:00
Simon Michael
540c65994c payees: add --used/--declared flags, like accounts 2021-01-17 16:37:38 -08:00
Stephen Morgan
217bfc5e74 lib: Rename alignCell to textCell, minor cleanups. 2021-01-15 12:56:48 -08:00
Dmitry Astapov
07a9f11962 roi: use MixedAmount more and keep styles when reporting commodities 2021-01-12 15:19:35 -08:00
Dmitry Astapov
14a3b9833c roi: fix insane precision bug, discovered in #1417 2021-01-12 15:19:16 -08:00
aragaer
7bde3345b8 cli,csv: Fix --drop option in csv output format 2021-01-12 12:11:56 -08:00
Dmitry Astapov
fc32f22f86 lib: roi now supports --value/--infer-value 2021-01-12 11:53:00 -08:00
Dmitry Astapov
9869624c5c lib: better message when roi fails to value commodity, fixes #1446 2021-01-12 11:53:00 -08:00
Stephen Morgan
b203822cd1 lib: Make sure to add a newline to the end of aregister report. 2021-01-10 20:50:46 -08:00
Simon Michael
b5ab5ac9bc ;bal: doc: tweak
(cherry picked from commit 1dda703651ffe64dcf14c6a026fdead836224d1b)
2021-01-10 15:50:49 -08:00