GR
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from sql import Literal, Null
|
||||
from sql import Literal, Null, Window
|
||||
from sql.aggregate import Max, Min, Sum
|
||||
from sql.conditionals import Case, Coalesce
|
||||
from sql.functions import CurrentTimestamp
|
||||
from sql.functions import CurrentTimestamp, RowNumber
|
||||
|
||||
from trytond.model import ModelSQL, ModelView, fields
|
||||
from trytond.pool import Pool
|
||||
@@ -721,22 +721,13 @@ class CTRMPnlDimension(ModelSQL, ModelView):
|
||||
val.state,
|
||||
val.strategy,
|
||||
]
|
||||
row_id = (
|
||||
Coalesce(Max(dimension_expr), 0) * 1000000
|
||||
+ Coalesce(Max(value_expr), 0))
|
||||
|
||||
return (
|
||||
grouped = (
|
||||
val
|
||||
.join(purchase_assignment, 'LEFT',
|
||||
condition=purchase_assignment.purchase == val.purchase)
|
||||
.join(sale_assignment, 'LEFT',
|
||||
condition=sale_assignment.sale == val.sale)
|
||||
.select(
|
||||
Literal(0).as_('create_uid'),
|
||||
CurrentTimestamp().as_('create_date'),
|
||||
Literal(None).as_('write_uid'),
|
||||
Literal(None).as_('write_date'),
|
||||
row_id.as_('id'),
|
||||
val.date.as_('valuation_date'),
|
||||
dimension_expr.as_('dimension'),
|
||||
value_expr.as_('value'),
|
||||
@@ -753,3 +744,36 @@ class CTRMPnlDimension(ModelSQL, ModelView):
|
||||
'mtm_delta'),
|
||||
where=where,
|
||||
group_by=group_by))
|
||||
|
||||
row_number = RowNumber(window=Window([],
|
||||
order_by=[
|
||||
grouped.valuation_date.asc,
|
||||
grouped.dimension.asc,
|
||||
grouped.value.asc,
|
||||
grouped.product.asc,
|
||||
grouped.counterparty.asc,
|
||||
grouped.currency.asc,
|
||||
grouped.unit.asc,
|
||||
grouped.state.asc,
|
||||
grouped.strategy.asc,
|
||||
]))
|
||||
|
||||
return grouped.select(
|
||||
Literal(0).as_('create_uid'),
|
||||
CurrentTimestamp().as_('create_date'),
|
||||
Literal(None).as_('write_uid'),
|
||||
Literal(None).as_('write_date'),
|
||||
row_number.as_('id'),
|
||||
grouped.valuation_date.as_('valuation_date'),
|
||||
grouped.dimension.as_('dimension'),
|
||||
grouped.value.as_('value'),
|
||||
grouped.product.as_('product'),
|
||||
grouped.counterparty.as_('counterparty'),
|
||||
grouped.currency.as_('currency'),
|
||||
grouped.unit.as_('unit'),
|
||||
grouped.state.as_('state'),
|
||||
grouped.strategy.as_('strategy'),
|
||||
grouped.quantity.as_('quantity'),
|
||||
grouped.amount.as_('amount'),
|
||||
grouped.mtm.as_('mtm'),
|
||||
grouped.mtm_delta.as_('mtm_delta'))
|
||||
|
||||
Reference in New Issue
Block a user