diff options
-rw-r--r-- | 95350193.test | 6 | ||||
-rw-r--r-- | src/pool.cc | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/95350193.test b/95350193.test new file mode 100644 index 00000000..dadb39cf --- /dev/null +++ b/95350193.test @@ -0,0 +1,6 @@ +2011-11-08 * Test + Assets:Voucher:Amazon 137.87 GBP (48H5) + Assets:Cash -137.87 GBP + +test pricedb +end test diff --git a/src/pool.cc b/src/pool.cc index d5494352..5813c0f6 100644 --- a/src/pool.cc +++ b/src/pool.cc @@ -277,8 +277,10 @@ commodity_pool_t::exchange(const amount_t& amount, if (! per_unit_cost.is_realzero() && (current_annotation == NULL || ! (current_annotation->price && - current_annotation->has_flags(ANNOTATION_PRICE_FIXATED)))) + current_annotation->has_flags(ANNOTATION_PRICE_FIXATED))) && + commodity.referent() != per_unit_cost.commodity().referent()) { exchange(commodity, per_unit_cost, moment ? *moment : CURRENT_TIME()); + } cost_breakdown_t breakdown; breakdown.final_cost = ! is_per_unit ? cost : cost * amount.abs(); |