diff --git a/models/res_partner.py b/models/res_partner.py index 61a057497815e60b777636d880f60d7bd57f31dd..d00f0be9d19a04ec08d97527d7bff87f60e47e71 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -34,22 +34,25 @@ class ScopPartner(models.Model): ('5_suivi', 'Phase de suivi'), ('6_abandonne', 'Projet abandonné')], track_visibility='onchange', - string='Statut projet') + string='Statut projet', + index=True) cooperative_form_id = fields.Many2one( 'res.partner.cooperative.form', string="Cooperative form", - on_delete='restrict') + on_delete='restrict', + index=True) partner_company_type_id = fields.Many2one( comodel_name='res.partner.company.type', string='Legal Form', - on_delete='restrict') + on_delete='restrict', + index=True) membership_status = fields.Selection( [('member', 'Adhérent'), ('not_member', 'Non Adhérent'), ('out', 'Radié')], string="Statut d'adhésion", default="not_member") member_number = fields.Char("No adhérent") - cae = fields.Boolean("CAE") + cae = fields.Boolean("CAE", index=True) # Infos générales / Contact cedex = fields.Char("Cedex") @@ -78,7 +81,7 @@ class ScopPartner(models.Model): string='Délégué de suivi', domain=[('user_ids', '>', 0)], on_delete='restrict') - parent_group_name = fields.Char('Coopérative mère') + parent_group_name = fields.Char('Coopérative mère', index=True) # Infos générales / Infos activité creation_origin_id = fields.Many2one( @@ -99,16 +102,17 @@ class ScopPartner(models.Model): naf_id = fields.Many2one( 'res.partner.naf', string='Code NAF', - on_delete='restrict') + on_delete='restrict', + index=True) industry_id = fields.Many2one('res.partner.industry', 'Industry', - on_delete='restrict') + on_delete='restrict', index=True) certification_ids = fields.Many2many( comodel_name='res.partner.certification', string='Agrément', on_delete='restrict') - siret = fields.Char(string='SIRET', size=14) - capital = fields.Integer("Capital social de la structure") + siret = fields.Char(string='SIRET', size=14, index=True) + capital = fields.Integer("Capital (en €") first_closeout = fields.Date( - 'Date clôture 1er bilan en coopérative') + '1er bilan en coop') closeout_month = fields.Selection( [(12842, 'Janvier'), (12843, 'Février'), @@ -138,7 +142,7 @@ class ScopPartner(models.Model): string='Canal de Prescription', on_delete='restrict') sigle = fields.Char("Sigle de la coopérative") - keywords_scic = fields.Many2many( + keywords_scic_ids = fields.Many2many( 'res.partner.keywords', string='Mots clés SCIC', on_delete='restrict') # Infos juridiques @@ -189,7 +193,7 @@ class ScopPartner(models.Model): on_delete='restrict') # Contacts / Adresses - is_main_location = fields.Boolean("Est l'établissement principal") + is_main_location = fields.Boolean("Est l'établissement principal", index=True) # Périodes juridiques scop_period_ids = fields.One2many( diff --git a/models/scop_period.py b/models/scop_period.py index 4d297be2c90d5e42083b1d8c19ca51d6c7528188..91062307638c8f6298571206860a215642fe6b46 100644 --- a/models/scop_period.py +++ b/models/scop_period.py @@ -38,19 +38,21 @@ class ScopPeriod(models.Model): track_visibility='onchange', on_delete='restrict', required=True) siret = fields.Char(string='SIRET', size=14, required=True) - street = fields.Char() - street2 = fields.Char() - street3 = fields.Char() - zip = fields.Char() - zip_id = fields.Many2one('res.city.zip', 'ZIP Location') - city = fields.Char() + street = fields.Char(index=True) + street2 = fields.Char(index=True) + street3 = fields.Char(index=True) + zip = fields.Char(index=True) + zip_id = fields.Many2one('res.city.zip', 'ZIP Location', index=True) + city = fields.Char(index=True) + cedex = fields.Char(index=True) state_id = fields.Many2one( "res.country.state", string='State', ondelete='restrict', - domain="[('country_id', '=?', country_id)]") + domain="[('country_id', '=?', country_id)]", + index=True) country_id = fields.Many2one( - 'res.country', string='Country', ondelete='restrict') + 'res.country', string='Country', ondelete='restrict', index=True) naf_id = fields.Many2one( 'res.partner.naf', string='Code NAF', diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 5101a46cec0b82ea299ba00085963d491269228a..2e8e9e25a1e269b0f818ee3f1d430fa90b600dbf 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -27,3 +27,4 @@ access_res_partner_prescriber_canal,access_res_partner_prescriber_canal,model_re access_scop_period,access_scop_period,model_scop_period,base.group_user,1,1,1,1 access_union_regionale,access_union_regionale,model_union_regionale,base.group_user,1,1,1,1 access_res_partner_keywords,access_res_partner_keywords,model_res_partner_keywords,base.group_user,1,1,1,1 +access_res_partner_company_type,access_res_partner_company_type,model_res_partner_company_type,base.group_user,1,1,1,1 diff --git a/views/res_partner.xml b/views/res_partner.xml index c514aa02ae3317dce0654ac2dd423424cfc3639c..05c750239f0e46edb5edb67de999ab8c2aff1101 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -97,6 +97,9 @@ <field name="city" placeholder="Ville" class="o_address_city" attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + <field name="cedex" placeholder="Cedex" class="o_address_city" + attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> <field name="state_id" class="o_address_zip" placeholder="État" options="{'no_open': True}" attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" context="{'country_id': country_id, 'zip': zip}" @@ -226,7 +229,7 @@ <field name="view_mode">tree,form</field> <field name="search_view_id" ref="view_res_partner_filter_persons"/> <field name="domain" eval="[('is_company', '=', False)]"/> - <field name="context">{'search_default_my_ur': 1, 'default_is_company': False, default_company_type: 'person'}</field> + <field name="context">{'search_default_my_ur': 1, 'default_is_company': False, 'default_company_type': 'person'}</field> <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('base.view_partner_form')})]"/> @@ -241,7 +244,7 @@ <field name="view_mode">tree,form</field> <field name="search_view_id" ref="view_res_partner_filter_partners"/> <field name="domain" eval="[('is_company', '=', True)]"/> - <field name="context">{'search_default_my_ur': 1, 'default_is_company': True, default_company_type: 'company'}</field> + <field name="context">{'search_default_my_ur': 1, 'default_is_company': True, 'default_company_type': 'company'}</field> <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('base.view_partner_form')})]"/> diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index 413b1d9b69ef478bddcd3252c5df25ad9a9581b6..fb353025ba795ea10295dd9b94ee357b0f6acbea 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -102,11 +102,11 @@ <div class="oe_bloc_cgscop"> <div class="o_row d-flex"> <h3> - <field class="o_field_header" name="cooperative_form_id" readonly="True" options="{'no_open': True}"/> + <field class="o_field_header" name="cooperative_form_id" attrs="{'readonly': [('project_status', '=', '5_suivi')]}" options="{'no_open': True}"/> </h3> <span> </span> <h3> - <field options="{'no_open': True}" name="partner_company_type_id" readonly="True"/> + <field options="{'no_open': True}" name="partner_company_type_id" attrs="{'readonly': [('project_status', '=', '5_suivi')]}"/> </h3> </div> <div class="o_row d-flex "> @@ -116,9 +116,10 @@ <h3> <field name="member_number" readonly="True" class="o_field_header"/> </h3> - <h3> + <h3 > <span name="cae" class="o_field_widget o_readonly_modifier o_field_header" attrs="{'invisible':[('cae','=',False)]}">CAE</span> <field name="cae" invisible="1" /> + <!-- <field name="cae" attrs="{'readonly': [('project_status', '=', '5_suivi')]}" /> --> </h3> <field name="supplier" invisible="True"/> <field name="customer" invisible="True"/> @@ -253,7 +254,7 @@ 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="parent_group_name" attrs="{'readonly': [('project_status', '=', '5_suivi')]}" /> <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é"> @@ -262,10 +263,10 @@ <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'}" options="{'no_create': True}"/> - <field name="industry_id" options="{'no_create': True}"/> + <field name="naf_id" attrs="{'readonly': [('project_status', '=', '5_suivi')]}" context="{'partner_category_display': 'short'}" options="{'no_create': True}"/> + <field name="industry_id" options="{'no_create': True}" attrs="{'readonly': [('project_status', '=', '5_suivi')]}" /> <field name="certification_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}"/> - <field name="siret" readonly="True"/> + <field name="siret" attrs="{'readonly': [('project_status', '=', '5_suivi')]}"/> <field name="capital" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> <field name="first_closeout" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> <field name="closeout_month" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/> @@ -275,7 +276,7 @@ <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}"/> <field name="sigle"/> - <field name="keywords_scic" widget="many2many_tags" /> + <field name="keywords_scic_ids" widget="many2many_tags" /> </group> </group> <notebook colspan="4"> @@ -329,9 +330,9 @@ <form/> </field> </page> - <page name="scop_periods" string="Historique des périodes"> + <page name="scop_periods" string="Historique des périodes" attrs="{'invisible': [('project_status', '!=', '5_suivi')]}"> <field name="scop_period_ids" mode="tree" - context="{'default_partner_id': active_id, 'default_name': name, 'default_cooperative_form_id': cooperative_form_id, 'default_partner_company_type_id': partner_company_type_id, 'default_siret': siret, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_state_id': state_id, 'default_zip': zip, 'default_zip_id': zip_id, 'default_country_id': country_id, 'default_naf_id': naf_id, 'default_cae': cae, 'default_is_main_location': is_main_location, 'default_parent_group_name': parent_group_name}"> + context="{'default_partner_id': active_id, 'default_name': name, 'default_cooperative_form_id': cooperative_form_id, 'default_partner_company_type_id': partner_company_type_id, 'default_siret': siret, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_cedex': cedex, 'default_state_id': state_id, 'default_zip': zip, 'default_zip_id': zip_id, 'default_country_id': country_id, 'default_naf_id': naf_id, 'default_cae': cae, 'default_is_main_location': is_main_location, 'default_parent_group_name': parent_group_name}"> <tree string="Périodes" decoration-success="end_reason==False" decoration-muted="end_reason!=False" create="false" edit="false" delete="false"> <field name="partner_id" invisible="1"/> <field name="start"/> @@ -348,6 +349,7 @@ <field name="zip"/> <field name="zip_id" invisible="1"/> <field name="city"/> + <field name="cedex"/> <field name="state_id" invisible="1"/> <field name="country_id" invisible="1"/> <field name="naf_id"/> @@ -381,6 +383,7 @@ <field name="zip" invisible="1"/> <field name="zip_id" readonly="1"/> <field name="city" /> + <field name="cedex" /> <field name="state_id" invisible="1"/> <field name="country_id" invisible="1"/> </group> @@ -396,10 +399,10 @@ </page> <page name="contacts" string="Contacts & Addresses"> <group> - <field name="is_main_location" readonly="True"/> + <field name="is_main_location" attrs="{'readonly': [('project_status', '=', '5_suivi')]}"/> </group> <field name="child_ids" mode="kanban" - context="{'default_parent_id': active_id, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_state_id': state_id, 'default_zip': zip, 'default_country_id': country_id, 'default_supplier': supplier, 'default_customer': customer, 'default_lang': lang, 'default_user_id': user_id}"> + context="{'default_parent_id': active_id, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_cedex': cedex, 'default_state_id': state_id, 'default_zip': zip, 'default_country_id': country_id, 'default_supplier': supplier, 'default_customer': customer, 'default_lang': lang, 'default_user_id': user_id}"> <kanban> <field name="id"/> <field name="color"/> @@ -416,6 +419,7 @@ <field name="street3"/> <field name="zip"/> <field name="city"/> + <field name="cedex"/> <field name="country_id"/> <field name="mobile"/> <field name="state_id"/> @@ -449,6 +453,7 @@ <div> <field name="zip"/> <field name="city"/> + <field name="cedex"/> </div> <field t-if="record.state_id.raw_value" name="state_id"/> <field name="country_id"/> @@ -483,6 +488,8 @@ <field name="zip" placeholder="ZIP" class="o_address_zip"/> <field name="city" placeholder="Ville" class="o_address_city" attrs="{'readonly': [('type', '=', 'contact'), ('parent_id', '!=', False)]}" modifiers="{'readonly':[['type','=','contact'],['parent_id','!=',false]]}"/> + <field name="cedex" placeholder="Cedex" class="o_address_city" + attrs="{'readonly': [('type', '=', 'contact'), ('parent_id', '!=', False)]}" modifiers="{'readonly':[['type','=','contact'],['parent_id','!=',false]]}"/> <field name="state_id" class="o_address_state" placeholder="State" options='{"no_open": True}' context="{'country_id': country_id, 'zip': zip}"/> <field name="country_id" placeholder="Country" class="o_address_country" options='{"no_open": True, "no_create": True}'/> diff --git a/wizard/scop_deces_wizard.py b/wizard/scop_deces_wizard.py index a17c1ad5639271642076606e9ee6210589028c29..a810bc9f42731d486483bd34814c56571fc7d79c 100644 --- a/wizard/scop_deces_wizard.py +++ b/wizard/scop_deces_wizard.py @@ -16,8 +16,8 @@ class ScopDecesWizard(models.TransientModel): @api.model def _default_last_period_id(self): return self.env['scop.period'].search( - [('partner_id', '=', self.env.context.get('active_id')), - ('end_reason', '=', False)], + [('partner_id', '=', self.env.context.get('active_id'))], + order='create_date desc', limit=1) # Fields common @@ -38,7 +38,13 @@ class ScopDecesWizard(models.TransientModel): ('adr', "Changement d'adresse"), ('nom', "Changement de dénomination sociale"), ('autr', "Autres")], - string='Motif') + string='Motif', + default='autr') + dissolution_reason_id = fields.Many2one( + 'res.partner.dissolution.reason', + string="Motif Décés", + on_delete='restrict', + required=True) comments = fields.Text('Commentaires') @api.multi @@ -46,6 +52,7 @@ class ScopDecesWizard(models.TransientModel): # Close previous period last_period_id = self.env['scop.period'].browse( self.last_period_id.id) + print("last_period_id",last_period_id) last_period_id.write({ 'end': self.end, 'end_reason': self.end_reason, @@ -55,6 +62,6 @@ class ScopDecesWizard(models.TransientModel): # Update partner partner = self.env['res.partner'].browse(self.partner_id) partner.write({ - # 'dissolution_date': self.end, - # 'dissolution_reason_id' + 'dissolution_date': self.end, + 'dissolution_reason_id': self.dissolution_reason_id.id }) diff --git a/wizard/scop_deces_wizard.xml b/wizard/scop_deces_wizard.xml index 14da21b531ae9fc53cced23ed6374262d1c53feb..3e3527620917259bab0d8904f1184c51b0a9b7f6 100644 --- a/wizard/scop_deces_wizard.xml +++ b/wizard/scop_deces_wizard.xml @@ -8,8 +8,9 @@ <form string="Décés"> <group name="period" string="Décés / Mise en sommeil"> <field name="end"/> - <field name="end_reason"/> + <field name="dissolution_reason_id"/> <field name="comments"/> + <field name="end_reason" invisible="1"/> </group> <footer> <button class="btn btn-sm btn-primary" name="deces_action" string="Créer" type="object" confirm="Êtes-vous sûr de vouloir clôturer la dernière période ?"/> diff --git a/wizard/scop_period_wizard.py b/wizard/scop_period_wizard.py index f2f4393c7ac7c526fc05a5302273599a60531a2c..ec98de8a765a94e59d060419f82fb78cb6b34e7c 100644 --- a/wizard/scop_period_wizard.py +++ b/wizard/scop_period_wizard.py @@ -70,6 +70,11 @@ class ScopPeiodWizard(models.TransientModel): return self.env['res.partner'].browse( self.env.context.get('active_id')).city + @api.model + def _default_cedex(self): + return self.env['res.partner'].browse( + self.env.context.get('active_id')).cedex + @api.model def _default_state_id(self): return self.env['res.partner'].browse( @@ -144,6 +149,7 @@ class ScopPeiodWizard(models.TransientModel): zip_id = fields.Many2one('res.city.zip', 'ZIP Location', default=_default_zip_id) city = fields.Char(default=_default_city) + cedex = fields.Char(default=_default_cedex) state_id = fields.Many2one( "res.country.state", string='State', @@ -192,6 +198,7 @@ class ScopPeiodWizard(models.TransientModel): 'zip': self.zip, 'zip_id': self.zip_id.id, 'city': self.city, + 'cedex': self.cedex, 'state_id': self.state_id.id, 'country_id': self.country_id.id, 'naf_id': self.naf_id.id, @@ -224,6 +231,7 @@ class ScopPeiodWizard(models.TransientModel): 'zip': self.zip, 'zip_id': self.zip_id.id, 'city': self.city, + 'cedex': self.cedex, 'state_id': self.state_id.id, 'country_id': self.country_id.id, 'naf_id': self.naf_id.id, diff --git a/wizard/scop_period_wizard.xml b/wizard/scop_period_wizard.xml index 7fbdbd0b87670e4d527a806147630ba3fb55bcd0..2d929556538fdf60affacfdddeb7ddb55d9183e6 100644 --- a/wizard/scop_period_wizard.xml +++ b/wizard/scop_period_wizard.xml @@ -27,6 +27,7 @@ on_change="1" can_create="true" can_write="true"/> <field name="zip" placeholder="Code postal" class="o_address_city" on_change="1" required="1"/> <field name="city" placeholder="Ville" class="o_address_city" required="1"/> + <field name="cedex" placeholder="Cedex" class="o_address_city" required="1"/> <field name="state_id" placeholder="État" invisible="1"/> <field name="country_id" placeholder="Pays" invisible="1"/> </div>