amount/rate/amount_2nd - ok+test

This commit is contained in:
Frederik Jaeckel 2022-10-03 23:36:04 +02:00
parent 517e2c5ad3
commit 0f6180ebdb
3 changed files with 106 additions and 49 deletions

View file

@ -24,12 +24,25 @@ class LineTestCase(ModuleTestCase):
pool = Pool()
Book = pool.get('cashbook.book')
Lines = pool.get('cashbook.line')
Currency = pool.get('currency.currency')
types = self.prep_type()
company = self.prep_company()
# add EURO, set company-currency to EURO
(usd, euro) = self.prep_2nd_currency(company)
self.assertEqual(len(usd.rates), 1)
self.assertEqual(usd.rates[0].date, date(2022, 5, 2))
self.assertEqual(usd.rates[0].rate, Decimal('1.05'))
Currency.write(*[
[usd],
{
'rates': [('create', [{
'rate': Decimal('1.02'),
'date': date(2022, 6, 1),
}])],
}])
self.assertEqual(len(usd.rates), 2)
books = Book.create([{
'name': 'Book USD',
@ -50,6 +63,7 @@ class LineTestCase(ModuleTestCase):
self.assertEqual(books[0].rec_name, 'Book USD | 0.00 usd | Open')
self.assertEqual(books[1].rec_name, 'Book EURO | 0.00 € | Open')
# rate @ 2022-05-02: 1.05
Book.write(*[
[books[0]],
{
@ -68,7 +82,27 @@ class LineTestCase(ModuleTestCase):
# auto-created
self.assertEqual(books[0].lines[0].amount_2nd_currency, Decimal('9.52'))
self.assertEqual(books[0].lines[0].rate_2nd_currency, Decimal('0.952'))
Lines.delete(books[0].lines)
# rate @ 2022-06-01: 1.02
Book.write(*[
[books[0]],
{
'lines': [('create', [{
'date': date(2022, 6, 1),
'description': 'Transfer USD --> EUR',
'bookingtype': 'mvout',
'amount': Decimal('10.0'),
'booktransf': books[1].id,
}])],
}])
self.assertEqual(len(books[0].lines), 1)
self.assertEqual(books[0].lines[0].rec_name,
'06/01/2022|to|-10.00 usd|Transfer USD --> EUR [Book EURO | 0.00 € | Open]')
self.assertEqual(books[0].lines[0].amount, Decimal('10.0'))
# auto-created
self.assertEqual(books[0].lines[0].amount_2nd_currency, Decimal('9.80'))
self.assertEqual(books[0].lines[0].rate_2nd_currency, Decimal('0.98'))
Lines.delete(books[0].lines)
Book.write(*[
@ -117,7 +151,8 @@ class LineTestCase(ModuleTestCase):
self.assertEqual(books[0].lines[0].amount, Decimal('12.0'))
books[0].lines[0].amount_2nd_currency = Decimal('10.5')
self.assertEqual(books[0].lines[0].on_change_with_rate_2nd_currency(), Decimal('0.875'))
books[0].lines[0].on_change_amount_2nd_currency()
self.assertEqual(books[0].lines[0].rate_2nd_currency, Decimal('0.875'))
self.assertEqual(books[0].lines[0].amount_2nd_currency, Decimal('10.5'))
self.assertEqual(books[0].lines[0].amount, Decimal('12.0'))
@ -171,6 +206,7 @@ class LineTestCase(ModuleTestCase):
self.assertEqual(len(books[1].lines), 0)
self.assertEqual(books[0].lines[0].rec_name,
'05/05/2022|to|-10.00 usd|Transfer USD --> EUR [Book EURO | 0.00 € | Open]')
self.assertEqual(books[0].lines[0].amount_2nd_currency, Decimal('9.52'))
self.assertEqual(books[0].lines[0].reference, None)
self.assertEqual(len(books[0].lines[0].references), 0)
self.assertEqual(books[0].lines[0].reconciliation, None)