From: Lunar <lunar@anargeek.net>
Date: Wed, 2 Oct 2019 09:08:11 +0000 (+0200)
Subject: Pas d'envoi de rappels si la cotisation a déjà été payée dans l'année
X-Git-Url: https://nos-oignons.net/gitweb/gestion-adh.git/commitdiff_plain/62dfc06362143c4fd95b86b4d511c3ade7346f4e

Pas d'envoi de rappels si la cotisation a déjà été payée dans l'année
---

diff --git a/features/send-membership-reminders.feature b/features/send-membership-reminders.feature
index 47cabf5..89dfbd4 100644
--- a/features/send-membership-reminders.feature
+++ b/features/send-membership-reminders.feature
@@ -46,6 +46,16 @@ Fonctionnalité: prévenir les membres qu'il faut renouveler leur cotisation
     Lorsque j'exécute send-membership-reminders le 2014-04-12
     Alors aucun email ne doit avoir été envoyé
 
+  Scénario: Pas de message si la cotisation a été renouvellée bien avant la date anniversaire
+    Soit une base avec jvoisin qui a adhéré le 2017-10-23 et payé sa dernière cotisation le 2019-06-19
+    Lorsque j'exécute send-membership-reminders le 2019-09-23
+    Alors aucun email ne doit avoir été envoyé
+
+  Scénario: Appel un mois avant si la cotisation a été payée bien avant la date anniversaire
+    Soit une base avec jvoisin qui a adhéré le 2017-10-23 et payé sa dernière cotisation le 2019-06-19
+    Lorsque j'exécute send-membership-reminders le 2020-09-23
+    Alors 1 email doit avoir été envoyé
+
   Scénario: Script pas exécuté tous les jours
     Soit une base avec Jane qui doit renouveler sa cotisation d'ici 9 jours
     Et qui a déjà reçu un appel 21 jours plus tôt
diff --git a/lib/nos_oignons.rb b/lib/nos_oignons.rb
index b85ebea..72cea22 100644
--- a/lib/nos_oignons.rb
+++ b/lib/nos_oignons.rb
@@ -71,6 +71,7 @@ module NosOignons
     def send_membership_reminders!
       today = Time.now.to_date
       NosOignons::Member.all.select(&:up_to_date?).each do |member|
+        next if member.membership_fee_paid_on.year == today.year
         reminders = NosOignons::Reminder.all.sort_by(&:days)
         anniversary = Time.new(today.year, member.joined_on.month,
                                member.joined_on.day).to_date
diff --git a/lib/nos_oignons/member.rb b/lib/nos_oignons/member.rb
index de079a3..0feb825 100644
--- a/lib/nos_oignons/member.rb
+++ b/lib/nos_oignons/member.rb
@@ -16,6 +16,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+require 'date'
 require 'safe_yaml'
 SafeYAML::OPTIONS[:default_mode] = :safe