Commit graph

1199 commits

Author SHA1 Message Date
John Wiegley
a56a1db662 When creating temporary accounts, transfer flags 2010-02-02 16:25:46 -05:00
John Wiegley
b76aea7c0b Added a debug statement for report.predicate 2010-02-02 16:25:31 -05:00
John Wiegley
0be486c58b Fixed assertion failure in -M -A bal report 2010-01-21 04:59:45 -05:00
John Wiegley
d406aeb85d Guard against divide by zero error in -A reg report 2010-01-21 04:57:15 -05:00
John Wiegley
61edd3d8f4 Fixed account display bug in the balance report 2010-01-21 04:55:11 -05:00
John Wiegley
590ba76bd1 Restore "-p this" option (aka -p 'this month') 2010-01-21 04:33:56 -05:00
John Wiegley
67ce17e249 Guard against using an uninitialized value
Fixes DDB54BB8-8C1C-4129-A137-07A38068F3BE
2010-01-18 03:41:20 -05:00
John Wiegley
d176abf625 Fix for date parsing when no year is given 2010-01-16 21:12:13 -05:00
John Wiegley
f1a2a5a18d Cost of a post with neg. amount should be negative 2009-12-07 21:23:50 -05:00
John Wiegley
6d0ab845ea Allow relative includes in the current directory 2009-12-07 20:43:17 -05:00
John Wiegley
72aa0e0e44 Added some debugging code related to boost::regex 2009-11-25 04:40:03 -05:00
John Wiegley
2c90c10db1 Added support for a "fixed" directive
It lets you specify a fixed cost for a duration of a ledger file, for
example:

  fixed ecu $2

  2008/01/01 income
      assets🏦checking  1 ecu
      income:salary

  end fixed

This is equivalent to:

  2008/01/01 income
      assets🏦checking  1 ecu {=$2}
      income:salary
2009-11-25 04:39:59 -05:00
John Wiegley
a7424c1df9 Added a trim() value expression function 2009-11-25 02:48:58 -05:00
John Wiegley
4141afbfae * and | now comment chars, for the sake of Org-mode 2009-11-25 02:36:32 -05:00
Aristid Breitkreuz
6df3ea10f7 Added options: --unrealized-gains and --unrealized-losses
These options allow the user to specify what accounts names should be
used for these two types of accounts.  They are optional, and default
to:

  --unrealized-gains "Equity:Unrealized Gains"
  --unrealized-losses "Equity:Unrealized Losses"

These are intended to be set in one's ~/.ledgerrc file.
2009-11-24 05:08:28 -05:00
John Wiegley
11a217a481 Very minor but easy optimization for symbol_scope_t
Lots of symbol_scope_t throwaway objects get created during value
expression calculation, and 99% of them are never used.  Therefore, the
std::map which each contains is now within an optional<> wrapper, so
that no constructor happens unless one is actually used.
2009-11-24 04:14:34 -05:00
John Wiegley
b1d6ea876c Don't migrate commodity details from pricing entries 2009-11-24 03:25:46 -05:00
John Wiegley
68c3a9cfb7 Whitespace fix 2009-11-24 01:27:54 -05:00
John Wiegley
98fdb135c8 Added even more missing virtual keywords! 2009-11-22 23:13:48 -05:00
John Wiegley
acb24d6d22 Added several more missing virtual keywords 2009-11-21 07:10:57 -05:00
John Wiegley
ca1d4c5311 Added a missing virtual keyword 2009-11-21 05:38:38 -05:00
John Wiegley
5d4a0a39be The Python web server now uses jQuery Tablesorter 2009-11-21 02:06:01 -05:00
John Wiegley
d5e957204c Fixed Ledger/Python byte vs. char Unicode bridge 2009-11-20 23:23:44 -05:00
John Wiegley
bd455c9874 Added string conversion op for amounts and balances 2009-11-20 23:23:22 -05:00
John Wiegley
8c18f66dec Don't rely on the integral value of a boolean 2009-11-20 18:03:35 -05:00
John Wiegley
aa086686ea Normalized the value() method for Python numerics 2009-11-20 17:40:15 -05:00
John Wiegley
b00e7ac19a Added more documentation to python/demo.py 2009-11-20 05:56:24 -05:00
John Wiegley
4e30fcdf40 Many improvements to Ledger's Python bindings 2009-11-19 22:24:24 -05:00
John Wiegley
63fee4c837 Added an --unrealized option, for use with bal -V
When this option is on, then in balance report which show market values,
any gains or losses in value will be balanced into a pair of accounts
called Equity:Unrealized Gains and Equity:Unrealized Losses.
2009-11-19 02:00:10 -05:00
John Wiegley
3f1861fb1e Fixed a debug string 2009-11-19 01:27:10 -05:00
John Wiegley
0c3a6234a9 Don't auto-sort transactions for the balance report 2009-11-19 01:26:50 -05:00
John Wiegley
20965d9fa3 Changed several pointers to references in filters 2009-11-19 01:26:34 -05:00
John Wiegley
ae8b57f157 Renamed bool controlling running total calculations
It used to be "account_wise", since it only happens for non-account-wise
reports.  Now it's called just "calc_running_total", so anyone can
request it.
2009-11-18 23:25:28 -05:00
John Wiegley
56d6df6123 Decompile all amount expressions for accounts reports
This happens after running through all the post handlers, before running
any of the account handlers.
2009-11-18 23:19:52 -05:00
John Wiegley
e27ba3e1ff It's OK for a report query to be empty
It's always possible the user only specified a display predicate.
2009-11-18 23:19:51 -05:00
John Wiegley
93b8f3fe54 Whitespace fix 2009-11-18 23:14:07 -05:00
John Wiegley
539887b3fb Changed only_preliminaries to for_accounts_report 2009-11-18 23:13:33 -05:00
John Wiegley
cd284f98c8 Added an ACCOUNT_GENERATED flag 2009-11-18 23:12:31 -05:00
John Wiegley
9a389650ea Allow ! and - operators on sequence values 2009-11-18 16:56:58 -05:00
John Wiegley
97122cf1f7 Wasn't serializing date_range_t::end_inclusive member 2009-11-18 16:44:07 -05:00
John Wiegley
6cd0ba584e Guarded some debug code 2009-11-18 05:50:21 -05:00
John Wiegley
e4b3f0bb3a The new period parser is passing all tests 2009-11-18 05:45:48 -05:00
John Wiegley
7fe369eb49 The new period parser is implemented, but untested 2009-11-18 04:11:14 -05:00
John Wiegley
fe9af7ace7 Added a "range" member to date_interval_t
This is used to define the beginning/ending ranges of the time period,
before it becomes fixed (by calling stabilize()) and then sets the
values of start and end.
2009-11-18 01:28:01 -05:00
John Wiegley
3e91c3bf2c Added several new types for working with dates and ranges
date_specifier_t ::
    This is like a plain date_t, except it knows what wasn't specified.
    For example, if 2008/06 is parsed, it becomes date_specifier_t which
    knows that no day was given.  If you ask for the begin() date of the
    specifier, it will be 2008/06/01; the end() date (which is
    exclusive) will be 2008/07/01.

  date_range_t ::
    A date range is a range of two specifiers, either of which (but not
    both) may be omitted.  This makes it possible to represent
    expressions like "from june to july", where no day or year is given.
    The exact dates will be inferred by using the current year, and
    fixing the range from YEAR/06/01 to YEAR/07/01.  That is, the range
    goes from the begin() of one date specifier to the begin() of the
    other.

  date_specifier_or_range_t ::
    A variadic type that can be either a date_specifier_t or a
    date_range_t.  It's just a wrapper to represent the fact that ranges
    can be implicit via specifiers (such as, "in june"), or explicit via
    ranges ("since 2008").
2009-11-17 22:23:46 -05:00
John Wiegley
d6cb382b20 Moved date_interval_t::duration_t to date_duration_t 2009-11-17 22:12:17 -05:00
John Wiegley
a866f39210 Added a date_traits_t type 2009-11-17 22:03:32 -05:00
John Wiegley
c28d828d8e Renamed date_interval_t::end to finish 2009-11-17 21:51:51 -05:00
John Wiegley
4bc830a2c5 Some reformatting in query.h 2009-11-17 21:29:33 -05:00
John Wiegley
b06df8533b Added ledger::string(Iter, Iter) constructor 2009-11-17 21:28:56 -05:00