diff --git a/data/cron_datas.xml b/data/cron_datas.xml
index 08cd8fff239553fd5b8dc756f748b233b0fff3e3..221c1e73df0459e2adbe4857b21a2e320de32f79 100644
--- a/data/cron_datas.xml
+++ b/data/cron_datas.xml
@@ -76,5 +76,21 @@
             <field name="state">code</field>
             <field name="code">model.cron_user_notification()</field>
         </record>
+
+        <!-- Suppression des projets sortis depuis 15 jours -->
+        <record id="alterincub_end_incub_cron" forcecreate="True" model="ir.cron">
+            <field
+                name="name"
+            >AlterIncub - Partner : Ménage projets en fin d'accompagement</field>
+            <field eval="True" name="active" />
+            <field name="user_id" ref="base.user_root" />
+            <field name="interval_number">1</field>
+            <field name="interval_type">days</field>
+            <field name="numbercall">-1</field>
+            <field name="nextcall">2024-12-07 00:01:00</field>
+            <field name="model_id" ref="model_res_partner" />
+            <field name="state">code</field>
+            <field name="code">model.cron_end_incub(15)</field>
+        </record>
     </data>
 </odoo>
diff --git a/models/res_partner.py b/models/res_partner.py
index b718018a5c38455f35e152af885e354668c0ea02..75f917336e79717696bc712f84cda2aac3cb6dc3 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -1,6 +1,8 @@
 # © 2022 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
+from datetime import datetime, timedelta
+
 from odoo import api, fields, models
 
 
@@ -64,6 +66,44 @@ class ResPartner(models.Model):
         action["domain"] = [("provider_id", "=", self.id)]
         return action
 
+    # ------------------------------------------------------
+    # CRON methods
+    # ------------------------------------------------------
+    def cron_end_incub(self, delay=15):
+        """
+        CRON permettant de supprimer les utilisateurs de projets en fin d'accompagnement
+             depuis x jours (variable delay)
+             Les projets en fin d'accompagnement sont retirés des évènements à venir
+             et les inscriptions associées
+        """
+        delay_in_days = datetime.now() - timedelta(days=delay)
+        projects = self.search(
+            [
+                ("project_state", "=", "9_done"),
+                ("stop_date", "=", delay_in_days),
+            ]
+        )
+        projects.child_ids.mapped("user_ids").unlink()
+
+        event_ids = self.env["event.event"].search(
+            [
+                ("date_begin", ">", delay_in_days),
+                ("stage_id", "!=", self.env.ref("event.event_stage_done").id),
+            ]
+        )
+        registration_ids = self.env["event.registration"].search(
+            [
+                ("event_id", "in", event_ids.ids),
+            ]
+        )
+        for project in projects:
+            event_ids_to_unlink = event_ids.filtered(lambda e: project in e.project_ids)  # noqa: B023
+            event_ids_to_unlink.update({"project_ids": [(3, project.id, 0)]})
+
+        registration_ids.filtered(
+            lambda r: r.partner_id.parent_id.id in projects.ids
+        ).unlink()
+
     # ------------------------------------------------------
     # Inherit parent
     # ------------------------------------------------------