Commit Graph

1104 Commits

Author SHA1 Message Date
Simon Michael
8cde342432 tags: speedup: replace n^2 nub with n log n nubSort 2019-07-26 23:24:09 +01:00
Simon Michael
0b793bca1b tags: add --values flag 2019-07-26 23:18:21 +01:00
Simon Michael
2aa5bd1653 ;tags: mention pivot trick for listing tag values
[ci skip]
2019-07-26 22:19:27 +01:00
Caleb Maclennan
11d9e5eb6a code: Strip extraneous trailing whitespace from Haskell sources 2019-07-15 16:40:49 +01:00
Caleb Maclennan
e68e558761 payees: Split command into descriptions, payees, and notes 2019-07-15 08:22:16 +01:00
Caleb Maclennan
5d42578137 payees: Output sorted results as in other similar commands 2019-07-15 08:22:16 +01:00
Simon Michael
f49a76e051 payees: get basic command working 2019-07-15 08:22:16 +01:00
Caleb Maclennan
e6b709cb01 payees: Add a module for handling payees command 2019-07-15 08:22:16 +01:00
Simon Michael
6c2398e4d7 close: preserve transaction prices (costs) accurately (#1035)
Transaction prices were being collapsed/misreported after close/open;
this is fixed. Now each separately-priced amount gets its own posting,
and only the last of these (for each commodity) gets a balance
assertion. Also the equity posting's amount is now always shown
explicitly, which in multicommodity situations means that multiple
equity postings are shown. The upshot is that a balance -B report
will be unchanged after closing & opening transactions.
2019-07-09 11:21:22 +01:00
Jakob Schöttl
8569b39771 Refactoring: qualified call to process function 2019-06-30 10:38:06 +02:00
Jakob Schöttl
2b01312004 Fix and update documentation on date options 2019-06-30 10:38:06 +02:00
Simon Michael
27c01e82b5 add: doc: mention the windows trailing-dot file path issue 2019-06-26 18:47:11 +01:00
Simon Michael
5cb334514c ;lib: rename setMinimalPrecision -> setNaturalPrecision 2019-06-14 19:04:09 -07:00
Simon Michael
692620180e ;lib: refactor: change AmountPrice to a Maybe
I've wanted to do this for a long time; now that prices are in flux,
seems a good time.
2019-06-13 15:50:01 -07:00
Simon Michael
adb6ee40eb lib: clarify price types (#131)
dropped journalPrices

renamed Price to AmountPrice,  AKA "transaction price"

renamed MarketPrice to PriceDirective.

added new MarketPrice (more pure form of PriceDirective without the amount style information)

Prices is now a more efficient data structure, but not used yet.
2019-06-13 15:50:01 -07:00
Simon Michael
e24c6292d0 lib: support -X/--exchange (direct/reverse prices only) (#131) 2019-06-13 15:50:01 -07:00
Simon Michael
50a52dd467 lib: --value can select commodity (via direct/reverse prices) (#131) 2019-06-13 15:50:01 -07:00
Simon Michael
289891cacf ;prices: note
[ci skip]
2019-06-02 08:48:41 -07:00
Simon Michael
faf85d91e3 cli: restore --aux-date and --effective as --date2 aliases (#1034)
These Ledger-ish spellings were dropped over the years, to improve
--help's layout. Now they work again, but are considered hidden flags
so --help doesn't show them automatically (but I decided to mention
them manually in --date2's description).
2019-06-02 08:48:41 -07:00
Simon Michael
aa99743096 make -V do --value=end in multiperiod reports (#329) 2019-05-24 10:30:35 -07:00
Simon Michael
9977739c76 bal etc.: replace --value=transaction with --value=cost (#329) 2019-05-23 21:55:18 -07:00
Simon Michael
f999bf78e6 opts: new -B/--cost, -V/--market, --value flags (#329) 2019-05-23 13:11:20 -07:00
Simon Michael
0b67df2d31 opts: shorten csv separator arg template 2019-05-23 00:36:59 -07:00
Simon Michael
e21afc466a bal/bs/bse: -H or --cumulative now disables -T (#329)
To reduce confusion, multiperiod balance reports using -H/--historical
or --cumulative, which show end balances, no longer show a Totals
column since summing end balances generally doesn't make sense.
Also the underlying MultiBalanceReport now returns zero for those
totals when in cumulative or historical mode.
2019-05-11 20:43:28 -07:00
Simon Michael
76342a3fd0 bal/bs/cf/is: mention valuation type in report title 2019-05-09 15:39:43 -07:00
Simon Michael
5e2f5cf511 ;doc: rewrite: consistent literal block styling
[ci skip]
2019-05-07 16:11:35 -07:00
Simon Michael
8d7eacd73f bal: support --value-at=p/t with multiperiod reports (#329) 2019-05-05 09:30:01 -07:00
Simon Michael
3a79e300c9 ;bal: cleanup 2019-05-04 12:22:00 -07:00
Simon Michael
ec1b98434c reg: support --value-at=period with periodic reports (#329) 2019-05-04 12:22:00 -07:00
Simon Michael
dd8c403c81 ;cli: option help tweaks 2019-05-04 12:22:00 -07:00
Simon Michael
ebf5ed93f2 valuation: more thorough --value-at; document status (#329, #999)
This feature turns out to be quite involved, as valuation interacts
with the many report variations. Various bugs/specs have been
fixed/clarified relating to register's running total, balance totals
etc. Eg register's total should now be the sum of the posting amount
values, not the values of the original sums. Current level of support
has been documented.

When valuing at transaction date, we once again do early valuation of
all posting amounts, to get more correct results. variants. This means
--value-at=t can be slower than other valuation modes when there are
many transactions and many prices. This could be revisited for
optimisation when things are more settled.
2019-05-03 12:24:02 -07:00
Simon Michael
040f2ba1bf doc: cli: consistent examples styling
[ci skip]
2019-05-03 11:29:43 -07:00
Simon Michael
65934958f9 rename --value-date -> --value-at; --value-at implies -V 2019-04-26 12:08:31 -07:00
Simon Michael
9adae02973 print: add --value-date general option; implement for print -V 2019-04-26 12:08:31 -07:00
Simon Michael
c23fc8b671 speed up -V/--value by converting reports, not the journal (#999)
Instead of converting all journal amounts to value early on, we now
convert just the report amounts to value, before rendering.

This was basically how it originally worked (for the balance command),
but now it's built in to the four basic reports used by print,
register, balance and their variants - Entries, Postings, Balance,
MultiBalance - each of which now has its own xxValue helper.

This should mostly fix -V's performance when there are many
transactions and prices (the price lookups could still be optimised),
and allow more flexibility for report-specific value calculations.

+------------------------------------------++-----------------+-------------------+--------------------------+
|                                          || hledger.999.pre | hledger.999.1sort | hledger.999.after-report |
+==========================================++=================+===================+==========================+
| -f examples/1000x1000x10.journal bal -V  ||            1.08 |              0.96 |                     0.76 |
| -f examples/2000x1000x10.journal bal -V  ||            1.65 |              1.05 |                     0.73 |
| -f examples/3000x1000x10.journal bal -V  ||            2.43 |              1.58 |                     0.84 |
| -f examples/4000x1000x10.journal bal -V  ||            4.39 |              1.96 |                     0.93 |
| -f examples/5000x1000x10.journal bal -V  ||            7.75 |              2.99 |                     1.07 |
| -f examples/6000x1000x10.journal bal -V  ||           11.21 |              3.72 |                     1.16 |
| -f examples/7000x1000x10.journal bal -V  ||           16.91 |              4.72 |                     1.19 |
| -f examples/8000x1000x10.journal bal -V  ||           27.10 |              9.83 |                     1.40 |
| -f examples/9000x1000x10.journal bal -V  ||           39.73 |             15.00 |                     1.51 |
| -f examples/10000x1000x10.journal bal -V ||           50.72 |             25.61 |                     2.15 |
+------------------------------------------++-----------------+-------------------+--------------------------+

There's one new limitation, not yet resolved: -V once again can pick a
valuation date in the future, if no report end date is specified and
the journal has future-dated transactions. We prefer to avoid that,
but reports currently are pure and don't have access to today's date.
2019-04-23 17:39:01 -07:00
Simon Michael
1cacfcea28 lib: fix journalApplyValue test (#999) 2019-04-23 07:20:10 -07:00
Simon Michael
08d226aaf5 lib: add a test for journalApplyValue that times itself (#999)
This test prints the time elapsed (before the OK message).
Mainly to support current performance tuning
(make ghcid-test-Hledger.Cli.Utils.journalApplyValue),
but also for future reference.
2019-04-22 16:40:58 -07:00
Simon Michael
76b933641d rejigger Hledger.Cli tests to have correct prefix, add Cli.Utils 2019-04-22 12:47:28 -07:00
Simon Michael
028303acd7 lib: speed up -V by sorting market prices just once (#999)
-V is still quite a bit slower than no -V, but not as much as before:

+===========================================================++=======+
| hledger.999.pre -f examples/10000x10000x10.journal bal    ||  5.20 |
| hledger.999.pre -f examples/10000x10000x10.journal bal -V || 57.20 |
| hledger.999 -f examples/10000x10000x10.journal bal        ||  5.34 |
| hledger.999 -f examples/10000x10000x10.journal bal -V     || 17.50 |
+-----------------------------------------------------------++-------+
2019-04-20 13:12:53 -07:00
Simon Michael
6f4009d589 import: doc tweaks
[ci skip]
2019-04-19 15:44:06 -07:00
Simon Michael
ca79981f8d doc: regen command help
[ci skip]
2019-04-19 11:19:24 -07:00
Simon Michael
eb576ba5be import: document a problem with balance assignments
[ci skip]
2019-04-19 11:18:33 -07:00
Simon Michael
ab93eb4258 close: doc: fix typo
[ci skip]
2019-03-26 16:40:03 -07:00
Simon Michael
6c841a266d diff: help tweaks (cf #981) 2019-03-09 09:45:30 -08:00
Simon Michael
e57bf4a9f2 diff: make it show in commands list; export it (#981) 2019-03-04 12:01:34 -08:00
Gabriel Ebner
ceb193f85e cli: add diff command
This merges the external hledger-diff addon, which is now deprecated.
https://github.com/gebner/hledger-diff/
2019-03-04 11:39:11 -08:00
Jakub Zárybnický
6becbc78f3 cli, web, ui: Replace withJournalDo* variants 2019-03-01 05:42:30 -08:00
Simon Michael
a3ae68020f regen manuals
[ci skip]
2019-02-26 10:13:50 -08:00
Simon Michael
3dbd1378de bal: doc: clarify budget report differences; drop sorting limitation
[ci skip]
2019-02-24 21:09:59 -08:00
Simon Michael
0bc16d4af6 lib, cli, web: rename porigin -> poriginal 2019-02-20 20:23:54 -08:00
Jakob Schöttl
49f286dc70 Fix CLI help text 2019-02-17 06:55:01 -08:00
Simon Michael
03877057fb refactor: cli: commands: hlint clean 2019-02-14 05:15:49 -08:00
Simon Michael
17c4a47a85 regen cli help, manuals
[ci skip]
2019-02-14 05:15:49 -08:00
Simon Michael
d7a815fc08 commodities: add commodities command 2019-02-14 05:15:48 -08:00
Jakob Schöttl
ba1abae7c9 Add doc on --invert 2019-02-09 15:55:41 -08:00
Jakob Schöttl
161ca660dc Support register --invert option to negate amounts 2019-02-09 15:55:41 -08:00
Jakob Schöttl
98d7c073c7 Reduce simple lambda 2019-02-09 12:47:24 -08:00
Simon Michael
e89c3752c4 stats: tweak -o help, output format is not supported here
[ci skip]
2019-02-03 13:05:48 -08:00
Simon Michael
c959e555ad print, reg: restore -o, -O flags dropped during refactor (#967) 2019-02-03 13:04:59 -08:00
Simon Michael
86d5652e53 stop depending on here due to slow haskell-src-meta/stackage issues
Using file-embed or ordinary literals instead, for now.
2019-02-02 16:34:10 -08:00
Simon Michael
33d82fb657 fix: --forecast shouldn't force --auto on (#953, #959) 2019-02-01 11:43:24 -08:00
Simon Michael
d6e075dacd refactor journalModifyTransactions, modifyTransactions
API changes:

Hledger.Data.TransactionModifier
-transactionModifierToFunction
+modifyTransactions

Hledger.Read.Common.applyTransactionModifiers -> Hledger.Data.Journal.journalModifyTransactions
2019-02-01 11:31:04 -08:00
Simon Michael
4a9fa5cd38 internals: append rather than prepend forecasted txns 2019-02-01 11:29:22 -08:00
Simon Michael
5435150d39 doc: don't use sed; fix accidental dedenting of some lists (#961)
The sed code was showing an error message, not too precise.
Pandoc's lua filters to the rescue!

[ci skip]
2019-01-31 08:34:49 -08:00
Simon Michael
3474cb08bd cli: commands list: mention budgets
[ci skip]
2019-01-31 08:33:40 -08:00
Simon Michael
59739d1cd3 doc: command docs readme -> .md
[ci skip]
2019-01-30 17:59:42 -08:00
Simon Michael
845fdf8302 doc: update command docs readme 2019-01-30 17:58:23 -08:00
Simon Michael
c8246e7323 cli: command help: reduce width, line wrapping
cmdargs wraps any lines longer than 78 characters.  To (mostly) avoid
this, we now display verbatim blocks unindented, and some of
register's examples have been altered to make them fit.
2019-01-30 17:58:13 -08:00
Simon Michael
36246e4976 cli: commands list: reorder help lines
[ci skip]
2019-01-30 12:54:22 -08:00
Simon Michael
4c5ac4dd06 cli: fix command help, really render as plain text
pandoc thinks .txt is a markdown file apparently
2019-01-30 12:44:10 -08:00
Simon Michael
3baad5d729 cli: render command help as plain text, hiding markup
This means committing a bunch more generated files, but it's probably
worthwhile, so we can have both rich hyperlinked/styled command docs
and clean readable command help.
2019-01-30 10:41:39 -08:00
Simon Michael
88ef2abfff refactor: Commands 2019-01-30 09:09:52 -08:00
Simon Michael
8d6b5cc4f3 cli: commands list: fix addons being shown twice 2019-01-30 09:09:52 -08:00
Simon Michael
2442b4f46f refactor: hledgerCommandMode 2019-01-30 09:09:52 -08:00
Simon Michael
a23f391d7e cli: commands list: reorganise
[ci skip]
2019-01-28 12:48:15 -08:00
Simon Michael
469b715352 cli: commands list: update command descriptions 2019-01-28 10:23:39 -08:00
Simon Michael
a9eb84a451 cli: commands list: show addons prefixed with + 2019-01-28 10:07:18 -08:00
Simon Michael
b92aa4b89e refactor: Commands 2019-01-28 09:33:21 -08:00
Simon Michael
4ee39e039b doc: integrate CLI help & manual for remaining commands
& rename HelpTemplate -> CommandDoc
2019-01-28 05:43:49 -08:00
Simon Michael
6566ef5fa2 add: fix breakage when creating file, ignore backslash in names line 2019-01-26 20:57:44 -08:00
Simon Michael
157ec857d4 refactor hledgerCommandMode 2019-01-26 20:57:00 -08:00
Simon Michael
6947f29f17 bal: integrate CLI help & manual 2019-01-26 17:22:48 -08:00
Simon Michael
64d78f1644 add: integrate CLI help & manual 2019-01-26 17:13:44 -08:00
Simon Michael
53620d0df2 act: integrate CLI help & manual 2019-01-26 17:07:30 -08:00
Simon Michael
f68309b106 acc: integrate CLI help & manual 2019-01-26 17:01:55 -08:00
Simon Michael
d1411fbd8d embedded files comment
[ci skip]
2019-01-26 16:39:36 -08:00
Simon Michael
817497f30b doc: force a line break after command names in new command docs
[ci skip]
2019-01-26 16:33:51 -08:00
Simon Michael
550aa408eb lib: refactor, add embedFileRelative 2019-01-26 15:52:58 -08:00
Simon Michael
4f8153cf82 hereFileRelativeToPackage -> hereFileRelative 2019-01-26 15:34:17 -08:00
Dmitry Astapov
f6e5b3d438 lib: make --auto work on --forecast transactions 2019-01-25 12:53:59 -08:00
Dmitry Astapov
f2aaaf3310 lib, cli: merge --show-unbudgeted into --empty 2019-01-25 12:53:09 -08:00
Simon Michael
08c0d83593 close: generated unpriced balance assertion amounts (#824) 2019-01-25 11:55:09 -08:00
Simon Michael
f320345699 close: refactor 2019-01-25 10:23:01 -08:00
Dmitry Astapov
5711cdf9ba cli: added --transpose to "balance" command 2019-01-24 15:06:35 -08:00
Dmitry Astapov
56553ede69 cli: if abs(return on investment)<0.01% display it as zero 2019-01-24 13:36:11 -08:00
Simon Michael
f7c22f97dc refactor: simplify addonCommandMode 2019-01-23 17:26:27 -08:00
Simon Michael
b2c1e0b0ac close: doc tweaks
[ci skip]
2019-01-23 17:26:27 -08:00
Simon Michael
fcb33c4f0c close: fix ghci build / make build working-dir-independent again 2019-01-23 17:26:27 -08:00
Simon Michael
50175a9698 close: fix regular build, note path issue breaking ghci 2019-01-22 14:33:20 -08:00
Simon Michael
ede41af4c8 close: fix and document some newline issues
[ci skip]
2019-01-22 14:10:37 -08:00
Simon Michael
cc7c3928fb doc: begin integrating commands' CLI help and manual section
Just the close command to start with.
2019-01-22 13:33:24 -08:00
Simon Michael
763903ebda journal: save account directives' comments, tags, declaration order 2019-01-18 16:40:35 -08:00
Simon Michael
7b47fb608e close: use exact, minimal amounts; ensure assertions pass (#941) 2019-01-16 14:57:59 -08:00
Simon Michael
a0b0fedd31 add files command to commands list 2019-01-14 22:01:42 -08:00
Simon Michael
e120e261bd import: if there's nothing to import, be quiet 2019-01-08 15:34:19 +00:00
Simon Michael
6f36702141 lib: rename, reposition tprecedingcomment field 2019-01-05 07:35:54 +00:00
Simon Michael
3a5df72331 roi: use math-functions lib instead of old statistics version 2018-12-03 15:51:29 -08:00
Simon Michael
99a04c219f roi: add to commands list 2018-12-02 16:27:36 -08:00
Simon Michael
b053942e9b lib: flip the arguments of (divide|multiply)[Mixed]Amount (api change)
Also, start using a mapMixedAmount helper.
2018-11-13 17:28:24 -08:00
Simon Michael
4b5b9f46db lib: TransactionModifier: clarify 2018-11-13 16:35:46 -08:00
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
Simon Michael
b5a90432ff lib: document and test showTransaction*, posting*AsLines 2018-10-22 06:46:31 -07:00
Dmitry Astapov
15c666702b cli: compoundbalancecommand keeps zero-balance accounts with children 2018-10-17 16:59:53 -07:00
Simon Michael
4a399e50cb acc: don't require an explicit --flat to make --drop work 2018-10-13 13:22:11 -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
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
Alex Chen
2cbc41e088 Merge branch 'master' into ExceptTLayer 2018-10-09 11:19:45 -06:00
Simon Michael
36af23ff5a appveyor: try older ghc again, skip tests for now (#888)
[ci skip]
2018-10-07 10:07:31 -10:00
Simon Michael
dcbedadcc4 add: fix wrong txn rendering during data entry & in journal file 2018-10-06 09:31:22 -10:00
Alex Chen
3d2584d869 lib: switch to megaparsec 7 2018-09-30 20:15:12 -06:00
Dmitry Astapov
3397ccdd4c cli: command to compute return on investment 2018-09-27 13:42:31 -10:00
Dmitry Astapov
bda202e4d4 cli: "close" can print only opening or closing transaction 2018-09-25 07:25:59 -10:00
Simon Michael
855bd54d19 budget: declaration and (actual) amount sorting for bal --budget
Account declaration-aware sorting is the default throughout hledger now.
2018-09-24 08:31:19 -10:00
Dmitry Astapov
cb979ed129 cli: command to list included files 2018-09-22 21:47:54 -10:00
Simon Michael
3de8c11de1 journal: a new account sorting mechanism, and a bunch of sorting fixes
A bunch of account sorting changes that got intermingled.

First, account codes have been dropped. They can still be parsed and
will be ignored, for now. I don't know if anyone used them.
Instead, account display order is now controlled by the order of account
directives, if any. From the mail list:

  I'd like to drop account codes, introduced in hledger 1.9 to control
  the display order of accounts. In my experience,

  - they are tedious to maintain
  - they duplicate/compete with the natural tendency to arrange account
    directives to match your mental chart of accounts
  - they duplicate/compete with the tree structure created by account
    names

  and it gets worse if you think about using them more extensively,
  eg to classify accounts by type.

  Instead, I plan to just let the position (parse order) of account
  directives determine the display order of those declared accounts.
  Undeclared accounts will be displayed after declared accounts,
  sorted alphabetically as usual.

Second, the various account sorting modes have been implemented more
widely and more correctly. All sorting modes (alphabetically, by account
declaration, by amount) should now work correctly in almost all commands
and modes (non-tabular and tabular balance reports, tree and flat modes,
the accounts command). Sorting bugs have been fixed, eg #875.
Only the budget report (balance --budget) does not yet support sorting.

Comprehensive functional tests for sorting in the accounts and balance
commands have been added. If you are confused by some sorting behaviour,
studying these tests is recommended, as sorting gets tricky.
2018-09-22 21:45:07 -10:00
Simon Michael
059ad9eb76 refactor: jaccounts -> jdeclaredaccounts 2018-09-17 05:52:13 -07:00
Luca Molteni
ad733c1eb4 Removed hunit 2018-09-07 13:00:20 -07:00
Simon Michael
23bdac41d9 csv: merge lucamolteni's cassava/custom separators (squashed) (#829)
commit 5ba464de761b298e50d57a8b7d14bc28adb30d5d
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Sep 7 17:54:12 2018 +0200

    Fix CI 2

commit f060ae9449f4b61a915b0ed4629fc1ba9b66fb4a
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Sep 7 17:30:08 2018 +0200

    Fix CI build

commit af0719a33b9b72ad244ae80198d881a1f7145e9d
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Sep 7 17:19:01 2018 +0200

    Fix rebase

commit 1a24ddfa54dfb4ff1326e1a51005ffa82d3dc3c8
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Aug 10 16:25:24 2018 +0200

    Fixed some GHC warnings

commit 1ac43398a359b5925ef71f53347698f1c6c510ef
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Aug 10 16:14:49 2018 +0200

    Fix .cabal

commit 422456b925d8aa4ab3e869f51e98c2b1c3dcde0a
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sun Jul 1 22:56:20 2018 +0200

    Removed to-do list

commit 1118b762e4fd15c4fe7ba48ba86676706ea3a5a5
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sun Jul 1 22:53:28 2018 +0200

    Better test

commit 1146ed0941655668bf7684f18aa15c5f4b9b20c2
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sun Jul 1 15:32:28 2018 +0200

    Fix parsing

commit 4fc2374b2b81802990da30c96756aab54d77399c
Author: Luca Molteni <volothamp@gmail.com>
Date:   Thu Jun 21 22:11:11 2018 +0200

    Parsing of separator

commit f7a61737f1ad4460ba20ca9b2e86eb21468abb33
Author: Luca Molteni <volothamp@gmail.com>
Date:   Thu Jun 21 14:29:23 2018 +0200

    Almost separator in options

commit ac8841cf3b9c80914bc3271ad9b9ff4ae9ba48a7
Author: Luca Molteni <volothamp@gmail.com>
Date:   Thu Jun 21 14:16:59 2018 +0200

    Separator in parseCSV

commit 92a8b9f6ba77ea4237f769641e03029ac88542ea
Author: Luca Molteni <volothamp@gmail.com>
Date:   Thu Jun 21 13:30:41 2018 +0200

    separator option

commit ec417a81ae625647cf35e61776cdf02bdb2c6aea
Author: Luca Molteni <volothamp@gmail.com>
Date:   Thu Jun 21 10:45:26 2018 +0200

    Removed one qualified import

commit 8b2f386c2f780adcd34cff3de7edceacc1d325a7
Author: Luca Molteni <volothamp@gmail.com>
Date:   Wed Jun 20 14:01:12 2018 +0200

    Removed string conversions

commit a14d0e099e28a286bb81770cfc9cb8f5c7e5cf1f
Author: Luca Molteni <volothamp@gmail.com>
Date:   Wed Jun 20 10:23:20 2018 +0200

    custom delimiter in cassava

commit 694d48e2bc1ada0037b90367c017f3082f68ed45
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sun Jun 10 17:51:54 2018 +0200

    Use Text.getContents - remove UTF-8 compatibility library

commit a7ada2cc60033ebdd796ca34cc2ec69a4f387843
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sun Jun 10 17:49:34 2018 +0200

    todo list

commit 58ec47d3987909f6bace50e3e647e30dadd5bf03
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sun Jun 10 17:45:22 2018 +0200

    CSV test now has unicode characters

commit b7851e94c3f1683b63ec7250a12bcde3b7bed691
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sun Jun 10 16:59:39 2018 +0200

    Use decode from Text

commit 79f59fd28ccaca08fcd718fcd8d00b1c1d65d7e1
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sun Jun 10 13:28:57 2018 +0200

    Use Text and Lazy Bytestring

commit 470c9bcb8dc00669beb4ef0303a1e7d9f7aecc89
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 15:30:22 2018 +0200

    Use megaparsec error

commit f978848ba249ef4f67b855bea5d4e549290c205c
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 15:22:07 2018 +0200

    Renamed qualify and remove Parsec

commit 152587fde204c43a55798d212e43f37cd3038c2e
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 15:12:36 2018 +0200

    Use cassava mega parsec

commit cf281577a3d3a071196484a6fc8485f2ea1f7d67
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 14:01:47 2018 +0200

    Removed Data.Vector

commit 1272e8e758369d8cc5778029a705b277355a5029
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 12:16:18 2018 +0200

    Removed Parsec ParseError

commit ae07f043135a19307fd65b281ade37a74c76acb2
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 12:06:14 2018 +0200

    Type sinonim for ParsecError

commit 8e15b253c11bd1c0c35a7641aeb18aa54e0ba9b0
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 11:16:08 2018 +0200

    Replaced with typeclasses

commit 1ed46f9c175603611325f3d377004e4b85f29377
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 11:01:33 2018 +0200

    Replaced Text/CSV with Cassava

commit 362f4111b5854145703174b976fc7acbd71b8783
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 10:34:37 2018 +0200

    Use cassava parsin instead of Text/CSV

commit 83e678e371618687cf7c15a4e2cfa67f570b6b64
Author: Luca Molteni <volothamp@gmail.com>
Date:   Sat Jun 9 08:22:51 2018 +0200

    Text CSV error messages

commit f922df71d274beeacab9fb2530b16c97f005cc08
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Jun 8 21:45:20 2018 +0200

    Better types

commit edd130781c84790a53bff2283e6041eb8232e7cf
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Jun 8 21:34:59 2018 +0200

    Conversion to Text CSV type

commit 0799383214483018ad2d977a3c8022414959c2b2
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Jun 8 16:06:21 2018 +0200

    First function with cassava

commit e92aeb151ff527b383ff3d0ced7764e81b71af82
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Jun 8 13:47:34 2018 +0200

    Added cassava as dependency

commit 5ea005c558a3939af7e5f0cd735a9b4da931228e
Author: Luca Molteni <volothamp@gmail.com>
Date:   Fri Jun 8 13:18:47 2018 +0200

    Better .gitignore for multi idea modules
2018-09-07 12:34:51 -07:00
Simon Michael
91b111b60d rename easytests_* to tests_* 2018-09-06 13:13:26 -07:00
Simon Michael
4003264129 lib: drop HUnit helpers, rename expectEqPP 2018-09-04 13:52:36 -07:00
Simon Michael
ff8d582bed test: drop hunit support from the test command 2018-09-04 12:48:06 -07:00
Simon Michael
807e6dc4af tests: Cli -> easytest 2018-09-04 12:42:37 -07:00
Simon Michael
7370f2a553 tests: Hledger -> easytest 2018-09-04 12:25:52 -07:00
Simon Michael
dcc44d10a5 lib: export HasCallStack from Hledger.Utils.Test 2018-09-04 09:59:48 -07:00
Simon Michael
cd67f8ea68 tests: clear out old boilerplate 2018-08-31 18:12:17 -07:00
Jakub Zárybnický
1190e2ae5d cli: Replace embedStringFile with embedFile (compile with LC_ALL=C) 2018-08-24 09:18:26 -07:00
Simon Michael
f108b56e61 uniquify modules' easytests, simplify imports 2018-08-20 14:31:31 +01:00
Simon Michael
f30b1533a0 rewrite: disable outdated doctests 2018-08-18 16:06:34 +01:00
Simon Michael
fa6f0e8d1a cli: make cabal test suite run the test command, not just hunit tests 2018-08-18 15:20:15 +01:00
Simon Michael
d778a92561 tests: export HUnit/EasyTest from Hledger.Utils.Test; more helpers 2018-08-18 15:19:59 +01:00
Simon Michael
50d666d5a0 test: refactor, document, organise easytests, port amountp tests (#812) 2018-08-15 19:58:07 +01:00
Simon Michael
ed15ebd70e test: run some easytests as well; print test output on stdout 2018-08-15 11:24:52 +01:00
Simon Michael
b11a0eadb2 make these modules loadable in a GHCI with OverloadedStrings set 2018-08-03 14:52:11 +01:00
Simon Michael
3e0147b7e9 test: don't try to read the journal 2018-08-03 14:52:11 +01:00
Simon Michael
d685d1aa9b lib,rewrite: simplify transactionModifierToFunction
This removes transactionModifierToFunction's extra query parameter;
the rewrite command sets it in the TransactionModifier instead, which
I think is equivalent. I had to change one functional test, but it
seems correct now, so perhaps it wasn't working right before ?
2018-08-02 08:25:49 +01:00
Simon Michael
1e0a7ec8f1 remove some unneeded CPP pragmas 2018-08-02 08:25:49 +01:00
Simon Michael
9bd1772ea8 bs/bse/cf/is: remove NoCPP pragma
This was added in 2012, I guess to prevent CPP breaking on some
needed and I don't want to do this everywhere; we'll just remember
to not put CPP-like content in quasi-quoted blocks.
2018-08-02 08:25:49 +01:00
Simon Michael
a4ed468979 don't re-export applyTransactionModifiers from Hledger.Cli.Utils, I guess 2018-08-02 08:25:49 +01:00
Simon Michael
eae9d78bb1 lib: generateAutomaticPostings -> applyTransactionModifiers 2018-08-02 08:25:49 +01:00
Simon Michael
bb36693155 lib: refactor, txnTieKnot automatically 2018-08-02 08:25:49 +01:00
Simon Michael
efc54c4c25 lib: ModifierTransaction -> TransactionModifier; try to clarify a bit 2018-07-30 19:38:21 +01:00
Simon Michael
05073e9f9d rewrite: clarify relation to print --auto (#745)
[ci skip]
2018-07-26 07:14:36 +01:00
Simon Michael
d5430e7ddf clean up debug helpers (api change) 2018-07-16 15:28:58 +01:00
Simon Michael
92404bb847 prices: allow filtering by query, clarify docs
Query arguments are allowed, prices can be filtered by date, and
postings providing transaction prices can be filtered by anything.
2018-07-15 09:21:10 +01:00
Simon Michael
2fbebc6c64 lib: clarify 2018-07-14 10:57:05 +01:00
Gaith Hallak
d0b9d76986 Keep the flags order in moveFlagsAfterCommand 2018-07-04 17:49:14 +03:00
Jakub Zárybnický
af98eecdf8 web: Add capabilities type, CLI options, and reading them from headers 2018-06-24 14:18:02 +02:00
Simon Michael
6a96683691 web: make --auto and multiple -f options work again
I think we lost one or both of these at the time of ecf49b1e.
2018-06-20 00:26:37 -07:00
Simon Michael
9c1db9ed9f lib: fix forecast start/end dates
pushed too soon
2018-06-18 18:08:55 -07:00
Simon Michael
26d2c79ce0 lib: make date: also set forecast end date, not just -e and -p 2018-06-18 17:55:18 -07:00
Alex Chen
ff2b042c7e lib: remove the ErroringJournalParser type 2018-06-11 13:58:56 -06:00
Simon Michael
061aad0431 remove some CPP that's obsolete since we require base 4.8+ 2018-06-04 17:33:21 -07:00
Simon Michael
ec39c87ca8 disambiguate the base-compat imports in hledger package too (#794) 2018-06-04 17:32:45 -07:00
Alex Chen
12e8d0e282 lib: change some parsers to use takeWhileP 2018-05-22 12:16:46 -07:00
Alex Chen
b245ec7b3d lib: remove the megaparsec compatability module 2018-05-22 12:16:46 -07:00
Simon Michael
581d02162c resolve all current build warnings with the supported GHC versions
If I'm lucky.
2018-05-17 20:43:55 -07:00
Mykola Orliuk
64c7eb78f4 GHC 8.0 compatibility 2018-05-13 14:41:08 -07:00
Simon Michael
2c0abac928 cli, ui, web: fix build on ghc < 8.4, hopefully 2018-05-05 16:20:27 -07:00
Simon Michael
ad99ffe935 ui: preserve the effect of --value, --forecast, --anon on reload (#753) 2018-05-05 15:55:14 -07:00
Simon Michael
34c3c5dc6c bal: show an error for unsupported --budget --sort-amount 2018-04-27 11:52:23 -07:00
Simon Michael
abb2e6bfc2 reg: include txn's code field in register CSV output (#746) 2018-04-27 10:57:40 -07:00
Simon Michael
9151f5004e budget: show a budget report even with no interval (for whole journal period) 2018-04-24 23:12:42 -07:00
Simon Michael
43287a3e26 budget: use a new first-class BudgetReport for --budget 2018-04-23 18:52:28 -07:00
Dmitry Astapov
0c835acd18 lib, app: better descriptions for forecast transactions 2018-04-18 16:05:08 -07:00
Dmitry Astapov
d82370d10b lib, app, web: remove differences between command line and journal file aliases 2018-04-17 16:09:11 -07:00
Dmitry Astapov
f6ec26e321 lib, app, web, ui: rename readJournalFile[s]WithOpts to readJournalFile, same for tryReader[s]WithOpts 2018-04-17 15:25:02 -07:00
Dmitry Astapov
37607beaea lib, app, web: use readJournalFileWithOpts instead of readJournalFile whenever possible 2018-04-17 14:33:32 -07:00
Dmitry Astapov
ecf49b1e4b lib: auto postings generated before amount inference and balance checks (#729) 2018-04-17 14:33:32 -07:00
Simon Michael
326ac83dcf fix haddock issues 2018-03-31 19:15:24 +01:00
Simon Michael
2a87ea56ff budget: refactor; show budget goals even with no or zero actual
This makes budget reports more intuitive. It is a temporary hack which
can misorder columns in some cases (if actual and budget activity
occur in a different range of columns). We should redo this in a more
principled way.
2018-03-30 03:26:32 +01:00
Simon Michael
939d6833ea budget: refactor date handling, add debug output 2018-03-30 01:01:50 +01:00
Simon Michael
c306193667 doc: also update -E/--empty command line help
[ci skip]
2018-03-30 00:49:28 +01:00
Simon Michael
083d9190fd budget: only periodic txns with the selected interval are used 2018-03-29 15:51:52 +01:00
Simon Michael
c64d598919 bal: a little more width for budget columns 2018-03-29 15:12:44 +01:00
Simon Michael
6970a4c6e8 budget: more regular layout, simple fixed-width columns
old:
Balance changes in 2018/03/19w12:

                   ||   2018/03/19w12
===================++=================
 <unbudgeted>:aaa  ||               0
 bbb               ||        1.33 [0]
 bbb:bbbbbbbbbbbbb || 1.25 [42% of 3]
 ccc               ||     0 [0% of 0]
 ddd               ||     0 [0% of 0]
 eee               || 0.75 [75% of 1]
 fff               || 3.50 [50% of 7]
 ggg               ||        1.25 [0]
 hhh               ||     0 [0% of 6]
 iii               ||     0 [0% of 0]
-------------------++-----------------
                   ||            8.08

new:
                   ||          2018/03/19w12
===================++========================
 <unbudgeted>:aaa  ||       0
 bbb               ||    1.33 [           0]
 bbb:bbbbbbbbbbbbb ||    1.25 [ 42% of    3]
 ccc               ||       0 [  0% of    0]
 ddd               ||       0 [  0% of    0]
 eee               ||    0.75 [ 75% of    1]
 fff               ||    3.50 [ 50% of    7]
 ggg               ||    1.25 [           0]
 hhh               ||       0 [  0% of    6]
 iii               ||       0 [  0% of    0]
-------------------++------------------------
                   ||    8.08
2018-03-29 15:03:27 +01:00
Simon Michael
550425810f budget refactoring, type synonyms
Using "actual" and "budget" terminology. "real" is already used in the
context of real/virtual postings. "actual" should be familiar from
unit testing (expected & actual)..
2018-03-29 15:03:27 +01:00
Simon Michael
a56c547bc2 cleanups 2018-03-29 15:03:27 +01:00
Simon Michael
d4eb3caf70 bal: comment fixes
[ci skip]
2018-03-29 15:03:27 +01:00
Simon Michael
1347885cd8 bal/bs/bse/cf/is: show short monthnames in monthly reports (like html) 2018-03-28 18:17:20 +01:00
Moritz Kiefer
d7b68fbd7d Use skipMany/skipSome for parsing spacenonewline
This avoids allocating the list of space characters only to then
discard it.
2018-03-25 22:59:05 +01:00
Simon Michael
84579bb1b4 silence redundant import warnings with ghc 8.4 2018-03-24 22:51:56 +00:00
Simon Michael
8c384e3192 tweak -E help again, hledger-web also shows zeroes by default
[ci skip]
2018-02-18 08:05:55 -08:00
Simon Michael
a8933e8c5c ui: tweak -E help, hledger-ui shows zeroes by default
[ci skip]
2018-02-18 07:16:59 -08:00
Simon Michael
d3fde29b36 bal: --invert flag to flip all signs 2018-01-29 14:53:23 -08:00
Simon Michael
5cea120ab7 cli: rename embedded files dir, make them extra-source-files
Per feedback from peti. These files will no longer be installed to
cabal's data directory, where it might seem as if they are required at
runtime, which they are not. Packagers will still find them in the
tarball and can put them in the proper place.
2018-01-26 11:12:08 -08:00
Simon Michael
37555617b7 journal, bal: document account codes 2018-01-23 16:51:12 -08:00
Simon Michael
e491f513a1 cli: tabular reports no longer have a trailing blank line added
Tabular reports from bal, bs etc. have until now been rendered on
the terminal with one final blank line, for readability.
This change drops the blank line.

This is consistent with the non-tabular balance and register output
(not print, which is a special case), and with most unix commands.
The real reason for it, which I admit is flimsy, is that I can now omit
the final delimiter (>=0) when using shelltestrunner 1.9's new format,
making functional tests easier to maintain and more readable.
If there's opposition, this could be reverted.
2018-01-23 12:47:56 -08:00
Simon Michael
d420a8b534 journal: account directive: parse and store a numeric account code also 2018-01-23 11:33:23 -08:00
Simon Michael
88ef586480 lib: rename, clarify purpose of balanceReportFromMultiBalanceReport 2018-01-23 11:32:24 -08:00
Simon Michael
6c60e4a97b bs/cf/is: always show a tabular report, even with no report interval
Previously, if you specified no report interval, the text output of
these commands was a simple report like the original balance command,
with amounts on the left and account names on the right. Also,
balances used arithmetic sign like the balance command.
Now it always draws a table, with account names in the left
column, and shows balances with normal-positive sign, consistent with
the multicolumn reports. Less code, fewer bugs.
2018-01-23 11:05:01 -08:00
Simon Michael
2e9ae3f400 bs/bse/cf/is: html output fixes and styling/styleability 2018-01-19 14:16:23 -08:00
Simon Michael
4ddb748d9c acc: rename --posted -> --used 2018-01-19 12:41:03 -08:00
Simon Michael
37a4d71f1b acc: report --declared and/or --posted accounts 2018-01-18 18:43:21 -08:00
Simon Michael
6210613f76 bs/bse/cf/is: show overall report span in title 2018-01-18 12:00:16 -08:00
Simon Michael
e9624486b6 bs/bse/cf/is: show local abbreviated month names on monthly columns 2018-01-18 11:46:12 -08:00
Simon Michael
3663c46502 bal: make --drop work with csv/html output 2018-01-18 11:26:57 -08:00
Simon Michael
3849ba7a9d bal: warn that --budget -O csv doesn't work 2018-01-18 11:24:22 -08:00
Simon Michael
6b349e3123 bs/bse/cf/is: show all balances as normally-positive (experimental)
Income, liability and equity balances, which until now we have
always displayed as negative numbers, are now shown as normally positive
by these reports.
Negative numbers now indicate a contra-balance (eg an overdrawn
checking account), a net loss, a negative net worth, etc.
This makes these reports more like conventional financial statements,
and easier to read and share with normal people.
2018-01-18 11:01:07 -08:00
Simon Michael
3b2a9eaba4 lib: refactor 2018-01-15 14:15:52 -08:00
Simon Michael
79812f974a rename NormalBalance -> NormalSign 2018-01-15 14:12:38 -08:00
Simon Michael
02516ef987 bal/bs/bse/cf/is: basic HTML output 2018-01-14 18:09:50 -08:00
Simon Michael
73ba78f092 bs/bse/cf/is: don't repeat the headings row for each subreport 2018-01-14 17:57:46 -08:00
Simon Michael
a26f7a9f51 include the column spans explicitly in CompoundBalanceReport 2018-01-14 17:49:45 -08:00
Simon Michael
de5d22ac21 bal/bs/is/cf: drop short name, indent fields from multicolumn CSV 2018-01-13 11:46:19 -08:00
Simon Michael
81e964502b lib: refactor low-level text file reading 2018-01-04 16:17:25 -08:00
Simon Michael
1234671c69 equity: rename to close 2018-01-03 17:02:35 -08:00
Simon Michael
98dcd1406e equity: more help cleanup 2018-01-03 15:55:59 -08:00
Simon Michael
31effcd731 equity: ignore any begin date; closed balances are historical 2018-01-03 13:50:16 -08:00
Simon Michael
98dd8c5f83 equity: improve help, note limitations, ignore --date2
Try to make this less confusing.
2018-01-03 12:53:37 -08:00
Simon Michael
e927e587e6 lib,cli: auto/forecast/budget option/docs cleanup, consistency 2017-12-31 10:01:18 -08:00
Simon Michael
f9e113c9ab print: -B shows converted amounts again, as in 1.1, even without -x. #551 (Simon Michael, Mykola Orliuk) 2017-12-30 19:08:58 -08:00
Simon Michael
8f55b6137d uses today's prices, not those of last txn date, for -V (fix #683,#648) 2017-12-29 21:42:59 -08:00
Simon Michael
69e255cead lib: deduplicate, refactor valuation code 2017-12-29 16:52:08 -08:00
Simon Michael
0a9d724152 lib: clarify journalApplyValue comment 2017-12-29 16:06:53 -08:00
Simon Michael
3f124cf123 add, web: suggest implied and declared account names also 2017-12-29 12:19:44 -08:00
Dmitry Astapov
ac80c39535 lib: command-line help for --auto/--forecast matches docs 2017-12-14 17:20:07 -08:00
Simon Michael
b425e50ad1 change paths in code, scripts, readme 2017-12-06 18:16:35 -08:00
Dmitry Astapov
58c755df86 lib: fix budget display to always show %% consumed and handle costs
For multi-column balance report, if there are no transactions in the
given period for budgeted account, display [0% of <budget>] for
consistency.

If balance is a mix of commodities, convert to cost basis for the
purposes of computing percent of balance spent.
2017-12-01 15:52:29 -08:00
Dmitry Astapov
8cd58b71ab bal: show percentage of budget spent 2017-11-26 14:57:41 +00:00
Dmitry Astapov
6ea5da2d9d bal: --budget shows budget performance
Budget goals specified with periodic transactions (as with
hledger-budget) can now be displayed in balance report (but not in bs/is/cf).

--budget shows the target amount and percentage alongside the actual
amount, per account and period.

Unbudgeted accounts will be hidden, unless --show-unbudgeted is used.

Budgeted accounts are displayed folded (depth-clipped) at a depth
matching the budget specification. Unbudgeted accounts, if shown, are
displayed at their usual depth (in full detail, or according to --depth).
2017-11-26 14:57:41 +00:00
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
Simon Michael
24d8336728 tag: first arg filters tag names, the rest filter transactions (#261) 2017-10-17 07:07:34 -07:00
jeevcat
3a9ea65b99 Rewrite of BalanceAssertion type to track its source position.
Fixes #481.
2017-10-16 13:25:03 -07:00
Simon Michael
e33cce52bc import: make --dry output valid journal format
[ci skip]
2017-10-14 08:59:09 -07:00
Simon Michael
5de51c9bad fix warnings/errors found by make stacktest 2017-09-30 13:00:22 -10:00
Simon Michael
3e866563d1 cli: tweak commands list 2017-09-30 06:58:25 -10:00
Simon Michael
e5f794d2cb cli,ui,web: a @FILE argument reads flags & args from FILE, one per line 2017-09-30 06:49:31 -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
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
fead7c5138 cli, ui, web: make -NUM a shortcut for --depth NUM 2017-09-22 16:14:30 -10:00
Simon Michael
0b7a50d0f0 import: sort new transactions by date, across files 2017-09-21 10:31:15 -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
c79c8b9883 print: help tweak 2017-09-15 10:08:58 -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
6e7a14b656 cli: new, comprehensive commands list 2017-09-14 05:55:44 -07:00
Simon Michael
bc66c75bd2 cli: some new short command aliases
accounts: a
balance: b
print: p, txns
register: r
2017-09-14 05:53:12 -07:00
Simon Michael
e3902ebc6f cli: make tags a builtin command 2017-09-12 19:54:39 -07:00
Simon Michael
d2d7dbbce0 cli: make rewrite a builtin command 2017-09-12 19:51:27 -07:00
Simon Michael
89f694707b cli: make register-match a builtin command 2017-09-12 19:43:41 -07:00
Simon Michael
bf99c74198 cli: make print-unique a builtin command 2017-09-12 19:37:31 -07:00
Simon Michael
258efdf83c cli: make prices a builtin command 2017-09-12 19:28:01 -07:00
Simon Michael
4e6aa06b62 cli: make equity a builtin command 2017-09-12 19:17:47 -07:00
Simon Michael
fe9cd2a186 cli: make check-dupes a builtin command 2017-09-12 19:09:00 -07:00
Simon Michael
44e3d72926 checkdates: disable/document stack script stuff 2017-09-12 18:50:25 -07:00
Simon Michael
b4d70731e8 checkdates: docs 2017-09-12 18:24:22 -07:00
Simon Michael
3dc8dc428a cli: comments 2017-09-12 18:23:38 -07:00
Simon Michael
84320fe97f cli: fix import warning 2017-09-12 18:04:40 -07:00
Simon Michael
d2c8edb023 cli: refactor: simplify imports 2017-09-12 17:54:59 -07:00
Simon Michael
7f5985067d cli: begin merging addons, make check-dates a builtin command 2017-09-12 17:54:25 -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
a8ff9e91f6 cli: fix haddock error 2017-09-11 18:36:20 -07:00
Simon Michael
dc191ec76e cli: refactor: new Commands module
Builtin commands are now gathered more tightly in a single module,
Hledger.Cli.Commands, reducing duplication and facilitating change.

The tests command was difficult and has been dropped for now.

The obsolete convert/info/man commands have been dropped.

cli: refactor: a proper commands list, better Main/Commands separation

The legacy "convert" command has been dropped.

The activity command's module is now named consistently.
2017-09-11 16:50:08 -07:00
Simon Michael
453cf431b2 cli: drop support for directory < 1.2 2017-09-08 11:42:38 -07:00
Simon Michael
ce83b789cf cli: fix unused import warning
Only seen with GHC 7.10 for some reason.
2017-09-08 11:42:38 -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ý
13a6584440 ui, web: Enable --pivot and --anon in ui and web (#474) 2017-09-04 20:45:31 -07:00
Nicholas Niro
5e3c8aaaff Implemented the new Cli command 'balancesheetequity`.
This new command shows the same information as balancesheet but also
includes the Equity accounts (equity:<account name>).
2017-08-28 16:58:48 -04:00
Simon Michael
d8696c5ea0 cli: clearer command-line help for --date2 (fixes #604) 2017-08-21 17:19:06 -07:00
Simon Michael
d7d5f8a064 add support for megaparsec 6 (fixes #594)
Older megaparsec is still supported.
Also cleans up our custom parser types,
and some text (un)packing is done in different places
(possible performance impact).
2017-07-27 19:20:46 -07:00
Simon Michael
b9571bd088 bal/bs/cf/is: consistently separate columns with a double space
Previously, amounts wider than the column headings would be separated
by only a single space. Also there was an extra space before the first
column.
2017-07-27 09:09:03 -07:00
Simon Michael
8851ebc29f bs/cf/is: support --output-file and --output-format=txt|csv
The CSV output should be reasonably ok for dragging into
a spreadsheet and reformatting.
2017-07-25 19:43:45 -07:00
Simon Michael
71b206dfc5 lib: writeOutput clarification 2017-07-25 16:04:00 -07:00
Simon Michael
7204b1b9a1 lib: make output-file and output-format flags available separately
Kind of.. the output-file flag's help mentions output-format
2017-07-25 16:03:59 -07:00
Simon Michael
f49756231a refactor compoundBalanceCommandMultiColumnReport etc. 2017-07-25 16:03:59 -07:00
Simon Michael
48d909c695 refactor compoundBalanceCommandMultiColumnReport etc., more correct docs 2017-07-25 14:28:52 -07:00
Simon Michael
5d93c39922 clarify balance report/cumulative/historical/tree mode shenanigans 2017-07-25 13:55:54 -07:00
Simon Michael
783c4c155c whitespace 2017-07-25 13:51:26 -07:00
Simon Michael
f0119ec9c1 refactor compoundBalanceCommand 2017-07-25 13:22:03 -07:00
Simon Michael
115ed3aead bs/is: show a trailing blank line in single column reports, for consistency 2017-07-25 12:46:56 -07:00
Simon Michael
9d4d6ebc4d bs/cf/is: show one trailing blank line, not two 2017-07-25 12:43:56 -07:00
Simon Michael
c89bec0e17 bs/is: don't let an empty subreport disable the grand totals (fixes #588) 2017-07-25 09:21:09 -07:00
Simon Michael
083df72582 refactor: BalanceCommand -> CompoundBalanceCommand
More verbose, but also more precise.
2017-07-25 09:21:09 -07:00
Simon Michael
d4f09efc95 refactor balanceCommand 2017-07-25 09:21:09 -07:00
Simon Michael
117ab0ca4c refactor: BalanceView -> BalanceCommandSpec, cleanups 2017-07-25 09:21:09 -07:00
Simon Michael
5fca083ad2 BalanceView wording, mention case insensitivity 2017-07-25 09:21:09 -07:00
Simon Michael
422e0923f1 refactor BalanceView 2017-07-25 09:21:09 -07:00
Simon Michael
9b9a1a7a30 help: mention -h & output options in default output 2017-07-24 22:19:57 +01:00
Simon Michael
69c41cdd99 cli, help: usage tweaks
[ci skip]
2017-07-08 08:34:45 +01:00
Simon Michael
9938aa5e79 help: allow substring matching
[ci skip]
2017-07-08 07:37:15 +01:00
Simon Michael
5e69d6de84 help: use more standard names for tool manuals
[ci skip]
2017-07-08 07:36:52 +01:00
Simon Michael
6df81962ed cli, bin: mention -h in commands list and addons' usage messages
[ci skip]
2017-07-08 06:49:25 +01:00
Simon Michael
9eb1520b6f help: add --info/--man/--pager/--cat flags, & choose best one by default (#579)
You can select a docs format/viewer with one of the `--info`, `--man`, `--pager`, `--cat` flags.
Otherwise, it will use info if available, otherwise man if available,
otherwise $PAGER if defined, otherwise less if available, otherwise it
prints on stdout (and always prints on stdout when piped).

Preferring info over man might not suit everyone.
2017-07-07 15:42:22 +01:00
Simon Michael
daa9550929 cli: fix -h/--help debug output (#579) 2017-07-07 15:42:16 +01:00
Simon Michael
7e896572a7 make --help and -h the same, drop --man and --info for now (#579) 2017-07-07 02:08:34 +01:00
Simon Michael
d4457931ef cli: document journalApplyValue 2017-07-05 08:08:20 +01:00
Simon Michael
eb42ea04e5 use consistent UPC order for --unmarked/--pending/--cleared (#564) 2017-06-15 19:16:39 -07:00
Simon Michael
e119941648 rename "uncleared" status to "unmarked" and --uncleared to --unmarked (#564)
See the issue and linked mail list discussion. Ambiguity between the
uncleared state, and the "not cleared" --uncleared flag causes confusion
and friction. At this point it seems best to break with Ledger and
past hledger, pick a new name and drop --uncleared to put an end to it.
2017-06-15 19:16:39 -07:00
Simon Michael
ab073e01e3 lib: add -P short flag for --pending (#564) 2017-06-15 19:16:39 -07:00
Simon Michael
8b073014e4 lib, cli: -U/--uncleared no longer matches pending things (#564)
Also begin using "marked"/"unmarked" terminology where it's helpful.
2017-06-15 19:16:39 -07:00
Justin Le
54d33ce028 show colorized amounts for totals of bs/is/cf (#567) 2017-06-08 10:33:46 -07:00
Justin Le
6857cd64a8 Fixing bs/is/cf --flat regressions (#566)
* fixing bs/is/cf --flat regressions

* fixed Tree forcing for non-period reports
2017-06-07 07:03:13 -07:00
afarrow
26d2fe3827 Fix typo in help docs (#560) 2017-05-31 16:20:21 -07:00
Simon Michael
c9e7bbdc7c clarify recent print changes a bit (#551) 2017-05-30 13:57:52 -07:00
Simon Michael
6c95909fa2 stop forcing tree mode for now, need is unclear (fixes #552) 2017-05-23 10:05:04 -07:00
Simon Michael
118bc85726 bs/is: fix "Ratio has zero denominator" error (take 2) (#535) 2017-05-04 10:49:03 -07:00
Simon Michael
c8e4bc0098 bs/is: fix "Ratio has zero denominator" error with no matched accounts (#518) 2017-05-04 10:24:00 -07:00
Simon Michael
6c2d2c0a6a bal: cleanup
[ci skip]
2017-04-25 19:39:09 -07:00
Simon Michael
10d85bedec bal: show negative amounts in red
The balance command now shows negative amounts in red, when it thinks
ANSI codes are supported, ie when TERM is not "dumb" and stdout is not
being redirected or piped somewhere.
2017-04-25 18:34:09 -07:00
Simon Michael
e105cdee98 bs/cf/is: more informative usage, mention begin date (#518) 2017-03-31 17:41:25 -07:00
Simon Michael
e50dede708 cashflow: make totals row and -N more like balance/bs/is (#518) 2017-03-31 16:39:47 -07:00
Simon Michael
b82e800ae6 bs/cf/is: fix subtitle appearing above total (and put on one line) (#527) 2017-03-30 17:18:30 -07:00
Simon Michael
0055f99c77 doc: more options doc cleanups 2017-03-29 20:45:30 -07:00
Simon Michael
7df15a8279 doc: flags/usage/manual cleanups 2017-03-29 14:20:30 -07:00
Moritz Kiefer
f4b3f1c094 Add an option to use unicode in balance tables (#528)
* Add an option to use unicode in balance tables

fixes #522

* Add a test for unicode tables

* Document --pretty-tables

* Support --pretty-tables in BalanceView
2017-03-29 11:12:01 -07:00
Simon Michael
8d1b1fbfc5 cli: fix a commands list error when no addons are in path 2017-03-29 08:13:09 -07:00
Simon Michael
b402fc7e7d lib: optserror -> usageError, consolidate with other error functions (#529) 2017-03-29 08:00:51 -07:00
Simon Michael
0e9b3dc4b9 cli: avoid processValue which prints stack traces (fixes #529) 2017-03-29 07:45:07 -07:00
Simon Michael
895a66eb06 cli: first of several cleanups; separate commands list & usage (#297) 2017-03-28 18:44:34 -07:00
Simon Michael
c6eaf9abb3 fix BalanceView warning, get travis passing 2017-03-28 04:48:27 -07:00
Simon Michael
e2faf08088 cli: simplify addons detection, fix deduplication 2017-03-28 04:07:01 -07:00
Justin Le
1e9e6f29e2 is/bs/cf without -E will now hide empty amounts properly, and still have properly aligned rows 2017-03-27 14:18:27 -07:00
Justin Le
7616056fbe added 'qualifiers' to odd customized usages of bs/is/cf (ie, historical for is) to prevent misleading reports 2017-03-27 14:01:48 -07:00
Justin Le
b06739f714 matched the logic for Balance.hs to allow date: for historical queries to be correct 2017-03-27 13:53:24 -07:00
Justin Le
4b0ba0f011 odd behavior on -A was bcause of missing parentheses around if statements 2017-03-27 13:22:41 -07:00
Simon Michael
863989e0e7 print: bring back the short -x form of --explicit (#442) 2017-03-27 05:17:35 -07:00
Justin Le
f7f6d5f8e5 average total for multicolumn bs/is/cf 2017-03-26 01:40:37 -07:00
Justin Le
abfa0a6e01 Multicolumn reports for bs/cf/is, and -T/-A support (#518)
* factored out multi-column balance reporting into table creation and string rendering

* preliminary multicolumn balance reporting for BalanceView

* added -T and -A options for balance views

* support for overriding balanceview defaults

* fixed unecessary whitespace stripping to make tree view work

* no need for ViewPatterns in BalanceView

* fixed regression where balancesheet didn't ignore the start date when in single column mode

* removed trailing whitespace to pass tests

* handling warnings in Balance.hs

* force -E to line up lines for bs/is/cf
2017-03-22 22:57:40 +00:00
Justin Le
0c7b4e668c fixed warnings in Balance.hs 2017-03-22 07:09:14 +00:00
Justin Le
34a2c8e7e6 fixed warning in BalanceView.hs 2017-03-18 10:40:03 +00:00
Justin Le
f5a530d620 bugfix for #514, is and cf are now period reports, and bs, as a snapshot report, is treated as a special case 2017-03-18 10:40:03 +00:00
Steven R. Baker
75e169d369 Add missing assrt param to documentation.
I was working through the documentation, and this wouldn't work as-is. I noticed that there is an additional argument `assrt` which is not used here. Passing `True` causes this example to work.
2017-02-11 12:08:33 -08:00
Justin Le
b41d11c6e9 documentation and cleanup for BalanceView 2017-02-04 16:38:18 -08:00
Justin Le
bc67c2a769 fixed small regression in number of newlines at the end of incomestatement, balancesheet, cashflow outputs 2017-02-04 16:38:18 -08:00
Justin Le
baf232d3d9 moved -V/--value to be a global report option, so it works with balance, print, register, balancesheet, incomestatement, cashflow, etc. 2017-02-04 16:38:18 -08:00
Justin Le
573eda15e6 support all single-column balance features for balancesheet/incomestatement/cashflow 2017-02-04 16:38:18 -08:00
Justin Le
321ace107e BalanceView system implemented for incomestatement and cashflow 2017-02-04 16:38:18 -08:00
Justin Le
a6f98f1170 abstracting over balancesheet, incomestatement, and cashflow with BalanceView 2017-02-04 16:38:18 -08:00
Simon Michael
b7092f278b cli, addons: reduce boilerplate a little with hledgerCommandMode helper 2017-01-25 17:10:10 -08:00
Simon Michael
6859b94f4b cli: omit source addons from list when compiled version is present, again
Source and compiled versions of all addons in bin are cluttering up
the commands list. I think this was reasonably well behaved, so I'm
re-enabling it, possibly with a slight fix (.c shadowing .exe).
Some notes:

- when there's only one addon with its base filename, its extension is not displayed (as before)
- addons with (case insensitive) .exe extension or no extension are considered compiled
- when there's exactly two addons with the same base filename, and one of them looks compiled, only that one is kept
- modification time is not checked; an old compiled addon overrides a newer source version
- when there's more than two addons with same base filename, all are kept
2017-01-24 19:34:48 -08:00
Simon Michael
daf6732368 addons, doc: a new help scheme, more automated and usable
The previous cleanup defined long help separately from the usage text
generated by cmdargs. This meant keeping flag descriptions synced
between the two, and also the short help was often too verbose and
longer than the long help.

Now, the non-usage bits of long help are defined as pre and postambles
within the cmdargs mode, letting cmdargs generate the long help
including all flags. We derive the short help from this by truncating
at the start of the hledger common flags.

Most of the bundled addons (all but hledger-budget) now use the
new scheme and have pretty reasonable -h and --help output.
We can do more to reduce boilerplate for addon authors.
2017-01-24 09:27:43 -08:00
Simon Michael
f4eb9e23e3 addons: add -h & --help to most of them; CliOpts cleanups 2017-01-23 06:17:17 -08:00
Simon Michael
4221381f18 cli: "QUERY" instead of old "PATTERNS" in command help 2017-01-22 10:05:10 -08:00
Mykola Orliuk
7437c96ff6 Make hledger-rewrite tool suitable for re-factoring original journals (#490)
* cli: fix bug in pivot for postings without tag

Without this fix for postings without tag query checked effective
account which is always empty text ("").

* rewrite: inherit dates, change application order

For budgeting it is important to inherit actual date of posting if it
differs from date of transaction. These dates will be added
as a separate line of comment.

More natural order of rewrites is when result of first defined one is
available for all next rewrites.

* rewrite: factor out Hledger.Data.AutoTransaction

* rewrite: add diff output

With this option you can modify your original files without loosing
inter-transaction comments etc. I.e. you can run:

hledger-rewrite --diff Agency \
  --add-posting 'Expenses:Taxes  *0.17' \
  | patch

As result multiple files should be updated.
Also it is nice to review your changes using colordiff instead of
patch.

* lib: track source lines range for journal

* doc: auto entries and diff output for rewrite
2017-01-20 07:33:24 -08:00
Mykola Orliuk
295af41f38 cli: fix bug in pivot for postings without tag (#491)
Without this fix for postings without tag query checked effective
account which is always empty text ("").
2017-01-19 07:53:00 -08:00
Simon Michael
91dbeedee4 doc: document new --pivot
[ci skip]
2017-01-16 15:53:51 -08:00