From 7d163a6e07b35ae555f6ee8dfd8868c2a879ccd0 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Thu, 26 Nov 2020 09:58:54 +0000 Subject: [PATCH] [FIX] purchase_stock: use max() to compute purchase date STEPS: * Create a BoM with two components purchased the same vendor, but with different "Delivery Lead Time". First component must have lower value * Create Manufactoring order, Mark as ToDo * Open created purchase order BEFORE: Order Date is equal "MO planned day MINUS delivery lead time for the first component" AFTER: Order Date is equal "MO planned day MINUS maximum amout delivery lead time for the components" --- opw-2388031 closes odoo/odoo#62411 X-original-commit: 8f0cc3609ce7a02d0e3f39586a7b0299ab221d48 Signed-off-by: Ivan Yelizariev // IEL --- addons/purchase_stock/models/stock_rule.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/purchase_stock/models/stock_rule.py b/addons/purchase_stock/models/stock_rule.py index 4487edeaacd..1e8ea560107 100644 --- a/addons/purchase_stock/models/stock_rule.py +++ b/addons/purchase_stock/models/stock_rule.py @@ -267,6 +267,7 @@ class StockRule(models.Model): procurement_date_planned = min(dates) schedule_date = (procurement_date_planned - relativedelta(days=company_id.po_lead)) + supplier_delay = max([int(value['supplier'].delay) for value in values]) # Since the procurements are grouped if they share the same domain for # PO but the PO does not exist. In this case it will create the PO from @@ -274,7 +275,7 @@ class StockRule(models.Model): # arbitrary procurement. In this case the first. values = values[0] partner = values['supplier'].name - purchase_date = schedule_date - relativedelta(days=int(values['supplier'].delay)) + purchase_date = schedule_date - relativedelta(days=supplier_delay) fpos = self.env['account.fiscal.position'].with_company(company_id).get_fiscal_position(partner.id)