From ea0be7e883aec74ae052595d69ac63763d3688f5 Mon Sep 17 00:00:00 2001 From: Jacques-Etienne Baudoux Date: Thu, 28 May 2026 14:28:03 +0200 Subject: [PATCH 1/2] [FIX] stock_release_channel: localize Convert a naive datetime to UTC independently of system local timezone --- stock_release_channel/models/stock_release_channel.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stock_release_channel/models/stock_release_channel.py b/stock_release_channel/models/stock_release_channel.py index 938db4d9187..c9a1dfa0226 100644 --- a/stock_release_channel/models/stock_release_channel.py +++ b/stock_release_channel/models/stock_release_channel.py @@ -902,17 +902,17 @@ def _get_expected_date(self): return False def _localize(self, dt, tz=None): - """Localize a datetime + """Localize a naive datetime Use the given tz or use the tz of the warehouse """ wh_tz = pytz.timezone(tz or self.warehouse_id.partner_id.tz or "UTC") - dt_tz = dt.astimezone(pytz.utc).astimezone(wh_tz) + dt_tz = pytz.utc.localize(dt).astimezone(wh_tz) return dt_tz @api.model def _naive(self, dt_tz, reset_time=False): - """Convert a datetime as naive datetime + """Convert a localized datetime to a naive datetime Allow to reset time """ From 8d124d160fb7cce7a3519ab083fd3b7a76914af0 Mon Sep 17 00:00:00 2001 From: Jacques-Etienne Baudoux Date: Thu, 28 May 2026 14:32:49 +0200 Subject: [PATCH 2/2] [FIX] stock_release_channel_warehouse_calendar: localize Convert a naive datetime to UTC independently of system local timezone --- .../models/stock_release_channel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stock_release_channel_warehouse_calendar/models/stock_release_channel.py b/stock_release_channel_warehouse_calendar/models/stock_release_channel.py index 38aeb64bf80..3a5f709ea75 100644 --- a/stock_release_channel_warehouse_calendar/models/stock_release_channel.py +++ b/stock_release_channel_warehouse_calendar/models/stock_release_channel.py @@ -34,7 +34,7 @@ def _next_delivery_date_warehouse_calendar(self, delivery_date, partner=None): wh_tz = pytz.timezone(self.warehouse_id.partner_id.tz or "UTC") batch_delta = timedelta(days=61) while True: - delivery_date = delivery_date.astimezone(pytz.utc) + delivery_date = pytz.utc.localize(delivery_date) work_intervals = calendar._work_intervals_batch( delivery_date, delivery_date + batch_delta, tz=wh_tz )[False] @@ -45,4 +45,4 @@ def _next_delivery_date_warehouse_calendar(self, delivery_date, partner=None): delivery_date = yield delivery_date.astimezone(pytz.utc).replace( tzinfo=None ) - delivery_date = delivery_date.astimezone(pytz.utc) + delivery_date = pytz.utc.localize(delivery_date)