diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/chain.cc | 2 | ||||
-rw-r--r-- | src/filters.cc | 2 | ||||
-rw-r--r-- | src/filters.h | 5 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/chain.cc b/src/chain.cc index 7ac7d593..3a96f921 100644 --- a/src/chain.cc +++ b/src/chain.cc @@ -213,7 +213,7 @@ post_handler_ptr chain_post_handlers(post_handler_ptr base_handler, // day_of_week_posts is like period_posts, except that it reports // all the posts that fall on each subsequent day of the week. if (report.HANDLED(equity)) - handler.reset(new posts_as_equity(handler, report, expr)); + handler.reset(new posts_as_equity(handler, report, expr, report.HANDLED(unround))); else if (report.HANDLED(subtotal)) handler.reset(new subtotal_posts(handler, expr)); } diff --git a/src/filters.cc b/src/filters.cc index 6db8af80..7f615785 100644 --- a/src/filters.cc +++ b/src/filters.cc @@ -1106,6 +1106,8 @@ void posts_as_equity::report_subtotal() value_t total = 0L; foreach (values_map::value_type& pair, values) { value_t value(pair.second.value.strip_annotations(report.what_to_keep())); + if (unround) + value.in_place_unround(); if (! value.is_zero()) { if (value.is_balance()) { value.as_balance_lval().map_sorted_amounts diff --git a/src/filters.h b/src/filters.h index 4972b710..7252b057 100644 --- a/src/filters.h +++ b/src/filters.h @@ -790,13 +790,14 @@ class posts_as_equity : public subtotal_posts post_t * last_post; account_t * equity_account; account_t * balance_account; + bool unround; posts_as_equity(); public: posts_as_equity(post_handler_ptr _handler, report_t& _report, - expr_t& amount_expr) - : subtotal_posts(_handler, amount_expr), report(_report) { + expr_t& amount_expr, bool _unround) + : subtotal_posts(_handler, amount_expr), report(_report), unround(_unround) { create_accounts(); TRACE_CTOR(posts_as_equity, "post_handler_ptr, expr_t&"); } |