Commit Graph

627 Commits

Author SHA1 Message Date
Simon Michael
9c173bc18b journal: tests/docs for aliases corrupting account names (#1788) 2021-12-22 14:59:13 -10:00
Stephen Morgan
8eedbbbe87 imp: cost: Generate totally balanced conversion postings for amounts with costs.
Introduce --infer-equity option which will generate conversion postings.
--cost will override --infer-equity.

This means there will no longer be unbalanced transactions, but will be
offsetting conversion postings to balance things out. For example.

2000-01-01
  a   1 AAA @@ 2 BBB
  b  -2 BBB

When converting to cost, this is treated the same as before.
When used with --infer-equity, this is now treated as:

2000-01-01
  a                               1 AAA
  equity:conversion:AAA-BBB:AAA  -1 AAA
  equity:conversion:AAA-BBB:BBB   2 BBB
  b                              -2 BBB

There is a new account type, Conversion/V, which is a subtype of Equity/E.
The first account declared with this type, if any, is used as the base account
for inferred equity postings in conversion transactions, overriding the default
"equity:conversion".

API changes:

Costing has been changed to ConversionOp with three options:
NoConversionOp, ToCost, and InferEquity.
The first correspond to the previous NoCost and Cost options, while the
third corresponds to the --infer-equity flag.  This converts transactions with costs
(one or more transaction prices) to transactions with equity:conversion postings.
It is in ConversionOp because converting to cost with -B/--cost and inferring conversion
equity postings with --infer-equity are mutually exclusive.

Correspondingly, the cost_ record of ReportOpts has been changed to
conversionop_.

This also removes show_costs_ option in ReportOpts, as its functionality
has been replaced by the richer cost_ option.
2021-12-21 10:50:13 -10:00
Stephen Morgan
c4004fca28 imp: csv: Do not display thousands separators when outputting csv. 2021-12-06 15:17:46 -10:00
Simon Michael
763d171108 ;doc: update CLI usage texts 2021-12-06 15:04:07 -10:00
Simon Michael
4d6f1ed0bf ;doc: bal: update tidy description, example 2021-12-06 15:03:40 -10:00
Simon Michael
5c597750fb ;doc: update CLI usage texts 2021-12-06 14:50:43 -10:00
Simon Michael
872bce55ef ;doc: bal: mention tidy's disabling of totals/averages (#1773, #1775) 2021-12-06 14:49:59 -10:00
Stephen Morgan
29ee0c331f imp: csv: Ignore --row-totals with tidy csv output. 2021-12-06 14:43:43 -10:00
Stephen Morgan
fb0472e0e9 imp: csv: Handle --layout=tidy with the legacy balance report.
Note that this gives output compatible with the multi balance report,
which means it is different from the csv with the legacy balance report.
This means tools only need to be able to handle one tidy csv format.
2021-12-06 13:49:01 -10:00
Stephen Morgan
71646f993c imp: csv: Include the start and end dates of intervals, as well as
string representation of the period, in tidy csv output, and never
include row totals or averages.
2021-12-06 13:49:01 -10:00
Simon Michael
ca0d9e2a0e ;doc: update CLI usage texts 2021-12-05 16:34:01 -10:00
Simon Michael
c250be1bb9 ;doc: bal: document tidy; commodity -> data layout (#1768) 2021-12-05 16:33:56 -10:00
Stephen Morgan
7ccf7430d0 imp: csv: Allow for generating tidy csv with --layout=tidy.
This puts every date in a separate row, which is more suitable for
many graphing programs.
2021-12-05 16:06:44 -10:00
Stephen Morgan
3884f90cc6 lib!: Rename CommodityLayout to Layout and rename constructors.
Their scope is more than just commodities.
2021-12-05 16:06:44 -10:00
Simon Michael
6ce70351fd ;doc: cli, bal: improve table layout in non-html docs 2021-12-05 12:27:20 -10:00
Simon Michael
ee9894f59e ;doc: update CLI usage texts 2021-12-05 12:25:44 -10:00
Simon Michael
7b9cad6cdc ;doc: update CLI usage texts 2021-12-05 11:23:11 -10:00
Simon Michael
76f8ed1514 ;doc: cli, bal: clarify output formats, layouts more 2021-12-05 11:23:00 -10:00
Simon Michael
fdc373f45c ;doc: update CLI usage texts 2021-12-05 10:56:38 -10:00
Simon Michael
371539e085 ;doc: bal: clarify --layout a little 2021-12-05 10:56:17 -10:00
Simon Michael
cda693a94f imp: stats: run time and throughput on one line 2021-11-26 07:13:20 -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
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
6e3695c317 ;dev: commodities: note todo 2021-11-22 09:59:49 -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
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
be5e6e4167 ;doc: update CLI usage texts 2021-11-18 22:24:59 -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
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
f345fd0b78 imp: balance: Allow --related flag for balance reports. (#1469) 2021-11-08 14:03:50 -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
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
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