From cb85e4baf5da77d48a40fa4553d68fea6e1ab142 Mon Sep 17 00:00:00 2001 From: tafaRU Date: Tue, 4 Aug 2020 06:41:49 +0000 Subject: [PATCH] [FIX] sale_project: batch confirmation of sales orders The override of `_action_confirm` in sale_project will crash when orders from multiple companies are confirmed together. This commit adapts the method to handle multiple records correctly. closes odoo/odoo#58269 X-original-commit: ab14083b0ddfb73da167938c43f35a992fbbe93c Signed-off-by: Victor Feyens (vfe) --- addons/sale_project/models/sale_order.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/addons/sale_project/models/sale_order.py b/addons/sale_project/models/sale_order.py index 3a2a2866f92..d173ddd6838 100644 --- a/addons/sale_project/models/sale_order.py +++ b/addons/sale_project/models/sale_order.py @@ -50,8 +50,13 @@ class SaleOrder(models.Model): def _action_confirm(self): """ On SO confirmation, some lines should generate a task or a project. """ result = super()._action_confirm() - self.mapped('order_line').sudo() \ - .with_company(self.company_id)._timesheet_service_generation() + if len(self.company_id) == 1: + # All orders are in the same company + self.order_line.sudo().with_company(self.company_id)._timesheet_service_generation() + else: + # Orders from different companies are confirmed together + for order in self: + order.order_line.sudo().with_company(order.company_id)._timesheet_service_generation() return result def action_view_task(self):