Commit Graph

463 Commits

Author SHA1 Message Date
Stephen Morgan
081ee390ab lib: Change skipMany spacenonewline to takeWhileP Nothing isNonNewlineSpace. 2020-07-22 14:58:53 -07:00
Simon Michael
1c4e0c3cff ;reg,areg: interlink their docs 2020-07-22 07:57:53 -07:00
Simon Michael
640d2f2972 ;bs/bse/cf/is: update help to mention account types 2020-07-19 11:15:50 -07:00
Simon Michael
3636875a5d cli: add -t/-l short flags for --tree/--flat; improve help (#1286) 2020-07-17 15:36:07 -07:00
Stephen Morgan
30f02b0882 lib: account name clipping takes Maybe Int as depth. 2020-07-17 07:41:27 -07:00
Stephen Morgan
51ea6d9f25 lib: Make queryDepth return Maybe Int. 2020-07-16 10:05:53 -07:00
Simon Michael
031f72ac4b ;help/manuals 2020-07-14 12:09:54 -07:00
Simon Michael
3452270241 cli: --color/--colour option; smart emacs, windows autodetection (#1296) 2020-07-14 12:08:36 -07:00
Simon Michael
02043d4e65 ;areg: doc: fix heading level 2020-07-14 10:37:49 -07:00
Simon Michael
4f7bee7abf ;regen help, manuals 2020-07-14 10:25:04 -07:00
Simon Michael
9198449ee3 areg: an account transaction register like the ones in ui/web (#1294)
;areg: debug output

;areg: show a title indicating which account was picked

This might be a bit of a pain for scripting, but otherwise it can be
quite confusing if your argument matches an account you didn't expect.

;areg: improve CSV headings

;areg: show at most two commodities per amount
2020-07-14 10:24:57 -07:00
Simon Michael
fd00d9c1cc tags: add --parsed flag, hide empties without --empty
With --parsed flag, all tags or values are shown in the order they
are parsed from the input data, including duplicates.

With -E/--empty, any blank/empty values will also be shown, otherwise
they are omitted.
2020-07-14 10:20:52 -07:00
Simon Michael
23bef9a01b ;refactor: extracted reportPeriodName for making report headings 2020-07-09 12:54:20 -07:00
Simon Michael
0a9b05f3fd ;refactor balance report column headings 2020-07-09 11:49:16 -07:00
Simon Michael
09b1736d5a bal, bs, cf, is: update flat/tree help; order options a bit better 2020-07-07 19:00:10 -07:00
Stephen Morgan
5ffe1d7656 cli: Allow --drop in account command in tree mode. 2020-07-07 16:05:05 -07:00
Stephen Morgan
1425301a8c lib, cli: Use --flat as the default mode for all reports. 2020-07-07 15:49:08 -07:00
Stephen Morgan
df84a417d7 doc: Remove references to old limitations of boring parent ellision. 2020-07-07 15:49:08 -07:00
Simon Michael
3ad313d8fa codes: new command for listing transaction codes 2020-07-07 13:38:49 -07:00
Simon Michael
a7a01c0f9f descriptions, notes, payees: fix/improve help and comments 2020-07-07 13:38:49 -07:00
Simon Michael
95ee601548 ;regen manuals 2020-07-07 10:19:56 -07:00
Simon Michael
eee9402ba8 add: fix help - arguments are inputs, not a query 2020-07-07 10:10:13 -07:00
Simon Michael
44c3eb1904 add a color argument to most amount show helpers, drop cshow variants
This is an API change, but it seems better than having additional
colour-supporting variants and trying to avoid duplicated code.
I stopped short of changing showAmount, so cshowAmount still exists.
2020-07-05 06:59:16 -07:00
Simon Michael
2739a70a38 balcmds: elide amounts with 3 or more commodities, unless --no-elide
Multicolumn balance reports showing many commodities tend to become
unreadably wide, especially in tree mode. Now by default we show at
most two commodities, and a count of the rest if there are more than
two. This should help keep reports somewhat readable by default.
2020-07-05 06:59:16 -07:00
Simon Michael
3d57d4793d ;doc: regen manuals 2020-07-04 16:17:13 -07:00
Simon Michael
aea0dac235 bal: warn about #1279 in manual 2020-07-04 16:13:35 -07:00
Simon Michael
e0fab4f882
Merge pull request #1256 from Xitian9/balanceReport
SMorgan: 
This PR aims to accomplish two major goals:

-    Get boring parent ellision working for multiBalanceReport
-    Remove the special BalanceReport code, and just use multiBalanceReport

I believe it does both, with the following additional benefits:

    A refactor of multiBalanceReportWith, to make the structure easier to follow, and with a clearer division of responsibilities
    All decisions for how an account name is to be displayed are now made in multiBalanceReport, rather than scattered around the code base
    Some miscellaneous improvements in account name rendering, including --drop now working with MultiBalanceReports, and addressing some of #373

Algorithmic changes:

-    Using HashMap AccountName (Map DateSpan Account) instead of [[MixedAmount]] is new. I admit I didn't profile this change (though given the nubs and lookups, I thought it was appropriate), so I'm glad it produces a speedup.
-    Producing the starting balances no longer calls the whole balanceReport, just the first few functions to get what it needs.
-    displayedAccounts is completely rewritten. Perhaps one subtle thing to note is that in tree mode it no longer excludes nodes with zero inclusive balance unless they also have zero exclusive balance.

SMichael: 
I'll mark the passing of the old multiBalanceReport, into which I poured many an hour :). It is in a way the heart (brain ?) of hledger - the key feature of ledgerlikes (balance report) and a key improvement introduced by hledger (tabular multiperiod balance reports). You have split that 300-line though well documented function into modular parts, which could be a little harder to understand in detail but are easier to understand in the large and more amenable to further refactoring. Then you fixed some old limitations (boring parent eliding in multi period balance reports, --drop with tree mode reports), allowing us to drop the old balanceReport and focus on just the new multiBalanceReport. And for representing the tabular data you replaced the semantically correct but inefficient list of lists with a map of maps, speeding up many-columned balance reports significantly (~40%). Last and not least you made it really easy to review. Thanks @Xitian9, great work.
2020-06-23 06:42:22 -07:00
Simon Michael
368297102d ;regen manuals 2020-06-22 12:20:14 -07:00
Dmitry Astapov
c8a84e3c96 cli: print -O sql 2020-06-22 12:17:33 -07:00
Stephen Morgan
7a5416928e cli: multiBalanceReport: Remove redundant code branch. 2020-06-22 22:28:09 +10:00
Stephen Morgan
e079c8b808 lib: multiBalanceReport: Remove old balanceReport code, update some tests. 2020-06-22 22:27:09 +10:00
Stephen Morgan
5f0918217a multibalanceReport: Move responsibility for determining displayed name in multiBalanceReportWith, not at point of consumption. 2020-06-22 22:20:09 +10:00
Simon Michael
536bea2a78 roi: show errors without a traceback 2020-06-21 11:02:16 -07:00
Dmitry Astapov
802378999f cli: changes to "hledger print -O csv" output 2020-06-13 16:26:27 -07:00
Simon Michael
b86ced5ee9 lib: replace jsonPrettyText with toJsonText in Hledger.Data.Json 2020-06-06 12:54:58 -07:00
Simon Michael
d1f62f0f2e print, reg, balcmds: show json output pretty-printed 2020-06-04 15:13:28 -07:00
Simon Michael
97f2235bca ;lib: refactor amount cost functions
Rename costOfAmount -> amountCost, costOfMixedAmount -> mixedAmountCost,
drop amountToCost, mixedAmountToCost.
2020-05-31 15:48:08 -07:00
Simon Michael
660ba7e1d9 lib: clarify zero-checking function names
isZeroAmount                -> amountLooksZero
isReallyZeroAmount          -> amountIsZero
isZeroMixedAmount           -> mixedAmountLooksZero
isReallyZeroMixedAmount     -> mixedAmountIsZero
isReallyZeroMixedAmountCost dropped
2020-05-29 18:57:22 -07:00
Dmitry Astapov
cbacef21eb lib: multiBalanceReport derives query from ReportOpts 2020-05-25 15:50:14 -07:00
Simon Michael
61bec588d2 print,reg,balcmds: list output formats accurately in --help (#689)
Also:
- tweak the unsupported output format message
- Hledger.Cli.CliOptions no longer exports outputflags
2020-05-23 13:54:41 -07:00
Simon Michael
5f1a864c20 print,reg,balcmds: fix JSON output, which wasn't JSON (#689) 2020-05-23 13:30:22 -07:00
Simon Michael
1a606870ca ;regen docs 2020-03-19 16:05:52 -07:00
Simon Michael
35ba2e4e9e ;bal: doc: recommend using the same commodity for budget goals 2020-03-19 16:03:58 -07:00
Stephen Morgan
702c958487 lib: Replace some utility functions with library functions. 2020-03-02 12:45:30 -08:00
Simon Michael
061bf73b61 ;doc: regen manuals
[ci skip]
2020-03-01 17:29:01 -08:00
Simon Michael
2c8a6e988f lib: Hledger.Read.CsvReader cleanup
Exports added: CsvRecord, CsvValue, csvFileFor

Exports removed: expandIncludes, parseAndValidateCsvRules, transactionFromCsvRecord
2020-02-27 23:37:32 -08:00
Simon Michael
2a5f7819af bs,cf,is,bal,print,reg: support json output format 2020-02-24 17:49:53 -08:00
Simon Michael
bc9bdf8108 ;print: refactor, drop unneeded ropts tweak 2020-02-24 17:49:53 -08:00
Simon Michael
7f16d23898 ;refactor: extract --value=then error message 2020-02-24 17:49:53 -08:00
Simon Michael
8b520b5c3e bs,cf,is,bal,print,reg: reject invalid output formats 2020-02-24 17:49:45 -08:00
Simon Michael
7ec25da13a web: edit/upload: normalise line endings, avoiding parse errors (#1194)
Renamed: writeValidJournal -> writeJournalTextIfValidAndChanged

Added comments clarifying line ending behaviour of:
add, import, appendToJournalFileOrStdout, readFilePortably,
writeFileWithBackupIfChanged, writeJournalTextIfValidAndChanged

Summary of current behaviour:

- hledger add and import commands will append with (at least some)
  unix line endings, possibly causing the file to have mixed line
  endings

- hledger-web edit and upload forms will write the file with
  the current system's native line endings, ie changing all
  line endings if the file previously used foreign line endings.
2020-02-24 14:04:44 -08:00
Simon Michael
696ec4998b ;doc: regen help/manuals
[ci skip]
2020-02-22 11:40:41 -08:00
Simon Michael
e8e1566083 ;bal: doc: document --transpose; remove obsolete limitation note
[ci skip]
2020-02-20 10:02:02 -08:00
Simon Michael
dad4d9b662 print: be sure to value all postings; -V/-X/--value now imply -x
Previously -B implied -x; now any of the valuation flags do.
This avoids a bug where print -V of a transaction with an implicit
commodity conversion would convert only some of its postings to value.

Also, more valuation tests.
2020-02-10 12:41:36 -08:00
Simon Michael
aa96b41efe print, register: add --value=then, valuing at each posting's date
Currently this will give an error with other kinds of report.
2020-02-10 08:20:39 -08:00
Simon Michael
fd64d7bb3a ;doc: regen manuals
[ci skip]
2020-02-07 10:45:57 -08:00
Simon Michael
659a034393 ;doc: makde some comments less like markdown headings
[ci skip]
2020-02-05 19:32:38 -08:00
Simon Michael
6830139b70 ;checkdupes: help: fix link 2020-01-28 09:20:42 -08:00
Simon Michael
f1f32e8341 ;close: doc: cleanups, remove dangerous >> example (#1165)
[ci skip]
2020-01-22 15:32:36 -08:00
Simon Michael
b4ced3188e ;doc: regen manuals
[ci skip]
2020-01-22 15:22:56 -08:00
Simon Michael
5ba3cc6f42 close: regularise the --open*/--close* flags for memorability (#1165)
--closing -> --close
--opening -> --open
--close-to -> --close-acct
--open-from -> --open-acct

The old flags are still accepted for backward compatibility, but are
not shown in --help or docs, to conserve screen and brain space.
2020-01-22 15:19:24 -08:00
Simon Michael
cda8909aae close: don't repeat the description by default (#1165)
You'll almost certainly want the opening/closing descriptions to be
different, for filtering, so making --close-desc and --open-desc fully
independent is a better default.

And more doc cleanups.
2020-01-22 15:04:05 -08:00
Simon Michael
ceedcb1a18 ;doc: regen manuals
[ci skip]
2020-01-22 14:50:21 -08:00
Simon Michael
458de89aae ;close: doc tweaks
[ci skip]
2020-01-22 14:42:01 -08:00
Simon Michael
f14ae7df3a ;doc: regen manuals
[ci skip]
2020-01-22 14:41:08 -08:00
Simon Michael
72d0190d1d ;close: doc tweaks
[ci skip]
2020-01-22 14:40:20 -08:00
Simon Michael
d93c69146d ;doc: regen manuals
[ci skip]
2020-01-22 14:30:50 -08:00
Simon Michael
f1110d163d close: --close-desc/--open-desc customise the descriptions (#1165) 2020-01-22 14:30:12 -08:00
Simon Michael
4bb840a0f3 close: use the same default equity account for both (#1165)
And some doc cleanups.

"equity:opening/closing balances" is now the default account for both.
2020-01-22 14:29:31 -08:00
Simon Michael
9710c86c7f ;doc: regen manuals
[ci skip]
2020-01-22 12:52:41 -08:00
Simon Michael
7500002ee5 close: hide equity amounts by default, for simpler entries (#1165)
-x/--explicit shows them, as with print.
2020-01-22 12:52:16 -08:00
Simon Michael
2645b76ff0 close: hide prices by default, show them with --show-costs (#1165)
close no longer preserves costs, generating huge entries when there
are many foreign currency/investment transactions, unless you ask it to.
2020-01-22 12:52:01 -08:00
Simon Michael
dee9c0f150 ;close: --close-to also sets --open-from and vice versa (#1165) 2020-01-22 08:52:20 -08:00
Simon Michael
aa8c18fcc8 ;close: refactor (#1165) 2020-01-22 08:34:13 -08:00
Simon Michael
42840dd4c2 ;close: dedent (#1165) 2020-01-22 08:27:01 -08:00
Simon Michael
98b90a8a7b ;close: cleanups (#1165) 2020-01-22 08:26:59 -08:00
Simon Michael
090f65ec83 ;doc: regen manuals
[ci skip]
2020-01-20 18:02:42 -08:00
Simon Michael
69bc8f803b close: fix some inappropriate rounding, ensure the txn balances (#1164) 2020-01-20 18:01:33 -08:00
Simon Michael
1e9f30bafc close: add the --interleaved flag; refactor a little
Interleaved equity postings make troubleshooting easier.
2020-01-20 18:01:29 -08:00
Simon Michael
9bd7a713f9 ;print: expand -x doc, mention that it also shows prices
[ci skip]
2020-01-20 12:58:47 -08:00
Brian Wignall
00eb0b3c8f Make "stack test" pass again 2020-01-07 15:58:22 -08:00
Brian Wignall
35481a665b Change Date output to yyyy-mm-dd 2020-01-07 15:58:22 -08:00
Simon Michael
4a7a700d93 ;doc: fix flags marker appearing in manuals
$FLAGS$ didn't work (nor =FLAGS=); _FLAGS it is..

[ci skip]
2020-01-05 07:41:01 -08:00
Simon Michael
c186eb6084 ;doc: change flags marker in command helps to suit latest pandoc
From _FLAGS_ to $FLAGS$, since latest pandoc strips the underscores
at a certain point in our docs rendering.
2020-01-04 21:17:51 -08:00
Stephen Morgan
228edf6ba6 Don't store leaf name in PeriodReport.
Calculate at the point of consumption instead.
2020-01-04 21:15:42 -08:00
Stephen Morgan
8882b6fc85 cli: Use PeriodicReport. 2020-01-04 17:23:17 -08:00
Stephen Morgan
74778efcf5 Use nubSort instead of nub . sort. 2020-01-04 08:31:10 -08:00
Brian Wignall
2852f9dbee Fix typos 2019-12-21 12:09:05 -08:00
Gaith Hallak
9b6652b93f Update the instructions for the add command 2019-12-18 23:24:10 +03:00
Gaith Hallak
e1bbefbd1b Remember the previously entered values when stepping forward 2019-12-18 23:14:43 +03:00
Gaith Hallak
ee18227a12 Show the previous input in the input area after the back command 2019-12-18 19:53:45 +03:00
Gaith Hallak
6f26eef832 Change the '<' command to go back one step during addition 2019-12-18 00:38:29 +03:00
Simon Michael
47567cd770 ;fix some warnings with GHC 8.10 alpha
hledger is GHC 8.10 ready!
2019-12-14 17:30:19 -08:00
Simon Michael
95aa2e16cc ;doc: fix some old wiki and Cookbook references (hledger_site/#10) 2019-12-09 06:08:03 -08:00
Simon Michael
13e6c7dfdf lib: drop "assertion" alias for nullassertion
Perhaps we'll stick with the null* convention. Fixes a warning in Transaction.hs.
2019-12-09 06:08:03 -08:00
Simon Michael
9d6db33278 close: doc: mention --close-to/--open-from in the manual
[ci skip]
2019-12-06 12:27:07 -08:00
Simon Michael
a0b92e02b9 Revert "remove old fail compatibility imports that are obsolete ?"
They are needed with ghc <8.4, not for fail but for <> I think.
Try cleaning up again another time.
This reverts commit 318ce7eb07.
2019-12-01 11:32:51 -08:00
Simon Michael
318ce7eb07 remove old fail compatibility imports that are obsolete ? 2019-12-01 08:31:50 -08:00
Simon Michael
5b6dbe86b3 close: don't strip decimal zeros, causing misparsing (fix #1137) 2019-11-30 16:58:54 -08:00
Simon Michael
2b2a0b3cf8 ;tests: use "test" alias for testCase everywhere
Easier to type and read, and a little clearer to my eyes;
"testCase" implies a single case, but it can contain many assertions.
2019-11-28 15:33:33 -08:00
Simon Michael
4ab5896902 close: add --close-to, --open-from to choose account names 2019-11-27 14:19:44 -08:00
Simon Michael
91a3b03359 ;test: update command line help 2019-11-27 13:17:34 -08:00
Simon Michael
b36f6df110 tests: port all unit tests to tasty, second pass (#1090)
Hledger.Util.Tests helpers have been cleaned up, and test names are
now shown.

Tests have been cleaned up a bit. Some groups of unnamed tests have
been collapsed into a single named test containing a sequence of
assertions. The test command counts named tests, not assertions, so
the reported unit test count has dropped from 199 to 188.
2019-11-27 13:17:34 -08:00
Simon Michael
13a3542464 tests: port all unit tests to tasty, first cut (#1090)
easytest is not actively maintained and requires an old version of
hedgehog which does not support base-compat 0.11 & ghc 8.8.

This is still using the old easytest helpers, and not displaying test
names properly.
2019-11-27 12:43:43 -08:00
Amitai Burstein
e15adddeb8 Add exit status code to check-dates 2019-11-23 13:43:47 -08:00
Simon Michael
68b1cacf0f lib: refactor, prepare to drop showTransactionUnelided functionality
It seems we don't use it at all, and ony says it's not robust with
prices either.

Merge remote-tracking branch 'ony/chores/drop-elide-in-showTransaction'
2019-11-18 17:27:30 -08:00
Simon Michael
69ee21cf16 ;doc: regen manuals
[ci skip]
2019-11-18 17:14:06 -08:00
Michael Kainer
79ca4a767e cli: Add -% to compound balance commands
This commit introduces the commandline argument -%/--percent to show
percentages of the column's total instead of the absolute amounts for
each account in reports. The signs of the values are preserved.

This option is especially useful for the balance and incomestatement
commands.

If there are multiple commodities involved in a report hledger bails
with an error message. This can be avoided by using --cost. Also note
that if one uses -% with the balance command the chances are high that
all numbers are 0. This is due to the fact that by default balance sums
up to zero. If one wants to use -% in a meaningful way with balance one
has to add a query.

In order to keep the implementation as simple as possible --tree has no
influence over how the percentages are calculated, i.e., the percentages
always represent the fraction of the columns total. If one wants to know
the percentages relative to a parent account, one has to use a query to
narrow down the accounts.
2019-11-18 17:10:59 -08:00
Dmitry Astapov
87b82b6839 lib: roi does not fail on empty input data (+test) 2019-11-18 16:13:04 -08:00
Mykola Orliuk
ab9c150759 ;lib: clean out showTransactionUnelided
Keep aliases until next major release.
2019-11-16 12:53:07 +01:00
Brian Wignall
0ce7e811ba Fix two small typos 2019-11-10 13:54:48 -08:00
Simon Michael
445adbe9d1 ;doc: regen manuals
[ci skip]
2019-10-23 12:30:27 -07:00
Simon Michael
cfc00070a1 ;doc: fix output destination/format links in command docs
[ci skip]
2019-10-23 12:29:17 -07:00
Simon Michael
312e772468 prices: style price amounts; always show full precision 2019-10-20 07:09:34 -07:00
Mykola Orliuk
78146978f4 ;lib: store raw opts unquoted
It looks like we only need quote when we build query and in some
messages.

Fixes simonmichael/hledger#1079
2019-10-19 14:44:08 -07:00
Simon Michael
9967ead4c5 ;lib: let commodityStylesFromAmounts & co. return an error (#793, #1091)
And if they did, the stats command would now throw an error.

Changed:
journalApplyCommodityStyles
journalInferCommodityStyles
commodityStylesFromAmounts
2019-09-27 15:09:39 -10:00
Simon Michael
a0deb88796 ;doc: regen manuals
[ci skip]
2019-09-13 11:00:03 -07:00
Simon Michael
867ccb31d5 ;import: drop inconsistent period 2019-09-13 09:07:18 -07:00
Simon Michael
bf1e398ffd ;import: with --dry-run the no txns case should be parseable too 2019-09-13 09:02:32 -07:00
Simon Michael
edaf92db5e import: message cleanups, mention input files
Only the --dry-run message needs the semicolon, so dry run output can
be piped into hledger.
2019-09-13 08:43:33 -07:00
Simon Michael
807273d9de import: --catchup marks all transactions imported, without importing 2019-09-13 08:43:33 -07:00
Simon Michael
35a90004ca import: also show a message when nothing was imported 2019-09-13 08:43:33 -07:00
Simon Michael
4db14ef70f ;api: another round of hledger-api purging; fix the build 2019-09-11 14:49:22 -07:00
Simon Michael
ef04907484 ;doc: fix broken manual links in manuals source
[ci skip]
2019-09-10 17:02:56 -07:00
Simon Michael
499e20c0b2 lib, cli, ui: start using Control.Monad.Fail, allow base-compat 0.11
fail is moving out of Monad and into it's own MonadFail class.
This will be enforced in GHC 8.8 (I think).

base-compat/base-compat-batteries 0.11.0 have adapted to this,
and are approaching stackage nightly
(https://github.com/commercialhaskell/stackage/issues/4802).

hledger is now ready to build with base-compat-batteries 0.11.0, once
all of our deps do (eg aeson). We are still compatible with the older
0.10.x and GHC 7.10.3 as well.

For now we are using both fails:

- new fail (from Control.Monad.Fail), used in our parsers, imported
  via base-compat-batteries Control.Monad.Fail.Compat to work with
  older GHC versions.

- old fail (from GHC.Base, exported by Prelude, Control.Monad,
  Control.Monad.State.Strict, Prelude.Compat, ...), used in easytest's
  Test, since I couldn't find their existing fail implementation to update.

To reduce (my) confusion, these are imported carefully, consistently,
and qualified everywhere as Fail.fail and Prelude.fail, with clashing
re-exports suppressed, like so:

import Prelude hiding (fail)
import qualified Prelude (fail)
import Control.Monad.State.Strict hiding (fail)
import "base-compat-batteries" Prelude.Compat hiding (fail)
import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail
2019-09-08 17:13:47 -07:00
Simon Michael
b1859769ac ;doc: regen man pages
[ci skip]
2019-09-01 08:53:06 -07:00
Simon Michael
9cdbce288c ;descriptions/notes/payees: fix build warning 2019-08-31 18:36:03 -07:00
Simon Michael
318a7ce234 reg: show negative amounts in red, like balance and Ledger 2019-08-21 07:11:55 +01:00
Simon Michael
5bc1e7746f stats: show count of market prices (P), and the commodities covered 2019-08-19 11:16:09 +01:00
Simon Michael
8284c1042b ;doc: update command help txt files
[ci skip]
2019-07-26 23:25:52 +01:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
4ee39e039b doc: integrate CLI help & manual for remaining commands
& rename HelpTemplate -> CommandDoc
2019-01-28 05:43:49 -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
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
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
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