]> nos-oignons.net Git - gestion-adh.git/commitdiff
Correction des rappels d'adhésion lorsque le renouvellement a été fait avant la date...
authorLunar <lunar@anargeek.net>
Sat, 12 Apr 2014 14:08:29 +0000 (16:08 +0200)
committerLunar <lunar@anargeek.net>
Sat, 12 Apr 2014 14:08:29 +0000 (16:08 +0200)
features/send-membership-reminders.feature
features/step_definitions/commands.rb
lib/nos_oignons.rb

index bf08afba37f14def80570b240840fc99224acef7..a7921bc09362dfe74f840d39112ffba509efb25c 100644 (file)
@@ -41,6 +41,11 @@ Fonctionnalité: prévenir les membres qu'il faut renouveler leur cotisation
     Lorsque j'exécute send-membership-reminders
     Alors aucun email ne doit avoir été envoyé
 
+  Scénario: Renouvellement de la cotisation avant la date anniversaire
+    Soit une base avec Christian qui a adhéré le 2013-04-22 et payé sa dernière cotisation le 2014-03-24
+    Lorsque j'exécute send-membership-reminders le 2014-04-12
+    Alors aucun email ne 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
index cde2215e54c6baad2fdb9ad1b333bbeb6e4edc45..28e0ab31e7e79cbf450558248198351c5cefcdc7 100644 (file)
@@ -25,6 +25,12 @@ When /^(?:que )?j'exécute send-membership-reminders$/ do
   NosOignons.send_membership_reminders!
 end
 
+When /^(?:que )?j'exécute send-membership-reminders le ([0-9]{4})-([0-9]{2})-([0-9]{2})$/ do |year, month, day|
+  Timecop.travel(Date.new(year.to_i, month.to_i, day.to_i)) do
+    NosOignons.send_membership_reminders!
+  end
+end
+
 When /^j'exécute send\-member\-emails\-to\-advisors$/ do
   NosOignons.send_member_emails_to_advisors!
 end
index 4ccd04fd7b6c9dce8196046bff054ddf9a735324..dec787ead8983b25862d113040fd1664ad99eac5 100644 (file)
@@ -54,10 +54,10 @@ module NosOignons
     def send_membership_reminders!
       today = Time.now.to_date
       NosOignons::Member.all.select(&:up_to_date?).each do |member|
+        reminders = NosOignons::Reminder.all.sort_by(&:days)
         anniversary = Time.new(today.year, member.joined_on.month,
                                member.joined_on.day).to_date
-        next if member.membership_fee_paid_on >= anniversary
-        reminders = NosOignons::Reminder.all.sort_by(&:days)
+        next if member.membership_fee_paid_on >= anniversary - reminders.last.days
         reminders.each do |reminder|
           next if (anniversary - today).to_i > reminder.days
           next if member.reminded_on && (anniversary - member.reminded_on).to_i <= reminder.days