Commit Graph

2270 Commits

Author SHA1 Message Date
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
Trygve Laugstøl
170154edfb explicit-rules-file-argument-and-converting-stdin
* Adding support for telling which rules file to use with "--rules FILE".
* Adding support for using stdin when converting files.
2011-05-29 19:22:55 +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
Simon Michael
910e5c2bee bump version 2011-09-02 00:42:50 +00:00
Simon Michael
ac5059ea53 bump version 2011-05-24 04:28:21 +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
7ee69f5ed8 docs: harmonise/update package descriptions 2011-04-19 00:50:47 +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
e973868995 bump version 2011-04-18 06:53:50 +00:00
Simon Michael
9f66549b5a bump version to alpha 2011-01-21 01:27:39 +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
a85e9bf68b fix hledger cabal file, cleanup 2010-09-10 01:45:12 +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
cc2e5419f2 lib: cabal fix 2010-11-15 23:26:04 +00:00
Simon Michael
4e672f1722 comments 2010-11-19 17:25:39 +00:00
Simon Michael
1daed8120e bump all but chart to beta status 2010-11-26 19:59:23 +00:00
Simon Michael
15518da4ac bump version 2010-12-06 18:37:10 +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
9cb716d002 packagegeddon.. split off web/chart/vty, move hledger to a subdir 2010-09-09 22:54:34 +00:00
Simon Michael
314ff84fc1 installing: tighten up utf8-string dependency 2010-09-06 19:21:34 +00:00
Simon Michael
8052cb3364 bump version 2010-09-06 20:13:09 +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
3531d4d54d move split dependency to the right cabal file 2010-09-05 18:25:20 +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
58e74ec857 bump version 2010-09-05 22:46:24 +00:00
Simon Michael
a8ab0906fd bump version 2010-07-25 21:26:24 +00:00
Simon Michael
3436a27e68 installing: require cabal 1.6 or greater, set source-repository url 2010-09-05 22:49:20 +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
0e40a9deee bump version 2010-07-17 22:02:47 +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
4dac3af181 bump convertible-text dependency to relax time dependency 2010-07-17 20:35:25 +00:00
Simon Michael
f9005f8aee installing: constrain hledger-lib's time dependency to suit current hledger+yesod 2010-07-10 13:56:23 +00:00
Simon Michael
02706b66e7 update version 2010-07-17 21:01:07 +00:00
Simon Michael
4d5683d0a1 tools: bump version to indicate work-in-progress/prerelease status 2010-07-09 02:12:29 +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
Simon Michael
aa21f95b9e webyesod: a destructive wiki-style edit form for journals
Warning: this is the first hledger feature which can alter your existing
journal data.  You can now edit, or ERASE, the (top-level) journal file
through the web ui, and there is no access control. A numbered backup of
the file will be saved at each edit, in normal circumstances.
2010-07-09 23:00:04 +00:00
Simon Michael
73572e2d85 balance: with --flat, --drop N elides leading account name components. Feature or frill ? 2010-05-24 20:45:48 +00:00
Simon Michael
2f2e500eae rename -fweb to -fweb610 and -fwebyesod to -fweb, misc cabal and docs cleanups 2010-07-10 13:58:35 +00:00
Simon Michael
8a64792ba7 smarter file reading: detect (or specify) intended data format and show appropriate error messages
New data reader modules need to provide just reader :: Reader, which is
the format name, a detector predicate, and a parser.
2010-06-25 14:56:48 +00:00
Simon Michael
1ec1f7c4ea more file reading cleanup, try each known format in turn
Currently this is just the journal and timelog file formats.  This is more
scalable, but when things go wrong there is no longer just a single parse
error. For now we'll just show the first error, the one from the journal
file parser.
2010-05-31 01:15:18 +00:00
Simon Michael
a848a835a2 clean up and combine I/O and parsing under Hledger.Read.*
This facilitates adding readers for new data formats. Timelog parsing is temporarily broken.
2010-05-30 19:11:58 +00:00
Simon Michael
f168124501 parsing: allow - before commodity symbol as well (also fixes a convert bug) 2010-05-26 23:44:08 +00:00
Simon Michael
b97d2690de parsing: more robust double-quoted commodities - anything but a space or newline or double quote 2010-05-27 01:31:50 +00:00
Simon Michael
3305141206 parsing: allow spaces in double-quoted commodity symbols 2010-05-27 00:56:35 +00:00
Simon Michael
856f1f965a docs: hledger-lib module haddock updates 2010-05-27 03:58:47 +00:00
Simon Michael
a048705542 doc: comment 2010-04-14 16:19:01 +00:00
Simon Michael
331ed6b407 refactor: cleanup 2010-04-14 21:37:03 +00:00
Simon Michael
b19b02962a parsing: date parsing overhaul, don't exit on bad dates
- get rid of undefined parse errors due to guard
- don't call error from date parsers; let add re-prompt on bad dates
- years now must always have at least four digits
- clearer date parse errors
2010-04-14 21:49:34 +00:00
Simon Michael
a90d32ae78 hledger-lib requires safe 2010-04-14 22:38:54 +00:00
Simon Michael
f46cf82bed parsing: simpler high-level parse error message 2010-04-15 16:14:50 +00:00
Simon Michael
bba4a32339 print: negative account patterns now exclude transactions containing any posting to a matched account 2010-04-15 23:08:27 +00:00
Simon Michael
ea14c64b20 bump version 2010-05-19 20:11:36 +00:00
Simon Michael
81e9e720ea bump (and fix) version 2010-04-15 15:07:44 +00:00
Simon Michael
65cf381dbc parsing: timelog entries now generate balanced transactions, using virtual postings 2010-05-23 18:54:14 +00:00
Simon Michael
be30aac3f5 fix an occasional stack overflow error due to infinite recursion in Posting/Transaction equality tests
This was happening with balance command on certain timelog entries, since 0.8.
Now, when testing two postings for equality, their parent transaction's identity is ignored.
2010-05-22 00:45:35 +00:00
Simon Michael
91b7736a8b include file name in a journal's string representation 2010-05-23 22:15:08 +00:00
Simon Michael
a8d86fb5e5 web: fix loss of file path when reloading the journal 2010-05-23 22:24:30 +00:00
Simon Michael
bf5ee88a30 refactor: clarify the roles of Journal (primary data) and Ledger (derived report) 2010-05-23 17:41:25 +00:00
Simon Michael
70576e87d1 refactor: move post-parse processing into parseJournal 2010-05-22 23:35:34 +00:00
Simon Michael
10c0a9a958 refactor: take an axe to canonicaliseAmounts 2010-05-22 20:23:36 +00:00
Simon Michael
a430badb85 refactor: journalCloseTimeLogEntries 2010-05-22 19:00:20 +00:00
Simon Michael
11d354d426 refactor: renames and cleanups 2010-05-22 22:05:12 +00:00
Simon Michael
a3e5e7ce93 refactor: more ledger cleanup 2010-05-22 19:01:11 +00:00
Simon Michael
5982460782 refactor: clarify ledger construction a bit 2010-05-22 16:14:30 +00:00
Simon Michael
557746da5e remove redundant imports revealed by ghc 6.12 2010-05-22 15:33:51 +00:00
Simon Michael
7d4593cee9 move Ledger.* to Hledger.Data.* 2010-05-19 23:08:53 +00:00
Simon Michael
5451e3ad40 parsing: balance real and balanced virtual postings separately, allow an amount-less balanced virtual posting 2010-04-14 16:59:02 +00:00
Simon Michael
77f64a7ddf parsing: if there is no description, don't require a space after the transaction date 2010-04-15 20:44:04 +00:00
Simon Michael
4cd2364154 refactor 2010-02-27 17:50:25 +00:00
Simon Michael
6476d638f9 sumPostings should always preserve highest precision 2010-02-27 17:54:58 +00:00
Simon Michael
278e5dde64 amount display tests, fix a case where "auto" amount was displayed as 0 2010-03-09 04:11:23 +00:00
Simon Michael
3aa8613fa5 document some unsafe date parsing 2010-03-09 17:38:12 +00:00
Simon Michael
4973b82fb4 parsing: don't ignore trailing junk in a smart date, eg in web add form 2010-03-09 23:11:12 +00:00
Simon Michael
8daa9a33cd refactor 2010-03-09 18:33:26 +00:00
Simon Michael
7b026ef6f4 parsing: allow transactions with empty descriptions 2010-03-10 01:25:02 +00:00
Simon Michael
a6b7ef597f fix extra newline in balance error msg 2010-03-09 23:06:27 +00:00
Simon Michael
41b60bbcfc when a transaction is unbalanced, show by how much; refactor 2010-02-27 18:06:29 +00:00
Simon Michael
723c96834c tweak txn balancing error message 2010-03-09 18:34:20 +00:00
Simon Michael
5476a292ad docs: haddock fixes 2010-03-13 00:17:47 +00:00
Simon Michael
d028e9eb17 refactor 2010-03-13 01:16:59 +00:00
Simon Michael
fd8ebd7c3d parsing: more tests, ignore D, C directives; we should now accept any ledger 2.6 file 2010-03-13 01:10:10 +00:00
Simon Michael
8fd94ef6f5 refactor: parser cleanup 2010-03-12 23:46:20 +00:00
Simon Michael
dbb8576d8b don't ignore unparsed text following an amount 2010-04-05 20:37:19 +00:00
Simon Michael
298d192678 register: fix a regression, register should not show posting comments 2010-02-15 20:33:49 +00:00
Simon Michael
e4cd127fc4 print: always show zero amounts as 0, hiding any commodity/decimal places/price, like ledger 2010-03-09 04:12:38 +00:00
Simon Michael
57c537de41 parsing: N, tag, end tag are now ignored; ledger sample.dat parses 2010-03-12 22:52:57 +00:00
Simon Michael
6977a0eecb parsing: allow numbers in commodities if double-quoted, like ledger 2010-04-05 20:55:57 +00:00
Simon Michael
f92270dfa8 refactor: move parse tests 2010-03-11 17:16:03 +00:00
Simon Michael
903bf23afd refactor 2010-03-09 04:03:51 +00:00
Simon Michael
eedf0b211a refactor 2010-03-09 03:52:17 +00:00
Simon Michael
993972549a refactor 2010-03-09 01:43:25 +00:00
Simon Michael
08607362b0 refactor assertParse/assertParseEqual 2010-03-10 19:48:46 +00:00
Simon Michael
f937f59276 assertParse now generates test failures 2010-03-10 19:17:32 +00:00
Simon Michael
b2c8933af4 parsing: show a better error for illegal month/day numbers in dates 2010-04-06 02:31:47 +00:00
Simon Michael
599398baa3 register: fix bad layout with years < 1000 2010-02-16 21:59:53 +00:00
Simon Michael
fad392e7e9 hledger-lib: docs update 2010-04-10 00:42:16 +00:00
Simon Michael
ca136dca7f bump version 2010-04-10 00:51:06 +00:00
Simon Michael
1c46417bed split off hledger-lib package, containing core types & utils 2010-03-22 01:44:59 +00:00