Purchase & Sale
This commit is contained in:
@@ -1448,16 +1448,41 @@ class Purchase(metaclass=PoolMeta):
|
||||
})
|
||||
return activity
|
||||
|
||||
def _get_summary_total_chips(self):
|
||||
chips = []
|
||||
for assignment in (self.analytic_dimensions or [])[:2]:
|
||||
dimension = getattr(assignment, 'dimension', None)
|
||||
value = getattr(assignment, 'value', None)
|
||||
dimension_name = (
|
||||
getattr(dimension, 'name', None)
|
||||
or getattr(dimension, 'rec_name', None))
|
||||
value_name = (
|
||||
getattr(value, 'name', None)
|
||||
or getattr(value, 'rec_name', None))
|
||||
if not dimension_name or not value_name:
|
||||
continue
|
||||
chips.append({
|
||||
"dimension": dimension_name,
|
||||
"value": value_name,
|
||||
})
|
||||
return chips
|
||||
|
||||
def get_purchase_summary_data(self, name=None):
|
||||
execution = self._get_purchase_execution_summary_data()
|
||||
currency = getattr(self, 'currency', None)
|
||||
currency_badge = (
|
||||
getattr(currency, 'name', None)
|
||||
or getattr(currency, 'code', None)
|
||||
or '')
|
||||
data = {
|
||||
"currency": getattr(getattr(self, 'currency', None), 'code', None)
|
||||
or '',
|
||||
"currency": getattr(currency, 'code', None) or '',
|
||||
"currency_badge": currency_badge,
|
||||
"map": self._get_purchase_map_summary_data(),
|
||||
"execution": execution,
|
||||
"amount": {
|
||||
"value": execution.get('totals', {}).get('amount', 0),
|
||||
},
|
||||
"total_chips": self._get_summary_total_chips(),
|
||||
"activity": self._get_purchase_activity_summary_data(),
|
||||
"approval": {
|
||||
"status": "need_approval",
|
||||
@@ -1478,7 +1503,7 @@ class Purchase(metaclass=PoolMeta):
|
||||
|
||||
@fields.depends(
|
||||
'currency', 'from_location', 'to_location', 'lines', 'pnl', 'pnl_',
|
||||
'pnl_graph', 'group_pnl')
|
||||
'pnl_graph', 'group_pnl', 'analytic_dimensions')
|
||||
def on_change_with_purchase_summary_data(self, name=None):
|
||||
return self.get_purchase_summary_data()
|
||||
|
||||
|
||||
@@ -1975,6 +1975,25 @@ class Sale(metaclass=PoolMeta):
|
||||
})
|
||||
return activity
|
||||
|
||||
def _get_summary_total_chips(self):
|
||||
chips = []
|
||||
for assignment in (self.analytic_dimensions or [])[:2]:
|
||||
dimension = getattr(assignment, 'dimension', None)
|
||||
value = getattr(assignment, 'value', None)
|
||||
dimension_name = (
|
||||
getattr(dimension, 'name', None)
|
||||
or getattr(dimension, 'rec_name', None))
|
||||
value_name = (
|
||||
getattr(value, 'name', None)
|
||||
or getattr(value, 'rec_name', None))
|
||||
if not dimension_name or not value_name:
|
||||
continue
|
||||
chips.append({
|
||||
"dimension": dimension_name,
|
||||
"value": value_name,
|
||||
})
|
||||
return chips
|
||||
|
||||
def get_execution_summary_viewer(self, name=None):
|
||||
data = self._get_sale_execution_summary_data()
|
||||
data = dict(data, type='execution-summary')
|
||||
@@ -1982,14 +2001,20 @@ class Sale(metaclass=PoolMeta):
|
||||
|
||||
def get_sale_summary_data(self, name=None):
|
||||
execution = self._get_sale_execution_summary_data()
|
||||
currency = getattr(self, 'currency', None)
|
||||
currency_badge = (
|
||||
getattr(currency, 'name', None)
|
||||
or getattr(currency, 'code', None)
|
||||
or '')
|
||||
data = {
|
||||
"currency": getattr(getattr(self, 'currency', None), 'code', None)
|
||||
or '',
|
||||
"currency": getattr(currency, 'code', None) or '',
|
||||
"currency_badge": currency_badge,
|
||||
"map": self._get_sale_map_summary_data(),
|
||||
"execution": execution,
|
||||
"amount": {
|
||||
"value": execution.get('totals', {}).get('amount', 0),
|
||||
},
|
||||
"total_chips": self._get_summary_total_chips(),
|
||||
"activity": self._get_sale_activity_summary_data(),
|
||||
"approval": {
|
||||
"status": "need_approval",
|
||||
@@ -2000,7 +2025,7 @@ class Sale(metaclass=PoolMeta):
|
||||
|
||||
@fields.depends(
|
||||
'currency', 'from_location', 'to_location', 'lines', 'pnl', 'pnl_',
|
||||
'group_pnl')
|
||||
'group_pnl', 'analytic_dimensions')
|
||||
def on_change_with_sale_summary_data(self, name=None):
|
||||
return self.get_sale_summary_data()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user