From ec953d5f012eeb1c6a521442ede5559d9f4407dc Mon Sep 17 00:00:00 2001 From: Pablo Calvo Date: Fri, 10 Jul 2026 11:58:32 +0200 Subject: [PATCH] [FIX] pos_order_to_sale_order: hook _pre_confirm_from_pos previo a action_confirm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Añade un punto de enganche no-op en create_order_from_pos, justo antes de confirmar el pedido, para que módulos de extensión (p. ej. los omnicanal de TPV) puedan asignar transportista/almacén con el pedido todavía en borrador. Sin este hook, esa asignación solo podía vivir dentro de action_confirm(), donde queda a merced de cualquier _patch_method que intercepte el método antes de la cadena de herencia normal (p. ej. sale_exceptions_priority, que evalúa excepciones con el pedido todavía sin carrier y bloquea la confirmación en silencio en contexto programático). Ref odoo-16/fl-v16#9646 Ref odoo-16/mas-musculo#834 --- pos_order_to_sale_order/models/sale_order.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pos_order_to_sale_order/models/sale_order.py b/pos_order_to_sale_order/models/sale_order.py index e90b853ee4..de0d74f13d 100644 --- a/pos_order_to_sale_order/models/sale_order.py +++ b/pos_order_to_sale_order/models/sale_order.py @@ -47,6 +47,7 @@ def create_order_from_pos(self, order_data, action): # Confirm Sale Order if action in ["confirmed", "delivered", "invoiced"]: + sale_order._pre_confirm_from_pos(order_data) sale_order.action_confirm() # mark picking as delivered @@ -64,3 +65,9 @@ def create_order_from_pos(self, order_data, action): return { "sale_order_id": sale_order.id, } + + def _pre_confirm_from_pos(self, order_data): + """Hook for extension modules to prepare the order (e.g. carrier or + warehouse auto-assignment) before it is confirmed from the POS flow. + """ + return