Commit Graph

577 Commits

Author SHA1 Message Date
Simon Michael
671bb6c4a2 require data-pprint as a debugging aid and make some types compatible with it 2013-09-21 13:36:43 -07:00
Simon Michael
8444be6f88 docs: report haddock cleanups 2013-09-10 13:42:57 -07:00
Simon Michael
f9656a21af print: comment positions (same line or next line) are now preserved 2013-09-10 10:32:49 -07:00
Simon Michael
7ed0705398 register: --average/-A shows a running average, like ledger 2013-09-09 18:25:53 -07:00
Simon Michael
3d205ec03f refactor: rename unclear helper 2013-09-09 17:41:29 -07:00
Simon Michael
060d1fdd1b change comm: to sym: and require a match on the whole symbol 2013-09-09 15:26:45 -07:00
Simon Michael
957f57a07b new comm:REGEXP query matches commodity symbols. Also some minor amt: fixes. 2013-09-09 15:04:43 -07:00
Simon Michael
73230838c5 parsing: amt queries use the = operator by default 2013-09-09 11:57:25 -07:00
Simon Michael
eff1d3f1a5 csv reader: add the include directive, useful for factoring out common rules used with multiple CSV files 2013-08-03 20:53:41 -07:00
Dmitry Astapov
ed58d815d6 Fix for multiple field assignments in CSV parsing 2013-06-19 08:30:33 +01:00
Simon Michael
080eb866ec web: clean up language extensions a bit, make autoweb works again 2013-06-04 18:23:55 -07:00
Simon Michael
e13ea5706d oops, missed a build failure 2013-06-04 11:43:26 -07:00
Simon Michael
fd8de9558e web: show proper Y-values in register chart (fixes #122) 2013-06-03 23:15:30 -07:00
Simon Michael
2e5718d5ea web: show one line per commodity in charts. Needs more polish, but fixes #109. 2013-06-01 15:33:33 -07:00
Simon Michael
95f909543a fix a haddock failure reported by hydra 2013-06-01 13:55:34 -07:00
Simon Michael
c2fa4b3c21 parsing: make balance assertions more robust with different precisions (#119)
Also note another issue.
2013-06-01 13:39:00 -07:00
Simon Michael
44545d6ec7 parsing: update a csv reader error message 2013-06-01 12:38:58 -07:00
Simon Michael
a26ab926d8 parsing: don't fail when a csv amount has trailing whitespace (fixes #113) 2013-06-01 12:38:13 -07:00
Simon Michael
56a37aabcf small cleanup 2013-05-30 15:17:21 -07:00
Simon Michael
6073b56b9e parsing: order postings first by date, then by parse order when checking balance assertions 2013-05-30 15:16:54 -07:00
Simon Michael
5685b3dc9c parsing: don't allow = in unquoted commodity symbols, fixes commodity-less balance assertion amounts 2013-05-30 15:15:38 -07:00
Simon Michael
87820705f5 parsing: after reading a journal file, check all balance assertions and continue only if they pass 2013-05-28 16:25:00 -07:00
Simon Michael
0be986fcb9 parsing: actually parse balance assertions
Parser unit test is commented out until HTF tests are fixed.
2013-05-28 16:22:30 -07:00
Simon Michael
e89bd131e9 also fix warnings in UTF8IOCompat 2013-04-12 16:28:29 -07:00
Simon Michael
42385fc8bf parsing: read dos line endings, deprecate encoding compatibility layer
We should now read all text in universal newline mode, so eg journal
files with DOS/windows line endings are fine.

This also deprecates and disables our IO encoding compatibility layer,
which prevented many encoding-related problems with certain platforms
and GHC versions. With modern GHC (7.x) this is now hopefully totally
unnecessary, but the module remains in place just in case.
2013-04-12 16:18:20 -07:00
Simon Michael
78837c66a6 parsing: fix test breakage due to new csv rules format (fixes #102) 2013-04-12 14:59:28 -07:00
Simon Michael
616a25979a CSV reader version 2 with new rules syntax
At long last. The main change is a new rules file format that aims to
be more powerful and more intuitive than v1 (hledger 0.19.x and older).
Existing rules files will need to be adapted manually to the new format.
2013-03-29 22:56:55 +00:00
Simon Michael
af5c0e80e0 parsing: read files in universal newline mode
Line endings other than the unix style, are now accepted in journal and rules files.
2013-03-29 18:46:10 +00:00
Simon Michael
7b6a59123d eolof parser matches end of line or end of file 2013-03-29 18:42:00 +00:00
Simon Michael
972106b145 update ptrace, add dbg, ppShow utilities 2013-03-29 18:40:10 +00:00
Simon Michael
3b5c0bc4a1 provide some regex-posix-based utilities that perform better than regexpr 2013-03-29 18:39:57 +00:00
Simon Michael
b780badd07 provide "when" 2013-03-29 18:38:43 +00:00
Simon Michael
70b171e018 querying by code: 2013-03-22 17:59:16 +00:00
Simon Michael
c39e424642 basic querying by amount: "amt:<0", "amt:=100", etc.
The syntax is "amt:ON", where O is "<", "=" or ">" and N is a number.
For simple (single-commodity) amounts, this matches if the amount's quantity has the specified relationship to N.
For multi-commodity amounts, it always matches.
If parsing fails, an error is raised.
This has not been tested for floating-point precision.
2013-03-20 16:36:00 +00:00
Simon Michael
9ffb0b2d1f export journal file code parser, part 2 - missed a bit >:| 2013-02-25 19:35:51 +00:00
Simon Michael
69f2491224 export journal file code parser 2013-02-24 21:07:54 +00:00
Simon Michael
33153851e9 words' on an empty string should return empty list 2013-02-24 20:04:28 +00:00
Simon Michael
2a6a028222 register: date display refinements
- when showing multiple postings from a transaction, show their individual dates accurately
- with --date2, use that date for sorting
2013-02-14 21:12:35 +00:00
Simon Michael
67d1f91909 web: fix compilation; also fixes some hardcoded static urls (Xinruo Sun) 2013-01-11 13:54:49 +00:00
Simon Michael
7175c57992 reg: --related/-r flag to show other postings in the transaction 2012-12-22 00:24:38 +00:00
Simon Michael
552a15a1ba reg: --width/-w option to adjust register overall output width 2012-12-21 21:56:11 +00:00
Simon Michael
621a91807e rename actual/effective dates to primary/secondary
The command-line flag is now --date2. Alternate spellings --effective and --aux-date
are accepted for compatibility.
2012-12-06 04:43:41 +00:00
Simon Michael
7d1fce42fe refactor: dead code 2012-12-06 03:56:12 +00:00
Simon Michael
869ff2528a accept normal simple date syntax in posting dates, give an error on bad date syntax here 2012-12-06 03:23:56 +00:00
Simon Michael
20e68f23a8 support effective dates on postings as well
We now preserve all dates while reporting, instead of overwriting one with the other.
2012-12-06 02:41:37 +00:00
Simon Michael
ccbc071289 more cleanup, fix duplicate tag display 2012-12-06 02:09:53 +00:00
Simon Michael
27621515ea bal, reg: use posting date if specified, clarify posting effective date not yet supported 2012-12-06 01:10:15 +00:00
Simon Michael
dfeafa6064 export accountBalanceHistory 2012-12-06 01:09:12 +00:00
Simon Michael
e75abc4625 parse posting dates, better comment/tag handling, begin using HTF for unit testing 2012-12-06 00:28:23 +00:00
Simon Michael
4aafeb32e6 refactor: clean up Posting construction 2012-12-06 00:03:07 +00:00
Simon Michael
26ad56e1b2 untested accountBalanceHistory calculator 2012-12-05 23:52:46 +00:00
Simon Michael
0913e54e93 94: fix a regression with non-flat balance report, caused by previous fix
Correct in all cases now, hopefully.
2012-12-05 23:51:42 +00:00
Simon Michael
51a8adf273 regexSplit, ptrace (parsec trace) utilities 2012-12-05 23:49:50 +00:00
Simon Michael
f54e3299b9 94: fix 0.19 regression showing wrong total balance with balance --flat
and distinguish better between account depth and item indent level
2012-12-04 01:07:04 +00:00
Joachim Breitner
f0372bdd93 Also parse ! as a modifier, like * 2012-12-03 21:38:05 +00:00
Simon Michael
157c85a915 move stripbrackets to Utils 2012-12-04 00:03:42 +00:00
Simon Michael
6eda8c4bbf csv reader: append ".rules" to the original file name instead of replacing its extension 2012-11-26 01:56:39 +00:00
Simon Michael
afb4fb0356 csv reader: parse parenthesised amounts as negative 2012-11-26 01:56:01 +00:00
Simon Michael
8b4a99c4d5 79: convert: add a skip-lines directive (Magnus Henoch) 2012-11-18 18:21:52 +00:00
Simon Michael
5c972ef00c more correct debug util name 2012-11-19 21:17:43 +00:00
Simon Michael
79f0e98186 tools: fix haddock generation (web excluded) 2012-11-19 23:36:36 +00:00
Simon Michael
4248df5c6f clarify historical price field and tests 2012-11-20 00:27:43 +00:00
Simon Michael
1c6a7d8a6f rename the commodityless amount constructor to num 2012-11-20 02:22:20 +00:00
Simon Michael
45d4a38cc7 refactor: setAmountPrecision -> withPrecision 2012-11-19 23:24:04 +00:00
Simon Michael
64180b18ef refactor: clarify that price amounts have only a single commodity 2012-11-19 23:17:55 +00:00
Simon Michael
8c06553e3b refactor: make amount price a non-maybe, reducing noise 2012-11-19 22:39:08 +00:00
Simon Michael
4567e91409 refactor: move amount display settings out of commodity, simplify amount construction 2012-11-19 21:20:10 +00:00
Simon Michael
cbc7661703 87: fix an arithmetic and transaction balancing bug with multiple total-priced amounts 2012-11-12 16:31:43 +00:00
Simon Michael
d2aa8ca6cb note future debug tools 2012-11-15 17:46:48 +00:00
Simon Michael
1c1058be4e 70: ignore ledger's fixed lot price declarations 2012-11-17 02:40:27 +00:00
Simon Michael
28baf926f7 parsing: ignore ledger-style balance assertions ("= BAL" after a posting's amount) 2012-11-02 16:50:36 +00:00
Simon Michael
5b9c5459be web: make hledger[-lib] compatible with all of yesod's language extensions
Useful when building all of hledger-web at once.
2012-11-14 17:25:02 +00:00
Simon Michael
00f22819ae balance report speedup
This refactoring fixes an O(n^2) slowdown in the balance command with
large numbers of accounts. It's now speedy, and the implementation is
clearer. To facilitate this, the Account type now represents a tree of
accounts which can easily be traversed up or down (and/or flattened
into a list).

Benchmark on a 2010 macbook:

    +-------------------------------------------++--------------+------------+--------+
    |                                           || before:      | after:     |        |
    |                                           || hledger-0.18 | hledgeropt | ledger |
    +===========================================++==============+============+========+
    | -f data/100x100x10.journal     balance    ||         0.21 |       0.07 |   0.09 |
    | -f data/1000x1000x10.journal   balance    ||        10.13 |       0.47 |   0.62 |
    | -f data/1000x10000x10.journal  balance    ||        40.67 |       0.67 |   1.01 |
    | -f data/10000x1000x10.journal  balance    ||        15.01 |       3.22 |   2.36 |
    | -f data/10000x1000x10.journal  balance aa ||         4.77 |       4.40 |   2.33 |
    +-------------------------------------------++--------------+------------+--------+
2012-10-21 17:18:18 +00:00
Simon Michael
2a4d89bb27 expose more utilities from CsvReader 2012-05-29 21:00:49 +00:00
Simon Michael
0b96a767b4 support tilde (~) in journal and rules file paths 2012-05-30 08:36:01 +00:00
Simon Michael
776ad2a098 remove ensureRulesFile debug trace 2012-05-30 08:36:34 +00:00
Simon Michael
ec2f35ef07 split up accountsReport unit tests 2012-05-30 11:23:03 +00:00
Simon Michael
e6de8df97f balance: respect all query terms, not just acct 2012-05-30 11:24:08 +00:00
Simon Michael
34318906d8 register, print: fix reverse ordering of same-day transactions 2012-06-29 18:06:58 +00:00
Simon Michael
6ccecb6ae0 stats: list included journal files 2012-05-30 09:17:18 +00:00
Simon Michael
33b7c91e20 combine journal updates with foldl' instead of foldr
on general principles, even though it makes no measurable difference
2012-05-30 10:19:08 +00:00
Simon Michael
9a239789fa apply journal updates in the order they were parsed, not the reverse (!)
Fixes the order of include files in stats command.
2012-05-30 10:16:37 +00:00
Simon Michael
9735d583d1 extra postingsReport test 2012-06-29 18:35:32 +00:00
Simon Michael
d4a897306c combine command-line flags like --depth properly with non-flag query patterns 2012-06-29 22:36:30 +00:00
Simon Michael
5e944374de web: don't auto-create a missing journal file at startup 2012-06-29 22:48:41 +00:00
Simon Michael
a6d93a164d enable csv as a native data format (not yet obeying --rules-file) 2012-03-23 17:14:24 +00:00
Simon Michael
977fb2c3e8 make the utf8 IO compatibiity layer build on GHC 6.12.3, 7.0.4, 7.2.2, 7.4.1 2012-03-29 20:40:31 +00:00
Simon Michael
50068221c3 fix build warnings in all GHC versions 2012-03-29 21:19:35 +00:00
Simon Michael
18f8a5386a docs: fix UTF8IOCompat haddock 2012-03-29 22:10:43 +00:00
Simon Michael
9ed8d8a8f6 docs: fix haddock hyperlink 2012-03-30 19:24:20 +00:00
Simon Michael
9b3486c14c docs: fix incorrect haddock 2012-04-14 01:11:11 +00:00
Simon Michael
36534a9ef5 fix a misnamed var 2012-04-16 16:43:58 +00:00
Simon Michael
d30cd5847a a simplistic cashflow statement to complete the trio 2012-04-17 17:32:56 +00:00
Simon Michael
b77ba66fb1 haddock fix 2012-05-15 01:51:14 +00:00
Simon Michael
294a350993 promote Hledger.Query to second level 2012-05-16 07:57:10 +00:00
Simon Michael
c1e8138609 more date utilities 2012-05-19 02:56:26 +00:00
Simon Michael
a03fd1d89f fix haddock complaints 2012-05-27 18:20:18 +00:00
Simon Michael
9524e6d927 more metadata -> tag renaming in the parser 2012-05-28 00:24:49 +00:00
Simon Michael
1062e2f9a4 clean up reader selection, don't write a csv rules file on journal parse error 2012-05-28 18:40:36 +00:00
Simon Michael
88f69e12e2 fix Dates exports for hledger-web 2012-04-16 17:09:27 +00:00
Simon Michael
a5b3f072b4 update query parser's prefix list 2012-05-29 17:02:18 +00:00
Simon Michael
e0d2530ff5 fix double quote matching everything 2012-05-29 17:02:57 +00:00
Simon Michael
cb905a741c new query by tag implementation 2012-05-28 00:27:55 +00:00
Simon Michael
2fb2aea056 rename metadata fields to tags 2012-05-27 22:59:06 +00:00
Simon Michael
3ee6a351f3 big query/tests/show refactoring
- use new query system for command line too, filterspec is no more
- move unit tests near the code they test, run them in bottom up order, add more
- more precise Show instances, used for debugging not ui
2012-05-27 18:14:20 +00:00
Simon Michael
1654776f4a refactor test runner 2012-05-14 19:23:12 +00:00
Simon Michael
db4d853a3f refactor: move readJournal' 2012-04-14 01:10:39 +00:00
Simon Michael
1b7ffe2e5a fix for haddock 2012-05-14 17:22:12 +00:00
Simon Michael
2f28931d83 fix build warnings in hledger-lib 2012-05-06 20:42:34 +00:00
Simon Michael
68966fe43b begin cleaning up Dates api, move firstJust 2012-04-16 16:44:41 +00:00
Simon Michael
56cf9b21cb fix txn & posting comment parsing & printing; better unit tests 2012-05-15 01:49:05 +00:00
Simon Michael
a628964016 prepare to support full query expressions on command line 2012-05-16 08:31:06 +00:00
Simon Michael
1e2c2bb10c hook up more tests, begin converting remaining reports to Query 2012-05-17 04:21:34 +00:00
Simon Michael
2feb36e57f query cleanups 2012-05-17 16:02:22 +00:00
Simon Michael
ddda6705c0 put query parsers first 2012-05-16 08:28:02 +00:00
Simon Michael
a58a5f96ad more robust comments & metadata, on postings too, and document as "tags" 2012-05-14 18:52:22 +00:00
Simon Michael
88212f26e8 simplify journal parser names 2012-05-09 15:34:05 +00:00
xiaoruoruo
ce83876700 metadata parse and show for transaction 2012-04-08 19:13:56 +00:00
Simon Michael
c010448935 drop little-used clashing Ledger accessors 2012-05-09 15:33:16 +00:00
xiaoruoruo
dafa764a07 filter by metadata tag 2012-04-08 20:43:48 +00:00
Simon Michael
b6b5c5ffaa explicit exports for Transaction and Posting 2012-05-07 14:36:40 +00:00
Simon Michael
770136ec81 query tests cleanup 2012-05-17 14:59:38 +00:00
Simon Michael
08bbb832d0 more query cleanup 2012-05-16 07:50:22 +00:00
Simon Michael
e1b1b8bce8 rename Matcher to Query, simplify constructors 2012-05-16 07:12:49 +00:00
Simon Michael
8c7eea9ee0 make incomestatement respect options 2012-04-16 16:45:24 +00:00
Simon Michael
b4b2b67236 incomestatement: show revenue and expense accounts separately 2012-04-15 00:05:10 +00:00
Simon Michael
a27eb7c29f more matcher -> query renaming 2012-05-16 07:37:24 +00:00
Simon Michael
a7ef0ba8dd basic understanding of balance sheet vs. profit & loss accounts 2012-04-14 01:12:42 +00:00
Simon Michael
51977f32e9 Journal.hs explicit exports, haddockification 2012-04-13 22:24:55 +00:00
Simon Michael
04dc5aed10 explicit imports for Matching 2012-05-16 06:43:13 +00:00
Simon Michael
43d78398bb Hledger.Data.Matching -> Hledger.Data.Query 2012-05-16 06:50:08 +00:00
Simon Michael
8492f6cae4 fix unicode handling on GHC >= 7.2, unify utf8 IO compatibility layer
tests pass again from GHC 6.12.3 to 7.4.1
2012-03-29 19:06:31 +00:00
Simon Michael
d4451ce5e3 read system cleanup, require conversion rules from a file to simplify API 2012-03-24 18:08:11 +00:00
Simon Michael
00a43cd1bf Hledger.Cli.Format -> Hledger.Data.FormatStrings 2012-03-10 19:20:15 +00:00
Simon Michael
e396c0dc8d push csv rule and format string types down 2012-03-24 01:58:34 +00:00
Simon Michael
fdb3677129 try only as many data readers as needed for a successful read 2012-03-23 17:13:30 +00:00
Simon Michael
6eb7ad28e1 refactor/beef up readJournal/readJournalFile 2012-03-23 16:21:41 +00:00
Simon Michael
4d7a809c4a cleanups and early code for csv reader based on convert 2012-03-10 21:55:48 +00:00
Simon Michael
2e8cf1c7f2 reader code cleanups 2012-03-10 18:13:32 +00:00
Simon Michael
120a9fd0e1 docs: readJournalFile haddock fix 2012-03-11 21:36:02 +00:00
Simon Michael
9bdb170a0a inferred amounts use the cost commodity if known, like ledger (#69) 2012-01-03 08:15:48 +00:00
Simon Michael
470155dc63 docs: I don't think journalCanonicaliseAmounts affects price amounts 2012-01-03 08:17:04 +00:00
Simon Michael
41c1fa636a parsing: -B/--cost now ignores P historical prices, like ledger 2012-01-22 20:39:11 +00:00
Simon Michael
1bc4d4b395 refactor: clarify mixed amount normalising a bit 2012-01-01 00:39:13 +00:00
Simon Michael
381ebea35c show correct line number for posting parse errors (#67) 2011-10-04 23:39:53 +00:00
Simon Michael
3e3475bd76 web: fix "not:'multi word'" patterns 2011-09-21 00:28:32 +00:00
Simon Michael
de502e732b drop unused TIMELOG env var 2011-09-21 23:12:53 +00:00
Simon Michael
556e3c9246 cli: give literal tilde error also with -f 2011-09-21 23:10:44 +00:00
Simon Michael
f5eecc34a3 cli: give a non-confusing error when literal tilde found in LEDGER_FILE 2011-09-21 22:58:47 +00:00
Simon Michael
f79b272ff3 balance: ledger compatibility fix: don't elide parent accounts with multiple displayed subaccounts 2011-09-22 20:40:06 +00:00
Simon Michael
c22e4e85d0 register: be better at showing empty intervals with --empty and a query pattern 2011-09-23 00:09:39 +00:00
Simon Michael
14881d0515 add: trim whitespace in auto-created journal 2011-09-26 20:56:01 +00:00
Simon Michael
5ccfb9cf7a note the use of unix line endings on all platforms (#51) 2011-09-27 20:55:48 +00:00
Simon Michael
9b2a5f56e1 only the add and web commands auto-create the journal file 2011-09-23 03:53:14 +00:00
Simon Michael
35f3a4fa00 print, web: always show both dates, ignoring --effective (#42)
Ledger shows only the effective date with --effective, but not vice versa.
print is supposed to be information-preserving so this seems better.
This also fixes the web entries view.
2011-09-23 14:50:20 +00:00
Simon Michael
9a0a0be01c docs: whitespace 2011-09-23 14:27:26 +00:00
Simon Michael
1de9cc1d80 fix a regression balancing a transaction containing different prices
And try to clarify amount arithmetic a bit more. More to come I expect.
2011-09-03 21:27:37 +00:00
Simon Michael
6142847dd2 web: fix wrong transaction amount in account register with virtual postings 2011-09-10 20:05:21 +00:00
Simon Michael
8521c07df7 assertParseFailure 2011-05-31 19:48:55 +00:00
Simon Michael
8d62452260 parsing: historical price directives may contain a numeric time zone, like ledger; note that the time is ignored 2011-06-01 01:50:04 +00:00
Simon Michael
946e5ffcbc parsing: parse time of day more carefully 2011-05-31 22:45:54 +00:00
Simon Michael
1f24e025da parsing: make bad date parse error more reliable 2011-05-31 19:49:37 +00:00
Simon Michael
35dcda9e8b fix case insensitivity of command-line filter patterns 2011-06-08 21:52:10 +00:00
Simon Michael
238594d976 type signature for nullposting so tags can find it 2011-06-13 20:59:13 +00:00
Simon Michael
4e9c09fb87 refactor 2011-06-14 14:27:48 +00:00
Simon Michael
4228c901e8 change nulldate 2011-06-14 19:10:16 +00:00
Simon Michael
e36616999d haddock correction: entry is a synonym for transaction, not posting 2011-06-17 18:18:03 +00:00
Simon Michael
92777edc99 docs: haddock tweaks 2011-04-29 03:25:52 +00:00
Simon Michael
287eb6bd00 refactor: drop dropws 2011-07-15 21:58:20 +00:00
Simon Michael
2aedd32690 journalAccountNamesUsed should be sorted 2011-07-17 15:54:21 +00:00
Simon Michael
f2171c1e02 choice' haddock 2011-07-17 17:16:40 +00:00
Simon Michael
9db32e0f60 haddock fix 2011-07-17 23:14:51 +00:00
Simon Michael
55033b6e79 mkdatespan haddock 2011-07-17 15:54:58 +00:00
Simon Michael
a44aa8d7d2 refactor: remove unnecessary LANGUAGE CPP pragmas 2011-07-17 23:29:57 +00:00
Simon Michael
47a9564bdb showJournalDebug 2011-08-02 23:27:41 +00:00
Simon Michael
3364d344d1 refactor: simplify matchers, dropping sense argument 2011-08-07 15:31:00 +00:00
Simon Michael
68c2d0f513 fix matcher parse tests 2011-06-13 21:12:35 +00:00
Simon Michael
789be240b6 fix edate: matcher, should match actual date if no effective date defined 2011-07-01 17:20:04 +00:00
Simon Michael
77ca58269a misc helpers 2011-08-07 15:31:36 +00:00
Simon Michael
b783f25fa8 type signature 2011-08-07 22:29:47 +00:00
Simon Michael
20a45c538d also export trace from Hledger.Utils 2011-08-08 01:34:00 +00:00
Simon Michael
fd13689339 missing type signatures 2011-08-08 01:34:21 +00:00
Simon Michael
0cb0c61fcb fix partial isSingleQuoted/isDoubleQuoted functions 2011-08-14 22:38:51 +00:00
Simon Michael
c24609f468 refactor fixSmartDate* 2011-08-14 22:39:48 +00:00
Simon Michael
931c64221e more useful parse error from fixSmartDateStr 2011-08-08 01:34:43 +00:00
Simon Michael
666218dd62 more quoted string splitting/joining utils 2011-08-15 13:58:16 +00:00
Simon Michael
cbb0fc5c59 move basic reports into hledger-lib 2011-08-15 22:59:06 +00:00
Simon Michael
68f13e18af amount haddock updates 2011-08-31 17:22:53 +00:00
Simon Michael
676845b269 trim even more fat from amounts 2011-08-31 17:44:20 +00:00
Simon Michael
06e224dc4a haddock updates 2011-08-31 17:44:31 +00:00
Dmitry Astapov
2c01541de1 Fix for auto-balancing transactions which have negative amount in the first posting 2011-04-24 22:10:33 +00:00
Simon Michael
b32ee2fa04 fix/rename convertMixedAmountToCommodity, yay release tests 2011-09-02 00:42:41 +00:00
Simon Michael
10fd7ebc42 simplify amounts code, make tests pass 2011-08-31 16:54:10 +00:00
Simon Michael
1273f02a9a more balance/amount clarifications and a test 2011-08-30 11:37:36 +00:00
Simon Michael
059825a9b2 optionsgeddon.. port to cmdargs and a fully modal cli 2011-08-15 22:50:09 +00:00
Simon Michael
47b1142d49 move reports back to Hledger.Cli for now, forgot they still depend on cli options 2011-07-18 23:30:40 +00:00
Simon Michael
e4c4405c62 refactor: simplify some imports 2011-07-17 23:05:56 +00:00
Simon Michael
848a081d29 report haddocks 2011-07-18 00:21:13 +00:00
Simon Michael
df7dc1464e refactor: move basic report generation to hledger-lib 2011-07-17 23:47:52 +00:00
Simon Michael
35f145f03d web: 1. move templates back into main code 2. begin adding content titles 2011-07-01 20:37:48 +00:00
Simon Michael
3dccfcad68 web: show account+subs by default 2011-07-01 00:32:09 +00:00
Simon Michael
05cd38458b web: fix inacctsonly: with spaces 2011-06-24 19:15:00 +00:00
Simon Michael
4bb0f2efbd web: "empty:" to select postings with zero or non-zero amount 2011-06-29 00:53:31 +00:00
Simon Michael
6b92997487 web: "real:1" to select real postings (or transactions with real postings) 2011-06-29 00:31:37 +00:00
Simon Michael
11409bb834 web: "status:" to filter by cleared status 2011-06-28 23:18:36 +00:00
Simon Michael
8d0b42e1d5 web: an "a" parameter specifies a query expression for filtering the accounts sidebar
Useful for ui experiments, at least
2011-06-28 22:34:45 +00:00
Simon Michael
d343614690 web: "inacctsonly:" narrows the sidebar to current account and subs 2011-06-24 18:52:40 +00:00
Simon Michael
d5ab811796 web: inacctsubs: -> inaccts: 2011-06-14 19:21:22 +00:00
Simon Michael
d35fbac422 web: inacctsubs: includes subs in an account register, with confusing balance 2011-06-14 14:29:31 +00:00
Simon Michael
94208e44d5 fix that silly pattern warning 2011-06-13 21:16:10 +00:00
Simon Michael
0c216cb2cd distinguish query search criteria (like acct:) and query options (like inacct:) 2011-06-13 19:46:35 +00:00
Simon Michael
06331c71a8 account register balance not right.. more fixes and plans 2011-06-12 22:35:54 +00:00
Simon Michael
94709e5139 preliminary single-account register report 2011-06-11 16:11:38 +00:00
Simon Michael
d2e6b8cbae query parser fixes, add date: and edate: matching 2011-06-12 18:30:18 +00:00
Simon Michael
957c349780 --alias command-line option 2011-08-05 00:05:39 +00:00
Simon Michael
30b7448f45 parsing: alias/end aliases directives, like ledger's but a bit more powerful 2011-08-04 08:45:18 +00:00
Simon Michael
4015e02097 account directive should preserve virtual/balanced virtual posting type 2011-08-02 23:29:13 +00:00
Simon Michael
345c2343b6 refactor ledgerDirective 2011-08-04 07:49:10 +00:00
Johann Klähn
8e7d20e4d5 parsing: support pop as well as end tag 2011-05-31 17:41:12 +00:00
Simon Michael
75f0886ad4 parsing: make the leading ! in directives optional, like ledger 2011-08-02 23:28:53 +00:00
Simon Michael
d4545966b5 amount code, test cleanups 2011-08-31 00:40:21 +00:00
Simon Michael
379184fd31 Amount haddock & code cleanups 2011-08-30 13:16:30 +00:00
Trygve Laugstol
28dbb8864f Adding basic ledger FORMAT parser. 2011-06-20 21:33:26 +00:00
Simon Michael
96aa9bfc76 matcher improvements, tests 2011-06-11 18:35:20 +00:00
Simon Michael
6a185bc51f refactor: abstract regular expression lib 2011-06-05 18:31:19 +00:00
Simon Michael
5084280879 imports, api cleanup 2011-05-28 04:11:44 +00:00
Simon Michael
b344f797d3 whitespace/quoting utilities 2011-06-05 18:34:12 +00:00
Simon Michael
bea6fb7464 matcher enhancements for account register 2011-06-11 16:00:00 +00:00
Simon Michael
a9eb8b57c2 fix warnings 2011-06-07 06:18:23 +00:00
Simon Michael
9734ed47a6 web: acct: -> in:/inacct:, match only one account (CI exact string match on full name), old acct: re-enabled 2011-06-08 22:02:49 +00:00
Simon Michael
f7956d1ab7 web: account matching works like --related by default; dim excluded accounts
A step closer to working like standard accounting programs where you click
an account to see transactions "in" that account.  acct:PAT (or just PAT)
now matches the other postings in transactions matching the account
pattern, like ledger --related. When matching an account (or several) this
way, the unmatched accounts are dimmed to clarify what's happening.
Still to do: fix the sign of the running total, and find out how this
style of search will really coexist with the other ways of searching.
2011-06-07 06:11:38 +00:00
Simon Michael
32a1b921df consolidate new matching support 2011-06-05 18:36:32 +00:00
Simon Michael
aa41350a16 begin more powerful query expressions (filter patterns) 2011-06-03 23:14:26 +00:00
Simon Michael
dc7a692a19 refactor: remove costbasis and whichdate from FilterSpec 2011-06-03 02:14:36 +00:00
Omari Norman
4ec0cc474f Fix postingCleared for individually-cleared postings
The previous code simply looked directly to the parent transaction's
status to determine whether the posting was cleared. This gave
erroneous information for postings that were individually cleared
even though the parent transaction was not cleared.
2010-12-26 22:39:28 +00:00
Simon Michael
2b1ea5160f change of mind: "every Nth X of Y" intervals' length shall be Y, not X 2011-01-14 05:01:00 +00:00
Simon Michael
810c6a5dac print: don't show a trailing space when description is blank 2011-01-19 18:55:16 +00:00
Simon Michael
8980dd9336 parser cleanup 2011-01-19 23:27:44 +00:00
Simon Michael
0cda8e4c3f add appendFile and hGetContents support to utf8 layer 2011-01-21 01:09:46 +00:00
Simon Michael
46422a7460 copy JGM's utf8 IO module from pandoc 2011-01-21 01:08:12 +00:00
Simon Michael
6a845eb5e4 i18n: always read and write UTF-8, ignoring current locale (#34)
Also remove a bunch of CPP conditions.
Uses the GHC-version-independent UTF-8 layer from pandoc.
2011-01-21 01:24:51 +00:00
Simon Michael
5f1ebc694a parsing: assume current year when transaction dates have no year and there is no default year 2011-03-11 18:45:57 +00:00
Simon Michael
b4eca62334 switch default journal file name to ~/.hledger.journal, to avoid breaking mac filevault (#41) 2011-04-17 20:35:58 +00:00
Simon Michael
44709f1e16 handle a blank LEDGER_FILE or LEDGER value more gracefully (use the default file path) 2011-04-18 05:53:23 +00:00
Simon Michael
eefae63bb6 look at LEDGER_FILE for the journal path, otherwise LEDGER, like c++ ledger 2011-04-17 21:26:46 +00:00
Simon Michael
505d677461 docs: haddock fixes 2011-04-18 06:36:00 +00:00
Simon Michael
9bae97821a really support "every N Xs" reporting intervals, also "every N(st|nd|rd|th) day of (month|week)" 2011-01-14 04:32:08 +00:00
Simon Michael
e96dfc639e support "every N day/week/month/quarter/years" reporting intervals 2011-01-14 02:35:00 +00:00
Simon Michael
6de45f7d16 support "biweekly" and "bimonthly" reporting intervals 2011-01-14 01:22:53 +00:00
Simon Michael
b2f439eb11 try showing integral "maxprecision" amounts without the .0 (except in add's defaults, where it helps) 2011-01-20 00:17:32 +00:00
Simon Michael
bfe935e18c fix a sign bug with negative total-priced (@@) amounts 2011-04-22 13:40:55 +00:00
Simon Michael
091ec4e51f clarify that amount arithmetic does not handle multiple commodities 2011-04-22 13:44:08 +00:00
Simon Michael
137cc8292e amount cleanups 2011-01-19 23:27:11 +00:00
Simon Michael
b159f74a4c zero amounts have no sign or commodity, and amounts with different prices are aggregated, like ledger 2011-04-22 13:50:05 +00:00
Simon Michael
1c7ad7f421 parsing: more careful validation of eg leap years in transaction dates (only) 2011-04-22 13:55:42 +00:00
Simon Michael
33bedcbab0 parsing: infer a conversion price in unpriced two-commodity transactions 2011-01-20 00:18:54 +00:00
Simon Michael
d3663b818e parsing: better international number format support (#32)
This allows period and comma to be used for decimal point and digit group
separator or vice versa, and also flexible digit groups.  See
http://en.wikipedia.org/wiki/Decimal_separator .  Digit group separators
are possibly not worth the trouble and might not stay.
2011-01-19 12:32:18 +00:00
Simon Michael
dd9e78a67a reorganize tests 2010-12-27 20:26:22 +00:00
Simon Michael
e03ada3bd3 parsing: support @@ syntax specifying total price 2011-01-15 02:04:53 +00:00
Simon Michael
631215d5d7 parsing: accept (but ignore) c++ ledger's C commodity conversion directive 2010-11-12 23:55:40 +00:00
Simon Michael
d7617fe154 parsing: ignore cleared flags at the start of postings, parse account name correctly 2010-11-13 20:20:04 +00:00
Simon Michael
0d6e696699 some more tests and fixes for amount & price display precision 2010-11-14 23:29:04 +00:00
Simon Michael
811e71aba7 price precisions don't influence display precision; balancing is based on display precision (#23)
Like ledger, price amounts are now "unobserved", ie their precision does
not affect the canonical display precisions used when displaying amounts,
and transaction balancing is done based on display precision, ie amounts
are considered to balance if their sum appears to be zero when using the
canonical display precision.
2010-11-14 22:44:37 +00:00
Simon Michael
1551a6914b still more amount display helpers 2010-11-13 15:10:06 +00:00
Simon Michael
77519e2c1d remove debug code breaking reports 2010-11-14 18:10:48 +00:00
Simon Michael
e707f97847 parsing: parse transaction and posting metadata, though we don't use it yet 2010-11-13 22:17:32 +00:00
Simon Michael
17d5acf64b refactor: more reader cleanups 2010-11-15 07:18:35 +00:00
Simon Michael
a3a7a346ac uniquify reader module names 2010-11-15 07:01:46 +00:00
Simon Michael
4e672f1722 comments 2010-11-19 17:25:39 +00:00
Simon Michael
d6c2cf6a90 parsing: save final parse context with journal 2010-11-13 15:03:40 +00:00
Simon Michael
7714bab58d web: offer a choice of files to edit when there are multiple (included) files 2010-09-24 01:56:11 +00:00
Simon Michael
78db98366f parsing: support D default commodity directive 2010-11-12 23:54:21 +00:00
Simon Michael
8429df0f32 remember all included file paths, if any 2010-09-22 23:02:19 +00:00
Simon Michael
96036e56a0 docs: comments 2010-09-22 21:51:25 +00:00
Simon Michael
d132f5e45a ledgerInclude cleanup 2010-09-22 21:52:04 +00:00
Simon Michael
c42496b134 sign testing for amounts 2010-07-27 23:20:20 +00:00
Simon Michael
53ab61ea89 docs: haddock 2010-08-03 17:05:02 +00:00
Simon Michael
be94326a03 fix a build error with parsec 3 (#22) 2010-08-12 14:37:11 +00:00
Ben Boeckel
5e576e9ff0 fix-recursive-includes
Fix recursive includes beyond depth 3. Also add a test case for the bug.
2010-09-02 00:30:57 +00:00
Simon Michael
70bd8bb569 tools: handy monadic trace 2010-09-03 23:20:59 +00:00
Simon Michael
334974dedd fix double error message output, clean up some ghc-version-specific imports 2010-09-03 23:39:11 +00:00
Simon Michael
0ea8a67c68 type signature 2010-09-05 16:05:38 +00:00
Simon Michael
d29b393ca2 fix a failing test, handle unicode better in errors 2010-09-05 18:18:50 +00:00
Simon Michael
4cd85ec767 encoded platform string helpers 2010-09-05 18:17:24 +00:00
Simon Michael
ce7e155934 parsing: fix obscured date parse errors with parsec 3; require split
With parsec 3, invalid date errors were not being reported properly.
This should be more robust.
2010-09-03 23:22:58 +00:00
Simon Michael
cf62482102 web: show start and end dates of current filter period in heading, if any 2010-08-01 00:15:21 +00:00
Simon Michael
0773dde872 web: ui cleanups, replace balance/register with combo view 2010-07-27 22:49:45 +00:00
Simon Michael
4120a874d8 test zero to 8 instead of 10 places, workaround for rounding error affecting a real-world transaction 2010-05-25 22:17:54 +00:00
Simon Michael
d52283f314 when reporting a balancing error, convert the error amount to cost 2010-05-25 22:18:36 +00:00
Simon Michael
586c824cac display non-simple commodity names with double-quotes
This ensures print's output remains parseable. The other commands also
double-quote them, for consistency, like c++ ledger.
2010-05-27 01:38:23 +00:00
Simon Michael
63de5e0127 parsing: fix wrong parse error locations within postings 2010-07-08 02:51:17 +00:00
Simon Michael
3e9ad0ae13 parsing: don't let trailing whitespace in a timelog description mess up layout 2010-07-08 03:08:28 +00:00
Simon Michael
4f49094088 refactor: date spans, commodities 2010-07-11 18:56:36 +00:00
Simon Michael
e499efce77 type signature 2010-07-11 22:17:48 +00:00
Simon Michael
b5d1ebba30 print, register, balance: fix layout with mixed-commodity amounts 2010-07-11 22:51:36 +00:00
Simon Michael
2f6b82122f tweak journal file auto-creation, add tests 2010-07-17 00:45:12 +00:00
Simon Michael
aaf14ffda1 fix a cabal dependency issue 2010-07-14 07:08:20 +00:00
Simon Michael
eefb04abfe auto-create missing journal files rather than giving an error 2010-07-13 19:36:43 +00:00
Simon Michael
7d7159609b refactor: much renaming of ledger -> journal, hopefully the right amount 2010-07-13 06:30:06 +00:00
Simon Michael
2a2b896c1d webyesod: validate the journal before accepting an edit 2010-07-09 23:51:49 +00:00