diff --git a/synchro_orleans/data/management/commands/email_new_invoices.py b/synchro_orleans/data/management/commands/email_new_invoices.py index 4e64642..87c6ab0 100644 --- a/synchro_orleans/data/management/commands/email_new_invoices.py +++ b/synchro_orleans/data/management/commands/email_new_invoices.py @@ -1,3 +1,5 @@ +# -*- encoding: utf-8 -*- + from datetime import datetime, timedelta import json import shutil @@ -29,7 +31,7 @@ class Command(BaseCommand): Sends email notifications about the invoices """ - email_subject = 'Nouvelle facture' + email_subject = 'Votre facture est disponible sur le portail citoyen' email_template = 'invoice_mail.txt' email_from = settings.DEFAULT_FROM_EMAIL secret = settings.INVOICE_HASHING_SECRET @@ -41,7 +43,7 @@ class Command(BaseCommand): def handle(self, *args, **options): - for invoice in Facture.objects.filter(Q(paye=False) | Q(montant_regle=0), + for invoice in Facture.objects.filter(Q(paye=False) | Q(date_reglement__isnull=True), active=True, date_limite_paie__gte=datetime.now(), famille__liaisonnameidfamille__isnull=False): try: @@ -58,8 +60,9 @@ class Command(BaseCommand): query=signed_query) logger.debug('requesting: %s' % url) response = requests.get(url) - data = response.json().get('data', None) - if not data: + try: + data = response.json().get['data'] + except (KeyError, ValueError): continue attachment = os.path.join(settings.INVOICES_DIR, 'facture_%s.pdf' % invoice.id) invoice_hash = self.get_invoice_hash(invoice.id, @@ -71,6 +74,13 @@ class Command(BaseCommand): context.update(data) context = Context(context) + if invoice.prelevement_automatique: + self.email_template = 'autobilling_invoice_mail.txt' + elif invoice.solde == 0: + self.email_template = 'null_invoice_mail.txt' + elif invoice.solde < 1: + self.email_template = 'sub1_invoice_mail.txt' + text_body = get_template(self.email_template).render(context) message = EmailMultiAlternatives(self.email_subject, text_body, self.email_from, [data['email']]) message.attach_file(os.path.join(settings.INVOICES_DIR, 'facture_%s.pdf'% invoice.id)) diff --git a/synchro_orleans/data/templates/autobilling_invoice_mail.txt b/synchro_orleans/data/templates/autobilling_invoice_mail.txt new file mode 100644 index 0000000..29ea757 --- /dev/null +++ b/synchro_orleans/data/templates/autobilling_invoice_mail.txt @@ -0,0 +1,12 @@ +Cher(e) {{ first_name }} {{ last_name }}, + +Nous vous informons que votre facture émise le {{invoice.date_generation|date:"SHORT_DATE_FORMAT" }} +d'un montant de {{invoice.amount }}€ est disponible sur votre Compte citoyen. + +Vous avez la possibilité de visualiser et de régler cette facture en ligne en cliquant ici: {{ invoice_view_url_base }}/{{ invoice.id }}/{{ invoice_hash }} + +Le montant de cette facture sera prélevé sur votre compte le {{ invoice.date_limite_paie|date:"SHORT_DATE_FORMAT" }}. + +Cordialement, +La mairie d'Orléans + diff --git a/synchro_orleans/data/templates/invoice_mail.txt b/synchro_orleans/data/templates/invoice_mail.txt index c8fa12f..ef15d42 100644 --- a/synchro_orleans/data/templates/invoice_mail.txt +++ b/synchro_orleans/data/templates/invoice_mail.txt @@ -1,9 +1,9 @@ -Bonjour {{ first_name }} {{ last_name }}, +Cher(e) {{ first_name }} {{ last_name }}, -La facture nr. {{ invoice.id }} d'un montant de {{ invoice.amount }}{{ invoice.devise }} a ete emise le {{ invoice.creation_date|date:"SHORT_DATE_FORMAT" }}. +Nous vous informons que votre facture émise le {{invoice.date_generation|date:"SHORT_DATE_FORMAT" }} +d'un montant de {{invoice.amount }}€ est disponible sur votre Compte citoyen. -Vous pouvez la visualiser a l'adresse {{ invoice_view_url_base }}/{{ invoice.id }}/{{ invoice_hash }} +Vous avez la possibilité de visualiser et de régler cette facture en ligne en cliquant ici: {{ invoice_view_url_base }}/{{ invoice.id }}/{{ invoice_hash }} Cordialement, - -La mairie d'Orleans +La mairie d'Orléans diff --git a/synchro_orleans/data/templates/null_invoice_mail.txt b/synchro_orleans/data/templates/null_invoice_mail.txt new file mode 100644 index 0000000..1b05eac --- /dev/null +++ b/synchro_orleans/data/templates/null_invoice_mail.txt @@ -0,0 +1,8 @@ +Cher(s) {{ first_name }} {{ last_name }}, + +Nous vous informons que votre facture émise le {{invoice.date_generation|date:"SHORT_DATE_FORMAT" }} d’un montant de {{invoice.amount }}€ +est disponible sur votre Compte citoyen. +Vous avez la possibilité de visualiser cette facture en cliquant ici: {{ invoice_view_url_base }}/{{ invoice.id }}/{{ invoice_hash }} + +Cordialement, +La mairie d’Orléans diff --git a/synchro_orleans/data/templates/sub1_invoice_mail.txt b/synchro_orleans/data/templates/sub1_invoice_mail.txt new file mode 100644 index 0000000..8d56661 --- /dev/null +++ b/synchro_orleans/data/templates/sub1_invoice_mail.txt @@ -0,0 +1,12 @@ +Cher(e) {{ first_name }} {{ last_name }}, + +Nous vous informons que votre facture émise le {{invoice.date_generation|date:"SHORT_DATE_FORMAT" }} +d'un montant de {{invoice.amount }}€ est disponible sur votre Compte citoyen. + +Vous avez la possibilité de visualiser et de régler cette facture en ligne en cliquant ici: {{ invoice_view_url_base }}/{{ invoice.id }}/{{ invoice_hash }} + +Le montant de cette facture étant inférieur à 1€, vous n’avez pas la possibilité de la régler en ligne, les lieux de paiement sont mentionnés dans votre facture + +Cordialement, +La mairie d’Orléans +