Don't add price exchanges for a commodity itself

Fixes #703
This commit is contained in:
John Wiegley 2012-03-16 00:59:32 -05:00
parent 61e369b04b
commit a49e33a8ce
2 changed files with 9 additions and 1 deletions

6
95350193.test Normal file
View file

@ -0,0 +1,6 @@
2011-11-08 * Test
Assets:Voucher:Amazon 137.87 GBP (48H5)
Assets:Cash -137.87 GBP
test pricedb
end test

View file

@ -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();