Pnl badge
This commit is contained in:
@@ -209,11 +209,13 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
|||||||
self.assertEqual(target[0]['amount'], Decimal('-60.00'))
|
self.assertEqual(target[0]['amount'], Decimal('-60.00'))
|
||||||
self.assertEqual(target[0]['mtm_price'], Decimal('60.0000'))
|
self.assertEqual(target[0]['mtm_price'], Decimal('60.0000'))
|
||||||
self.assertEqual(target[0]['mtm_price_prev'], Decimal('54.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[0]['mtm'], Decimal('-600.00'))
|
||||||
self.assertEqual(target[1]['mtm_curve'], curve_b.id)
|
self.assertEqual(target[1]['mtm_curve'], curve_b.id)
|
||||||
self.assertEqual(target[1]['amount'], Decimal('-40.00'))
|
self.assertEqual(target[1]['amount'], Decimal('-40.00'))
|
||||||
self.assertEqual(target[1]['mtm_price'], Decimal('20.0000'))
|
self.assertEqual(target[1]['mtm_price'], Decimal('20.0000'))
|
||||||
self.assertEqual(target[1]['mtm_price_prev'], Decimal('18.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'))
|
self.assertEqual(target[1]['mtm'], Decimal('-200.00'))
|
||||||
|
|
||||||
@with_transaction()
|
@with_transaction()
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ class ValuationBase(ModelSQL):
|
|||||||
quantity = fields.Numeric("Quantity",digits=(16,5))
|
quantity = fields.Numeric("Quantity",digits=(16,5))
|
||||||
unit = fields.Many2One('product.uom',"Unit")
|
unit = fields.Many2One('product.uom',"Unit")
|
||||||
amount = fields.Numeric("Amount",digits=(16,2))
|
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 = fields.Numeric("Mtm Price", digits=(16,4))
|
||||||
mtm_price_prev = fields.Numeric("Mtm Price -1", digits=(16,4))
|
mtm_price_prev = fields.Numeric("Mtm Price -1", digits=(16,4))
|
||||||
mtm_curve = fields.Many2One('price.price', "Curve")
|
mtm_curve = fields.Many2One('price.price', "Curve")
|
||||||
@@ -444,6 +445,7 @@ class ValuationBase(ModelSQL):
|
|||||||
line_values = dict(values)
|
line_values = dict(values)
|
||||||
line_values['mtm_price'] = cls._get_strategy_mtm_price(
|
line_values['mtm_price'] = cls._get_strategy_mtm_price(
|
||||||
strategy, line)
|
strategy, line)
|
||||||
|
line_values['amount_prev'] = None
|
||||||
line_values['mtm'] = cls._signed_strategy_mtm(
|
line_values['mtm'] = cls._signed_strategy_mtm(
|
||||||
values, strategy, line)
|
values, strategy, line)
|
||||||
line_values['strategy'] = strategy
|
line_values['strategy'] = strategy
|
||||||
@@ -478,6 +480,11 @@ class ValuationBase(ModelSQL):
|
|||||||
line_values['mtm_price'] = mtm_price
|
line_values['mtm_price'] = mtm_price
|
||||||
line_values['mtm_price_prev'] = mtm_price_prev
|
line_values['mtm_price_prev'] = mtm_price_prev
|
||||||
line_values['mtm_curve'] = component.price_index.id
|
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(
|
line_values['mtm'] = round(
|
||||||
mtm_price * Decimal(values['quantity']) * signed_factor, 2)
|
mtm_price * Decimal(values['quantity']) * signed_factor, 2)
|
||||||
line_values['strategy'] = strategy
|
line_values['strategy'] = strategy
|
||||||
@@ -500,6 +507,7 @@ class ValuationBase(ModelSQL):
|
|||||||
line_values['mtm_price'] = mtm_price
|
line_values['mtm_price'] = mtm_price
|
||||||
line_values['mtm_price_prev'] = None
|
line_values['mtm_price_prev'] = None
|
||||||
line_values['mtm_curve'] = None
|
line_values['mtm_curve'] = None
|
||||||
|
line_values['amount_prev'] = None
|
||||||
line_values['mtm'] = round(
|
line_values['mtm'] = round(
|
||||||
mtm_price * Decimal(values['quantity']) * signed_factor, 2)
|
mtm_price * Decimal(values['quantity']) * signed_factor, 2)
|
||||||
line_values['strategy'] = strategy
|
line_values['strategy'] = strategy
|
||||||
|
|||||||
@@ -10,7 +10,11 @@
|
|||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<field name="price"/>
|
<field name="price"/>
|
||||||
<field name="quantity" symbol="unit"/>
|
<field name="quantity" symbol="unit"/>
|
||||||
<field name="amount"/>
|
<field name="amount"
|
||||||
|
sum="1"
|
||||||
|
sum_previous="amount_prev"
|
||||||
|
sum_variation="1"/>
|
||||||
|
<field name="amount_prev" optional="1"/>
|
||||||
<field name="base_amount" sum="1"/>
|
<field name="base_amount" sum="1"/>
|
||||||
<field name="rate"/>
|
<field name="rate"/>
|
||||||
<field name="strategy"/>
|
<field name="strategy"/>
|
||||||
|
|||||||
@@ -11,7 +11,11 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<field name="price"/>
|
<field name="price"/>
|
||||||
<field name="quantity" symbol="unit"/>
|
<field name="quantity" symbol="unit"/>
|
||||||
<field name="amount" sum="1"/>
|
<field name="amount"
|
||||||
|
sum="1"
|
||||||
|
sum_previous="amount_prev"
|
||||||
|
sum_variation="1"/>
|
||||||
|
<field name="amount_prev" optional="1"/>
|
||||||
<field name="strategy"/>
|
<field name="strategy"/>
|
||||||
<field name="mtm_curve"/>
|
<field name="mtm_curve"/>
|
||||||
<field name="mtm_price"
|
<field name="mtm_price"
|
||||||
|
|||||||
Reference in New Issue
Block a user