Stephen Morgan
af31d6e140
lib,cli,ui: Remove redundant Typeable and Data instances.
...
Also add some explicit import lists.
2020-08-31 15:41:30 +10:00
Stephen Morgan
e5371d5a6a
lib,cli,ui,web: Make Regexp a wrapper for Regex.
2020-08-31 12:04:45 +10:00
Stephen Morgan
f6fa76bba7
lib,cli: Get rid of magic values for asprecision, use a sum type instead.
2020-08-30 23:00:35 +10:00
Stephen Morgan
371b349b2e
lib,cli: Replace parsedate and mkdatespan with direct applications of fromGregorian, transaction now takes Day instead of a date string.
2020-08-29 15:08:28 -07:00
Stephen Morgan
32e184f9a8
lib: Elide boring parents in tree mode even when using --empty.
2020-08-11 17:24:50 -07:00
Simon Michael
3f55c23603
;review, tag all error calls with an easier to find PARTIAL: comment ( #1312 )
2020-08-05 16:08:33 -07:00
Simon Michael
242c05fc9a
lib, journal: parseQuery, modifyTransactions are now total ( #1312 )
...
modifyTransactions now also requires a reference date, for parsing queries.
Relative dates are now permitted in auto posting rules.
2020-08-05 13:44:04 -07:00
Simon Michael
d738ca8c60
;lib: cleanups
2020-07-19 06:13:38 -07:00
Simon Michael
e057857c04
;lib: CBCSubreportSpec note
2020-07-17 10:02:14 -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
3452270241
cli: --color/--colour option; smart emacs, windows autodetection ( #1296 )
2020-07-14 12:08:36 -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
3f86bd545f
lib, ui, web: stricter accountTransactionsReport filtering
...
accountTransactionsReport now filters transactions more thoroughly, so
eg transactions dated outside the report period will not be shown.
Previously the transaction would be shown if it had any posting dated
inside the report period. Possibly some other filter criteria now get
applied that didn't before. I think on balance this will give slightly
preferable results.
2020-07-14 10:22:14 -07:00
Simon Michael
febd8bb457
lib: postingsReport: follow debug levels policy
2020-07-13 11:53:05 -07:00
Stephen Morgan
463eee7bf4
lib: Replace {pr,prr}Negate with fmap negate.
2020-07-10 09:08:03 -07:00
Simon Michael
f518da747c
balcmds: avoid short month names in multi-year monthly reports
2020-07-09 12:56:46 -07:00
Simon Michael
f4991d05b4
lib: list exports of Hledger.Reports.BudgetReport
2020-07-09 12:55:04 -07:00
Simon Michael
23bef9a01b
;refactor: extracted reportPeriodName for making report headings
2020-07-09 12:54:20 -07:00
Simon Michael
a89a4e1b42
bal --budget: show end-date column headings when appropriate
...
bal --budget was always showing the period as column heading,
as if for a change report. With --cumulative or --historical
it should show the end date, like other balance reports. Cf
https://hledger.org/hledger.html#multicolumn-balance-report .
2020-07-09 11:49:19 -07:00
Stephen Morgan
f5e1fb2625
lib: Refactor BudgetReport to re-use MultiBalanceReport code.
2020-07-07 18:46:34 -07:00
Stephen Morgan
bfda10ff20
lib: Refactor MultiBalanceReport row sorting, make sure totals are calculated after pruning.
2020-07-07 18:46:34 -07:00
Stephen Morgan
bde4d7e2e4
lib: Use last column of historical balance as total. Use totals for balanceReport.
2020-07-07 17:56:38 -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
25c15d4bab
bal --budget: elide multicommodity amounts
2020-07-05 06:59:16 -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
Stephen Morgan
c811ea4c7b
lib, cli, ui, web: intopt and friends now make sure their arguments fit
...
inside bounds.
2020-07-03 12:35:51 -07:00
Stephen Morgan
c96947284e
lib: Minor refactor.
2020-07-03 12:35:51 -07:00
Stephen Morgan
4fc72328d2
lib, cli: Introduce convienience function compoundBalanceReport.
2020-06-28 07:29:49 -07:00
Stephen Morgan
604868cea5
lib, cli: Move CompoundBalanceReport into ReportTypes, compoundReportWith into MultiBalanceReport, share postings amongst subreports.
2020-06-28 07:29:49 -07:00
Stephen Morgan
d09a90b38b
lib: Refactor multiBalanceReportWith into getPostingsbyColumn and generateMultiBalanceReport.
2020-06-28 07:29:49 -07:00
Stephen Morgan
e089358758
lib: Using --drop in tree mode with boring parent ellision no longer considers all parents boring. Add tests to check this fact.
2020-06-25 18:05:50 -07:00
Stephen Morgan
015492553e
lib: Move unifyMixedAmount to Hledger.Data.Amount, make it return Maybe Amount, export it.
2020-06-24 10:24:11 -07:00
Stephen Morgan
ded4f42218
lib: multiBalanceReport: Accounts with no subaccounts are never interesting parents, even if no_elide_ is set.
2020-06-23 13:19:52 +10:00
Stephen Morgan
826faa18c2
lib: Tweaks to work with stack-8.2.
2020-06-22 23:08:22 +10:00
Stephen Morgan
5168d136ed
lib: multiBalanceReport: Enable --drop for tree mode.
2020-06-22 22:28:08 +10:00
Stephen Morgan
fcaec1540a
lib: multiBalanceReport: Remove unnecessary addition of parent accounts.
2020-06-22 22:27:11 +10:00
Stephen Morgan
e079c8b808
lib: multiBalanceReport: Remove old balanceReport code, update some tests.
2020-06-22 22:27:09 +10:00
Stephen Morgan
edb28d51c5
lib: multiBalanceReport: Get boring parent ellision working for multiBalanceReport.
2020-06-22 22:25:23 +10:00
Stephen Morgan
cd41404fd4
lib: multiBalanceReport: Get --drop working with multiBalanceReports.
2020-06-22 22:21:31 +10:00
Stephen Morgan
6467c252c7
lib: multiBalanceReport: Move responsibility for display name into displayedAccounts
2020-06-22 22:21:30 +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
Stephen Morgan
0dedcfbe15
lib: multiBalanceReport: Miscellaneous simplifications.
2020-06-22 22:11:54 +10:00
Stephen Morgan
1e7e80504f
lib: multiBalanceReport: Keep Account around longer so we can use both aibalance and aebalance.
2020-06-22 22:10:24 +10:00
Stephen Morgan
0e89a389d6
lib: multiBalanceReport: Split displayedAccounts, calculateReportQuery into separate functions.
2020-06-22 22:07:55 +10:00
Stephen Morgan
b106850391
lib: multiBalanceReport: Split postprocessReport and calculateTotalsRow into separate functions.
2020-06-22 21:59:15 +10:00
Stephen Morgan
baa5844d4e
lib: multiBalanceReport: Change indentation.
2020-06-22 21:54:38 +10:00
Stephen Morgan
0b30b2f9fb
lib: multiBalanceReport: Split sortRows into a separate function.
2020-06-22 21:51:38 +10:00
Stephen Morgan
7a9bf998e5
lib: multiBalanceReport: Split buildReportRows into a separate function, remove unnecessary query and valuation.
2020-06-22 21:50:27 +10:00
Stephen Morgan
a81c6d0397
lib: multiBalanceReport: Split accumValueAmounts into a separate function.
2020-06-22 21:48:20 +10:00
Stephen Morgan
b2bed03b4c
lib: multiBalanceReport: Don't import BalanceReport in MultiBalanceReport.
2020-06-22 21:45:42 +10:00
Stephen Morgan
0dcfddd201
lib: multiBalanceReport: Break calculateAccountChanges and acctChangesFromPostings separate functions.
2020-06-22 21:43:30 +10:00
Stephen Morgan
a72c4f285b
lib: multiBalanceReport: Break calculateColumns into a separate function.
2020-06-22 21:39:41 +10:00
Stephen Morgan
fc6a30b234
lib: multiBalanceReport: Break calculateColSpans into a separate function.
2020-06-22 21:38:16 +10:00
Stephen Morgan
44dcd613e8
lib: multiBalanceReport: Break getPostings and makeReportQuery into separate functions.
2020-06-22 21:36:30 +10:00
Stephen Morgan
f21bf53610
lib: multiBalanceReport: Break startingBalances into separate function.
2020-06-22 21:33:16 +10:00
Simon Michael
e3cae4aadc
valuation: implement new --infer-value flag & semantics ( #1239 , #1253 )
2020-06-19 14:40:20 -07:00
Simon Michael
06d5014f5f
;lib: multibalancereport: apply debug output policy
2020-06-16 21:00:08 -07:00
Simon Michael
684cb45e1a
tweak debug levels, document some guidelines
...
Beginnings of a project-wide policy for what output to show at
each debug level, for now. Later we'll want more flexibility,
eg filtering by topic.
2020-06-14 17:17:09 -07:00
Dmitry Astapov
b7413edf22
lib: --forecast=PERIODICEXPR. Fixes #835 , #1236
2020-06-03 15:53:00 -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
2a5f7819af
bs,cf,is,bal,print,reg: support json output format
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
ae9d8d6e56
;add then and t to --value's error message
...
[ci skip]
2020-02-10 12:40:02 -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
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
2e20d0717f
lib: Generalise PeriodicReport to be polymorphic in the account labels.
2020-01-04 17:23:17 -08:00
Stephen Morgan
88dc619257
lib: Use records instead of tuples in PeriodicReport.
2020-01-04 17:23:17 -08:00
Stephen Morgan
beb8b6d7c8
lib: Use PeriodicReport in place of MultiBalanceReport.
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
Stephen Morgan
38904372b2
Calculate MultiReportBalance columns more efficiently.
...
Only calculate posting date once for each posting, and calculate their
columns instead of checking each DateSpan separately.
2020-01-03 16:11:46 -08: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
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
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
Simon Michael
332624f9fa
ui: B and V keys toggle display of cost, value
2019-11-21 17:33:04 -08:00
Mykola Orliuk
5287fe671b
;all: hide RawOpts internals
...
This way we can ensure we always use only functions from RawOptions.
2019-11-18 17:38:39 -08:00
Simon Michael
4cb2a03f7f
;lib: more docs for unifyMixedAmount
...
[ci skip]
2019-11-18 17:22:42 -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
Simon Michael
2e3b51c03f
;lib: journalConvertAmountsToCost -> journalToCost
2019-10-19 19:58:27 -07:00
Simon Michael
905149df86
;lib: transaction valuation helpers
2019-10-19 19:41:21 -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
Dmitry Astapov
e9d300bef3
lib: dont raise when there is neither budget nor transactions in the report period
2019-09-11 16:09:28 -07:00
Dmitry Astapov
cf74972148
bin: improve debug output for budger report (show budget txns)
2019-09-11 16:09:28 -07:00
Simon Michael
a7f172b085
valuation: -V/-X respects report end date, code/doc cleanups ( #1083 )
...
-V (and -X) now respects a report end date set with -e/-p/date: when
choosing the valuation date, similar to hledger 1.14 and Ledger.
This means that -V/-X aren't exactly like either --value=end or
--value=now. The "Effect of --value on reports" doc has been extended
accordingly, and much of it has been reworded and made more accurate.
2019-09-05 13:41:36 -07:00
Simon Michael
1cbbe8f43d
memoise market valuation, making it fast ( #999 )
2019-08-19 02:16:39 +01:00
Simon Michael
70986769ef
;lib: derive NFData for MultiBalanceReport, PriceGraph for criterion
...
Allow these to be timed with criterion at ghci prompt.
2019-08-01 18:31:39 +02:00
Simon Michael
d193d757ea
;lib: multiBalanceReport: fix error message typo
2019-08-01 18:22:14 +02:00
Simon Michael
02ed4f5d04
;lib: intervalFromRawOpts: replace undefined with an error message
2019-07-25 10:46:45 +01:00
Caleb Maclennan
11d9e5eb6a
code: Strip extraneous trailing whitespace from Haskell sources
2019-07-15 16:40:49 +01:00
Simon Michael
5c3e4de647
;lib: periodFromRawOpts: clarify doc ( #1011 )
...
[ci skip]
2019-07-01 18:33:18 +01:00
Jakob Schöttl
e483faf7f0
Bugfix for #1011 : begin/end date options
2019-06-30 10:38:06 +02:00
Simon Michael
7dd0c5783a
;lib: multibalancereport: refactor
2019-06-14 19:04:09 -07:00
Simon Michael
baa15d9bea
;lib: rename MultiBalanceReports.hs -> MultiBalanceReport.hs
2019-06-14 11:45:25 -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