Add mid price value field
This commit is contained in:
@@ -38,6 +38,7 @@ class PriceValue(
|
|||||||
price_value = fields.Float("Price value")
|
price_value = fields.Float("Price value")
|
||||||
open_price = fields.Float("Open price")
|
open_price = fields.Float("Open price")
|
||||||
low_price = fields.Float("Low price")
|
low_price = fields.Float("Low price")
|
||||||
|
mid_price = fields.Float("Mid price")
|
||||||
high_price = fields.Float("High price")
|
high_price = fields.Float("High price")
|
||||||
|
|
||||||
def get_price_index(self, name):
|
def get_price_index(self, name):
|
||||||
@@ -57,6 +58,7 @@ class PriceValueReport(
|
|||||||
r_price_value = fields.Float("Price")
|
r_price_value = fields.Float("Price")
|
||||||
r_open_price = fields.Float("Open price")
|
r_open_price = fields.Float("Open price")
|
||||||
r_low_price = fields.Float("Low price")
|
r_low_price = fields.Float("Low price")
|
||||||
|
r_mid_price = fields.Float("Mid price")
|
||||||
r_high_price = fields.Float("High price")
|
r_high_price = fields.Float("High price")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -88,6 +90,7 @@ class PriceValueReport(
|
|||||||
pv.price_value.as_('r_price_value'),
|
pv.price_value.as_('r_price_value'),
|
||||||
pv.open_price.as_('r_open_price'),
|
pv.open_price.as_('r_open_price'),
|
||||||
pv.low_price.as_('r_low_price'),
|
pv.low_price.as_('r_low_price'),
|
||||||
|
pv.mid_price.as_('r_mid_price'),
|
||||||
pv.high_price.as_('r_high_price'),
|
pv.high_price.as_('r_high_price'),
|
||||||
where=wh)
|
where=wh)
|
||||||
|
|
||||||
@@ -118,6 +121,7 @@ class PriceValueReport2(
|
|||||||
r_price_value = fields.Float("Price")
|
r_price_value = fields.Float("Price")
|
||||||
r_open_price = fields.Float("Open price")
|
r_open_price = fields.Float("Open price")
|
||||||
r_low_price = fields.Float("Low price")
|
r_low_price = fields.Float("Low price")
|
||||||
|
r_mid_price = fields.Float("Mid price")
|
||||||
r_high_price = fields.Float("High price")
|
r_high_price = fields.Float("High price")
|
||||||
r_naphta_fob_low = fields.Float("Naph F Med l", digits=(1,2), help="Naphta Fob PAAAI00 low")
|
r_naphta_fob_low = fields.Float("Naph F Med l", digits=(1,2), help="Naphta Fob PAAAI00 low")
|
||||||
r_naphta_fob_high = fields.Float("Naph F Med h", digits=(1,2), help="Naphta Fob PAAAI00 high")
|
r_naphta_fob_high = fields.Float("Naph F Med h", digits=(1,2), help="Naphta Fob PAAAI00 high")
|
||||||
@@ -173,6 +177,7 @@ class PriceValueReport2(
|
|||||||
Max(pv.price_value).as_('r_price_value'),
|
Max(pv.price_value).as_('r_price_value'),
|
||||||
Max(pv.open_price).as_('r_open_price'),
|
Max(pv.open_price).as_('r_open_price'),
|
||||||
Max(pv.low_price).as_('r_low_price'),
|
Max(pv.low_price).as_('r_low_price'),
|
||||||
|
Max(pv.mid_price).as_('r_mid_price'),
|
||||||
Max(pv.high_price).as_('r_high_price'),
|
Max(pv.high_price).as_('r_high_price'),
|
||||||
Max(Case((pv.price==15, pv.low_price),else_=0)).as_('r_naphta_fob_low'),
|
Max(Case((pv.price==15, pv.low_price),else_=0)).as_('r_naphta_fob_low'),
|
||||||
Max(Case((pv.price==15, pv.high_price),else_=0)).as_('r_naphta_fob_high'),
|
Max(Case((pv.price==15, pv.high_price),else_=0)).as_('r_naphta_fob_high'),
|
||||||
|
|||||||
@@ -5,5 +5,6 @@
|
|||||||
<field name="r_price_date"/>
|
<field name="r_price_date"/>
|
||||||
<field name="r_price_value"/>
|
<field name="r_price_value"/>
|
||||||
<field name="r_low_price"/>
|
<field name="r_low_price"/>
|
||||||
|
<field name="r_mid_price"/>
|
||||||
<field name="r_high_price"/>
|
<field name="r_high_price"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
|||||||
@@ -11,6 +11,8 @@
|
|||||||
<field name="open_price"/>
|
<field name="open_price"/>
|
||||||
<label name="low_price"/>
|
<label name="low_price"/>
|
||||||
<field name="low_price"/>
|
<field name="low_price"/>
|
||||||
|
<label name="mid_price"/>
|
||||||
|
<field name="mid_price"/>
|
||||||
<label name="high_price"/>
|
<label name="high_price"/>
|
||||||
<field name="high_price"/>
|
<field name="high_price"/>
|
||||||
</group>
|
</group>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="price_value" fill="1" empty="0"/>
|
<field name="price_value" fill="1" empty="0"/>
|
||||||
<field name="open_price" fill="1" empty="0"/>
|
<field name="open_price" fill="1" empty="0"/>
|
||||||
<field name="low_price" fill="1" empty="0"/>
|
<field name="low_price" fill="1" empty="0"/>
|
||||||
|
<field name="mid_price" fill="1" empty="0"/>
|
||||||
<field name="high_price" fill="1" empty="0"/>
|
<field name="high_price" fill="1" empty="0"/>
|
||||||
</y>
|
</y>
|
||||||
</graph>
|
</graph>
|
||||||
|
|||||||
@@ -5,5 +5,6 @@
|
|||||||
<field name="price_value"/>
|
<field name="price_value"/>
|
||||||
<field name="open_price"/>
|
<field name="open_price"/>
|
||||||
<field name="low_price"/>
|
<field name="low_price"/>
|
||||||
|
<field name="mid_price"/>
|
||||||
<field name="high_price"/>
|
<field name="high_price"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
|||||||
@@ -5,5 +5,6 @@
|
|||||||
<field name="price_value"/>
|
<field name="price_value"/>
|
||||||
<field name="open_price"/>
|
<field name="open_price"/>
|
||||||
<field name="low_price"/>
|
<field name="low_price"/>
|
||||||
|
<field name="mid_price"/>
|
||||||
<field name="high_price"/>
|
<field name="high_price"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ class ImportPrices(Wizard):
|
|||||||
'pricedate': 'price_date',
|
'pricedate': 'price_date',
|
||||||
'highprice': 'high_price',
|
'highprice': 'high_price',
|
||||||
'lowprice': 'low_price',
|
'lowprice': 'low_price',
|
||||||
|
'midprice': 'mid_price',
|
||||||
'openprice': 'open_price',
|
'openprice': 'open_price',
|
||||||
'pricevalue': 'price_value',
|
'pricevalue': 'price_value',
|
||||||
}
|
}
|
||||||
@@ -303,6 +304,7 @@ class ImportPrices(Wizard):
|
|||||||
'price_date': price_date,
|
'price_date': price_date,
|
||||||
'high_price': cls._as_float(row.get('high_price')),
|
'high_price': cls._as_float(row.get('high_price')),
|
||||||
'low_price': cls._as_float(row.get('low_price')),
|
'low_price': cls._as_float(row.get('low_price')),
|
||||||
|
'mid_price': cls._as_float(row.get('mid_price')),
|
||||||
'open_price': cls._as_float(row.get('open_price')),
|
'open_price': cls._as_float(row.get('open_price')),
|
||||||
'price_value': cls._as_float(row.get('price_value')),
|
'price_value': cls._as_float(row.get('price_value')),
|
||||||
}
|
}
|
||||||
@@ -357,7 +359,9 @@ class ImportPrices(Wizard):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def _price_summary(values):
|
def _price_summary(values):
|
||||||
parts = []
|
parts = []
|
||||||
for name in ('price_value', 'open_price', 'low_price', 'high_price'):
|
for name in (
|
||||||
|
'price_value', 'open_price', 'low_price', 'mid_price',
|
||||||
|
'high_price'):
|
||||||
value = values.get(name)
|
value = values.get(name)
|
||||||
if value is not None:
|
if value is not None:
|
||||||
parts.append('%s=%s' % (name, value))
|
parts.append('%s=%s' % (name, value))
|
||||||
@@ -461,6 +465,7 @@ class ImportPrices(Wizard):
|
|||||||
'price_date': price_date,
|
'price_date': price_date,
|
||||||
'high_price': price_value,
|
'high_price': price_value,
|
||||||
'low_price': price_value,
|
'low_price': price_value,
|
||||||
|
'mid_price': price_value,
|
||||||
'open_price': price_value,
|
'open_price': price_value,
|
||||||
'price_value': price_value,
|
'price_value': price_value,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -5160,7 +5160,7 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
|||||||
|
|
||||||
@with_transaction()
|
@with_transaction()
|
||||||
def test_import_forward_prices_copies_value_to_ohl_fields(self):
|
def test_import_forward_prices_copies_value_to_ohl_fields(self):
|
||||||
'forward import uses price values for open, low and high prices'
|
'forward import uses price values for open, low, mid and high prices'
|
||||||
ImportPrices = Pool().get('purchase_trade.import_prices')
|
ImportPrices = Pool().get('purchase_trade.import_prices')
|
||||||
ns = {'s': 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'}
|
ns = {'s': 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'}
|
||||||
sheet = ElementTree.fromstring('''
|
sheet = ElementTree.fromstring('''
|
||||||
@@ -5187,6 +5187,7 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
|||||||
self.assertEqual(result[0]['price_value'], '75.25')
|
self.assertEqual(result[0]['price_value'], '75.25')
|
||||||
self.assertEqual(result[0]['open_price'], '75.25')
|
self.assertEqual(result[0]['open_price'], '75.25')
|
||||||
self.assertEqual(result[0]['low_price'], '75.25')
|
self.assertEqual(result[0]['low_price'], '75.25')
|
||||||
|
self.assertEqual(result[0]['mid_price'], '75.25')
|
||||||
self.assertEqual(result[0]['high_price'], '75.25')
|
self.assertEqual(result[0]['high_price'], '75.25')
|
||||||
|
|
||||||
def test_pricing_component_matrix_returns_generic_line_price(self):
|
def test_pricing_component_matrix_returns_generic_line_price(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user