From 7f1212024df7a3b3b7e3c271594b03f803ffb2b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Mac=20Rouillon?= Date: Tue, 20 Apr 2021 09:22:24 -0300 Subject: [PATCH] [13.0] [IMP] sale_order_type: Implement multi-company for the warehouse selection by the sale type. --- sale_order_type/models/sale.py | 9 +++++++++ sale_order_type/tests/test_sale_order_type.py | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/sale_order_type/models/sale.py b/sale_order_type/models/sale.py index 5102684c788..4166febf7aa 100644 --- a/sale_order_type/models/sale.py +++ b/sale_order_type/models/sale.py @@ -71,6 +71,15 @@ def onchange_type_id(self): line_vals.update({"route_id": order_type.route_id.id}) order.order_line.update(line_vals) + @api.onchange("company_id") + def _onchange_company_id(self): + super(SaleOrder, self)._onchange_company_id() + if ( + self.type_id.warehouse_id + and self.type_id.warehouse_id.company_id == self.company_id + ): + self.warehouse_id = self.type_id.warehouse_id + @api.model def create(self, vals): if vals.get("name", "/") == "/" and vals.get("type_id"): diff --git a/sale_order_type/tests/test_sale_order_type.py b/sale_order_type/tests/test_sale_order_type.py index 2e756131203..578636e2842 100644 --- a/sale_order_type/tests/test_sale_order_type.py +++ b/sale_order_type/tests/test_sale_order_type.py @@ -40,7 +40,7 @@ def setUp(self): ) self.default_sale_type_id = self.env["sale.order.type"].search([], limit=1) self.warehouse = self.env["stock.warehouse"].create( - {"name": "Warehouse Test", "code": "WT"} + {"name": "Warehouse Test", "code": "WT", "company_id": self.env.company.id} ) self.product = self.env["product.product"].create( {"type": "service", "invoice_policy": "order", "name": "Test product"} @@ -156,6 +156,12 @@ def test_invoice_onchange_type(self): self.assertEqual(invoice.invoice_payment_term_id, sale_type.payment_term_id) self.assertEqual(invoice.journal_id, sale_type.journal_id) + def test_sale_onchange_company_id(self): + order = self.create_sale_order() + order.company_id = self.env.company.id + order._onchange_company_id() + self.assertEqual(order.company_id, self.sale_type.company_id) + def test_invoice_change_partner(self): invoice = self.create_invoice() self.assertEqual(invoice.sale_type_id, self.sale_type)