@@ -92,14 +92,21 @@ class StockAverageDailySale(models.Model):
9292 recommended_qty = fields .Float (
9393 required = True ,
9494 digits = "Product Unit of Measure" ,
95- help = "Minimal recommended quantity in stock. Formula: average daily qty * number days in stock + safety" ,
95+ help = (
96+ "Recommended minimal quantity in stock. The bigger of the two values of:\n "
97+ "I) number of days in stock * average daily quantity * average daily consumption count\n "
98+ "II) number of days in stock * average quantity by consumption"
99+ ),
96100 )
97101 recommended_qty_incl_returns = fields .Float (
98102 required = True ,
99103 digits = "Product Unit of Measure" ,
100104 help = (
101- "Minimal recommended quantity in stock taking into account returns. "
102- "Formula: (average daily qty - average return qty) * number days in stock + safety"
105+ "Recommended minimal quantity in stock taking into account returns. "
106+ "The bigger of the two values of:\n "
107+ "I) number of days in stock * (average daily quantity - average daily return quantity) "
108+ "* (average daily consumption count - average daily returns count)\n "
109+ "II) number of days in stock * (average quantity by consumption - average quantity by return)"
103110 ),
104111 )
105112 sale_ok = fields .Boolean (
@@ -415,8 +422,8 @@ def _create_materialized_view(self):
415422 (cfg.number_days_qty_in_stock * average_qty_by_sale)
416423 ) as recommended_qty,
417424 GREATEST(
418- (cfg.number_days_qty_in_stock * (average_qty_by_sale - average_qty_by_return) * (average_daily_sales_count - average_daily_returns_count)) + ((ds.daily_standard_deviation - dsr.daily_standard_deviation) * cfg.safety_factor * sqrt(nbr_days)),
419- (cfg.number_days_qty_in_stock * (average_qty_by_sale - average_qty_by_return))
425+ (cfg.number_days_qty_in_stock * (average_qty_by_sale - COALESCE( average_qty_by_return, 0)) * (average_daily_sales_count - COALESCE( average_daily_returns_count, 0))) + ((ds.daily_standard_deviation - COALESCE( dsr.daily_standard_deviation, 0) ) * cfg.safety_factor * sqrt(nbr_days)),
426+ (cfg.number_days_qty_in_stock * (average_qty_by_sale - COALESCE( average_qty_by_return, 0) ))
420427 ) as recommended_qty_incl_returns
421428 FROM averages t
422429 JOIN daily_standard_deviation ds on ds.id= t.window_id
0 commit comments