From 0b86faada8b828ca94b735ec4bf88b7e024f16a3 Mon Sep 17 00:00:00 2001 From: Lunar Date: Mon, 24 Mar 2014 16:38:39 +0100 Subject: [PATCH 1/1] =?utf8?q?Nouvelle=20tentative=20de=20correction=20des?= =?utf8?q?=20rappels=20d'adh=C3=A9sion?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Damned. --- features/send-membership-reminders.feature | 12 ++++++++++++ lib/nos_oignons.rb | 7 +++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/features/send-membership-reminders.feature b/features/send-membership-reminders.feature index 09bdce7..73c9dfe 100644 --- a/features/send-membership-reminders.feature +++ b/features/send-membership-reminders.feature @@ -35,6 +35,18 @@ Fonctionnalité: prévenir les membres qu'il faut renouveller leur cotisation Lorsque j'exécute send-membership-reminders Alors aucun email ne doit avoir été envoyé + Scénario: Pas de messages entre le premier et le deuxième rappel + Soit une base avec Jane qui doit renouveller sa cotisation d'ici 28 jours + Et qui a déjà reçu un appel 2 jours plus tôt + Lorsque j'exécute send-membership-reminders + Alors aucun email ne doit avoir été envoyé + + Scénario: Script pas exécuté tous les jours + Soit une base avec Jane qui doit renouveller sa cotisation d'ici 9 jours + Et qui a déjà reçu un appel 21 jours plus tôt + Lorsque j'exécute send-membership-reminders + Alors 1 email doit avoir été envoyé + Scénario: Un seul envoi par membre Soit une base avec Jane qui doit renouveller sa cotisation d'ici 30 jours Lorsque j'exécute send-membership-reminders diff --git a/lib/nos_oignons.rb b/lib/nos_oignons.rb index 758c675..4ccd04f 100644 --- a/lib/nos_oignons.rb +++ b/lib/nos_oignons.rb @@ -57,11 +57,10 @@ module NosOignons anniversary = Time.new(today.year, member.joined_on.month, member.joined_on.day).to_date next if member.membership_fee_paid_on >= anniversary - next if member.reminded_on && member.reminded_on >= today - reminders = NosOignons::Reminder.all.sort_by(&:days).reverse - next if anniversary > today + reminders.first.days + reminders = NosOignons::Reminder.all.sort_by(&:days) reminders.each do |reminder| - next if anniversary < today + reminder.days + next if (anniversary - today).to_i > reminder.days + next if member.reminded_on && (anniversary - member.reminded_on).to_i <= reminder.days member.remind(reminder) break -- 2.39.5