Dmitry Astapov
23f3da4e92
cli: --auto adds automated postings to reports
...
Ledger-style automated postings, previously supported only by
hledger-budget, have landed as a first-class feature. The --auto
flag activates them, so that any postings they generate are
included in reports.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
f101d5b515
cli: --forecast adds periodic transactions to reports
...
Ledger-style periodic transactions, previously supported only by
hledger-budget, have landed as a first-class feature. The --forecast
flag activates them, so that any transactions they generate are
included in reports.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
50b4d76ce9
lib: runPeriodicTransaction's start date must line up with interval
...
This is very helpful for periodic transactions, because in budget mode
you need to ensure that no periodic transactions extend past the end
of the journal, and in forecast mode you need to make sure that all
periodic transactions are strictly after the end of the journal.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
597e9c47c9
lib: more periodic transaction tests
...
Some of these demonstrate that runPeriodicTransaction could generate
transactions ouside of requested DateSpan. This happens because
runPeriodicTransaction uses splitSpan internally, and splitSpan always
generates dateSpans that fully cover original DateSpan, extending
beyound left/right boundary if necessary. This is ok if transactions
are generated for budgeting purpose, but during forecasting care should
be taken to check that all generated transactions are happening past
the end of the real journal.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
950891b55b
lib: support "every <weekday>"
...
A shorter spelling for "every <n>th day of week".
2017-11-26 14:57:41 +00:00
Dmitry Astapov
993e3f2b67
lib: support "every 2nd Thursday of month" in period expressions
...
Useful for periodic transactions.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
f1b4618f2d
lib: support "every 11th Nov" in period expressions
...
Useful for periodic transactions
Without it, once-per-year periodic transactions always occur on 1st Jan.
2017-11-26 14:57:37 +00:00
Dmitry Astapov
7acb5d45aa
lib: make month names in period expressions case-insensitive
...
Currently only lower-case account names are supported, both on the
command line, and in the journal (in periodic transactions):
This works:
$ hledger balance -p nov
This does not:
$ hledger balance -p Nov
First transaction will parse, second will not:
```
cat every-month.journal ~/devel/haskell/darcs-get/hledger/examples
~ aug to sep
assets
expenses $1
~ Aug to Sep
assets
expenses $2
```
$../bin/hledger-budget bal -f every-month.journal
hledger-budget: Failed to parse "Aug to Sep": date parse error ()
This commit fixes both cases.
2017-11-26 00:25:08 +00:00
Dmitry Astapov
4049455f26
lib: Fix splitSpan for nthdayof{week,month} - start of DateSpan was not covered
...
Demonstration:
Consider year-test.journal:
```
2015/02/01 first half
expenses $1
assets
2015/07/01 second half
expenses $2
assets
2016/02/01 first half
expenses $4
assets
2016/07/01 second half
expenses $8
assets
2017/02/01 first half
expenses $16
assets
2017/07/01 second half
expenses $32
assets
```
Year balances are good:
```
$ hledger balance -f year-test.journal -p yearly
Balance changes in 2015/01/01-2017/12/31:
|| 2015 2016 2017
==========++==================
assets || $-3 $-12 $-48
expenses || $3 $12 $48
----------++------------------
|| 0 0 0
```
Note how first transaction in 2015 is not included. Note that this is old period expression, so this bug exsits in master:
```$ hledger balance -f year-test.journal -p 'every 2nd day of month'
Balance changes in 2015/07/02-2017/07/01:
|| 2015/07/02-2015/08/01 2015/08/02-2015/09/01 2015/09/02-2015/10/01 2015/10/02-2015/11/01 2015/11/02-2015/12/01 2015/12/02-2016/01/01 2016/01/02-2016/02/01 2016/02/02-2016/03/01 2016/03/02-2016/04/01 2016/04/02-2016/05/01 2016/05/02-2016/06/01 2016/06/02-2016/07/01 2016/07/02-2016/08/01 2016/08/02-2016/09/01 2016/09/02-2016/10/01 2016/10/02-2016/11/01 2016/11/02-2016/12/01 2016/12/02-2017/01/01 2017/01/02-2017/02/01 2017/02/02-2017/03/01 2017/03/02-2017/04/01 2017/04/02-2017/05/01 2017/05/02-2017/06/01 2017/06/02-2017/07/01
==========++========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
assets || 0 0 0 0 0 0 $-4 0 0 0 0 $-8 0 0 0 0 0 0 $-16 0 0 0 0 $-32
expenses || 0 0 0 0 0 0 $4 0 0 0 0 $8 0 0 0 0 0 0 $16 0 0 0 0 $32
----------++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
```
Note how 2015 is absent entirely. This is new expression, but i think that general nature of bug is the same...
```
$ hledger balance -f year-test.journal -p 'every 4th Apr'
Balance changes in 2016/04/04-2018/04/03:
|| 2016/04/04-2017/04/03 2017/04/04-2018/04/03
==========++==============================================
assets || $-24 $-32
expenses || $24 $32
----------++----------------------------------------------
|| 0 0
```
2017-11-25 21:43:13 +00:00
Simon Michael
f5a39f7bc4
doc: csv: expand description part, include examples
...
[ci skip]
2017-11-05 17:30:31 -08:00
Simon Michael
4ab71f0d0a
journal: clarify that txn/posting comments must start with semicolon
2017-11-01 08:04:25 -07:00
Simon Michael
0e4d791371
doc: journal: use consistent semicolon comments in examples
...
About to add support for # posting comments, but using the semicolon
in examples makes them easier to test with Ledger.
[ci skip]
2017-11-01 06:12:55 -07:00
Simon Michael
676eb6e1a2
update embedded manuals
2017-10-31 12:38:37 -07:00
jeevcat
3a9ea65b99
Rewrite of BalanceAssertion type to track its source position.
...
Fixes #481 .
2017-10-16 13:25:03 -07:00
Sam Jeeves
11684843a0
Balance assertion errors now show line of failed assertion posting. Fixes #481 .
2017-10-14 15:11:19 -07:00
Simon Michael
302723b1be
lib,cli,ui,web: allow megaparsec 6.2
...
Forgot to commit this last time.
[ci skip]
2017-10-01 09:49:51 -10:00
Simon Michael
5de51c9bad
fix warnings/errors found by make stacktest
2017-09-30 13:00:22 -10:00
Simon Michael
7520da5e0c
update embedded manuals
2017-09-30 11:46:03 -10:00
Simon Michael
bfb4a38afb
update cabal files
2017-09-30 11:45:33 -10:00
Simon Michael
4a49b86175
bump version strings & lower bounds to 1.4
2017-09-30 11:44:53 -10:00
Simon Michael
8c86d9b578
doc: update manuals re --sort-amount
2017-09-29 19:31:44 -10:00
Simon Michael
62c822c1e6
lib: more compact debug output for Accounts
2017-09-29 18:50:18 -10:00
Simon Michael
b5602fd771
bal: --sort-amount sorts tree-mode multi-column balance reports
2017-09-29 18:49:47 -10:00
Simon Michael
d527384261
bal: --sort-amount sorts tree-mode single-column balance reports too
2017-09-28 09:49:03 -10:00
Simon Michael
32d5428197
doc: draft 1.4 changelogs
...
[ci skip]
2017-09-26 16:22:30 -10:00
Simon Michael
580ad88dca
timedot: fix parsing of month quantities (Nmo)
...
[ci skip]
2017-09-26 15:11:37 -10:00
Simon Michael
cd998e7f2f
slight fix for --sort-amount, don't flip when normal balance unspecified
2017-09-25 19:10:21 -10:00
Simon Michael
d9d92b3bf1
bs/bse/is: --sort-amount puts large liabilities/equities/incomes at top
...
Compound balance commands like these can now be aware of normal account
balance sign, and sort negative balances accordingly.
This also adds utility-ht as a dependency, only for the uncurry function
right now but it looks potentially useful to have.
2017-09-25 19:06:38 -10:00
Simon Michael
35e2e94228
bal/bs/cf/is: --sort-amount sorts by amount instead of account name
2017-09-25 06:17:46 -10:00
Simon Michael
5c85a1dd1c
lib: allow trailing whitespace in regex account aliases
...
Trailing whitespace in the replacement part of a regular expression
account alias is now significant. Eg, slightly flattening some bank
accounts: --alias '/:somebank:/=somebank '
2017-09-22 16:43:03 -10:00
Simon Michael
7edacdf443
cli: import command! hledger import *.csv adds new txns to main file
2017-09-17 18:57:51 -07:00
Simon Michael
0720cf9341
csv: doc: note how --rules-file affects all files in command
2017-09-17 13:37:06 -07:00
Simon Michael
1edb828a75
lib, print: rename --new's save files to .latest.*, easier to manage
2017-09-17 13:26:42 -07:00
Simon Michael
669fa706c0
print: --new shows only transactions added since last time
...
First cut, error messages could be refined etc.
2017-09-15 09:55:17 -07:00
Simon Michael
e3c4a76119
add & use simpler readJournalFilesWithOpts/InputOpts api
2017-09-14 17:43:32 -07:00
Simon Michael
55cebad0d5
cli: refactor: move commands to a subdirectory, reinstate test command
2017-09-12 10:04:36 -07:00
Simon Michael
3b1637341c
lib: doctests: fix unused import warning
2017-09-08 10:58:13 -07:00
Simon Michael
0175a0231d
lib: make doctests build with ghc 7.10 again
2017-09-08 10:25:42 -07:00
Simon Michael
5ae011b249
lib: add missing parsec lower bound, possibly related to #596 , fpco/stackage#2835
...
[ci skip]
2017-09-06 07:32:13 -07:00
Simon Michael
efbbcda7e6
doc: tweak description/payee/note docs ( #598 , #608 )
2017-09-05 14:06:43 -07:00
Simon Michael
079e76a370
doc: update description/payee/note docs ( #598 , #608 )
2017-09-05 11:44:02 -07:00
Simon Michael
9501b43471
lib: pivot -> journalPivot, drop implicit tags notion ( #598 , #608 )
2017-09-05 10:48:35 -07:00
Jakub Zárybnický
72cf6a8219
lib: Fix filtering by payee and note ( #598 )
2017-09-05 08:37:19 -07:00
Simon Michael
b246d0e990
cf: more restrictive regexp ( #584 )
2017-08-27 08:26:47 -07:00
Christian G. Warden
deaf9cfbef
Exclude Fixed Assets from Cashflow Report
...
Add "fixed" to the regex used to exclude asset accounts from cashflow
reports. Assumes accounts are set up something like:
assets:fixed assets:equipment
assets:fixed assets:vehicles
assets:fixed assets:buildings
2017-08-27 04:41:05 -07:00
Simon Michael
6b6e185827
lib: doc: note #583 issue number
2017-08-26 08:29:53 -07:00
Simon Michael
831ab78a74
lib, cli, ui: allow ansi-terminal 0.7
2017-08-26 07:47:34 -07:00
Simon Michael
f02d35ff39
lib, web: remove obsolete conditionals for old GHC
2017-08-25 17:15:26 -07:00
Simon Michael
b324d3de95
lib, cli, ui, web: drop oldtime flag, require time 1.5+
...
Should be safe to do now, I hope.
2017-08-25 16:56:41 -07:00
Simon Michael
3778db9ec7
lib: similar package.yaml whitespace
2017-08-25 16:53:41 -07:00