From d96d216be84c7eef7f46801fba3300556b5b47a8 Mon Sep 17 00:00:00 2001
From: jordan <jordan@le-filament.com>
Date: Wed, 30 Mar 2022 11:45:55 +0200
Subject: [PATCH] [fix] use current membership_number if exists for new
 membership

---
 models/res_partner.py | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/models/res_partner.py b/models/res_partner.py
index 3e1edca..15305ee 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -91,12 +91,10 @@ class ScopPartner(models.Model):
         store=True,
     )
     member_number = fields.Char(
-        "No adhérent (texte)", compute="_compute_membership", store=True
+        "No adhérent (texte)", compute="_compute_membership_number", store=True
     )
     member_number_int = fields.Integer(
         "No adhérent",
-        compute="_compute_membership_int",
-        store=True,
         group_operator="",
     )
     member_start_stat = fields.Date(
@@ -974,11 +972,9 @@ class ScopPartner(models.Model):
             if len(partner.action_rse_ids) != 0:
                 partner.is_rse = True
 
-    # TODO: déplacer dans adhésions ? cotisations?
     @api.depends(
         "membership_period_ids",
         "membership_period_ids.end_reason_id",
-        "membership_period_ids.number",
         "membership_period_ids.end",
     )
     def _compute_membership(self):
@@ -988,24 +984,24 @@ class ScopPartner(models.Model):
                 last_membership_period = self.env["scop.membership.period"].search(
                     [("partner_id", "=", partner.id), ("type_id", "=", type_cg)],
                     limit=1,
-                    order="start desc",
+                    order="start,id desc",
                 )
                 if last_membership_period and not last_membership_period.end:
                     partner.membership_status = "member"
-                    partner.member_number = last_membership_period.number
                     partner.member_start_stat = last_membership_period.start_stat
                     partner.member_start = last_membership_period.start
                 elif last_membership_period and last_membership_period.end_reason_id:
                     partner.membership_status = "out"
-                    partner.member_number = last_membership_period.number
             else:
                 partner.membership_status = "not_member"
 
-    @api.depends("member_number")
-    def _compute_membership_int(self):
+    @api.depends("member_number_int")
+    def _compute_membership_number(self):
         for partner in self:
-            if partner.member_number:
-                partner.member_number_int = int(partner.member_number)
+            if partner.member_number_int:
+                partner.member_number = str(partner.member_number_int)
+            else:
+                partner.member_number = False
 
     @api.depends("membership_period_ids", "membership_period_ids.end")
     def _compute_federation(self):
-- 
GitLab