def handle(self, *args, **options): from usermanagement.models import Member, MemberDocument, MemberDocumentTag, AccountTransaction template = "documentmanagement/donationreceipt.tex" filename = "donationreceipt_{year}_{id:04d}_{surname}_{name}" additional_files = (('static/img/logo_shack_brightbg.pdf', 'img/logo_shack_brightbg.pdf'), ) shackbureau_user = get_shackbureau_user() today = date.today() tag, created = MemberDocumentTag.objects.get_or_create( tag="Spendenbescheinigung", defaults={"created_by": shackbureau_user}) member_id = options['member_id'] year = options['year'] member = Member.objects.get(member_id=member_id) amount = AccountTransaction.objects \ .filter(transaction_type="membership fee") \ .filter(Q(booking_type="deposit") | Q(booking_type="charge back")) \ .filter(member=member, due_date__year=year) \ .aggregate(Sum('amount')).get('amount__sum') context = { 'address_of_donator': member.get_postal_address(), 'amount': amount, 'day_of_donation': year, 'donation_type': 'allowance in money', 'date': today, 'place': 'Stuttgart' } base_filename = filename.format(year=year, id=member.member_id, surname=member.surname, name=member.name) with TemporaryDirectory() as tempdirectory: pdf = pdflatex(base_filename=base_filename, template=template, context=context, tempdirectory=tempdirectory, additional_files=additional_files) print(pdf) with open(pdf, 'rb') as f: memberdocument = MemberDocument() memberdocument.member = member memberdocument.created_by = shackbureau_user memberdocument.description = "Spendenbescheinigung {}".format( today.isoformat()) memberdocument.comment = "autogenerated at {}".format( today.isoformat()) memberdocument.data_file.save(path.basename(pdf), File(f)) memberdocument.save() memberdocument.tag.add(tag) return
def handle(self, *args, **options): from usermanagement.models import Member, MemberDocument, MemberDocumentTag template = "documentmanagement/letter.tex" content = """ beim Abgleich deiner Mitgliedsdaten konnten wir dich per Email unter \\url{{{email}}} nicht erreichen. Bitte melde dich bei uns unter \\url{{[email protected]}}, damit wir deine Daten abgleichen können. """ opening = "Hallo {name}," subject = "Deine Mitgliedsdaten" filename = "membertracking_{date}_{id:04d}_{surname}_{name}" additional_files = (('static/img/logo_shack_brightbg.pdf', 'img/logo_shack_brightbg.pdf'), ) shackbureau_user = get_shackbureau_user() today = date.today() tag, created = MemberDocumentTag.objects.get_or_create( tag="Membertracking", defaults={"created_by": shackbureau_user}) for member in Member.objects.filter(is_active=True)\ .filter(membertrackingcode__validated=False): context = { 'closing': "Mit freundlichen Grüßen", 'signature': "Der Vorstand", 'place': "Stuttgart", 'date': today, 'subject': subject, 'opening': opening.format(name=member.name), 'content': content.format(email=member.email), 'address': member.get_postal_address() } base_filename = filename.format(date=today.isoformat(), id=member.member_id, surname=member.surname, name=member.name) with TemporaryDirectory() as tempdirectory: pdf = pdflatex(base_filename=base_filename, template=template, context=context, tempdirectory=tempdirectory, additional_files=additional_files) print(pdf) with open(pdf, 'rb') as f: memberdocument = MemberDocument() memberdocument.member = member memberdocument.created_by = shackbureau_user memberdocument.description = "Member tracking {}".format( today.isoformat()) memberdocument.comment = "autogenerated at {}".format( today.isoformat()) memberdocument.data_file.save(path.basename(pdf), File(f)) memberdocument.save() memberdocument.tag.add(tag)
def handle(self, *args, **options): from usermanagement.models import Member, MemberDocument, MemberDocumentTag template = "documentmanagement/letter.tex" content = """ beim Abgleich deiner Mitgliedsdaten konnten wir dich per Email unter \\url{{{email}}} nicht erreichen. Bitte melde dich bei uns unter \\url{{[email protected]}}, damit wir deine Daten abgleichen können. """ opening = "Hallo {name}," subject = "Deine Mitgliedsdaten" filename = "membertracking_{date}_{id:04d}_{surname}_{name}" additional_files = (('static/img/logo_shack_brightbg.pdf', 'img/logo_shack_brightbg.pdf'), ) shackbureau_user = get_shackbureau_user() today = date.today() tag, created = MemberDocumentTag.objects.get_or_create(tag="Membertracking", defaults={"created_by": shackbureau_user}) for member in Member.objects.filter(is_active=True)\ .filter(membertrackingcode__validated=False): context = {'closing': "Mit freundlichen Grüßen", 'signature': "Der Vorstand", 'place': "Stuttgart", 'date': today, 'subject': subject, 'opening': opening.format(name=member.name), 'content': content.format(email=member.email), 'address': member.get_postal_address() } base_filename = filename.format(date=today.isoformat(), id=member.member_id, surname=member.surname, name=member.name) with TemporaryDirectory() as tempdirectory: pdf = pdflatex(base_filename=base_filename, template=template, context=context, tempdirectory=tempdirectory, additional_files=additional_files) print(pdf) with open(pdf, 'rb') as f: memberdocument = MemberDocument() memberdocument.member = member memberdocument.created_by = shackbureau_user memberdocument.description = "Member tracking {}".format(today.isoformat()) memberdocument.comment = "autogenerated at {}".format(today.isoformat()) memberdocument.data_file.save(path.basename(pdf), File(f)) memberdocument.save() memberdocument.tag.add(tag)
def handle(self, *args, **options): from usermanagement.models import Member, MemberDocument, MemberDocumentTag, AccountTransaction template = "documentmanagement/donationreceipt.tex" filename = "donationreceipt_{year}_{id:04d}_{surname}_{name}" additional_files = (('static/img/logo_shack_brightbg.pdf', 'img/logo_shack_brightbg.pdf'), ) shackbureau_user = get_shackbureau_user() today = date.today() tag, created = MemberDocumentTag.objects.get_or_create(tag="Spendenbescheinigung", defaults={"created_by": shackbureau_user}) member_id = options['member_id'] year = options['year'] member = Member.objects.get(member_id=member_id) amount = AccountTransaction.objects \ .filter(transaction_type="membership fee") \ .filter(Q(booking_type="deposit") | Q(booking_type="charge back")) \ .filter(member=member, due_date__year=year) \ .aggregate(Sum('amount')).get('amount__sum') context = {'address_of_donator': member.get_postal_address(), 'amount': amount, 'day_of_donation': year, 'donation_type': 'allowance in money', 'date': today, 'place': 'Stuttgart' } base_filename = filename.format(year=year, id=member.member_id, surname=member.surname, name=member.name) with TemporaryDirectory() as tempdirectory: pdf = pdflatex(base_filename=base_filename, template=template, context=context, tempdirectory=tempdirectory, additional_files=additional_files) print(pdf) with open(pdf, 'rb') as f: memberdocument = MemberDocument() memberdocument.member = member memberdocument.created_by = shackbureau_user memberdocument.description = "Spendenbescheinigung {}".format(today.isoformat()) memberdocument.comment = "autogenerated at {}".format(today.isoformat()) memberdocument.data_file.save(path.basename(pdf), File(f)) memberdocument.save() memberdocument.tag.add(tag) return