diff --git a/conservancy_beancount/reports/core.py b/conservancy_beancount/reports/core.py index cf381254bb8f7735a47b90b01155c7110c1327de..5ded97fbd1b84a474817f64c0fa1469ea21543a1 100644 --- a/conservancy_beancount/reports/core.py +++ b/conservancy_beancount/reports/core.py @@ -199,6 +199,16 @@ class RelatedPostings(Sequence[data.Posting]): except NameError: return Balance() + def balance_at_cost(self) -> Balance: + balance = MutableBalance() + for post in self: + if post.cost is None: + balance.add_amount(post.units) + else: + number = post.units.number * post.cost.number + balance.add_amount(data.Amount(number, post.cost.currency)) + return balance + def meta_values(self, key: MetaKey, default: Optional[MetaValue]=None,