Commit Graph

1761 Commits

Author SHA1 Message Date
Simon Michael
0274b30742 print: don't add decimal places in assertion/assignment amounts either (#1465) 2021-02-04 06:46:09 -08:00
Simon Michael
201f967411 print: show all decimal places in assertion/assignment amounts (#1465)
Overriding the commodity style, per https://hledger.org/hledger.html#commodity-display-style.
2021-02-03 18:11:44 -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
Stephen Morgan
9881ec9652 lib: Use mapMixedAmount more, decreasing reliance on internal representation of Mixed. 2021-01-28 13:57:48 -08:00
Stephen Morgan
9cf5015958 lib: bal --value=end without --historical should not report on fluctuation in value of historical postings. 2021-01-28 13:57:48 -08:00
Simon Michael
bf328e4e3c lib: matchesDescription, matchesPayeeWIP 2021-01-17 16:37:38 -08:00
Simon Michael
422329fbfa lib: journalPayeesUsed, journalPayeesDeclaredOrUsed 2021-01-17 16:37:38 -08:00
Simon Michael
db9b034037 lib: Journal: avoid a build failure if monad-extras is installed 2021-01-17 16:37:38 -08:00
Stephen Morgan
5d664fc528 lib: Expose textConcatBottomPadded. 2021-01-15 12:56:48 -08:00
Stephen Morgan
217bfc5e74 lib: Rename alignCell to textCell, minor cleanups. 2021-01-15 12:56:48 -08:00
Stephen Morgan
9ad0eef69b lib: Update textConcatTopPadded to use Tabular.AsciiWide, same as concatTopPadded. 2021-01-15 12:56:48 -08:00
Stephen Morgan
2c2bd8b27e lib: Refactor unlinesB to be cleaner and more efficient. 2021-01-15 12:56:48 -08:00
Simon Michael
e1e97f977e ;journal: hints for possible future work related to #1461 2021-01-13 18:15:10 -08:00
Simon Michael
034c317496 journal: allow commodity directive to set style of no-symbol commodity (#1461)
(cherry picked from commit c5571f6468ab11ffe3cd3f86a86f0b3253be10d1)
2021-01-13 17:57:18 -08:00
Stephen Morgan
2b545caae5 lib: Calculate value at posting date for register --value=then -M. 2021-01-12 18:20:21 -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
c21b666130 csv: handle more sign variations, eg a sign by itself
simplifySign now covers a few more sign combinations that might arise.
And in particular, it strips a standalone sign with no number,
which simplifies sign flipping with amount-in/amount-out.
2021-01-07 10:06:38 -08:00
Simon Michael
4952ac22a1 ;lib: valuation: improve --debug=2 output 2021-01-07 08:59:04 -08:00
Simon Michael
1ad919bc6d lib: add level argument to fix traceAtWith 2021-01-07 08:57:25 -08:00
Stephen Morgan
c40db2b1eb lib: Make sure AtEnd valuation behaviour is consistent between single- and multi-period reports (#1424). 2021-01-05 14:42:09 -08:00
Stephen Morgan
83110e8820 lib,cli: Extend AtThen valuation to all report types.
Also adds a postingDate argument to amountApplyValuation, and re-orders
the ValuationType and (Transaction/Posting) arguments to
(transaction/posting)ApplyValuation, to be consistent with
amountApplyValuation.
2021-01-05 14:42:09 -08:00
Simon Michael
3d7d5c0db7 new price search that really finds the shortest path (#1443)
This one should also reliably prevent runaway searches in the event of more bugs, giving up after 1000 iterations.
2021-01-04 18:42:51 -08:00
Simon Michael
7c9303a15c lib: valuation: simplify price search code
This version tries counting recursions instead of path length, but I
think they are the same.
2021-01-03 09:49:00 -08:00
Simon Michael
73678393b1 lib: valuation: don't hang when finding prices (fixes #1439)
Searching for prices during valuation no longer now properly excludes
price loops, avoiding near infinite looping with certain
configurations of market prices. Also we now always use a direct price
when available, rather than searching unnecessarily.

Price searching progress info, useful for troubleshooting, is now
displayed with --debug=2.

There could still be some corner cases we don't handle correctly. We
now give up with an error message if the searched price chains get too
long (> 1000). More importantly, we should also give up if the search
iterates too many times, but this is not done yet.
2021-01-02 07:13:07 -08:00
Stephen Morgan
7d3cf1747a lib: Make consistent naming scheme for showMixedAmount* functions,
add conversion between old API and new API in the documentation.
2021-01-02 15:08:09 +11:00
Stephen Morgan
1f891a4145 doc: Fix some outdated documentation. 2021-01-02 15:08:09 +11:00
Stephen Morgan
e63138ef7d lib,cli: Assorted fixes for older GHC. 2021-01-02 15:08:09 +11:00
Stephen Morgan
e4e533eb9f lib,cli,ui: Replace some uses of String with Text, get rid of some unpacks, clean up showMixed options. 2021-01-02 15:08:09 +11:00
Stephen Morgan
07a7c3d3a8 lib: Use Text and Text builder only in postingAsLines. 2021-01-02 15:08:09 +11:00
Stephen Morgan
13c111da73 lib,cli,ui: Use WideBuilder for Tabular.AsciiWide.
Move WideBuilder to Text.WideString.
2021-01-02 15:08:09 +11:00
Stephen Morgan
b9c00dce61 lib,cli,ui: Implement all showMixed* functions in terms of DisplayAmountOpts and WideBuilder. 2021-01-02 15:08:09 +11:00
Stephen Morgan
0a686e220e lib: Use AmountDisplayOpts for showAmount*, reducing need for many different named functions. 2021-01-02 15:08:09 +11:00
Stephen Morgan
c86e8a9794 lib: Implement showAmountHelper using AmountBuilder. 2021-01-02 15:08:09 +11:00
Stephen Morgan
5dedec83da lib: showamountquantity shows directly, rather than parsing string output of show instance for Quantity. 2021-01-02 15:08:09 +11:00
Stephen Morgan
f998a791cf lib: Remove unused optional width argument for StringFormat. 2021-01-02 15:08:09 +11:00
Stephen Morgan
462a13cad7 lib,cli: Use Text Builder for Balance commands. 2021-01-02 15:08:09 +11:00
Stephen Morgan
089564b04b lib,cli: Use Text for CompoundPeriodicReport titles. 2021-01-02 15:08:09 +11:00
Stephen Morgan
541c4fc18c lib,cli: Use Text for CSV values. 2021-01-02 15:08:09 +11:00
Stephen Morgan
e3ec01c3c6 lib,cli,ui: Use Text for showDate and related. 2021-01-02 15:08:09 +11:00
Stephen Morgan
74b296f865 lib,cli: Make showTransaction return Text rather than String. 2021-01-02 15:08:09 +11:00
Stephen Morgan
7e44b89bb4 lib: Remove unused label on TranspactionReport and AccountTransactionsReport. 2021-01-02 15:08:09 +11:00
Stephen Morgan
5752f1c5cb lib,cli: Use Text Builder for Account Transaction Reports. 2021-01-02 15:08:09 +11:00
Stephen Morgan
12a6435c51 lib: Add wrap convenience function. 2021-01-02 15:08:09 +11:00
Stephen Morgan
646ee0bce5 cli: Using Text Builder for posting reports. 2021-01-02 15:08:09 +11:00
aragaer
2084b845e0 journal: Ignore AUTO commodity when strict checking
AUTO commodity is a placeholder for postings with missing amounts. It
should be ignored when doing a strict commodity check.

Fixes #1419
2020-12-31 09:54:23 -08:00
Simon Michael
8306420b61 check: also check "accounts"/"commodities" on demand
(cherry picked from commit 0c2bf54f2955e3a25fd0282acc42608f957abaea)
2020-12-31 08:33:36 -08:00
Simon Michael
31ea37a785 ;check: accounts, commodities, payees, ordereddates: improve errors
Error messages for these four are now a bit fancier and more
consistent. But not yet optimised for machine readability.
Cf #1436.

Added to hledger-lib: chomp1, linesPrepend[2].
2020-12-30 18:13:34 -08:00
Simon Michael
e59603a04a ;check errors: drop unwanted newline & "strict mode" prefix 2020-12-30 18:08:31 -08:00