Quand un paiement « mécénat » est confirmé, l'email de confirmation porte en pièce jointe le reçu fiscal (cerfa 11580*05) rempli du bénévole, avec une phrase l'annonçant dans le corps. Généré en tâche de fond : un échec de génération envoie l'email sans pièce jointe plutôt que rien. - build_message/send acceptent des pièces jointes - app/mecenat/receipts.py : passage Volunteer → MecenatReceipt, partagé avec l'export coordination - modèle cerfa remplacé par une version pré-remplie avec l'association (organisme bénéficiaire, cases 200/978, signature) ; position de la date du versement ajustée Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
23 lines
866 B
Python
23 lines
866 B
Python
"""Passage d'un `Volunteer` à un `MecenatReceipt` — partagé par l'export
|
|
coordination (`app/api/volunteers.py:export_mecenat_receipts`) et l'envoi du
|
|
reçu au bénévole à la confirmation de son paiement (`app/api/forms.py:
|
|
_promote_pending`)."""
|
|
|
|
from app.mecenat.pdf import MecenatReceipt
|
|
from app.models import Volunteer
|
|
|
|
RECEIPT_FILENAME = "recu-fiscal-mecenat.pdf"
|
|
|
|
|
|
def receipt_for(volunteer: Volunteer) -> MecenatReceipt:
|
|
return MecenatReceipt(
|
|
last_name=volunteer.last_name,
|
|
first_name=volunteer.first_name,
|
|
address=volunteer.mecenat_address or "",
|
|
postal_code=volunteer.mecenat_postal_code or "",
|
|
city=volunteer.mecenat_city or "",
|
|
country=volunteer.mecenat_country or "",
|
|
amount=volunteer.fee_amount or 0.0,
|
|
payment_date=(volunteer.fee_paid_at or volunteer.created_at).date(),
|
|
)
|