From 65326c3e444757ee848c3ca0743c6233e17c1b96 Mon Sep 17 00:00:00 2001
From: Henri-Damien LAURENT <hdlaurent@afi-sa.net>
Date: Tue, 12 Mar 2024 16:48:00 +0000
Subject: [PATCH] hotline#186269 : Activity notification are not sent to queued
 trainees anymore

---
 VERSIONS_HOTLINE/186269                       |  1 +
 .../Class/SessionActivity/Notification.php    |  3 ++
 tests/scenarios/Activities/BatchTest.php      | 49 +++++++++++++++----
 3 files changed, 43 insertions(+), 10 deletions(-)
 create mode 100644 VERSIONS_HOTLINE/186269

diff --git a/VERSIONS_HOTLINE/186269 b/VERSIONS_HOTLINE/186269
new file mode 100644
index 00000000000..e98439bb3d2
--- /dev/null
+++ b/VERSIONS_HOTLINE/186269
@@ -0,0 +1 @@
+ - correctif #186269 : Activités : Mail rappel activité envoyé à une personne en liste d'attente
\ No newline at end of file
diff --git a/library/Class/SessionActivity/Notification.php b/library/Class/SessionActivity/Notification.php
index 18ee64db23d..24b9b2f6919 100644
--- a/library/Class/SessionActivity/Notification.php
+++ b/library/Class/SessionActivity/Notification.php
@@ -52,6 +52,9 @@ class Class_SessionActivity_Notification {
     if ($inscription->hasNotifiedAt())
       return $this;
 
+    if ($inscription->getQueue())
+      return $this;
+
     $stagiaire = $inscription->getStagiaire();
     $mailer = new Class_MailHtml();
     if (!$mailer->isMailValid($stagiaire->getMail()))
diff --git a/tests/scenarios/Activities/BatchTest.php b/tests/scenarios/Activities/BatchTest.php
index d89505bab28..f6f4f584a38 100644
--- a/tests/scenarios/Activities/BatchTest.php
+++ b/tests/scenarios/Activities/BatchTest.php
@@ -68,7 +68,7 @@ abstract class Activities_BatchRunTestCase extends ModelTestCase {
   public function setUp() {
     parent::setUp();
 
-    Class_Profil::setCurrentProfil($this->fixture('Class_Profil',
+    Class_Profil::setCurrentProfil($this->fixture(Class_Profil::class,
                                                   ['id' => 1,
                                                    'mail_site' => 'from@server.com']));
 
@@ -102,23 +102,52 @@ abstract class Activities_BatchRunTestCase extends ModelTestCase {
 
 
   protected function _prepare() {
-    $stagiaire_group = $this->fixture('Class_UserGroup',['id' => 23])
+    $stagiaire_group = $this->fixture(Class_UserGroup::class,
+                                      ['id' => 23])
                             ->addRightSuivreActivity();
 
-    $this->fixture('Class_SessionActivity',
+    $apoulain = $this->fixture(Class_Users::class,
+                               ['id' => 9939,
+                                'nom' => 'Poulain',
+                                'prenom' => 'Amelie',
+                                'mail' => 'amelie.poulain@paris.com',
+                                'login' => 'apoulain',
+                                'password' => 's3cr3t',
+                                'user_groups' => [$stagiaire_group]
+                               ]);
+    $this->fixture(Class_Users::class,
+                   ['id' => 9938,
+                    'login' => 'pistache',
+                    'password' => 'OMG',
+                    'mail' => 'pist@a.ch',
+                    'user_groups' => [$stagiaire_group]]);
+
+    $this->fixture(Class_SessionActivity::class,
                    ['id' => 22,
                     'date_debut' => '2021-02-11 00:00:00',
                     'date_limite_inscription' => '2021-02-11',
-                    'activity' => $this->fixture('Class_Activity',
+                    'activity' => $this->fixture(Class_Activity::class,
                                                  ['id' => 12,
                                                   'libelle' => 'Stephanie\'s Birthday Party']),
-                    'stagiaires' => [$this->fixture('Class_Users',
-                                                    ['id' => 9938,
-                                                     'login' => 'pistache',
-                                                     'password' => 'OMG',
-                                                     'mail' => 'pist@a.ch',
-                                                     'user_groups' => [$stagiaire_group]])],
                    ]);
+    $inscription1= $this->fixture(Class_SessionActivityInscription::class,
+                                  ['id' => 12,
+                                   'session_activity_id' => 22,
+                                   'stagiaire_id' => 9938,
+                                   'adults' => 1,
+                                   'queue' => false
+                                  ]);
+    $inscription2 = $this->fixture(Class_SessionActivityInscription::class,
+                                   ['id' => 13,
+                                    'session_activity_id' => 22,
+                                    'stagiaire_id' => 9939,
+                                    'adults' => 1,
+                                    'queue' => true
+                                   ]);
+    Class_SessionActivity::find(22)
+      ->addSessionActivityInscription($inscription1)
+      ->addSessionActivityInscription($inscription2)
+      ->save();
   }
 
 
-- 
GitLab