From 90c0affddef9f4008e7e1e475c26b71c827e2a37 Mon Sep 17 00:00:00 2001 From: Denis Roussel Date: Wed, 11 Oct 2023 16:15:37 +0200 Subject: [PATCH] [FIX] stock_average_daily_sale: Don't rely on tuples as id As for x reason, some products appear more than one time in the report, id generated by the concatenation of product_id and warehouse_id is irrelevant (as duplicate values possible). Use row_number() instead --- stock_average_daily_sale/models/stock_average_daily_sale.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stock_average_daily_sale/models/stock_average_daily_sale.py b/stock_average_daily_sale/models/stock_average_daily_sale.py index 1b6793d46..d9129115c 100644 --- a/stock_average_daily_sale/models/stock_average_daily_sale.py +++ b/stock_average_daily_sale/models/stock_average_daily_sale.py @@ -214,7 +214,8 @@ def _create_materialized_view(self): averages AS( SELECT - concat(warehouse_id, product_id)::integer as id, + row_number() over (order by product_id) as id, + concat(warehouse_id, product_id)::integer as window_id, product_id, warehouse_id, (avg(product_uom_qty) FILTER @@ -295,7 +296,7 @@ def _create_materialized_view(self): (cfg.number_days_qty_in_stock * average_qty_by_sale) ) as recommended_qty FROM averages t - JOIN daily_standard_deviation ds on ds.id= t.id + JOIN daily_standard_deviation ds on ds.id= t.window_id JOIN stock_average_daily_sale_config cfg on cfg.id = t.config_id JOIN stock_qty sqty on sqty.pp_id = t.product_id AND t.warehouse_id = sqty.warehouse_id JOIN product_product pp on pp.id = t.product_id