From 2f57a5d14eacd4824277e9bd24dc319d02347497 Mon Sep 17 00:00:00 2001 From: snt Date: Fri, 27 Feb 2026 15:19:41 +0100 Subject: [PATCH] [IMP] group_order: confirmar sale orders en cron diario --- website_sale_aplicoop/models/group_order.py | 40 +++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/website_sale_aplicoop/models/group_order.py b/website_sale_aplicoop/models/group_order.py index 8090f27..a4da72c 100644 --- a/website_sale_aplicoop/models/group_order.py +++ b/website_sale_aplicoop/models/group_order.py @@ -680,4 +680,44 @@ class GroupOrder(models.Model): 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): + """Confirm draft/sent sale orders linked to this group order. + + This is triggered by the daily cron so that weekly orders generated + from the website are confirmed automatically once dates are refreshed. + """ + self.ensure_one() + SaleOrder = self.env["sale.order"].sudo() + sale_orders = SaleOrder.search( + [ + ("group_order_id", "=", self.id), + ("state", "in", ["draft", "sent"]), + ] + ) + + if not sale_orders: + _logger.info( + "Cron: No sale orders to confirm for group order %s (%s)", + self.id, + self.name, + ) + return + + _logger.info( + "Cron: Confirming %d sale orders for group order %s (%s)", + len(sale_orders), + self.id, + self.name, + ) + + try: + sale_orders.action_confirm() + except Exception: + _logger.exception( + "Cron: Error confirming sale orders for group order %s (%s)", + self.id, + self.name, + )