Commit Graph

10123 Commits

Author SHA1 Message Date
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
b7e40a9e63 ref: areg: Avoid reversing transactions list by making sure we sort them
in the correct order to start with.
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
Simon Michael
48b8dd9be7 ;shake: don't regenerate dir for now (fix) 2021-08-02 22:21:06 -10:00
Simon Michael
003391e102 ;shake: don't regenerate dir for now 2021-08-02 22:14:05 -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
3dbd441210 ;doc: RELEASING 2021-08-01 08:45:52 -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
Stephen Morgan
04a36d4942 ref: Refactor journalFinalise to clarify flow.
The only semantic difference is that we now apply
journalApplyCommodityStyles before running journalCheckAccountsDeclared
and journalCheckCommoditiesDeclared.
2021-07-30 13:52:35 -10:00
Stephen Morgan
c537f9426b dev: lens: Use lenses for updateReportSpec(With). 2021-07-30 09:27:39 -10:00
Stephen Morgan
4e9db4e377 dev: lens: Introduce lenses for ReportOpts and ReportSpec. 2021-07-30 09:27:39 -10:00
Simon Michael
aa60c46597 ;areg: doc: clarify 2021-07-30 09:09:59 -10:00
Simon Michael
2f819725e5 ;lib: accountTransactionsReport: clarify 2021-07-30 09:09:49 -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
f8cc6edbde ;imp: ui: doc: document watch mode and limitations (#1617, #911, #836..) 2021-07-29 20:36:49 -10:00
Simon Michael
f12ff0df3a ;doc: ui, web: move screenshot styles elsewhere 2021-07-28 22:24:25 -10:00
Simon Michael
8c890f845b ;shake: webmanuals: move page toc below h1 again
To avoid extra toc items.
Also added a class permitting manual-specific styling.
2021-07-28 22:20:49 -10:00
Simon Michael
78e9f8877c ;doc: changelogs: lib edits 2021-07-28 14:48:17 -10:00
Simon Michael
6718234455 ;doc: contrib: issue conventions 2021-07-28 10:37:07 -10:00
Simon Michael
e9d3283d18 ;make: installcommithook 2021-07-28 10:03:26 -10:00
Simon Michael
13fbd83626 ;doc: releasing: updates 2021-07-28 10:03:26 -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
dc1fcdd7d7 ;doc: project changelog 2021-07-27 23:28:03 -10:00
Simon Michael
666e217bd5 ;doc: update changelogs 2021-07-27 23:21:13 -10:00
Simon Michael
40c1f09b80 ;ci: push: notes 2021-07-27 23:07:30 -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
83868f174d ;doc: contributing, roadmap: toc placement 2021-07-23 19:07:09 -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
f673e7c2eb lib!: lib,web: Remove unused TransactionReport. Move the useful utility
functions to AccountTransactionsReport.

If you use transactionsReport, you should either use entryReport if you
don't require a running total, or using accountTransactionsReport with
thisacctq as Any or None (depending on what you want included in the
running total).
2021-07-22 19:00:37 -10:00
Stephen Morgan
acfbd36fb8 dev: web: Use entriesReport instead of transactionReport.
This produces identical results. The only fields used in the TransactionReport were torig, split, and amt.
- torig is the same as in entriesReport
- since transactionsReport calls accountTransactionsReportItems with
  None as thisacctq, all accounts are considered ‘other accounts’, so
  amt is always zero, and ($if not split && not (mixedAmountLooksZero amt)) never fires.
- So the only thing used is torig, and we can just get that from the
  entriesReport.
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
a291f5d33b ci: push/linux/mac/windows: fix ; conditional step execution 2021-07-20 23:24:18 -10:00
Simon Michael
a54716778d ci: windows: fix bash-specific steps 2021-07-20 23:06:34 -10:00
Simon Michael
88c6d47e32 ci: linux/mac/windows: skip steps if message begins with ; 2021-07-20 23:01:57 -10:00
Simon Michael
4641db4604 ;ci: push: tweak output 2021-07-20 22:57:55 -10:00