add worker-based precalculation of cashbook-values
This commit is contained in:
parent
0761d71e29
commit
e16717959b
5 changed files with 216 additions and 17 deletions
|
@ -174,6 +174,24 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(books[0].diff_amount, Decimal('-5.49'))
|
||||
self.assertEqual(books[0].diff_percent, Decimal('-18.74'))
|
||||
|
||||
# searcher
|
||||
self.assertEqual(Book.search_count([
|
||||
('current_value', '=', Decimal('23.8'))]), 1)
|
||||
self.assertEqual(Book.search_count([
|
||||
('current_value_ref', '=', Decimal('23.8'))]), 1)
|
||||
self.assertEqual(Book.search_count([
|
||||
('diff_amount', '=', Decimal('-5.49'))]), 1)
|
||||
self.assertEqual(Book.search_count([
|
||||
('diff_percent', '=', Decimal('-18.74'))]), 1)
|
||||
self.assertEqual(Book.search_count([
|
||||
('quantity', '=', Decimal('1.0'))]), 2)
|
||||
self.assertEqual(Book.search_count([
|
||||
('quantity_all', '=', Decimal('1.0'))]), 2)
|
||||
self.assertEqual(Book.search_count([
|
||||
('current_rate', '=', Decimal('11.9'))]), 1)
|
||||
self.assertEqual(Book.search_count([
|
||||
('purchase_amount', '=', Decimal('15.0'))]), 2)
|
||||
|
||||
self.assertEqual(len(books[0].childs), 4)
|
||||
|
||||
self.assertEqual(
|
||||
|
@ -327,10 +345,11 @@ class CbInvTestCase(object):
|
|||
|
||||
# wf --> check
|
||||
Line.wfcheck(book.lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
# check quantities at cashbook
|
||||
with Transaction().set_context({
|
||||
'qdate': date(2022, 5, 5)}):
|
||||
'date': date(2022, 5, 5)}):
|
||||
book2, = Book.browse([book])
|
||||
self.assertEqual(book.asset.rate, Decimal('2.8')) # usd
|
||||
self.assertEqual(book2.quantity, Decimal('1.453'))
|
||||
|
@ -340,7 +359,7 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(book2.current_value_ref, Decimal('3.87'))
|
||||
|
||||
with Transaction().set_context({
|
||||
'qdate': date(2022, 5, 12)}):
|
||||
'date': date(2022, 5, 12)}):
|
||||
book2, = Book.browse([book])
|
||||
self.assertEqual(book2.quantity, Decimal('4.753'))
|
||||
self.assertEqual(book2.quantity_all, Decimal('4.753'))
|
||||
|
@ -399,6 +418,17 @@ class CbInvTestCase(object):
|
|||
'Aurum | 1,750.0000 usd/oz | 05/01/2022')
|
||||
|
||||
(usd, euro) = self.prep_2nd_currency(company)
|
||||
|
||||
usd.rates[0].date = date(2022, 5, 1)
|
||||
usd.rates[0].save()
|
||||
self.assertEqual(len(usd.rates), 1)
|
||||
self.assertEqual(usd.rates[0].date, date(2022, 5, 1))
|
||||
|
||||
euro.rates[0].date = date(2022, 5, 1)
|
||||
euro.rates[0].save()
|
||||
self.assertEqual(len(euro.rates), 1)
|
||||
self.assertEqual(euro.rates[0].date, date(2022, 5, 1))
|
||||
|
||||
self.assertEqual(company.currency.rec_name, 'Euro')
|
||||
self.assertEqual(asset.symbol, 'usd/oz')
|
||||
|
||||
|
@ -441,7 +471,7 @@ class CbInvTestCase(object):
|
|||
|
||||
# check quantities at cashbook
|
||||
with Transaction().set_context({
|
||||
'qdate': date(2022, 5, 1)}):
|
||||
'date': date(2022, 5, 1)}):
|
||||
book2, = Book.browse([book])
|
||||
self.assertEqual(book.asset.rate, Decimal('1750.0')) # usd
|
||||
self.assertEqual(book2.quantity, Decimal('20.0'))
|
||||
|
@ -508,6 +538,16 @@ class CbInvTestCase(object):
|
|||
'Aurum | 1,750.0000 usd/oz | 05/01/2022')
|
||||
|
||||
(usd, euro) = self.prep_2nd_currency(company)
|
||||
usd.rates[0].date = date(2022, 5, 1)
|
||||
usd.rates[0].save()
|
||||
self.assertEqual(len(usd.rates), 1)
|
||||
self.assertEqual(usd.rates[0].date, date(2022, 5, 1))
|
||||
|
||||
euro.rates[0].date = date(2022, 5, 1)
|
||||
euro.rates[0].save()
|
||||
self.assertEqual(len(euro.rates), 1)
|
||||
self.assertEqual(euro.rates[0].date, date(2022, 5, 1))
|
||||
|
||||
self.assertEqual(company.currency.rec_name, 'Euro')
|
||||
self.assertEqual(asset.symbol, 'usd/oz')
|
||||
chf, = Currency.create([{
|
||||
|
@ -562,7 +602,7 @@ class CbInvTestCase(object):
|
|||
|
||||
# check quantities at cashbook
|
||||
with Transaction().set_context({
|
||||
'qdate': date(2022, 5, 1)}):
|
||||
'date': date(2022, 5, 1)}):
|
||||
book2, = Book.browse([book])
|
||||
self.assertEqual(book.asset.rate, Decimal('1750.0')) # usd
|
||||
self.assertEqual(book2.quantity, Decimal('20.0'))
|
||||
|
@ -923,6 +963,7 @@ class CbInvTestCase(object):
|
|||
|
||||
# set line to 'checked', this creates the counterpart
|
||||
Line.wfcheck(list(book.lines))
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(book.rec_name, 'Book 1 | -1.00 usd | Open')
|
||||
self.assertEqual(len(book.lines), 1)
|
||||
|
@ -1068,6 +1109,7 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(len(book2.lines), 0)
|
||||
|
||||
Line.wfcheck(list(book1.lines))
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
book1.rec_name,
|
||||
|
@ -1166,6 +1208,7 @@ class CbInvTestCase(object):
|
|||
|
||||
# set line to 'checked', this creates the counterpart
|
||||
Line.wfcheck(list(book.lines))
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(book.rec_name, 'Book 1 | 1.00 usd | Open')
|
||||
self.assertEqual(len(book.lines), 1)
|
||||
|
@ -1313,6 +1356,7 @@ class CbInvTestCase(object):
|
|||
|
||||
# set line to 'checked', this creates the counterpart
|
||||
Line.wfcheck(list(book.lines))
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
book.rec_name,
|
||||
|
@ -1497,6 +1541,7 @@ class CbInvTestCase(object):
|
|||
|
||||
# set line to 'checked', this creates the counterpart
|
||||
Line.wfcheck(list(book.lines))
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
book.rec_name,
|
||||
|
@ -1854,6 +1899,7 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(len(books[1].lines), 0)
|
||||
|
||||
Line.wfcheck([books[0].lines[0]])
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
books[0].rec_name,
|
||||
|
@ -2009,6 +2055,7 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(len(books[1].lines), 0)
|
||||
|
||||
Line.wfcheck([books[0].lines[0]])
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
books[0].rec_name,
|
||||
|
@ -2191,6 +2238,7 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(len(books[1].lines), 0)
|
||||
|
||||
Line.wfcheck([books[0].lines[0]])
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
books[0].rec_name,
|
||||
|
@ -2530,6 +2578,7 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(len(books[1].lines), 0)
|
||||
|
||||
Line.wfcheck([books[0].lines[0]])
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
books[0].rec_name,
|
||||
|
@ -2689,6 +2738,7 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(len(books[1].lines), 0)
|
||||
|
||||
Line.wfcheck([books[0].lines[0]])
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(books[0].rec_name, 'Book Cash | -11.00 usd | Open')
|
||||
self.assertEqual(books[0].balance_all, Decimal('-11.0'))
|
||||
|
@ -2881,6 +2931,7 @@ class CbInvTestCase(object):
|
|||
self.assertEqual(len(books[1].lines), 0)
|
||||
|
||||
Line.wfcheck([books[0].lines[0]])
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
books[0].rec_name,
|
||||
|
|
|
@ -152,6 +152,7 @@ class YieldTestCase(object):
|
|||
|
||||
self.assertEqual(len(lines), 1)
|
||||
Line.wfcheck(lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
lines[0].rec_name,
|
||||
|
@ -257,6 +258,7 @@ class YieldTestCase(object):
|
|||
}])
|
||||
|
||||
Line.wfcheck(book_cash.lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
book_asset.rec_name,
|
||||
|
@ -366,6 +368,7 @@ class YieldTestCase(object):
|
|||
}])
|
||||
|
||||
Line.wfcheck(book_asset.lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
book_asset.rec_name,
|
||||
|
@ -451,6 +454,7 @@ class YieldTestCase(object):
|
|||
|
||||
self.assertEqual(len(lines), 1)
|
||||
Line.wfcheck(lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
lines[0].rec_name,
|
||||
|
@ -532,6 +536,7 @@ class YieldTestCase(object):
|
|||
|
||||
self.assertEqual(len(lines), 1)
|
||||
Line.wfcheck(lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
lines[0].rec_name,
|
||||
|
@ -631,6 +636,7 @@ class YieldTestCase(object):
|
|||
}])
|
||||
|
||||
Line.wfcheck(book_cash.lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
book_asset.rec_name,
|
||||
|
@ -743,6 +749,7 @@ class YieldTestCase(object):
|
|||
}])
|
||||
|
||||
Line.wfcheck(book_asset.lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
book_asset.rec_name,
|
||||
|
@ -879,6 +886,7 @@ class YieldTestCase(object):
|
|||
lines[0].rec_name,
|
||||
'05/02/2022|Exp/Sp|-23.50 usd|all out (1) [-]|-3.0000 u')
|
||||
Line.wfcheck(lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
lines[0].rec_name,
|
||||
|
@ -1007,6 +1015,7 @@ class YieldTestCase(object):
|
|||
|
||||
self.assertEqual(len(lines), 2)
|
||||
Line.wfcheck(lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
lines[0].rec_name,
|
||||
|
@ -1150,6 +1159,7 @@ class YieldTestCase(object):
|
|||
|
||||
self.assertEqual(len(lines), 1)
|
||||
Line.wfcheck(lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
lines[0].rec_name,
|
||||
|
@ -1301,6 +1311,7 @@ class YieldTestCase(object):
|
|||
|
||||
self.assertEqual(len(lines), 3)
|
||||
Line.wfcheck(lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
lines[0].rec_name,
|
||||
|
@ -1438,6 +1449,7 @@ class YieldTestCase(object):
|
|||
|
||||
self.assertEqual(len(lines), 2)
|
||||
Line.wfcheck(lines)
|
||||
self.prep_valstore_run_worker()
|
||||
|
||||
self.assertEqual(
|
||||
lines[0].rec_name,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue