diff options
author | John Wiegley <johnw@newartisans.com> | 2014-05-08 19:22:17 +0000 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2014-05-08 14:28:07 -0500 |
commit | bd8a1a67560f1ff8c443351b55b4731f1be04126 (patch) | |
tree | 71b94cf5fef51f2b3e76ba8b41e02e2fa6613f8d | |
parent | 55ecb9fb62437a8a3a53cfd019392bcbf78f3214 (diff) | |
download | fork-ledger-bd8a1a67560f1ff8c443351b55b4731f1be04126.tar.gz fork-ledger-bd8a1a67560f1ff8c443351b55b4731f1be04126.tar.bz2 fork-ledger-bd8a1a67560f1ff8c443351b55b4731f1be04126.zip |
Use the POST_COST_VIRTUAL flag when exchange commodities
Fixes #999
-rw-r--r-- | src/pool.cc | 3 | ||||
-rw-r--r-- | src/xact.cc | 6 | ||||
-rw-r--r-- | test/regress/999.test | 6 |
3 files changed, 11 insertions, 4 deletions
diff --git a/src/pool.cc b/src/pool.cc index 4526ac0c..71bfab72 100644 --- a/src/pool.cc +++ b/src/pool.cc @@ -267,7 +267,8 @@ commodity_pool_t::exchange(const amount_t& amount, // Do not record commodity exchanges where amount's commodity has a // fixated price, since this does not establish a market value for the // base commodity. - if (! per_unit_cost.is_realzero() && + if (add_price && + ! per_unit_cost.is_realzero() && (current_annotation == NULL || ! (current_annotation->price && current_annotation->has_flags(ANNOTATION_PRICE_FIXATED))) && diff --git a/src/xact.cc b/src/xact.cc index c7a9c6e3..eec4cff3 100644 --- a/src/xact.cc +++ b/src/xact.cc @@ -292,9 +292,9 @@ bool xact_base_t::finalize() _("A posting's cost must be of a different commodity than its amount")); cost_breakdown_t breakdown = - commodity_pool_t::current_pool->exchange - (post->amount, *post->cost, false, ! post->has_flags(POST_COST_VIRTUAL), - datetime_t(date(), time_duration(0, 0, 0, 0))); + commodity_pool_t::current_pool->exchange( + post->amount, *post->cost, false, ! post->has_flags(POST_COST_VIRTUAL), + datetime_t(date(), time_duration(0, 0, 0, 0))); if (post->amount.has_annotation() && post->amount.annotation().price) { if (breakdown.basis_cost.commodity() == breakdown.final_cost.commodity()) { diff --git a/test/regress/999.test b/test/regress/999.test new file mode 100644 index 00000000..9865eeed --- /dev/null +++ b/test/regress/999.test @@ -0,0 +1,6 @@ +2012-03-10 My Brother + Assets:Brokerage 1000 AAPL (@) $1 + Income:Gifts Received + +test prices +end test |