Skip to content
Extraits de code Groupes Projets
Valider b5fba155 rédigé par jordan-filament's avatar jordan-filament
Parcourir les fichiers

[update] change rules for scop_partner_staff validation

parent 2e8ff368
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -139,49 +139,51 @@ class ScopPartnerStaff(models.Model):
# ------------------------------------------------------
# Contrains
# ------------------------------------------------------
@api.constrains("staff_count", "staff_shareholder_count", "staff_average")
@api.constrains('cooperative_form_id',
'type_entry',
'staff_count',
'staff_shareholder_count',
'staff_average')
def _check_staff(self):
"""
Interdit de créer une ligne à 0 sauf lorsque
cette ligne vient de la liste ministère
ou si ligne associés / ETP pour les SCIC
ou si ligne ETP pour les 'tracked naf'
Règles spécifiques pour les effectifs
"""
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:
scic = self.env.ref('cgscop_partner.form_scic').id
scop = self.env.ref('cgscop_partner.form_scop').id
def check_staff_shareholder():
# Effectif total >= effectif sociétaires
if self.staff_shareholder_count > 0:
if not self.staff_count >= self.staff_shareholder_count:
raise ValidationError(
_(
"La colonne Effectif (EF) doit être renseignée"
" et supérieurs à 0."
)
)
elif self.is_partner_in_tracked_naf:
if self.staff_count == 0 or self.staff_shareholder_count == 0:
"L'effectif total doit être supérieur ou égal au nombre de sociétaires salariés")
def check_staff_average():
if self.staff_average > 0:
if not self.staff_count >= self.staff_average:
raise ValidationError(
_(
"Les colonnes Effectif (EF) et Nb Sociétaires Salarié"
" 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
):
"L'effectif total doit être supérieur ou égal au nombre d'équivalent temps plein")
# Les règles ne s'appliquent pas pour les entrées LM / Questionnaire
if self.type_entry not in ('questionnaire', 'questionnaire_inscription'):
# Règles pour les SCIC
if self.cooperative_form_id.id == scic:
check_staff_shareholder()
check_staff_average()
# Règles pour les SCOP
elif self.cooperative_form_id.id == scop:
# Effectif total non nul
if self.staff_count == 0:
raise ValidationError(
_(
"Tous les effectifs doivent"
" être renseignés et supérieurs à 0."
)
)
"L'effectif total doit être supérieur ou égal à 0 pour cette copérative de type SCOP")
check_staff_shareholder()
check_staff_average()
# Règles sprécifiques pour les NAF suivis
if self.is_partner_in_tracked_naf:
if self.staff_average == 0:
raise ValidationError(
"Le nombre d'équivalent temps plein doit être renseigné pour cette coopérative")
@api.constrains("effective_date")
def _check_effective_date(self):
......
......@@ -1555,7 +1555,7 @@
/>
<field
name="staff_shareholder_count"
attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"
attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"
/>
<field
name="staff_shareholder_total"
......@@ -1563,7 +1563,7 @@
/>
<field
name="staff_average"
attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '!=', True), ('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"
attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}"
/>
<field name="comment" />
<field name="user_id" readonly="1" />
......
......@@ -37,7 +37,7 @@
/>
<field
name="staff_shareholder_count"
attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"
attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"
/>
<field
name="staff_shareholder_total"
......@@ -45,7 +45,7 @@
/>
<field
name="staff_average"
attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '!=', True)]}"
attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}"
/>
</group>
<group name="staff_stats">
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter