From f1a2a5a18d5e7104ad308b2f56a9188f441bb7f2 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Mon, 7 Dec 2009 21:23:50 -0500 Subject: Cost of a post with neg. amount should be negative --- src/pool.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/pool.cc') diff --git a/src/pool.cc b/src/pool.cc index 70f4eed6..f895a8bc 100644 --- a/src/pool.cc +++ b/src/pool.cc @@ -247,7 +247,7 @@ commodity_pool_t::exchange(const amount_t& amount, current_annotation = &as_annotated_commodity(commodity).details; amount_t per_unit_cost = - (is_per_unit || amount.is_realzero() ? cost : cost / amount).abs(); + (is_per_unit || amount.is_realzero()) ? cost.abs() : (cost / amount).abs(); DEBUG("commodity.prices.add", "exchange: per-unit-cost = " << per_unit_cost); @@ -255,7 +255,7 @@ commodity_pool_t::exchange(const amount_t& amount, exchange(commodity, per_unit_cost, moment ? *moment : CURRENT_TIME()); cost_breakdown_t breakdown; - breakdown.final_cost = ! is_per_unit ? cost : cost * amount; + breakdown.final_cost = ! is_per_unit ? cost : cost * amount.abs(); DEBUG("commodity.prices.add", "exchange: final-cost = " << breakdown.final_cost); -- cgit v1.2.3