Commit Graph

722 Commits

Author SHA1 Message Date
Simon Michael
3ae8712bbc rename data/ to examples/ 2017-01-08 07:26:13 -08:00
Simon Michael
a1555ce964 Revert "Adding "--value"/"-V" option for balancesheet/incomestatement/cashflow and register (#361)"
This reverts commit b935cd2243.
2016-12-31 07:54:47 -08:00
Justin Le
b935cd2243 Adding "--value"/"-V" option for balancesheet/incomestatement/cashflow and register (#361)
* Added --value options for specialized balance ouputs balancesheet, incomestatement, cashflow

* --value option for 'register' command
lib: postingsValue to convert posting amounts to market value
2016-12-31 07:48:17 -08:00
Simon Michael
2b05970781 lib: report end date fix #403 #453 2016-12-30 14:36:27 -08:00
Simon Michael
66fcd0d4b2 lib: show report end date in debug output #403 #453 2016-12-30 14:36:15 -08:00
Simon Michael
1866d2375d bal: with same-date market prices, use the last parsed not the highest price #403 #453 2016-12-30 11:46:13 -08:00
Simon Michael
7dcfcb05ec lib: get effective report start/end dates 2016-12-30 11:46:13 -08:00
Simon Michael
ce8046bdb4 lib: add some debug output for market prices (#453) 2016-12-30 11:15:03 -08:00
Simon Michael
264e81c430 lib: applyN comment 2016-12-29 11:33:34 -08:00
Simon Michael
f84324682e lib: fix a doctest in Hledger.Data.Dates 2016-12-29 11:33:33 -08:00
Shubham Lagwankar
37b7ebfe22 use isSpace in lstrip (#441) 2016-12-20 09:29:12 -08:00
Johannes Gerer
45401e538e Balance Assignments and accounts resetting (#438)
* Changed behavior of `readJournalFiles` to be identical to `readJournalFile` for singleton lists

* Balance Assertions have to be simple Amounts

* Add 'isAssignment' and 'assignmentPostings' to Hledger.Data.Posting and Transaction

* Implemented 'balanceTransactionUpdate', a more general version of 'balanceTransaction' that takes an update function

* Fixed test cases.

* Implemented balance assignment ("resetting a balance")

* Add assertions to show function

* updated the comments

* numbering is not needed in journalCheckBalanceAssertions

* remove prices before balance checks

* rename functions
2016-12-10 07:04:48 -08:00
Johannes Gerer
74502f7e50 more general parser types enabling reuse outside of IO (#439) 2016-12-09 15:57:17 -08:00
Simon Michael
3c4cb4eeeb ui: --watch: track date only when a standard period is in effect 2016-12-07 15:19:36 -08:00
Simon Michael
6aeaee17f5 ui: clarify docs of some period functions 2016-12-07 14:54:23 -08:00
Simon Michael
00e2a8a327 lib: note a problem with dbg*IO 2016-12-07 07:59:48 -08:00
Johannes Gerer
2e8e67aa09 Changed behavior of readJournalFiles to be identical to readJournalFile for singleton lists (#437) 2016-12-07 07:59:24 -08:00
Simon Michael
9952f93e97 ui: --watch date tracking fixes
- move the period only if it's "current" (contains the old "today" date)
- make it work on all screens, not just accounts
2016-12-02 15:36:23 -08:00
Simon Michael
e3a7f6697e ui: --watch also tracks the current date, when appropriate
ie, when viewing a "current" period (the current day/week/month/quarter/year),
it will be moved to enclose the current date, if needed, whenever the system date changes.
2016-12-01 19:26:38 -08:00
Simon Michael
36c75841ee lib: dbgIO -> dbg0IO, consistent with dbg0 2016-11-24 10:59:03 -08:00
Simon Michael
3a5091e9eb don't show stack trace details in errors with GHC 8+ 2016-11-22 14:28:39 -08:00
Simon Michael
a1411768e5 csv: create default rules file only if CSV reader succeeds 2016-11-22 13:59:31 -08:00
Simon Michael
1f2276c100 lib: mark ledger reader as experimental, don't use automatically 2016-11-20 10:42:12 -08:00
Simon Michael
98ef8f9a60 lib, cli: allow a READER: prefix on data file paths
This provides a way to override the file format detection logic,
useful eg for files with wrong extensions or standard input.
2016-11-20 10:32:22 -08:00
Simon Michael
7d56af5a03 lib: restrict imports, avoiding GHCI clashes 2016-11-20 10:27:16 -08:00
Simon Michael
1539b258b9 lib: more Hledger.Read cleanup 2016-11-19 08:57:03 -08:00
Simon Michael
b6ff170688 lib: simplify format detection, avoid ledger reader by default
When we don't know a file's format, instead of choosing a subset of
readers based on content sniffing, now we just try them all.
Also, LedgerReader is now used only as a last resort,
as it's not yet competitive with JournalReader.
2016-11-18 13:24:57 -08:00
Simon Michael
59ce4c987b ledger: handle errors better in the ledger reader 2016-11-18 13:18:58 -08:00
Simon Michael
12151e05c0 lib: some Hledger.Read cleanup 2016-11-17 20:20:07 -08:00
Simon Michael
3ddc9d7432 lib: clarify file format detectors 2016-11-16 13:25:33 -08:00
Simon Michael
48b0d8a395 lib: ledger reader debug logging, cleanup 2016-11-13 08:29:04 -08:00
Simon Michael
27dd1ca593 lib: add a basic ledger journal reader using ledger4's ledger-parse
This reader is used by default for files with suffix .ledger or .l,
and tried along with the other readers for files of unknown type.

Currently only the bare minimum of the raw parsed data is used:
transaction dates/descriptions and posting accounts/amounts,
with the rest being ignored.

Amounts are parsed the same way as in the hledger journal format.
Malformed amounts might be ignored instead of error-reported.
2016-11-12 14:22:27 -08:00
Simon Michael
2996ec971b lib: also recognise *.hledger as hledger journal format 2016-11-12 13:55:37 -08:00
Simon Michael
c8650e0d10 comment 2016-11-12 13:54:48 -08:00
Simon Michael
8bc0538778 allow megaparsec 5.0 or 5.1 for stackage compatibility 2016-10-27 07:19:26 -07:00
Simon Michael
275f98b3be lib: getCurrentZonedTime 2016-10-21 11:47:07 -07:00
Hans-Peter Deifel
ae73c525d8 Fix csv rules parsing (#407)
* csv rules: Show prettier parsing errors

This goes from

  hledger: user error ("ParseError {errorPos = SourcePos {sourceName = \"foo.csv.rules\",
  sourceLine = Pos 20, sourceColumn = Pos 1} :| [], errorUnexpected =
  fromList [Tokens (' ' :| \"\")], errorExpected = fromList [Label ('b' :| \"lank or comment
  line\"),EndOfInput], errorCustom = fromList []}")

to

  hledger: user error (foo.csv.rules:20:1:
  unexpected space
  expecting blank or comment line or end of input
  )

* csv rules: Fix parsing of empty field values

A single line containing `account1 ` (note the space at the end) should
parse as assignment of the empty string to account1. At least it did
until commit 4141067.

The problem is that megaparsec's `space` parses multiple space
characters as opposed to parsec. So in the example above it would
incorrectly consume the newline.

This commit also adds a new test case for this bug.
2016-09-25 12:56:28 -07:00
Simon Michael
8c7e7c02c3 ui, lib: another historical balance fix for accountTransactionsReport 2016-09-06 08:43:25 -07:00
Simon Michael
2f4dde3699 lib: debug utils cleanup 2016-09-06 08:31:53 -07:00
Simon Michael
b262be7838 ui: fix wrong register start balance in historical mode
90c0d40 a few weeks ago miscalculated the starting balance
in accountTransactionsReport. Possibly also affects
-web and -api.
2016-09-05 14:45:02 -07:00
Simon Michael
9396bc6711 lib: fix ghc 8 warnings in Read.Common 2016-09-05 14:31:56 -07:00
Simon Michael
4ceda8f985 timeclock: fix order of transaction indexes #394
Timeclock transaction ids now count up rather than down.

Also, remove old code for appending timeclock transactions to journal transactions,
a holdover from the days when both were allowed in one file.
2016-08-14 14:50:03 -07:00
Simon Michael
72c39470d6 lib: non-journal formats now produce transaction ids #394
Transactions are now numbered consistently during journal finalisation,
rather than just in the journal reader. Also transaction knot-tying has been
moved out of journalBalanceTransactions.
2016-08-14 12:44:19 -07:00
Simon Michael
a4cf233312 ui: keep next/previous period within the journal's date span 2016-08-13 08:08:43 -07:00
Simon Michael
f3bcf570e5 lib: simplify account txns report running total
The account transactions report used for hledger-ui and -web registers
now gives either the "period total" or "historical total", depending
strictly on the --historical flag. It doesn't try to tell the user
whether the historical total is the accurate historical balance (which
depends on the report query).
2016-08-12 17:26:34 -07:00
Simon Michael
69ebc3b159 bal, reg, stats: clarify report modes, output, options
- try to clarify naming and meaning of balance/register report modes
  and kinds of "balance" displayed. Added balance --change and
  register --cumulative flags to clarify report modes.

- with multiple --change/--cumulative/--historical flags use the last
  instead of complaining

- register -A is now affected by -H

- options cleanups
2016-08-12 09:44:31 -07:00
Simon Michael
c1ddbfc08a drop unusual "d" suffix when showing a day period 2016-08-11 11:23:05 -07:00
Simon Michael
79cc999fa3 ui: d/u zooms report period down/up, t selects today 2016-08-09 15:31:35 -07:00
Simon Michael
bc72aad6f0 lib: remove comment breaking doctests 2016-08-09 07:58:19 -07:00
Simon Michael
39c5eb9801 balance: make -H work with single-column reports #392
-H/--historical now makes a single-column balance report with a start
date show historical balances reflecting earlier postings.  This is
equivalent to specifying no start date, but it's more consistent.
2016-08-08 17:40:41 -07:00