Purchase & Sale

This commit is contained in:
2026-07-26 16:29:49 +02:00
parent b1f97ade55
commit ada4c445c8
2 changed files with 56 additions and 6 deletions

View File

@@ -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()

View File

@@ -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()