Commit graph

103 commits

Author SHA1 Message Date
John Wiegley
628875b33c Use Boost.Tuple 2012-03-09 03:19:25 -06:00
John Wiegley
21e8b7f6f0 Added nail_down() for pinning market value exprs 2012-03-08 00:55:06 -06:00
John Wiegley
17a84642fb Corrected calculation of market valuation expressions 2012-03-08 00:54:19 -06:00
John Wiegley
97d68ebc8c Added "value" sub-directive for commodity directive 2012-03-06 03:24:06 -06:00
John Wiegley
02ffa7a515 Changed the category of a few DEBUG statements 2012-03-06 02:00:36 -06:00
John Wiegley
8d6bf11334 All tests are working again but one 2012-03-05 05:03:52 -06:00
John Wiegley
5d8cb30774 Implemented first cut at price conversion logic 2012-03-05 05:03:52 -06:00
John Wiegley
e910878312 Changes to get all the code to compile 2012-03-05 05:03:52 -06:00
John Wiegley
48ab6ad1db Switched to using Boost.Graph for commodity pricing 2012-03-05 05:03:52 -06:00
John Wiegley
e2afc783db Increased file copyrights to 2012 2012-02-29 22:32:23 -06:00
John Wiegley
c3a9a7d2c5 Fixed many Clang type conversion warnings with static_cast 2012-02-17 15:17:52 -06:00
John Wiegley
cf4a665a0e Fixes for variable shadowing (6/28) 2012-02-17 15:06:02 -06:00
John Wiegley
f0791bbd72 Cleanup whitespace 2011-08-18 14:48:38 -04:00
John Wiegley
2208ac1226 Fixes for compilation as C++0x code 2011-02-04 22:39:41 -05:00
John Wiegley
48a5823181 Based symbol_needs_quotes an invalid_chars (#386) 2010-07-29 03:45:01 -04:00
John Wiegley
c2a77c1237 Don't elide quotes for all-digit commodities 2010-06-14 03:46:50 -04:00
John Wiegley
dea2aed0b5 Untabified all source files 2010-06-11 17:02:25 -04:00
John Wiegley
8637dd6ccf New display flag AMOUNT_PRINT_ELIDE_COMMODITY_QUOTES
This is used by reports like register and balance so that separated
commodities without spaces in them needed be surrounded by quotes.  It
will still occur in most other places.

Fixes #200 / F82CF11F-BFD9-4512-A562-202B04B68051
2010-06-09 06:45:07 -04:00
John Wiegley
be6cef93c4 A further simplification of -V and -X
With -X COMM, all values are computed in terms of COMM, regardless.

With -V, only secondary commodities will ever be computed, never
primaries.  Further, if a secondary commodities has an associated price,
the valuation is done in terms of that price's commodity.
2010-06-07 09:49:17 -04:00
John Wiegley
653d2bd99a Corrected a verification test 2010-06-05 02:18:01 -04:00
John Wiegley
f16a5382ed commodity_t::find_price now uses memoization
This reduces the slowdown of using -V and -X from 36x in some cases down
to around 4-5x (for a debug build).
2010-06-04 05:16:30 -04:00
John Wiegley
a4a45cb4d6 any and all do not need to be reserved tokens 2010-06-04 03:40:39 -04:00
John Wiegley
b7e8cb9d54 More debug code cleanup 2010-06-04 03:34:56 -04:00
John Wiegley
7f7243ff93 Made the behavior of -V a bit more rational
It now only values non-primary commodities in terms of primary ones.
2010-06-04 03:11:14 -04:00
John Wiegley
2ae2dc86c6 Reorganized some debug code 2010-06-04 02:54:38 -04:00
John Wiegley
45451125e3 Simplified some debug code 2010-06-03 23:23:12 -04:00
John Wiegley
27b86a5388 Avoid unnecessary object copying when using foreach 2010-06-03 17:43:38 -04:00
John Wiegley
038c24357e Changed --european option to --decimal-comma
Fixes #211 / 1736ACA5-5DE6-4826-AEB4-DB5B2A2217AC
2010-06-01 17:56:41 -04:00
John Wiegley
6512201292 Changed a comment 2010-06-01 16:55:24 -04:00
John Wiegley
4ec54b86f8 Added any() and all() value expression macros
any() matches an expression against every post in a transaction or
account, and returns true if any of them are true.  all() tests if all
are true.  For example:

  ledger -l 'account =~ /Expense/ & any(account =~ /MasterCard/)' reg

This reports every posting affecting an Expense account (regex match),
but only if some other posting in the same transaction affects the
MasterCard account.

Both functions also take a second boolean argument.  If it is false, the
"source" posting is not considered.  For example:

  ledger -l 'any(/x/, false)'

This matches any posting where a *different* posting in the same
transaction contains the letter 'x'.
2010-05-08 02:06:06 -04:00
John Wiegley
ab416f759f Updated copyrights to 2003-2010 2010-03-05 22:14:10 -05:00
John Wiegley
6870c54644 Refactored some comparison helper classes 2010-02-05 00:00:38 -05:00
John Wiegley
4e30fcdf40 Many improvements to Ledger's Python bindings 2009-11-19 22:24:24 -05:00
John Wiegley
b2ba07b90c Fixed several time and date duration type uses 2009-11-17 21:28:43 -05:00
John Wiegley
6cdb79e2a6 XML reporting now works via the "xml" command 2009-11-09 03:42:35 -05:00
John Wiegley
2c80227339 Added basic foundation for XML reporting 2009-11-09 02:17:26 -05:00
John Wiegley
c8bab6d1c6 Throw an error if UTF-8 encoding is incorrect 2009-11-07 06:39:14 -05:00
John Wiegley
690e46117e Added Python interface for commodity_t 2009-11-02 21:55:53 -05:00
John Wiegley
e663a13502 Changed protection level of many parts of commodity_t 2009-11-02 17:05:51 -05:00
John Wiegley
3f8c126c79 Use is_annotated() method rather than "annotated" 2009-11-02 16:57:53 -05:00
John Wiegley
094794c640 Added a --european flag, to use commas for decimals
Ledger can often figure this out for itself, but this flag just makes it
the default behavior.  It is meant to be added to one's ~/.ledgerrc
file.
2009-11-02 02:39:31 -05:00
John Wiegley
3909d2678e Removed most #if 0 blocks and callout comments 2009-10-31 04:50:07 -04:00
John Wiegley
cc532c31aa Added TRUE_CURRENT_TIME() macro
Because CURRENT_TIME() can now be a past date if --now is used.
2009-10-28 01:17:54 -04:00
John Wiegley
588f2ef2f5 Fixed many compiler warnings from g++ 4.4 2009-10-25 05:01:39 -04:00
John Wiegley
b90ec25522 Reject downloaded quotes price in the wrong commodity 2009-06-28 15:57:49 +01:00
John Wiegley
1fad2ec7c1 More refactoring for --download 2009-06-24 18:08:56 +01:00
John Wiegley
991e3a3eaf Split commodity.h/cc into three files
commodity.h - code for commodity_t
annotate.h  - commodity annotations
pool.h      - commodity pool management
2009-06-24 16:43:46 +01:00
John Wiegley
440124eacc Restored --download, although not done yet
The problem at this point is that it's recording prices in the price
database multiple times; it should only need to download a price for
each commodity once per day.
2009-06-24 02:44:07 +01:00
John Wiegley
7287aad336 Revert "Added % suffix operator, as in "$1.00 * 10%""
This reverts commit 0e9f782a05.
2009-06-21 17:49:38 +01:00
John Wiegley
86dfc1e0be The -X option now accepts price settings
For example, if you had 100 AU (onces of gold) and wanted to report it
in dollars, but at a price of $997 per ounce, you could now easily say:

  ledger bal -X '$,AU=$997'
2009-06-18 18:50:49 +01:00