Francois Deppierraz 11 months ago
parent
commit
c8bb4b481a
1 changed files with 45 additions and 21 deletions
  1. 45 21
      cotisations.py

+ 45 - 21
cotisations.py

@@ -7,7 +7,42 @@ import odoorpc
 import arrow
 import logging
 
-TEMPLATE_NAME = 'Cotisations FIXME'
+SUBJECT = "FIXME Hackerspace Cotisations"
+BODY = """
+Chèr(e) membre,
+
+
+Tu trouveras ci-dessous le montant de ta cotisation. Ton association dépend
+entièrement du soutien de ses membres pour continuer à louer le local actuel,
+c'est pourquoi ton apport nous est précieux.
+
+
+Le montant de ta cotisation est celui qui a été choisi lors de ton inscription
+ou mis à jour par la suite. Il est possible de le modifier sur demande. Un
+grand merci aux généreux membres qui choisissent de verser un montant supérieur
+pour soutenir FIXME !
+
+
+Montant de ta cotisation: {p[x_amount]}
+Montant reçu dans les 12 derniers mois: {cotisations_encaissees}
+
+
+Ton comité
+
+
+P.S: Dans la mesure du possible, merci de payer en une fois dans les 30 jours
+ou d'instaurer un ordre permanent équivalent au montant mensuel.
+
+
+CCP: 12-621716-7
+IBAN: CH14 0900 0000 1262 1716 7
+BIC: POFICHBEXXX
+FIXME Hackerspace, 1004 Lausanne
+Commentaire: Prénom et nom si différent du compte bancaire utilisé pour le paiement
+
+
+Message generated by https://git.fixme.ch/FIXME/cotisations, contributions welcome!
+"""
 
 def get_members():
   partner = odoo.env['res.partner']
@@ -35,29 +70,19 @@ def get_cotisations_encaissees(p):
   return(cotisations_encaissees)
 
 def send_mail(p, cotisations_encaissees, cotisations_dues):
-  email_template = odoo.env['email.template']
-
-  templates = email_template.search_read([('name', '=', TEMPLATE_NAME)])
-
-  if len(templates) < 1:
-    raise Exception("No template found with name {}".format(TEMPLATE_NAME))
-  elif len(templates) == 1:
-    template = templates[0]
-  else:
-    raise Exception("Too many templates found with name {}".format(TEMPLATE_NAME))
+  mail_mail = odoo.env['mail.mail']
 
   logging.debug("send_mail({}, {}, {})".format(p['name'], cotisations_encaissees, cotisations_dues))
 
-  odoo.env.context['cotisations_encaissees'] = cotisations_encaissees
-  odoo.env.context['cotisations_dues'] = cotisations_dues
-
   if p['id'] == 638: # francois
-    msg_id = email_template.send_mail(
-      template['id'],
-      p['id'],
-      force_send = True,
-      raise_exception = True,
-    )
+    values = {
+      'email_from': 'comite@fixme.ch',
+      'subject': SUBJECT,
+      'body_html': BODY.format(p=p, cotisations_encaissees=cotisations_encaissees),
+      'email_to': p['email'],
+    }
+    msg_id = mail_mail.create(values)
+    mail_mail.send([msg_id], raise_exception=True)
     logging.debug("Message ID {} sent".format(msg_id))
 
 if __name__ == '__main__':
@@ -83,7 +108,6 @@ if __name__ == '__main__':
 
     # If all cotisation transaction amount if lower than chosen membership, send out a reminder email
     if cotisations_encaissees < p['x_amount']:
-      # TODO: send out emails using Odoo APIs
       send_mail(p, cotisations_encaissees, p['x_amount'])
 
       total_amount += p['x_amount'] - cotisations_encaissees