diff --git a/line.py b/line.py index 8641f37..5752c71 100644 --- a/line.py +++ b/line.py @@ -144,15 +144,25 @@ class Line(SecondUomMixin, metaclass=PoolMeta): return result @classmethod - def get_counterpart_values(cls, line, values={}): + def get_counterpart_values(cls, line, splitline=None, values={}): """ add quantity to counterpart """ - result = super(Line, cls).get_counterpart_values(line, values) + result = super(Line, cls).get_counterpart_values( + line, + splitline = splitline, + values = values + ) line_uom = getattr(line.quantity_uom, 'id', None) booktransf_uom = getattr(getattr(line.booktransf, 'quantity_uom', {}), 'id', None) - if booktransf_uom is None: + if getattr(splitline, 'quantity', None) is not None: + # we add values to the counterpart of a splitbooking-line + result.update({ + 'quantity': splitline.quantity, + 'quantity_2nd_uom': None, + }) + elif booktransf_uom is None: # counterpart-cashbook has no uom -> no quantity result.update({ 'quantity': None, diff --git a/tests/test_book.py b/tests/test_book.py index 4b2ec72..9a93626 100644 --- a/tests/test_book.py +++ b/tests/test_book.py @@ -1390,11 +1390,20 @@ class CbInvTestCase(CashbookTestCase, InvestmentTestCase): self.assertEqual(books[0].lines[0].splitlines[1].quantity, Decimal('2.5')) self.assertEqual(books[0].lines[0].splitlines[1].booktransf.rec_name, 'Book 2 | -6.00 usd | Open | -2.50 u') - self.assertEqual(len(books[0].lines[0].references), 0) + self.assertEqual(len(books[0].lines[0].references), 1) + self.assertEqual(books[0].lines[0].references[0].rec_name, + '05/01/2022|to|-6.00 usd|from cashbook [Book 1 | 11.00 usd | Open | 4.00 u]|2.50 u') self.assertEqual(books[0].lines[0].reference, None) - self.assertEqual(books[1].rec_name, 'Book 2 | 0.00 usd | Open | 0.00 u') - self.assertEqual(books[1].balance_all, Decimal('0.0')) - self.assertEqual(len(books[1].lines), 0) + self.assertEqual(books[1].rec_name, 'Book 2 | -6.00 usd | Open | -2.50 u') + self.assertEqual(books[1].balance_all, Decimal('-6.0')) + self.assertEqual(len(books[1].lines), 1) + self.assertEqual(books[1].lines[0].rec_name, + '05/01/2022|to|-6.00 usd|from cashbook [Book 1 | 11.00 usd | Open | 4.00 u]|2.50 u') + + # TODO: + # - splitbuchung mit unterschiedlichen einheiten einer kategorie + # - splitbuchung mit unterschiedlichen einheiten verschiedener kategorien + # in/out-splitbuchung # end CbInvTestCase