Julien Moutinho
c65fea2b4b
lib: fix combineJournalUpdates folding order
...
NOTE: this is important to correctly build JournalContext
NOTE: currently a list reverse must done at the end,
maybe using a Data.Queue would be more efficient.
2014-12-11 04:37:10 +01:00
Simon Michael
d352bbedd2
cli: with a repeated flag, the last takes precedence
...
This is helpful eg for customising your reporting command aliases on the fly.
2014-12-04 12:41:47 -08:00
Simon Michael
bd39e5df99
showDateSpan: handle boundary-crossing 1-day spans
...
Eg recognise that 2014/11/30-2014/12/1 can be abbreviated to
2014/11/30d, similarly 2014/12/31-2015/1/1. Doesn't handle feb 29th
correctly, so eg 2000/2/28-2000/3/1 is wrongly abbreviated to
2000/2/28d.
2014-12-03 18:18:05 -08:00
Julien Moutinho
cf28985cf2
lib: move from Text.ParserCombinators.Parsec to Text.Parsec
...
NOTE: required to use liftIO in includedirective
SEE: http://www.vex.net/~trebla/haskell/parsec-generally.xhtml#IO
2014-11-20 10:08:30 +01:00
Simon Michael
23fb4ffd84
export failIfInvalidMonth/Day ( fixes #216 )
2014-10-30 07:58:15 -07:00
Simon Michael
d25fe21834
apply all matching account aliases, not just one directive and one option
2014-10-29 08:20:27 -07:00
Simon Michael
e892fdc6d5
parsing: aliases now match by regular expression
...
alias match patterns (the part left of the =) are now case-insensitive
regular expressions matching anywhere in the account name. The
replacement string (the part right of the =) can replace multiple
matches within the account name. The replacement string does not yet
support any of the usual syntax like backreferences.
2014-10-24 15:05:10 -07:00
Simon Michael
7f6cf1f849
balance, register, register-csv: depth 0 shows summary items ( #206 )
...
Previously, a depth:0 query produced an empty report (since there are no
level zero accounts). Now, it aggregates all data into one summary item
with account name "...".
This makes it easier to see the kind of data Gwern was looking for from
register-csv (net worth over time). Eg this shows one line per month
summarising the total of assets and liabilities:
hledger register-csv -- -MHE ^assets ^liabilities depth:0
Single and multi-column balance reports behave similarly.
2014-10-19 17:53:20 -07:00
Simon Michael
e8a58d9388
cli: add a hidden --version+ flag showing number representation ( #118 )
2014-10-18 12:35:58 -07:00
Simon Michael
3b70362525
switch to Decimal for representing quantities ( closes #118 )
...
hledger has represented quantities with floating point (Double) until
now. While this has been working fine in practice, the time has come to
upgrade our number representation to something more principled: Decimal,
for now. As a bonus, this brings a ~30% speed boost to most reports.
We'll keep the old representation(s) around for a while, selectable via
hledger-lib cabal flag, for research/testing/benchmarking purposes. To
build with the old Double representation: cabal install -fdouble
hledger-lib hledger hledger-web
2014-10-18 12:33:31 -07:00
Simon Michael
e888be0bf4
clarify similarAmountsOp doc
2014-10-18 10:45:17 -07:00
gwern
d1618aaca8
strip trailing whitespace from all Haskell files
2014-10-14 18:48:24 -07:00
Simon Michael
aa85e786b9
register: describe datespans briefly, like balance
...
Eg instead of 2014/01/01 - 2014/01/31, show 2014/01, as in a multicolumn
balance report. The data model is not very elegant, but works for now.
2014-08-08 07:34:11 -07:00
Simon Michael
a0010a294f
cli: smart dates must use a consistent separator
...
Along with the preceding commits, this means that date:2014-8/1 is now
parsed as 2014/01/01-2014/08/01 as intended, not 2014/08/01.
2014-08-08 07:21:02 -07:00
Simon Michael
632dee668d
parse period expressions and date: more strictly
...
Period expressions and date: query terms must now be parseable all the
way to their end; we won't ignore unparseable trailing bits.
2014-08-08 07:21:02 -07:00
Julien Moutinho
a6190420b2
data: add source location to transactions
2014-08-07 16:38:44 +02:00
Simon Michael
40ab1e17f6
amounts cleanups, and support zeros with commodity
2014-07-28 18:45:13 -07:00
Simon Michael
1333b2650a
more showDateSpan cleanup
2014-07-26 17:07:36 -07:00
Simon Michael
a7f7c3181f
balance: show compact headings for common intervals
...
In periodic multicolumn balance reports, column headings now show a more
compact description of common periods (years, half-years, quarters,
months, weeks) for better readability and screen space efficiency.
2014-07-26 16:54:18 -07:00
Simon Michael
f2d9c6e9c1
web: more register chart improvements
...
- show a background color for future and less-than-zero regions
- show points for transactions, not all line corners
- hovering over point shows balance, date, posted amount and transaction
- clicking a point scrolls towards that date
2014-07-18 16:45:46 -07:00
Simon Michael
b3da48aaa0
identify the commodity in balance assertion errors
...
Now that balance assertions are checking only a single commodity, it can
be confusing. Eg say all your amounts are in dollars, an assertion like
"= 0" checked the dollar balance in hledger 0.23 but always succeeds in
hledger 0.24. When an assertion fails, we now report which commodity was
checked to help troubleshooting.
2014-07-17 15:23:03 -07:00
Simon Michael
19d42f8c99
clarify failed balance assertion message
2014-07-15 06:55:46 -07:00
Simon Michael
16f8b78305
balance: show multi-commodity amts on one line ( fixes #186 )
...
To avoid totally breaking the layout of multicolumn balance reports when
there are multi-commodity balances, these are now rendered on a single
line, comma separated. Simple balance reports still use the old vertical
format for now.
2014-07-03 07:45:55 -07:00
Simon Michael
c31710d942
look harder for decimal point & digit groups ( fixes #196 )
...
Amount display styles have been reworked a bit; they are now calculated
after journal parsing, not during it. This allows the fix for #196 :
we now search through the amounts until a decimal point is detected,
instead of just looking at the first one; likewise for digit groups.
Digit groups are now implemented with a better type.
Digit group size detection has been improved a little:
1000,000 now gives group sizes [3,4,4,...], not [3,3,...], and
10,000 gives groups sizes [3,3,...] not [3,2,2,..].
(To get [3,2,2,...] you'd use eg 00,00,000.)
There are still some old (or new ?) issues; I don't think we handle
inconsistent decimal points & digit groups too well. But for now all
tests pass.
2014-07-02 23:26:16 -07:00
Simon Michael
330dfe6891
commodity & amount style parser cleanups, part 2
2014-07-02 17:41:33 -07:00
Simon Michael
9b4b85b4bf
commodity & amount style parser cleanups
2014-07-02 11:23:30 -07:00
Simon Michael
8ae303f685
assert only a single commodity, like Ledger ( fixes #195 )
...
This change means you can make assertions on a multi-commodity account
balance (asserting one commodity at a time). On the flip side, you can
no longer assert the complete balance of an account (new unexpected
commodities will not be detected.) We might restore that ability later,
using the == syntax.
2014-07-02 07:35:06 -07:00
Simon Michael
0c3148ac7b
add an --ignore-assertions flag
...
Can be helpful when reading Ledger files, where assertions may have
different semantics; or for getting some answers from your journal
to help you fix your assertions.
Could be called --no-assertions, but this might create surprise when it
has an effect contrary to --no-new-accounts.
I had to add another flag throughout the parsers & journal read
functions, ok for now.
2014-07-01 18:26:37 -07:00
Simon Michael
b22cb66319
refactor amount filtering helpers
2014-05-23 13:10:36 -07:00
Simon Michael
cf3d21afef
csv and general reader fixes, cleanups
...
- The CSV reader no longer writes a "(stdin).rules" file when reading
from stdin.
- Selection of reader(s) is now smarter when input is coming from stdin.
Previously, all readers were considered applicable for stdin. This
meant that when reading a CSV file from stdin, the journal and timelog
readers were always tried first, and if the CSV file was unparseable,
you'd see the first (journal) reader's error instead of the CSV
reader's. Now, the readers do some basic content sniffing when
reading stdin, so it generally tries only the one right reader and
we'll see the right errors.
- The read system now has more debug output.
2014-05-09 17:55:32 -07:00
Simon Michael
88f18adbc4
show posting dates in debug output
2014-05-06 21:35:38 -07:00
Simon Michael
70ad5b26ff
journal: really don't parse + before an amount as part of the commodity ( fixes #181 harder)
2014-04-30 11:28:47 -07:00
Simon Michael
eeb48c86d1
default report dates come from secondary dates with --date2
2014-04-24 14:44:30 -07:00
Simon Michael
3ed82bd231
default report dates now include postings dated outside the transaction dates span
...
journalDateSpan now looks at posting dates as well as transaction dates.
2014-04-24 14:28:20 -07:00
Simon Michael
6af5e6fe06
note potentially useful interval algebra link
2014-04-19 11:45:47 -07:00
Simon Michael
1fca3e7472
orDatesFrom -> spanDefaultsFrom
2014-04-19 08:38:03 -07:00
Simon Michael
01e5a2245d
clarify balance assertion error slightly
2014-04-16 14:45:41 -07:00
Simon Michael
0d1d3ed057
fix an error when running an addon with an argument containing a single quote
...
More crazy quote engineering.. seems more robust than before.
2014-04-15 11:45:30 -07:00
Simon Michael
020975555e
clarify splitSpan function
2014-04-14 08:31:34 -07:00
Simon Michael
746f22458f
fix a warning
2014-04-14 08:31:11 -07:00
Simon Michael
a761ae5b86
balance: support --date2 in multicolumn reports (cf #174 )
2014-04-13 15:14:07 -07:00
Simon Michael
424db9a09e
register: support --date2 with a report interval ( fixes #174 )
2014-04-13 14:57:40 -07:00
Simon Michael
029528519c
remove out of date comment
2014-04-03 18:55:43 -07:00
Simon Michael
6a928a03a8
overhaul single- and multi-column balance reports
...
Changes include:
- flat mode now shows exclusive (subaccount-excluding) balances.
This is a deviation from ledger, but seems simpler and clearer
for users and implementors across the various modes.
- in flat mode, --depth now aggregates deeper accounts at the
depth limit, rather than just excluding them from the report.
This is more useful.
- in flat mode, --empty no longer shows parent accounts with
no postings.
- more tests, more debug output, clearer code
2014-04-03 18:49:57 -07:00
Simon Michael
4dc61e76bf
test and fix display of zero-balance leaves ( fixes #170 )
2014-04-03 18:49:57 -07:00
Simon Michael
cf254b0da3
show anumpostings in Account's show instance
2014-04-03 18:49:57 -07:00
Simon Michael
d21085cc6e
an Account now knows how many postings it has
2014-04-03 18:49:57 -07:00
Simon Michael
2844333857
less debug output from some low-level functions
2014-04-03 18:49:57 -07:00
Simon Michael
f409f72899
force DateSpans to line-wrap better in debug output
2014-04-03 18:49:57 -07:00
Simon Michael
21575ed47b
more verbose Amount debug output at level 6+
2014-04-03 18:49:56 -07:00
Simon Michael
874c467789
briefer mixed amount debug output below level 3
2014-04-03 18:49:56 -07:00
Simon Michael
b69e6c6946
unused extensions
2014-03-28 16:23:40 -07:00
Simon Michael
882a9dbf1c
cli, report & raw options cleanups
2014-03-25 19:03:56 -07:00
Peter Simons
6319ecd0b7
showDateSpan: remove redundant local definition of showDate
2014-03-22 12:03:00 +01:00
Peter Simons
a56231751f
showDate: use '%0C' to get a two-digit century with time-1.4.0.1 or later
2014-03-22 12:02:22 +01:00
Simon Michael
712e6f1e36
register: fix tag: matching all sibling postings
2014-03-05 14:43:58 -08:00
Simon Michael
7291977e6f
rename Format to StorageFormat
2014-03-02 13:37:10 -08:00
Simon Michael
dd2f293094
rename FormatString to OutputFormat
...
It was going to be Format, but that clashes with file format. Press on.
2014-03-02 13:33:56 -08:00
Simon Michael
6f49263c9b
print: tag queries will match transactions whose postings contain the tag
2014-03-01 17:42:13 -08:00
Simon Michael
46d594bada
balance, register now filter more strongly by sym:
2014-02-27 17:47:47 -08:00
Simon Michael
f87a68999f
mention the often-overlooked 2-space rule in the too many missing amounts error
2014-01-24 15:28:37 -08:00
Simon Michael
d55f686f68
avoid a Text.Printf name collision with GHC 7.7+ ( fixes #153 )
2014-01-10 08:29:25 -08:00
Simon Michael
c53732a4af
balance: new multi-column reports & documentation
...
Two new multi-column balance report modes show ending balance per
period: `--cumulative`, starting from 0, and `--historical`, starting
from the historical starting balance.
The balance command's specification has been clarified and consolidated
in the Balance.hs haddock. Reports.hs has also had haddock updates. The
old AccountsReport type is now BalanceReport, still used by
single-column balance report. The new MultiBalanceReport type is used by
the multi-column reports.
2013-12-07 05:43:31 -08:00
Simon Michael
13641eab66
debug level sets amount/journal show verbosity
...
Amounts and journal values are often rendered too verbosely in debug
output, obscuring what's important. Here we try adjusting the level
of detail in the Show instance based on the global debug level.
Needs more work.
2013-12-06 13:51:19 -08:00
Simon Michael
22a8020296
make most types instances of Data (and Typeable)
...
This allows them to be pretty-printed with pprint (from data-pprint)
when debugging, and shouldn't have much impact otherwise.
2013-12-06 13:19:43 -08:00
Simon Michael
7e06a6a24c
balance: basic multi-column balance (change) reports
2013-09-26 15:06:48 -07:00
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
f9656a21af
print: comment positions (same line or next line) are now preserved
2013-09-10 10:32:49 -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
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
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
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
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
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
8b4a99c4d5
79: convert: add a skip-lines directive (Magnus Henoch)
2012-11-18 18:21:52 +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
1c1058be4e
70: ignore ledger's fixed lot price declarations
2012-11-17 02:40:27 +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
34318906d8
register, print: fix reverse ordering of same-day transactions
2012-06-29 18:06:58 +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
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
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
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
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
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
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
6eb7ad28e1
refactor/beef up readJournal/readJournalFile
2012-03-23 16:21:41 +00:00
Simon Michael
2e8cf1c7f2
reader code cleanups
2012-03-10 18:13:32 +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
3e3475bd76
web: fix "not:'multi word'" patterns
2011-09-21 00:28:32 +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
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
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
2aedd32690
journalAccountNamesUsed should be sorted
2011-07-17 15:54:21 +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
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
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
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
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
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
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
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
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
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
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
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
Simon Michael
70bd8bb569
tools: handy monadic trace
2010-09-03 23:20:59 +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
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
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
7d7159609b
refactor: much renaming of ledger -> journal, hopefully the right amount
2010-07-13 06:30:06 +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
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