diff --git a/website_sale_aplicoop/models/group_order.py b/website_sale_aplicoop/models/group_order.py index 9c63af4..bb9b02a 100644 --- a/website_sale_aplicoop/models/group_order.py +++ b/website_sale_aplicoop/models/group_order.py @@ -647,10 +647,13 @@ class GroupOrder(models.Model): orders = self.search([("state", "in", ["draft", "open"])]) _logger.info("Cron: Updating dates for %d active group orders", len(orders)) for order in orders: + # Confirm BEFORE recomputing dates: cutoff_date still points to the + # current cycle's cutoff (today or past), so the check works correctly. + # After confirmation, recompute dates so they advance to the next cycle. + order._confirm_linked_sale_orders() order._compute_cutoff_date() order._compute_pickup_date() order._compute_delivery_date() - order._confirm_linked_sale_orders() _logger.info("Cron: Date update completed") def _confirm_linked_sale_orders(self): @@ -664,9 +667,9 @@ class GroupOrder(models.Model): """ self.ensure_one() - # Only confirm if cutoff date has passed + # Only confirm if cutoff date has reached or passed (>= cutoff day itself) today = fields.Date.today() - if self.cutoff_date and self.cutoff_date >= today: + if self.cutoff_date and self.cutoff_date > today: _logger.info( "Cron: Skipping group order %s (%s) - cutoff date %s not yet passed", self.id,