From ac8ae209ade1486bd88fa78814324583ca989163 Mon Sep 17 00:00:00 2001 From: jordan <jordan@le-filament.com> Date: Tue, 26 Oct 2021 10:34:46 +0200 Subject: [PATCH] [update] staff_shareholder_count is not required for scic --- models/scop_partner_staff.py | 40 ++++++++++++++++++++++++------------ views/res_partner.xml | 9 ++++---- views/scop_partner_staff.xml | 6 ++++-- 3 files changed, 36 insertions(+), 19 deletions(-) diff --git a/models/scop_partner_staff.py b/models/scop_partner_staff.py index 84584f6..0c5e309 100644 --- a/models/scop_partner_staff.py +++ b/models/scop_partner_staff.py @@ -20,6 +20,8 @@ class ScopPartnerStaff(models.Model): index=True) partner_city = fields.Char("Ville", related='partner_id.city') partner_siret = fields.Char("SIRET", related='partner_id.siret') + cooperative_form_id = fields.Many2one( + related='partner_id.cooperative_form_id') user_id = fields.Many2one( comodel_name='res.users', string='Utilisateur', @@ -34,14 +36,15 @@ class ScopPartnerStaff(models.Model): ('regul_diane', 'Régularisation Diane')], string="Type", default='regul_ur', - required=True,) + required=True, ) effective_date = fields.Date( string="Date", default=fields.Date.today(), - required=True,) - staff_count = fields.Integer("Effectif (EF)", required=True,) - staff_shareholder_count = fields.Integer("Eff. Sociétaires (ES)", required=True,) - staff_average = fields.Integer("Equivalent temps plein (ETP)", required=True,) + required=True, ) + staff_count = fields.Integer("Effectif (EF)", required=True, ) + staff_shareholder_count = fields.Integer("Eff. Sociétaires (ES)") + staff_average = fields.Integer("Equivalent temps plein (ETP)", + required=True, ) staff_men = fields.Integer("Eff. salariés hommes") staff_women = fields.Integer("Eff. salariés femmes") staff_shareholder_men = fields.Integer("Sociétaires salariés hommes") @@ -64,7 +67,7 @@ class ScopPartnerStaff(models.Model): """ if self.type_entry in ('questionnaire', 'questionnaire_inscription') \ and not self.env.user.has_group( - 'cgscop_partner.group_cg_administrative'): + 'cgscop_partner.group_cg_administrative'): raise ValidationError( 'Vous ne pouvez choisir que des types "Régularisation".') @@ -77,13 +80,23 @@ class ScopPartnerStaff(models.Model): """ Interdit de créer une ligne à 0 sauf lorsque cette ligne vient de la liste ministère + ou si ligne associés pour les SCIC """ - if ((self.staff_count == 0 - or self.staff_shareholder_count == 0 - or self.staff_average == 0) - and self.type_entry not in ('questionnaire', 'questionnaire_inscription')): - raise ValidationError( - "Tous les effectifs doivent être renseignés et supérieurs à 0.") + if self.type_entry \ + not in ('questionnaire', 'questionnaire_inscription'): + if self.cooperative_form_id.id == self.env.ref( + 'cgscop_partner.form_scic').id: + if self.staff_count == 0 or self.staff_average == 0: + raise ValidationError( + "Les effectifs et les équivalents temps plein doivent" + " être renseignés et supérieurs à 0.") + else: + if self.staff_shareholder_count == 0 \ + or self.cooperative_form_id == 0 \ + or self.staff_average == 0: + raise ValidationError( + "Tous les effectifs doivent" + " être renseignés et supérieurs à 0.") @api.constrains('effective_date') def _check_effective_date(self): @@ -97,7 +110,8 @@ class ScopPartnerStaff(models.Model): ('effective_date', '=', record.effective_date) ]) if (len(doublon) > 1 - and record.type_entry not in ('questionnaire', 'questionnaire_inscription')): + and record.type_entry not in ( + 'questionnaire', 'questionnaire_inscription')): raise ValidationError( "Vous ne pouvez pas créer 2 ajustements à la même date.") diff --git a/views/res_partner.xml b/views/res_partner.xml index 22e014b..72a53a7 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -696,11 +696,12 @@ <page name='scop_staff' string="Effectifs" attrs="{'invisible': ['|','&', ('is_cooperative', '=', True), ('project_status', '!=', '6_suivi'),'&',('is_cooperative', '=', False),('organization_subtype_id','!=', %(cgscop_partner.riga_11528)d)]}"> <field name="staff_ids" mode="tree" context="{'default_partner_id': active_id, 'default_type_entry': 'regul_ur'}"> <tree delete="false" default_order="effective_date desc" editable="top"> - <field name="effective_date" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> - <field name="type_entry" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> + <field name="cooperative_form_id" invisible="1"/> + <field name="effective_date" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> + <field name="type_entry" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> <field name="staff_count" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> - <field name="staff_shareholder_count" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> - <field name="staff_average" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> + <field name="staff_shareholder_count" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"/> + <field name="staff_average" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> <field name="comment" /> <field name="user_id" readonly="1"/> <button name="edit_staff" type="object" icon="fa-pencil-square-o"/> diff --git a/views/scop_partner_staff.xml b/views/scop_partner_staff.xml index 93eef7a..42f5cad 100644 --- a/views/scop_partner_staff.xml +++ b/views/scop_partner_staff.xml @@ -18,13 +18,15 @@ <field name="partner_siret"/> </group> <group name="infos_entry"> - <field name="user_id"/> + <field name="user_id" readonly="1"/> <field name="type_entry"/> <field name="effective_date" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> </group> <group name="staff_stats"> + <field name="cooperative_form_id" invisible="1"/> <field name="staff_count" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> - <field name="staff_shareholder_count" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> + <field name="staff_shareholder_count" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"/> <field name="staff_average" attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"/> </group> <group name="staff_stats"> -- GitLab