diff --git a/models/res_partner.py b/models/res_partner.py index a87fa7f69c257bf01e23d6adda67e2329664c5a1..db34229cfeaf18ccd97bf07f47b511d4cd4cd055 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -1105,45 +1105,44 @@ class ScopPartner(models.Model): def _compute_revision_next_exercice(self): for partner in self: # Si aucune périodicité de défini, on n'insiste pas - if not partner.revision_type: - return + if not partner.revision_type or not partner.first_closeout: + partner.revision_next_exercice = False + else: + # On commence par regarder si l'on a des révisions + last_rev = partner.revision_ids.sorted( + key=lambda r: r.revision_result_year, reverse=True + ) - # On commence par regarder si l'on a des révisions - last_rev = partner.revision_ids.sorted( - key=lambda r: r.revision_result_year, reverse=True - ) - # On calcule l'année de référence du calcul - base_rev = partner.first_closeout.year - 1 - - if len(last_rev) > 0: - # si On a déjà révisé un exercice il devient la base du calcul - base_rev = last_rev[0].revision_result_year - - # On calcule le prochain exercice révisable - # Cas d'une révision annuelle - if partner.revision_type == "1y": - partner.revision_next_exercice = base_rev + 1 - - # Cas d'une révision quinquénnale - if partner.revision_type == "5y": - partner.revision_next_exercice = base_rev + 5 - - # Cas d'une révision quinquénnale séquencée (annuelle) - if partner.revision_type == "5ys": - partner.revision_next_exercice = base_rev + 1 - - # Cas d'une révision quinquénnale séquencée (2 et 3) - if partner.revision_type == "5ys23": - # On doit regarder l'écart avec la révision précédente - if len(last_rev) > 1: - # On a une réunion précédente, il faut regarder l'écart entre les deux - ex1 = last_rev[0].revision_result_year - ex2 = last_rev[1].revision_result_year - # le prochain exercie est donc 5 moins la durée de la précédente révision - partner.revision_next_exercice = base_rev + (5 - (ex1 - ex2)) + # On calcule l'année de référence du calcul + if len(last_rev) > 0: + # si On a déjà révisé un exercice il devient la base du calcul + base_rev = last_rev[0].revision_result_year else: - # Pas de révision précédente - partner.revision_next_exercice = base_rev + 2 + base_rev = partner.first_closeout.year - 1 + + # On calcule le prochain exercice révisable + # Cas d'une révision annuelle + if partner.revision_type == "1y": + partner.revision_next_exercice = base_rev + 1 + # Cas d'une révision quinquénnale + elif partner.revision_type == "5y": + partner.revision_next_exercice = base_rev + 5 + # Cas d'une révision quinquénnale séquencée (annuelle) + elif partner.revision_type == "5ys": + partner.revision_next_exercice = base_rev + 1 + # Cas d'une révision quinquénnale séquencée (2 et 3) + elif partner.revision_type == "5ys23": + # On doit regarder l'écart avec la révision précédente + if len(last_rev) > 1: + # On a une réunion précédente ... + # ... il faut regarder l'écart entre les deux + ex1 = last_rev[0].revision_result_year + ex2 = last_rev[1].revision_result_year + # ... prochain exercice = 5 - durée de la précédente révision + partner.revision_next_exercice = base_rev + (5 - (ex1 - ex2)) + else: + # Pas de révision précédente + partner.revision_next_exercice = base_rev + 2 # ------------------------------------------------------ # Button Action diff --git a/views/scop_config_views.xml b/views/scop_config_views.xml index 88775d70d4750801b67f2083e2c7b96d9a0d65ee..0e2f9f71efe5f32dd7c41a7fd3866745a41133ce 100644 --- a/views/scop_config_views.xml +++ b/views/scop_config_views.xml @@ -22,9 +22,7 @@ <field name="name">Motifs de Décès</field> <field name="res_model">res.partner.dissolution.reason</field> <field name="view_mode">tree</field> - <field - name="help" - >Affiche et gère la liste des Motifs de Décès.</field> + <field name="help">Affiche et gère la liste des Motifs de Décès.</field> </record> <!-- Creation Origin --> @@ -50,7 +48,9 @@ <field name="name">Origines de création en coop</field> <field name="res_model">res.partner.creation.origin</field> <field name="view_mode">tree</field> - <field name="help">Affiche et gère la liste des Origines de Création en coop.</field> + <field + name="help" + >Affiche et gère la liste des Origines de Création en coop.</field> </record> <!-- Organization Type --> @@ -76,9 +76,7 @@ <field name="name">Types d'Organismes</field> <field name="res_model">res.partner.organization.type</field> <field name="view_mode">tree</field> - <field - name="help" - >Affiche et gère la liste des Types d'Organismes.</field> + <field name="help">Affiche et gère la liste des Types d'Organismes.</field> </record>