diff --git a/bemade_fsm/models/sale_order_line.py b/bemade_fsm/models/sale_order_line.py index a0ee0b4..dc7ae49 100644 --- a/bemade_fsm/models/sale_order_line.py +++ b/bemade_fsm/models/sale_order_line.py @@ -142,6 +142,7 @@ class SaleOrderLine(models.Model): vals["tag_ids"] = template.tags.ids vals["allocated_hours"] = template.planned_hours vals["sequence"] = template.sequence + # vals["partner_id"] = parent and parent.partner_id and parent.partner_id.id if template.equipment_ids: vals["equipment_ids"] = template.equipment_ids.ids return vals diff --git a/bemade_fsm/tests/test_sale_order.py b/bemade_fsm/tests/test_sale_order.py index a8869a9..d9d2b48 100644 --- a/bemade_fsm/tests/test_sale_order.py +++ b/bemade_fsm/tests/test_sale_order.py @@ -327,3 +327,36 @@ class TestSalesOrder(BemadeFSMBaseTest): so.action_confirm() self.assertFalse(so.visit_ids) + + def test_changing_sale_order_customer_follows_to_tasks_and_subtasks(self): + so = self._generate_sale_order() + so = self._generate_sale_order() + so.company_id.create_default_fsm_visit = False + task_template = self._generate_task_template( + parent=None, + structure=[2, 2], + names=["Parent", "Child", "Grandchild"], + ) + product = self._generate_product(task_template=task_template) + sol = self._generate_sale_order_line(so, product) + + so.action_confirm() + + parent_task = sol.task_id + for task in parent_task._get_all_subtasks() | parent_task: + self.assertEqual(so.partner_shipping_id, task.partner_id) + + so.write( + { + "partner_shipping_id": self.env["res.partner"].create( + { + "name": "New shipping address", + "parent_id": so.partner_id.id, + "type": "delivery", + } + ) + } + ) + + for task in parent_task._get_all_subtasks() | parent_task: + self.assertEqual(so.partner_shipping_id, task.partner_id)