diff --git a/models/res_partner.py b/models/res_partner.py index 55afc7f63ca3971c29e6cdab13a9688d82859a82..cc6dad383ea57bdf5f8c3050b6d2190e3ab72337 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -181,6 +181,10 @@ class ScopPartner(models.Model): domain=[('active', '=', True), ('is_company', '=', True), ('organization_subtype_id.name', '=', 'Incubateur')], on_delete='restrict') + is_accountant = fields.Boolean( + "Est un Expert-comptable") + is_auditor = fields.Boolean( + "Est un Commissaire au compte") # Contacts director_ids = fields.One2many( @@ -400,8 +404,47 @@ class ScopPartner(models.Model): @api.onchange('organization_type_id') def onchange_organization_type_id(self): for partner in self: - partner.organization_subtype_id = False + if not partner.organization_type_id: + partner.organization_subtype_id = False + @api.onchange('is_accountant') + def onchange_is_accountant(self): + for partner in self: + if partner.is_accountant and partner.is_auditor: + orga_sub = self.env['res.partner.organization.type'].search([ + ('name', '=', 'Organisme réviseur, ' + + 'Expert-comptable / Commissaire au compte')]) + partner.organization_subtype_id = orga_sub.id + elif partner.is_accountant: + orga_sub = self.env['res.partner.organization.type'].search([ + ('name', '=', 'Expert-Comptable')]) + partner.organization_subtype_id = orga_sub.id + elif partner.is_auditor: + orga_sub = self.env['res.partner.organization.type'].search([ + ('name', '=', 'Commissaire au compte')]) + partner.organization_subtype_id = orga_sub.id + else: + partner.organization_subtype_id = False + + @api.onchange('is_auditor') + def onchange_is_auditor(self): + for partner in self: + if partner.is_accountant and partner.is_auditor: + orga_sub = self.env['res.partner.organization.type'].search([ + ('name', '=', 'Organisme réviseur, ' + + 'Expert-comptable / Commissaire au compte')]) + partner.organization_subtype_id = orga_sub.id + elif partner.is_auditor: + orga_sub = self.env['res.partner.organization.type'].search([ + ('name', '=', 'Commissaire au compte')]) + partner.organization_subtype_id = orga_sub.id + elif partner.is_accountant: + orga_sub = self.env['res.partner.organization.type'].search([ + ('name', '=', 'Expert-Comptable')]) + partner.organization_subtype_id = orga_sub.id + else: + partner.organization_subtype_id = False + @api.onchange('name') def onchange_name(self): if self.search_count([('name', '=ilike', self.name)]) > 0: @@ -541,7 +584,6 @@ class ScopPartner(models.Model): def _search_current_user_ur_id(self, operator, value): return [('ur_id', '=', self.env.user.company_id.ur_id.id)] - @api.multi def scop_send_to_cg(self): self.write({ diff --git a/views/res_partner.xml b/views/res_partner.xml index 138a9ee128801c37e2dcb44b91e0e62b1bf3b0db..93e8332e254a17c230b1d2ee3bb2eed90a797ff4 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -72,6 +72,8 @@ <field name="segment_2_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('ur_id', '=', ur_id)]"/> <field name="segment_3_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('ur_id', '=', ur_id)]"/> <field name="segment_4_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('ur_id', '=', ur_id)]"/> + <field name="is_accountant" attrs="{'invisible': ['|', ('is_company','=', False), ('is_auditor','=', True)]}"/> + <field name="is_auditor" attrs="{'invisible': ['|', ('is_company','=', False), ('is_accountant','=', True)]}"/> <field name="organization_type_id" attrs="{'invisible': [('is_company','=', False)]}" options="{'no_create': True}"/> <field name="organization_subtype_id" attrs="{'invisible': [('is_company','=', False)]}" domain="[('parent_id', '=', organization_type_id), ('child_ids', '=', False)]" options="{'no_create': True}"/> </group> diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index c5915d81c7f27a44d01250e6ea95aba814c464ba..161bb47b180b6eb3a56f0a7874c072dc26b6cc52 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -261,6 +261,8 @@ <field name="seed_end" attrs="{'invisible': [('is_seed_scop', '!=', True)], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi')),('is_seed_scop', '=', True)]}"/> <field name="is_incubated" attrs="{'invisible': [('project_status', '=', '1_information')]}"/> <field name="incubator_id" widget="res_partner_many2one" attrs="{'invisible': [('is_incubated', '!=', True)]}" options="{'no_create': True}"/> + <field name="is_accountant"/> + <field name="is_auditor"/> </group> </group> <notebook colspan="4"> @@ -695,7 +697,7 @@ <field name="name">Tous les Organismes</field> <field name="res_model">res.partner</field> <field name="view_type">form</field> - <field name="view_mode">tree,form</field> + <field name="view_mode">tree,form,activity</field> <field name="search_view_id" ref="scop_partner_view_search"/> <field name="domain" eval="[('is_cooperative', '=', True)]"/> <field name="view_ids" eval="[(5, 0, 0),