diff --git a/models/res_partner.py b/models/res_partner.py index 856a372300620e07a78c760ad5faf798eebf94fa..a0659c99719354c8361458abcd4d35b7b0446541 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -158,7 +158,10 @@ class ScopPartner(models.Model): accountant_id = fields.Many2one( 'res.partner', string='Expert-Comptable', - domain=[('is_company', '=', True)], + domain=[('is_company', '=', True), + '|', ('organization_subtype_id.name', '=', 'Expert-Comptable'), + ('organization_subtype_id.name', '=', 'Organisme réviseur, ' + + 'Expert-comptable / Commissaire au compte')], on_delete='restrict') accountant_person_id = fields.Many2one( 'res.partner', @@ -168,7 +171,11 @@ class ScopPartner(models.Model): auditor_id = fields.Many2one( 'res.partner', string='Commissaire aux Comptes', - domain=[('is_company', '=', True)], + domain=[('is_company', '=', True), + '|', ('organization_subtype_id.name', '=', + 'Commissaire au compte'), + ('organization_subtype_id.name', '=', 'Organisme réviseur, ' + + 'Expert-comptable / Commissaire au compte')], on_delete='restrict') auditor_person_id = fields.Many2one( 'res.partner', @@ -201,7 +208,8 @@ class ScopPartner(models.Model): direccte_id = fields.Many2one( 'res.partner', string='DIRECCTE rattachée', - domain=[('is_company', '=', True)], + domain=[('is_company', '=', True), + ('organization_subtype_id', '=', 'DIRECCTE')], on_delete='restrict') last_update_status = fields.Date('Dernière mise à jour des statuts') ministry_list_ids = fields.One2many( @@ -226,12 +234,20 @@ class ScopPartner(models.Model): revision_company_id = fields.Many2one( 'res.partner', string='Organisme de révision', - domain=[('is_company', '=', True)], + domain=[('is_company', '=', True), + '|', ('organization_subtype_id.name', '=', + 'Organisme réviseur'), + ('organization_subtype_id.name', '=', 'Organisme réviseur, ' + + 'Expert-comptable / Commissaire au compte')], on_delete='restrict') revision_backup_company_id = fields.Many2one( 'res.partner', string='Organisme de révision suppléant', - domain=[('is_company', '=', True)], + domain=[('is_company', '=', True), + '|', ('organization_subtype_id.name', '=', + 'Organisme réviseur'), + ('organization_subtype_id.name', '=', 'Organisme réviseur, ' + + 'Expert-comptable / Commissaire au compte')], on_delete='restrict') revision_person_id = fields.Many2one( 'res.partner', @@ -341,6 +357,11 @@ class ScopPartner(models.Model): for coop in self: coop.creation_suborigin_id = False + @api.onchange('organization_type_id') + def onchange_organization_type_id(self): + for partner in self: + partner.organization_subtype_id = False + # Creation d'une periode lorsque le statut passe en Phase de Suivi @api.onchange('project_status') def onchange_project_status(self): diff --git a/views/res_partner.xml b/views/res_partner.xml index 1e2bb2dba17079a7aeb5c2beef800bcf01ccd2f3..faefa28461b52839f950a842ac8c3af854861a9f 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -92,9 +92,9 @@ <group name="Infos activités" attrs="{'invisible': [('is_company','=', False)]}"> <field name="certification_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" attrs="{'invisible': [('is_company','=', False)]}"/> <field name="category_id" string="Segmentation" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" placeholder="Territoire Rattaché..." can_create="true" can_write="true" modifiers="{}" attrs="{'invisible': [('is_company','=', False)]}" domain="[('ur_id', '=', ur_id)]"/> - <field name="industry_id" attrs="{'invisible': [('is_company','=', False)]}"/> - <field name="organization_type_id" attrs="{'invisible': [('is_company','=', False)]}"/> - <field name="organization_subtype_id" attrs="{'invisible': [('is_company','=', False)]}"/> + <field name="industry_id" attrs="{'invisible': [('is_company','=', False)]}" options="{'no_create': 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> </xpath> <xpath expr='//form/sheet/group' position="after"> @@ -102,9 +102,9 @@ <group> <field name="title" options='{"no_open": True}' attrs="{'invisible': [('is_company','=', True)]}"/> <field name="birthyear" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="education_level" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="education_domain" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="contact_origin_id" attrs="{'invisible': [('is_company','=', True)]}"/> + <field name="education_level" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> + <field name="education_domain" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> + <field name="contact_origin_id" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> <field name="contact_legality" readonly="True" attrs="{'invisible': [('is_company','=', True)]}"/> </group> <group> @@ -135,11 +135,11 @@ <xpath expr='//form/group' position="after"> <group> <group> - <field name="title" options='{"no_open": True}' attrs="{'invisible': [('is_company','=', True)]}"/> + <field name="title" options='{"no_open": True, "no_create": True}' attrs="{'invisible': [('is_company','=', True)]}"/> <field name="birthyear" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="education_level" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="education_domain" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="contact_origin_id" attrs="{'invisible': [('is_company','=', True)]}"/> + <field name="education_level" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> + <field name="education_domain" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> + <field name="contact_origin_id" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> <field name="contact_legality" readonly="True" attrs="{'invisible': [('is_company','=', True)]}"/> </group> <group> @@ -164,11 +164,11 @@ <xpath expr='//form/sheet/group' position="after"> <group> <group> - <field name="title" options='{"no_open": True}' attrs="{'invisible': [('is_company','=', True)]}"/> + <field name="title" options='{"no_open": True, "no_create": True}' attrs="{'invisible': [('is_company','=', True)]}"/> <field name="birthyear" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="education_level" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="education_domain" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="contact_origin_id" attrs="{'invisible': [('is_company','=', True)]}"/> + <field name="education_level" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> + <field name="education_domain" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> + <field name="contact_origin_id" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> <field name="contact_legality" readonly="True" attrs="{'invisible': [('is_company','=', True)]}"/> </group> <group> diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index 4821987bd9dd61a4162dbf9288c09b116d2e39ee..fe5ead5c785b46ed1978d8dd28d7cd8c369dd950 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -247,22 +247,22 @@ </field> </group> <group string="Suivi UR"> - <field name="ur_id" required="True"/> + <field name="ur_id" required="True" options="{'no_create': True}"/> <field name="creation_delegate_id" widget="res_partner_many2one" - attrs="{'required':[('project_status','in',('3_accompagnement','4_adhesion', '5_suivi'))]}"/> - <field name="followup_delegate_id" widget="res_partner_many2one" attrs="{'required':[('project_status','in',('5_suivi'))]}"/> - <field name="revision_person_id" widget="res_partner_many2one" readonly="True"/> + attrs="{'required':[('project_status','in',('3_accompagnement','4_adhesion', '5_suivi'))]}" options="{'no_create': True}"/> + <field name="followup_delegate_id" widget="res_partner_many2one" attrs="{'required':[('project_status','in',('5_suivi'))]}" options="{'no_create': True}"/> + <field name="revision_person_id" widget="res_partner_many2one" readonly="True" options="{'no_create': True}"/> <field name="parent_group_name"/> <field name="category_id" string="Segmentation" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('ur_id', '=', ur_id)]"/> </group> <group string="Informations Activité"> - <field name="creation_origin_id" required="True"/> - <field name="creation_suborigin_id" attrs="{'required':[('creation_origin_id','!=',False)]}" domain="[('parent_id', '=', creation_origin_id)]"/> + <field name="creation_origin_id" required="True" options="{'no_create': True}"/> + <field name="creation_suborigin_id" attrs="{'required':[('creation_origin_id','!=',False)]}" domain="[('parent_id', '=', creation_origin_id), ('child_ids', '=', False)]" options="{'no_create': True}"/> <field name="date_1st_sign" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> <field name="registration_date" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> <field name="social_object" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> - <field name="naf_id" readonly="True" context="{'partner_category_display': 'short'}"/> - <field name="industry_id"/> + <field name="naf_id" readonly="True" context="{'partner_category_display': 'short'}" options="{'no_create': True}"/> + <field name="industry_id" options="{'no_create': True}"/> <field name="certification_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}"/> <field name="siret" readonly="True"/> <field name="first_closeout" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> @@ -270,8 +270,8 @@ <field name="is_seed_scop" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> <field name="seed_end" attrs="{'invisible': [('is_seed_scop', '!=', True)], 'required':[('project_status','in',('4_adhesion', '5_suivi')),('is_seed_scop', '=', True)]}"/> <field name="is_incubated" required="True"/> - <field name="incubator_id" widget="res_partner_many2one" attrs="{'invisible': [('is_incubated', '!=', True)]}"/> - <field name="prescriber_canal_id" widget="res_partner_many2one"/> + <field name="incubator_id" widget="res_partner_many2one" attrs="{'invisible': [('is_incubated', '!=', True)]}" options="{'no_create': True}"/> + <field name="prescriber_canal_id" widget="res_partner_many2one" options="{'no_create': True}"/> </group> </group> <notebook colspan="4"> @@ -279,22 +279,22 @@ <group> <field name="siren" readonly="True"/> <field name="dissolution_date"/> - <field name="dissolution_reason_id"/> + <field name="dissolution_reason_id" options="{'no_create': True}"/> </group> </page> <page name="partners" string="Partenaires"> <group> - <field name="bank_id" widget="res_partner_many2one"/> - <field name="bank2_id" widget="res_partner_many2one"/> - <field name="accountant_id" widget="res_partner_many2one" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> - <field name="accountant_person_id" widget="res_partner_many2one" attrs="{'invisible': [('accountant_id', '!=', False)]}"/> - <field name="auditor_id" widget="res_partner_many2one"/> - <field name="auditor_person_id" widget="res_partner_many2one" attrs="{'invisible': [('auditor_id', '!=', False)]}"/> + <field name="bank_id" widget="res_partner_many2one" options="{'no_create': True}"/> + <field name="bank2_id" widget="res_partner_many2one" options="{'no_create': True}"/> + <field name="accountant_id" widget="res_partner_many2one" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}" options="{'no_create': True}"/> + <field name="accountant_person_id" widget="res_partner_many2one" attrs="{'invisible': [('accountant_id', '!=', False)]}" domain="[('parent_id', '=', accountant_id), ('is_company', '=', False)]" options="{'no_create': True}"/> + <field name="auditor_id" widget="res_partner_many2one" options="{'no_create': True}"/> + <field name="auditor_person_id" widget="res_partner_many2one" attrs="{'invisible': [('auditor_id', '!=', False)]}" domain="[('parent_id', '=', auditor_id), ('is_company', '=', False)]" options="{'no_create': True}"/> </group> </page> <page name='scop_ministry_list' string="Listes Ministère"> <group> - <field name="direccte_id" widget="res_partner_many2one"/> + <field name="direccte_id" widget="res_partner_many2one" options="{'no_create': True}"/> <field name="last_update_status"/> <field name="ministry_list_ids" mode="tree"> <tree group_create="False" group_edit="False" group_delete="False"/> @@ -306,15 +306,15 @@ <group string="Informations de révision"> <group> <field name="revision_contract"/> - <field name="revision_company_id" widget="res_partner_many2one"/> - <field name="revision_backup_company_id" widget="res_partner_many2one"/> + <field name="revision_company_id" widget="res_partner_many2one" options="{'no_create': True}"/> + <field name="revision_backup_company_id" widget="res_partner_many2one" options="{'no_create': True}"/> <field name="revision_person_id" widget="res_partner_many2one"/> <field name="revision_certified_person_id" widget="res_partner_many2one"/> <field name="revision_person_assign_date"/> </group> <group> <field name="revision_type"/> - <field name="revision_format_id"/> + <field name="revision_format_id" options="{'no_create': True}"/> <field name="revision_staff"/> <field name="revision_last_date"/> <field name="revision_next_date"/>