From aad1d93d382b5b620314ca975bef51885efed26f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com>
Date: Thu, 30 Jun 2022 15:24:07 +0200
Subject: [PATCH] [FIX] project sequence

---
 __manifest__.py                         |  2 +-
 migrations/14.0.2.0.0/post-migration.py | 17 +++++++++++++++++
 models/res_partner.py                   |  1 +
 models/sale_project.py                  |  3 ++-
 4 files changed, 21 insertions(+), 2 deletions(-)
 create mode 100644 migrations/14.0.2.0.0/post-migration.py

diff --git a/__manifest__.py b/__manifest__.py
index be58a74..f588efd 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -3,7 +3,7 @@
     "summary": "Gestion de projet de création",
     "author": "Le Filament",
     "website": "https://le-filament.com",
-    "version": "14.0.1.0.0",
+    "version": "14.0.2.0.0",
     "license": "AGPL-3",
     "depends": ["product", "stock", "sale_management", "ap_partner"],
     "data": [
diff --git a/migrations/14.0.2.0.0/post-migration.py b/migrations/14.0.2.0.0/post-migration.py
new file mode 100644
index 0000000..d2944b8
--- /dev/null
+++ b/migrations/14.0.2.0.0/post-migration.py
@@ -0,0 +1,17 @@
+# Copyright 2022 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from odoo import SUPERUSER_ID, api
+
+
+def _init_partner_sale_project_seq(env):
+    for partner in (
+        env["res.partner"]
+        .with_context(active_test=False)
+        .search([("sale_project_ids", "!=", False)])
+    ):
+        partner.sale_project_seq = partner.sale_project_count
+
+
+def migrate(cr, version):
+    env = api.Environment(cr, SUPERUSER_ID, {})
+    _init_partner_sale_project_seq(env)
diff --git a/models/res_partner.py b/models/res_partner.py
index 23f3de1..0b72932 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -16,6 +16,7 @@ class ResPartner(models.Model):
     sale_project_ids = fields.One2many(
         "sale.project", "partner_id", "Liste des projets"
     )
+    sale_project_seq = fields.Integer(string="Séquence de projets", default="0")
 
     # ------------------------------------------------------
     # SQL Constraints
diff --git a/models/sale_project.py b/models/sale_project.py
index 710e37d..b6f3c83 100644
--- a/models/sale_project.py
+++ b/models/sale_project.py
@@ -238,7 +238,8 @@ class SaleProject(models.Model):
         res = super().create(vals_list)
         for rec in res:
             rec.geo_sector_id = rec.sale_order_id.partner_id.geo_sector_id.id
-            seq = str(rec.sale_order_id.partner_id.sale_project_count).zfill(3)
+            rec.sale_order_id.partner_id.sale_project_seq += 1
+            seq = str(rec.sale_order_id.partner_id.sale_project_seq).zfill(3)
             if rec.saison_id:
                 saison_name = "-" + rec.saison_id.name
             else:
-- 
GitLab