]> nos-oignons.net Git - gestion-adh.git/blob - lib/nos_oignons/reminder.rb
8aa2e25d7d8b261f2ca6564f4e2082226e1d07e7
[gestion-adh.git] / lib / nos_oignons / reminder.rb
1 #-*- coding: utf-8 -*-
2
3 require 'erb'
4 require 'ostruct'
5
6 module NosOignons
7   class Reminder < Struct.new(:days, :subject, :template)
8     class << self
9       def all
10         return @all if @all
11
12         @all = []
13         @all << Reminder.new(
14           30,
15           '[Nos oignons] Renouvellement de votre cotisation',
16           <<-END_OF_ERB.gsub(/^            /, ''))
17             Salut <%= member.name %>,
18
19             La date anniversaire de votre adhésion à Nos oignons est dans <%= days %> jours.
20             Il est donc temps de renouveler votre cotisation si vous souhaitez rester
21             membre de l'association. Si vous avez besoin de plus d'informations sur
22             comment faire, écrivez au conseil d'administration. Répondre à cet email
23             devrait faire l'affaire.
24
25             Au passage, est-ce que vous pourriez vérifier que l'adresse postale est
26             toujours bonne ? Voici celle que nous avons retenu :
27
28             <%= member.address.gsub(/^/, '    ') %>
29
30             Si ce n'est plus le cas, c'est chouette de le signaler.
31
32             Au plaisir de continuer l'aventure de Nos oignons avec vous,
33             -- 
34             Le robot du conseil d'administration
35           END_OF_ERB
36         @all << Reminder.new(
37           10,
38           '[Nos oignons] Renouvellement de votre cotisation (rappel)',
39           <<-END_OF_ERB.gsub(/^            /, ''))
40             Salut <%= member.name %>,
41
42             La date anniversaire de ton adhésion à Nos oignons est dans <%= days %> jours.
43             Si vous ne renouvellez pas votre cotisation d'ici là, vous perdrez la qualité
44             de membre de Nos oignons.
45
46             Pour plus d'informations sur comment faire pour renouveler sa cotisation,
47             c'est possible d'écrire au conseil d'administration. Répondre à ce mail
48             devrait fonctionner.
49
50             À bientôt ?
51             -- 
52             Le robot du conseil d'administration
53           END_OF_ERB
54         @all << Reminder.new(
55           2,
56           '[Nos oignons] Renouvellement de votre cotisation (dernier rappel)',
57           <<-END_OF_ERB.gsub(/^            /, ''))
58             Salut <%= member.name %>,
59
60             Dans <%= days %> jours, c'est la date anniversaire de ton adhésion à Nos oignons.
61             Vu que vous n'avez pas renouvellé votre cotisation, cela signifie que vous
62             allez bientôt quitter l'association…
63
64             Mais il n'est pas encore trop tard pour le faire !
65
66             Des questions ? Mieux vaut les poser au conseil d'administration. En répondant à
67             cet email par exemple.
68
69             Et sinon… bonne route ! :)
70
71             Bien à vous,
72             -- 
73             Le robot du conseil d'administration
74           END_OF_ERB
75         @all
76       end
77     end
78
79     def send(member)
80       locals = { :member => member, :days => days }
81       body = ERB.new(template).result(OpenStruct.new(locals).instance_eval { binding })
82       mail = Mail.new :charset => 'utf-8',
83                       :from => NosOignons::BOARD_EMAIL,
84                       :to => member.email,
85                       :subject => subject,
86                       :body => body
87       mail.deliver
88     end
89   end
90 end