diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2018-11-05 11:10:24 +0000 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2018-11-06 08:34:26 +0000 |
| commit | 478691b95de9eb0d03c145e547a773de40ca9a4d (patch) | |
| tree | bbdef4d8d5ef2c2bceccce7e63b8ed3742dbd811 /addons/product/tests | |
| parent | 22ee6ebbfc6b508aabfefb4e114045f4b36cf8df (diff) | |
[IMP] product, purchase: vendor reference in multi-company
- Create 2 companies A & B
- On a product P, define 2 suppliers (same vendor), one for each
company, but with a different Vendor Product Code
- Create a PO in A for P
Both supplier codes are proposed in the Many2one widget, while only the
code for A is expected.
Fixes #27857
opw-1894952
closes odoo/odoo#28402
Diffstat (limited to 'addons/product/tests')
| -rw-r--r-- | addons/product/tests/test_seller.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/addons/product/tests/test_seller.py b/addons/product/tests/test_seller.py index 36693317c34..830b277da1d 100644 --- a/addons/product/tests/test_seller.py +++ b/addons/product/tests/test_seller.py @@ -10,6 +10,11 @@ class TestSeller(TransactionCase): super(TestSeller, self).setUp() self.product_service = self.env.ref('product.product_product_2') self.product_service.default_code = 'DEFCODE' + self.product_consu = self.env['product.product'].create({ + 'name': 'Boudin', + 'type': 'consu', + }) + self.product_consu.default_code = 'DEFCODE' self.asustec = self.env.ref('base.res_partner_1') self.camptocamp = self.env.ref('base.res_partner_12') @@ -26,3 +31,35 @@ class TestSeller(TransactionCase): .with_context(partner_id=self.camptocamp.id)\ .code self.assertEqual('C2CCODE', context_code, "Partner's code not used in product name with context set") + + def test_20_sellers_company(self): + company_a = self.env.user.company_id + company_b = self.env['res.company'].create({ + 'name': 'Saucisson Inc.', + }) + self.product_consu.write({'seller_ids': [ + (0, 0, {'name': self.asustec.id, 'product_code': 'A', 'company_id': company_a.id}), + (0, 0, {'name': self.asustec.id, 'product_code': 'B', 'company_id': company_b.id}), + (0, 0, {'name': self.asustec.id, 'product_code': 'NO', 'company_id': False}), + ]}) + + names = self.product_consu.with_context( + partner_id=self.asustec.id, + ).name_get() + ref = set([x[1] for x in names]) + self.assertEqual(len(names), 3, "3 vendor references should have been found") + self.assertEqual(ref, {'[A] Boudin', '[B] Boudin', '[NO] Boudin'}, "Incorrect vendor reference list") + names = self.product_consu.with_context( + partner_id=self.asustec.id, + company_id=company_a.id, + ).name_get() + ref = set([x[1] for x in names]) + self.assertEqual(len(names), 2, "2 vendor references should have been found") + self.assertEqual(ref, {'[A] Boudin', '[NO] Boudin'}, "Incorrect vendor reference list") + names = self.product_consu.with_context( + partner_id=self.asustec.id, + company_id=company_b.id, + ).name_get() + ref = set([x[1] for x in names]) + self.assertEqual(len(names), 2, "2 vendor references should have been found") + self.assertEqual(ref, {'[B] Boudin', '[NO] Boudin'}, "Incorrect vendor reference list") |
