]> git.agnieray.net Git - galette.git/commitdiff
Fix reminders labels; closes #1506
authorJohan Cwiklinski <johan@x-tnd.be>
Sat, 24 Apr 2021 08:13:11 +0000 (10:13 +0200)
committerJohan Cwiklinski <johan@x-tnd.be>
Sat, 24 Apr 2021 08:13:11 +0000 (10:13 +0200)
galette/lib/Galette/Controllers/GaletteController.php
galette/lib/Galette/Repository/Reminders.php

index dd08a63a0472cbd5426bf5cbe6dbaa6adb6d1ce8..b22da58f062068be389181463174dfffd92dcd6d 100644 (file)
@@ -7,7 +7,7 @@
  *
  * PHP version 5
  *
- * Copyright © 2019-2020 The Galette Team
+ * Copyright © 2019-2021 The Galette Team
  *
  * This file is part of Galette (http://galette.tuxfamily.org).
  *
@@ -28,7 +28,7 @@
  * @package   Galette
  *
  * @author    Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2019-2020 The Galette Team
+ * @copyright 2019-2021 The Galette Team
  * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
  * @link      http://galette.tuxfamily.org
  * @since     Available since 0.9.4dev - 2019-12-02
@@ -62,7 +62,7 @@ use Analog\Analog;
  * @name      GaletteController
  * @package   Galette
  * @author    Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2019-2020 The Galette Team
+ * @copyright 2019-2021 The Galette Team
  * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
  * @link      http://galette.tuxfamily.org
  * @since     Available since 0.9.4dev - 2019-12-02
@@ -673,7 +673,7 @@ class GaletteController extends AbstractController
     }
 
     /**
-     * Main route
+     * Send reminders
      *
      * @param Request  $request  PSR Request
      * @param Response $response PSR Response
index 9c4317073b7c3bd55aa595b3cd20e482bc7a2ba3..b63581333bac606a358cc99de39bacbf08bcbdd9 100644 (file)
@@ -7,7 +7,7 @@
  *
  * PHP version 5
  *
- * Copyright © 2013-2014 The Galette Team
+ * Copyright © 2013-2021 The Galette Team
  *
  * This file is part of Galette (http://galette.tuxfamily.org).
  *
@@ -28,7 +28,7 @@
  * @package   Galette
  *
  * @author    Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2013-2014 The Galette Team
+ * @copyright 2013-2021 The Galette Team
  * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
  * @link      http://galette.tuxfamily.org
  * @since     Available since 0.7.5dev - 2013-02-13
@@ -48,7 +48,7 @@ use Laminas\Db\Sql\Expression;
  * @name      Reminders
  * @package   Galette
  * @author    Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2013-2014 The Galette Team
+ * @copyright 2013-2021 The Galette Team
  * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
  * @link      http://galette.tuxfamily.org
  * @since     Available since 0.7.5dev - 2013-02-13
@@ -81,12 +81,13 @@ class Reminders
     /**
      * Load reminders
      *
-     * @param Db     $zdb  Database instance
-     * @param string $type Reminder type
+     * @param Db      $zdb    Database instance
+     * @param string  $type   Reminder type
+     * @param boolean $nomail Get reminders for members who do not have email address
      *
      * @return void
      */
-    private function loadToRemind($zdb, $type)
+    private function loadToRemind($zdb, $type, $nomail = false)
     {
         $this->toremind = array();
         $select = $zdb->select(Members::TABLE, 'a');
@@ -104,8 +105,16 @@ class Reminders
             'a.parent_id=p.' . Members::PK,
             array(),
             $select::JOIN_LEFT
-        )->where('(a.email_adh != \'\' OR p.email_adh != \'\')')
-            ->where('a.activite_adh=true')
+        );
+
+        if ($nomail === false) {
+            //per default, limit to members who have an email address
+            $select->where('(a.email_adh != \'\' OR p.email_adh != \'\')');
+        } else {
+            $select->where('(a.email_adh = \'\' OR a.email_adh IS NULL) AND (p.email_adh = \'\' OR p.email_adh IS NULL)');
+        }
+
+        $select->where('a.activite_adh=true')
             ->where('a.bool_exempt_adh=false');
 
         if ($type === Reminder::LATE) {
@@ -209,7 +218,7 @@ class Reminders
 
         $types = array();
         foreach ($this->selected as $s) {
-            $this->loadToRemind($zdb, $s);
+            $this->loadToRemind($zdb, $s, $nomail);
 
             if (count($this->toremind) > 0) {
                 //and then get list