From 37dc140f9d6450ec5d7de330fcb8dd2e230130b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 18 May 2026 17:45:32 +0200 Subject: [PATCH] Do not fail to compute supply and purchase date for product supplier without weekdays Closes #14841 (grafted from c905132eab0552b2d0adcbdb18e07789433488b6) --HG-- branch : 7.0 --- modules/stock_supply_day/purchase.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/stock_supply_day/purchase.py b/modules/stock_supply_day/purchase.py index 772cffe594..bd99e6b8f8 100644 --- a/modules/stock_supply_day/purchase.py +++ b/modules/stock_supply_day/purchase.py @@ -17,7 +17,8 @@ class ProductSupplier(metaclass=PoolMeta): date = super(ProductSupplier, self).compute_supply_date(date=date) earlier_date = None if date != datetime.date.max: - for weekday in self.weekdays: + # Use getattr because it can be called with an unsaved instance + for weekday in getattr(self, 'weekdays', []): diff = weekday.index - date.weekday() if diff < 0: diff += 7 @@ -30,7 +31,8 @@ class ProductSupplier(metaclass=PoolMeta): def compute_purchase_date(self, date): later_date = None - for weekday in self.weekdays: + # Use getattr because it can be called with an unsaved instance + for weekday in getattr(self, 'weekdays', []): diff = (date.weekday() - weekday.index) % 7 new_date = date - datetime.timedelta(diff) if later_date and later_date >= new_date: