Commit Graph

6989 Commits

Author SHA1 Message Date
Samuel May
cde91fc5f4 lib: Make BalanceAssertion a full datatype
Note: simplifies/moves whitespace parsing out of the balance assertion
parser.
2018-10-22 09:55:14 -07:00
Samuel May
22645881c1 Add upper bound on 'statistics'; broaden .gitignore
.gitignore: products of manual cabal builds, and vim temp files
hledger.cabal: *.RootFinding removed from statistics >=0.15 in favor
  of that in math-functions >=0.2
2018-10-22 09:51:02 -07:00
Simon Michael
0d531bb24f lib: showTransaction: fix a case showing multiple missing amounts
Noticed by peti: showTransaction could sometimes hide the last posting's
amount even if one of the other posting amounts was already implcit,
producing invalid transaction output.
2018-10-22 07:23:40 -07:00
Simon Michael
b5a90432ff lib: document and test showTransaction*, posting*AsLines 2018-10-22 06:46:31 -07:00
Simon Michael
20f006f7f6 lib: transaction: drop commented code 2018-10-22 04:03:29 -07:00
Simon Michael
80dc2ef03f update cabal files with hpack 0.31
As in latest stack release. Hopefully this won't unleash horrors.
2018-10-18 14:44:16 -07:00
Simon Michael
6d11164444 web: fix duplicate package.yaml keys warned about by hpack 2018-10-18 14:44:16 -07:00
Simon Michael
b1582b29b1 ui: doc: update manuals 2018-10-18 14:43:00 -07:00
Simon Michael
b5df5fb5f0 lib: comment 2018-10-18 14:43:00 -07:00
Simon Michael
74611a7be1 ui: accounts: fix balances when there's only periodic txns
And clarify multiBalanceReport.
2018-10-18 14:43:00 -07:00
Simon Michael
89a0c7a308 ui: comment 2018-10-18 14:43:00 -07:00
Simon Michael
2c2d10f9c2 lib: plog, plogAt: add missing newline, note issue 2018-10-18 14:43:00 -07:00
Simon Michael
2edb1f2705 ui: always enable periodic transactions and transaction modifiers
Rule-based transactions and postings are always generated
(--forecast and --auto are always on).
Experimental.
2018-10-18 14:43:00 -07:00
Simon Michael
b85bbbb095 ui: drop the --status-toggles flag 2018-10-18 14:43:00 -07:00
Simon Michael
a924ad047e ui: drop the --present flag 2018-10-18 14:43:00 -07:00
Simon Michael
2a44d7eb26 ui: reorganise help dialog, fit content into 80x25 again 2018-10-18 14:43:00 -07:00
Simon Michael
cf6f4ed28c ui: escape key resets to flat mode
Flat mode is the default at startup. Probably it should reset to tree
mode if --tree was used at startup.
2018-10-18 14:43:00 -07:00
Simon Michael
1b42d34a78 ui: small help tweak
[ci skip]
2018-10-18 14:43:00 -07:00
Simon Michael
52ee10bd87 ui: reg: ensure T always has a visible effect 2018-10-18 14:43:00 -07:00
Simon Michael
1c3233cc0f ui: replace odd-looking pattern 2018-10-18 14:43:00 -07:00
Simon Michael
1db9b018f1 ui: add --present/--future, hide future txns by default, toggle with F
You may have transactions dated later than today, perhaps piped from
print --forecast or recorded in the journal, which you don't want to
see except when forecasting.

By default, we now hide future transactions, showing "today's balance".
This can be toggled with the F key, which is easier than setting a
date query. --present and --future flags have been added to set the
initial mode.

(Experimental. Interactions with date queries have not been explored.)
2018-10-18 14:43:00 -07:00
Simon Michael
e52430bd62 ui: default theme: reduce highlighting noise in bottom border help 2018-10-18 14:43:00 -07:00
Simon Michael
89712fe81d ui: make flat the default, toggle with T, add --tree/-T/-F flags 2018-10-18 14:43:00 -07:00
Dmitry Astapov
15c666702b cli: compoundbalancecommand keeps zero-balance accounts with children 2018-10-17 16:59:53 -07:00
Jesse Rosenthal
a6a73e36e3 Finish removing journalFinalise (#903)
* journal: Get rid of `journalFinalise` and use granular functions

Complete the process started in 53b3e2bd. This gets rid of the
`journalFinalise` function and uses the smaller steps, in order to
have more granular control.

* journal: Change order of operations in finalization

We want to make sure that we add the filepath after the order is
reversed, so the added filepath is on the head and not the tail (as it
would be if it were reversed after it was added).

* journal: Refine granular finalization functions

This commit fixes two of the granular finalization functions:

1. Rename `journalSetTime` to `journalSetLastReadTime` and improve
   documentation.

2. Remove `journalSetFilePath`. It's redundant with `journalAddFile`
   currently in `Hledger.Read.Common`. The only difference between the
   functions is where the file is added (we keep the one in which it
   is added to the tail), so we change the position vis-a-vis
   reversal.
2018-10-16 08:51:51 -07:00
Simon Michael
0f2a31bea7 docs: journal: account: a little bit more about sorting
[ci skip]
2018-10-15 12:07:44 -07:00
Simon Michael
4a399e50cb acc: don't require an explicit --flat to make --drop work 2018-10-13 13:22:11 -07:00
Simon Michael
b72f9697a2 lib: journal: account: allow whitespace or a comment after the account name 2018-10-13 13:09:49 -07:00
Simon Michael
4f2d9dde4c docs: journal: clarify transaction modifiers
[ci skip]
2018-10-12 09:12:06 -07:00
Simon Michael
383479d313 doc: update hledger-irr mention
[ci skip]
2018-10-12 09:12:06 -07:00
Jesse Rosenthal
53b3e2bd94 journal: split up the parts of journalFinalise, and use them as needed.
`journalFinalise` is only used in the `parseAndFinaliseJournal`
functions, but it needs to be run differently at different stages when
transaction modifiers are applied. This change breaks it into smaller
functions, and uses those smaller parts in `parseAndFinaliseJournal`
as needed.
2018-10-12 07:39:53 -07:00
Jesse Rosenthal
20f134c96b read: only run finalise twice if there are modifiers
Previously we ran if `--auto` was set. But this adds a small
performance hit if `--auto` becomes default. Now we only run twice if
there are transactionModifiers AND `--auto` is set. So even if auto is
specified, there will be no penalty if there are no modifiers.
2018-10-12 07:39:53 -07:00
Jesse Rosenthal
6c3fb56603 Add test for modifers on inferred values. 2018-10-12 07:39:53 -07:00
Jesse Rosenthal
5a3462ce48 read: Integrate transaction modifiers with journal finalization
Currently, automated transactions are added before the journal is
finalized. This means that no inferred values will be picked up. We
change the procedure, if `auto_` is set, to

 1. first run `journalFinalise` without assertion checking (assertions
    might be wrong until automated transactions), but with reordering
 2. Insert transaction modifiers
 3. Run `journalFinalise` again, this time with assertion checking as
    set in the options, and without reordering.

If `auto_` is not set, all works as before.

Closes: #893
2018-10-12 07:39:53 -07:00
Jesse Rosenthal
b346d7f701 Journal: make reordering optional in journalFinalise
Currently `journalFinalise` always reverses the order of
entries. However, if there are automated transactions, we might need
to run it twice. This adds a boolean flag to make reordering
optional. This will be used in the `parseAndFinaliseJournal`
functions.
2018-10-12 07:39:53 -07:00
Simon Michael
c53502e1ac docs: say more about special chars and unicode chars (cf #895)
[ci skip]
2018-10-11 19:06:52 -07:00
Simon Michael
9685699491 docs: options: clarify special characters topic
[ci skip]
2018-10-11 18:00:36 -07:00
Simon Michael
51bf8cbccc docs: journal: account: a gotcha when changing builtin account types
[ci skip]
2018-10-11 16:16:33 -07:00
Simon Michael
a899f7924f docs: journal: account: update directives intro
[ci skip]
2018-10-11 15:53:06 -07:00
Moritz Kiefer
ec1b31f7ba Anonymize original postings 2018-10-11 15:39:33 -07:00
Simon Michael
0d6803e4b5 accounts: drop obsolete --codes flag 2018-10-10 20:35:53 -07:00
Simon Michael
cf25ef5cf5 accounts: filtering by anything other than account name was broken 2018-10-10 20:32:19 -07:00
Simon Michael
3f0ab0b008 tests: clean up directives test files
[ci skip]
2018-10-10 20:31:08 -07:00
Simon Michael
e4215c094e doc: journal: document setting account types
[ci skip]
2018-10-09 14:24:59 -10:00
Simon Michael
605a082d77 bs/bse/cf/is: use account type declarations if any
These commands now detect the account types declared by account directives.
Whenever such declarations are not present, built-in regular expressions
are used, as before.
2018-10-09 14:24:59 -10:00
Simon Michael
c1236fa6e9 journal: account directives can declare account types
Previously you had to use one of the standard english account names
(assets, liabilities..) for top-level accounts, if you wanted to use
the bs/bse/cf/is commands.
Now, account directives can specify which of the big five categories
an account belongs to - asset, liability, equity, revenue or expense -
by writing one of the letters A, L, E, R or X two or more spaces after
the account name (where the numeric account code used to be).

This might change. Some thoughts influencing the current syntax:
- easy to type and read
- does not require multiple lines
- does not depend on any particular account numbering scheme
- allows more types later if needed
- still anglocentric, but only a little
- could be treated as syntactic sugar for account tags later
- seems to be compatible with (ignored by) current Ledger

The current design permits unlimited account type declarations anywhere
in the account tree. So you could declare a liability account somewhere
under assets, and maybe a revenue account under that, and another asset
account even further down. In such cases you start to see oddities like
accounts appearing in multiple places in a tree-mode report. In theory
the reports will still behave reasonably, but this has not been tested
too hard. In any case this is clearly too much freedom. I have left it
this way, for now, in case it helps with:

- modelling contra accounts ?
- multiple files. I suspect the extra expressiveness may come in handy
  when combining multiple files with account type declarations,
  rewriting account names, apply parent accounts etc.
  If we only allowed type declarations on top-level accounts, or
  only allowed a single account of each type, complications seem likely.
2018-10-09 14:24:59 -10:00
Simon Michael
678e8c28e4 tests: protect func. test from shelltest -w flag (#897) 2018-10-09 17:16:47 -07:00
Mykola Orliuk
8c6a418325 lib: fix home path expansion in includes
fixes simonmichael/hledger#896
2018-10-09 13:35:40 -10:00
Simon Michael
6c57629b8c lib: fix posting-date-and-balance-assignment error properly (#894) 2018-10-09 16:08:47 -07:00
Simon Michael
8c7c59017a lib: fix my wrong merge of #880 more 2018-10-09 15:26:15 -07:00