book: optimized field 'yield_balance'
This commit is contained in:
parent
20f465ae3a
commit
f95a9ed710
2 changed files with 11 additions and 2 deletions
7
book.py
7
book.py
|
@ -204,8 +204,11 @@ class Book(SymbolMixin, metaclass=PoolMeta):
|
|||
def on_change_with_yield_balance(self, name=None):
|
||||
""" calculate yield total
|
||||
"""
|
||||
return self.diff_amount + self.yield_dividend_total + \
|
||||
self.yield_sales - self.yield_fee_total
|
||||
sum_lst = [self.diff_amount, self.yield_dividend_total, self.yield_sales]
|
||||
sum2 = sum([x for x in sum_lst if x is not None])
|
||||
if self.yield_fee_total is not None:
|
||||
sum2 -= self.yield_fee_total
|
||||
return sum2
|
||||
|
||||
@classmethod
|
||||
def get_yield_data_sql(cls, date_from=None, date_to=None):
|
||||
|
|
|
@ -157,6 +157,12 @@ class YieldTestCase(ModuleTestCase):
|
|||
self.assertEqual(lines[0].trade_fee, Decimal('4.0'))
|
||||
self.assertEqual(book_asset.rec_name, 'Depot | 19.50 usd | Open | 3.0000 u')
|
||||
|
||||
self.assertEqual(book_asset.yield_dividend_total, Decimal('23.5'))
|
||||
self.assertEqual(book_asset.yield_fee_total, Decimal('4.0'))
|
||||
self.assertEqual(book_asset.yield_sales, Decimal('0.0'))
|
||||
self.assertEqual(book_asset.diff_amount, Decimal('-19.5'))
|
||||
self.assertEqual(book_asset.yield_balance, Decimal('0.0'))
|
||||
|
||||
@with_transaction()
|
||||
def test_yield_fee_transfer_from_splitbooking_cash_out(self):
|
||||
""" check out-booking, transfer from cash --> asset,
|
||||
|
|
Loading…
Reference in a new issue