diff --git a/multi_branch_base/__manifest__.py b/multi_branch_base/__manifest__.py index 449aaad2f..e0ce76443 100644 --- a/multi_branch_base/__manifest__.py +++ b/multi_branch_base/__manifest__.py @@ -22,7 +22,7 @@ { 'name': "Multi Branch Operations", - 'version': "16.0.1.0.0", + 'version': "16.0.1.0.1", 'summary': """ Multiple Branch Unit Operation Setup for All Modules In Odoo""", 'description': """Multiple Branch Unit Operation Setup for All diff --git a/multi_branch_base/models/branch_res_partner.py b/multi_branch_base/models/branch_res_partner.py index 0bce4d036..959a1b8f5 100644 --- a/multi_branch_base/models/branch_res_partner.py +++ b/multi_branch_base/models/branch_res_partner.py @@ -29,16 +29,39 @@ class BranchPartner(models.Model): branch_id = fields.Many2one("res.branch", string='Branch', store=True, help='Leave this field empty if the partner is' - ' shared between all branches' + ' shared between all branches', + domain="[('id', 'in', allowed_branch_ids)]", ) allowed_branch_ids = fields.Many2many('res.branch', store=True, string="Branches", - compute='_compute_allowed_branch_ids') + compute="_compute_allowed_branch_ids") + is_multiple_company = fields.Boolean(string="Multi Company", + compute='_compute_is_multiple_company') @api.depends('company_id') def _compute_allowed_branch_ids(self): for po in self: - po.allowed_branch_ids = self.env.user.branch_ids.ids + if po.is_multiple_company: + if po.company_id: + branch_ids = [] + for rec in po.env.user.branch_ids: + if rec.company_id == po.company_id: + branch_ids.append(rec.id) + po.allowed_branch_ids = branch_ids + else: + po.allowed_branch_ids = po.env.user.branch_ids.ids + else: + po.allowed_branch_ids = po.env.user.branch_ids.ids + + @api.depends('company_id') + def _compute_is_multiple_company(self): + """checking is this multi company or not""" + for rec in self: + rec.is_multiple_company = False + company_count = self.env['res.company'].search_count([]) + if company_count > 1: + rec.is_multiple_company = True + @api.model def default_get(self, default_fields): diff --git a/multi_branch_base/views/branch_res_partner_views.xml b/multi_branch_base/views/branch_res_partner_views.xml index 0b613a4a1..40e58371e 100644 --- a/multi_branch_base/views/branch_res_partner_views.xml +++ b/multi_branch_base/views/branch_res_partner_views.xml @@ -7,11 +7,13 @@ - + - \ No newline at end of file +