diff --git a/addons/point_of_sale/models/pos_config.py b/addons/point_of_sale/models/pos_config.py index eae9ff645ef..7c504331891 100644 --- a/addons/point_of_sale/models/pos_config.py +++ b/addons/point_of_sale/models/pos_config.py @@ -729,8 +729,11 @@ class PosConfig(models.Model): LEFT JOIN pm ON ( partner.id = pm.partner_id) + WHERE ( + partner.company_id=%s OR partner.company_id IS NULL + ) ORDER BY COALESCE(pm.order_count, 0) DESC, NAME limit %s; - """, [str(self.limited_partners_amount)]) + """, [self.company_id.id, str(self.limited_partners_amount)]) result = self.env.cr.fetchall() return result diff --git a/addons/point_of_sale/tests/test_pos_basic_config.py b/addons/point_of_sale/tests/test_pos_basic_config.py index 006a49a3f97..5b60fa6d32b 100644 --- a/addons/point_of_sale/tests/test_pos_basic_config.py +++ b/addons/point_of_sale/tests/test_pos_basic_config.py @@ -807,3 +807,25 @@ class TestPoSBasicConfig(TestPoSCommon): open_and_check(pos01_data) open_and_check(pos02_data) + + def test_load_pos_data_should_not_fail(self): + """load_pos_data shouldn't fail + + (Include test conditions here if possible) + + - When there are partners that belong to different company + """ + + # create a partner that belongs to different company + company2 = self.company_data_2['company'] + self.env['res.partner'].create({ + 'name': 'Test', + 'company_id': company2.id, + }) + + # activate limited partners loading + self.config.limited_partners_loading = True + self.open_new_session() + + # calling load_pos_data should not raise an error + self.pos_session.load_pos_data()