Move all to subDir sustApp

This commit is contained in:
2025-01-19 17:10:56 +01:00
parent 408e282fdc
commit b63f4ef370
23 changed files with 12875 additions and 2656 deletions
+103
View File
@@ -0,0 +1,103 @@
import models
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
from segno import helpers
import datetime
import locale
import os
def print_multiple_lines(lines: int, text):
cnt = 1
while cnt < lines:
text.textLines("")
cnt += 1
def create_payment_slip(member: models.Members):
locale.setlocale(locale.LC_ALL, '')
w, h = A4
# create epc qr-code
qrcode = helpers.make_epc_qr(name='Sportunion St. Thomas',
iban='AT493443700000113407',
amount=15*member.member_count,
reference=f'2024-4732-{member.id:03}-{member.member_count}')
qrcode.save("epc_qr.png", scale=2)
subfolder = "mail" if member.member_email else ""
fullfilepath = os.path.join(os.getenv('APPDATA'), "sust", "payment_slips",subfolder,f"{member.member_zip}_payment_slip_member{member.id}.pdf")
c = canvas.Canvas(fullfilepath, pagesize=A4)
c.drawImage(image="epc_qr.png", x=500, y=40) # epc qr
c.drawImage(image="Sportunion quer 4c.png", x=(w-180), y=(h-100), width=150, height=50, mask='auto')
c.setFont("Helvetica", 9)
text = c.beginText(60, h - 150)
if member.member_count > 1:
text.textLine(f"{member.member_firstname_spouse} u. {member.member_firstname} {member.member_surname}")
else:
text.textLine(f"{member.member_firstname} {member.member_surname} {member.member_suffix}")
text.textLine(f"{member.member_street} {member.member_streetnumber}")
text.textLine(f"{member.member_zip} {member.member_city}")
print_multiple_lines(5, text)
if member.member_count > 1:
salutation = "eure"
salutation2 = "euer"
salutation3 = "euch"
salutation4 = "Solltet ihr"
salutation5 = "sendet"
text.textLine(f"Liebe {member.member_firstname_spouse} und lieber {member.member_firstname}!")
else:
salutation = "Deine"
salutation2 = "Dein"
salutation3 = "Dich"
salutation4 = "Solltest Du"
salutation5 = "sende"
if member.member_gender == "female":
salutation_gender = "liebe"
else:
salutation_gender = "lieber"
text.textLine(f"{salutation_gender.capitalize()} {member.member_firstname}!")
c.drawString(w - 150, h - 225, f'St. Thomas, {datetime.date.today().strftime('%x')}')
print_multiple_lines(5, text)
text.textLines(f"Vielen Dank für {salutation} Treue!\n\n{salutation2.capitalize()} Beitrag ist gut angelegt, denn der Sportverein St. Thomas bietet für jede(n) etwas:")
print_multiple_lines(2, text)
text.textLines("* Skigymnastik\n* Radfahren\n* Stockschiessen\n* Pilates\n* Tagesskifahrt\n* uvam")
print_multiple_lines(5, text)
text.textLines(f"Wir möchten das Einheben des Mitgliedsbeitrags zuküntig einfacher machen, daher bitten wir {salutation3},\nuns eine Mail mit dem Betreff \"Zahlschein oder Abbucher\" an unsere Mail-Adresse sv.stthomas@gmx.at zu senden!")
print_multiple_lines(3, text)
text.textLines(f"{salutation2.capitalize()} Sportverein-Team!")
c.drawText(text)
text = c.beginText(60, h - 500)
c.setFont("Helvetica", 7)
text.textLines(f"Auf Grund der DSGVO müssen wir darauf hinweisen, dass wir außer Name, Adresse, Mail-Adresse\nzum Zwecke der Einebung des Mitgliedsbeitrags, keine persönlichen Daten unserer Mitglieder führen!\nDiese Daten werden von uns nicht an Dritte weitergegeben!\nWeiters informieren wir darüber, dass Fotos, die bei Veranstaltungen oder Aktivitäten entstehen,\nauf unserer Homepage oder in Zeitungen veröffentlicht werden können.\n{salutation4} gegen die Speicherung {salutation}r Daten oder die Veröffentlichung diverser Foto sein, {salutation5} uns bitte eine Mail.")
c.drawText(text)
# payment slip details
text = c.beginText(11, 75)
c.setFont("Helvetica", 8)
text.textLine(f"Beitrag gesamt: {locale.format_string('%.2f', 15 * member.member_count)}")
text.textLine(f"Mitgliedsnummer: 4732-{member.id:03}")
c.drawText(text)
text = c.beginText(188, 103)
c.setFont("Helvetica", 8)
text.textLine(f"Bei Online-Zahlung bitte die Zahlungsreferenz 2024-4732-{member.id:03}-{member.member_count} eintragen")
print_multiple_lines(1, text)
if member.member_count > 1:
text.textLine(f"Mitgliedsnummer: 4732-{member.id:03} {member.member_firstname_spouse} {member.member_suffix} {member.member_firstname} {member.member_surname}")
else:
text.textLine(f"Mitgliedsnummer: 4732-{member.id:03} {member.member_firstname} {member.member_surname}")
c.drawText(text)
c.setFont("Helvetica", 10)
c.drawString(188, h - 696, f'2024-4732-{member.id:03}-{member.member_count}') # Zahlungsreferenz Zahlungsanweisung
c.drawString(11, 120, f'2024-4732-{member.id:03}-{member.member_count}') # Zahlungsreferenz Auftragsbestätigung
c.drawString(130, h - 694, (locale.format_string('%.2f', 15 * member.member_count))) # Betrag Auftragsbestätigung
c.drawString(w - 30, 170, (locale.format_string('%.2f', 15 * member.member_count))) # Betrag Zahlungsanweisung
c.save()