New issue 208: cost_to_str does not print total-cost-only CostSpecs
https://bitbucket.org/blais/beancount/issues/208/cost_to_str-does-not-print-total-cost-only
Robert Sesek:
I'm writing some scripts to convert my existing accounting spreadsheets into
Beancount. One issue I ran into is when converting dividend reinvestments for
funds, the transactions sometimes do not balance when using the reported unit
price and number of shares.
E.g., "Transaction does not balance: (0.01646 USD)" for this transaction:
```
2017-12-27 * "VXUS" "Reinvest"
Assets:Investments:Vanguard:RothIRA:VXUS 1.433 VXUS {56.62 USD}
Income:Investments:Vanguard:RothIRA:VXUS:Div -81.12 USD
```
My solution is to instead have the unit-cost price be inferred from total cost
and just attaching/ignoring the reported price, e.g.
```
2017-12-27 * "VXUS" "Reinvest"
Assets:Investments:Vanguard:RothIRA:VXUS 1.433 VXUS {# 81.12
USD} @ 56.62 USD
Income:Investments:Vanguard:RothIRA:VXUS:Div -81.12 USD
```
However, when trying to generate that posting using the Beancount API:
```python
asset = data.Posting('Assets:Investments:Vanguard:RothIRA:VXUS',
Amount(D('1.433'), 'VXUS'),
CostSpec(None, D('81.12'), 'USD', None, None, False),
Amount(D('56.62'), 'USD'),
None, None)
# Deliberately missing the sweep account for simplicty.
print_entry(data.Transaction(None, '2017-12-27', '*', 'VXUS', 'Reinvest', None,
None, [asset]))
```
It gets rendered as:
```
2017-12-27 * "VXUS" "Reinvest"
Assets:Investments:Vanguard:RothIRA:VXUS 1.433 VXUS {} @ 56.62 USD
```
There is an issue in beancount.core.position.cost_to_str(), where it only
prints the cost if the number_unit is present, ignoring number_total if it is
not.
--
You received this message because you are subscribed to the Google Groups
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beancount/20180102212800.14999.68751%40celery-worker-109.ash1.bb-inf.net.
For more options, visit https://groups.google.com/d/optout.