From 5d5e996617c84a21c13eec492e90376554b25402 Mon Sep 17 00:00:00 2001 From: Brian McMaster Date: Thu, 18 Dec 2025 12:15:41 -0500 Subject: [PATCH] [IMP] fieldservice_recurring: optimize order generation logic --- fieldservice_recurring/models/fsm_recurring.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/fieldservice_recurring/models/fsm_recurring.py b/fieldservice_recurring/models/fsm_recurring.py index a171bf09db..9cf09388f7 100644 --- a/fieldservice_recurring/models/fsm_recurring.py +++ b/fieldservice_recurring/models/fsm_recurring.py @@ -219,15 +219,13 @@ def _generate_orders(self): """ orders = self.env["fsm.order"] for rec in self: - order_dates = [] - for order in rec.fsm_order_ids: - if order.scheduled_date_start: - order_dates.append(order.scheduled_date_start.date()) max_orders = rec.max_orders if rec.max_orders > 0 else False order_count = rec.fsm_order_count - for date in rec._get_rruleset(): - if date.date() in order_dates: - continue + dates = list(rec._get_rruleset()) + if order_count > 0: + # skip first date since an order already exists for that date + dates = dates[1:] + for date in dates: if max_orders > order_count or not max_orders: orders |= rec._create_order(date=date) order_count += 1