diff --git a/modules/purchase_trade/tests/test_module.py b/modules/purchase_trade/tests/test_module.py index c2b9625..8de7bdd 100644 --- a/modules/purchase_trade/tests/test_module.py +++ b/modules/purchase_trade/tests/test_module.py @@ -209,11 +209,13 @@ class PurchaseTradeTestCase(ModuleTestCase): self.assertEqual(target[0]['amount'], Decimal('-60.00')) self.assertEqual(target[0]['mtm_price'], Decimal('60.0000')) self.assertEqual(target[0]['mtm_price_prev'], Decimal('54.0000')) + self.assertEqual(target[0]['amount_prev'], Decimal('-540.00')) self.assertEqual(target[0]['mtm'], Decimal('-600.00')) self.assertEqual(target[1]['mtm_curve'], curve_b.id) self.assertEqual(target[1]['amount'], Decimal('-40.00')) self.assertEqual(target[1]['mtm_price'], Decimal('20.0000')) self.assertEqual(target[1]['mtm_price_prev'], Decimal('18.0000')) + self.assertEqual(target[1]['amount_prev'], Decimal('-180.00')) self.assertEqual(target[1]['mtm'], Decimal('-200.00')) @with_transaction() diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py index cb41ab8..9c49721 100644 --- a/modules/purchase_trade/valuation.py +++ b/modules/purchase_trade/valuation.py @@ -56,6 +56,7 @@ class ValuationBase(ModelSQL): quantity = fields.Numeric("Quantity",digits=(16,5)) unit = fields.Many2One('product.uom',"Unit") amount = fields.Numeric("Amount",digits=(16,2)) + amount_prev = fields.Numeric("Amount -1", digits=(16, 2)) mtm_price = fields.Numeric("Mtm Price", digits=(16,4)) mtm_price_prev = fields.Numeric("Mtm Price -1", digits=(16,4)) mtm_curve = fields.Many2One('price.price', "Curve") @@ -444,6 +445,7 @@ class ValuationBase(ModelSQL): line_values = dict(values) line_values['mtm_price'] = cls._get_strategy_mtm_price( strategy, line) + line_values['amount_prev'] = None line_values['mtm'] = cls._signed_strategy_mtm( values, strategy, line) line_values['strategy'] = strategy @@ -478,6 +480,11 @@ class ValuationBase(ModelSQL): line_values['mtm_price'] = mtm_price line_values['mtm_price_prev'] = mtm_price_prev line_values['mtm_curve'] = component.price_index.id + line_values['amount_prev'] = ( + round( + mtm_price_prev * Decimal(values['quantity']) + * signed_factor, 2) + if mtm_price_prev is not None else None) line_values['mtm'] = round( mtm_price * Decimal(values['quantity']) * signed_factor, 2) line_values['strategy'] = strategy @@ -500,6 +507,7 @@ class ValuationBase(ModelSQL): line_values['mtm_price'] = mtm_price line_values['mtm_price_prev'] = None line_values['mtm_curve'] = None + line_values['amount_prev'] = None line_values['mtm'] = round( mtm_price * Decimal(values['quantity']) * signed_factor, 2) line_values['strategy'] = strategy diff --git a/modules/purchase_trade/view/valuation_list.xml b/modules/purchase_trade/view/valuation_list.xml index 5d6f03b..8457d6a 100644 --- a/modules/purchase_trade/view/valuation_list.xml +++ b/modules/purchase_trade/view/valuation_list.xml @@ -10,7 +10,11 @@ - + + diff --git a/modules/purchase_trade/view/valuation_tree_sequence3.xml b/modules/purchase_trade/view/valuation_tree_sequence3.xml index 30dfa21..718374d 100755 --- a/modules/purchase_trade/view/valuation_tree_sequence3.xml +++ b/modules/purchase_trade/view/valuation_tree_sequence3.xml @@ -11,7 +11,11 @@ this repository contains the full copyright notices and license terms. --> - + +