#5 Possibility to create a blank payment-sheet

This commit is contained in:
2025-02-27 18:11:30 +01:00
parent b63f4ef370
commit 8516d270f4
2 changed files with 82 additions and 49 deletions
+31 -6
View File
@@ -15,27 +15,45 @@ def print_multiple_lines(lines: int, text):
text.textLines("") text.textLines("")
cnt += 1 cnt += 1
def create_payment_slip(member: models.Members): def create_payment_slip(member: models.Members = None):
locale.setlocale(locale.LC_ALL, '') locale.setlocale(locale.LC_ALL, '')
salutation = "Deine"
salutation2 = "Dein"
salutation3 = "Dich"
salutation4 = "Solltest Du"
salutation5 = "sende"
subfolder = ""
w, h = A4 w, h = A4
# create epc qr-code # create epc qr-code
if not member is None:
qrcode = helpers.make_epc_qr(name='Sportunion St. Thomas', qrcode = helpers.make_epc_qr(name='Sportunion St. Thomas',
iban='AT493443700000113407', iban='AT493443700000113407',
amount=15*member.member_count, amount=15*member.member_count,
reference=f'2024-4732-{member.id:03}-{member.member_count}') reference=f'2025-4732-{member.id:03}-{member.member_count}')
qrcode.save("epc_qr.png", scale=2) qrcode.save("epc_qr.png", scale=2)
subfolder = "mail" if member.member_email else "" 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") fullfilepath = os.path.join(os.path.expanduser("~"),"sust","payment_slips",subfolder,f"{member.member_zip}_payment_slip_member{member.id}.pdf")
else:
fullfilepath = os.path.join(os.path.expanduser("~"),"sust","payment_slips",subfolder,f"4732_payment_slip_blanko.pdf")
# Ensure the directory exists
os.makedirs(os.path.dirname(fullfilepath), exist_ok=True)
c = canvas.Canvas(fullfilepath, pagesize=A4) c = canvas.Canvas(fullfilepath, pagesize=A4)
if not member is None:
c.drawImage(image="epc_qr.png", x=500, y=40) # epc qr 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.drawImage(image="Sportunion quer 4c.png", x=(w-180), y=(h-100), width=150, height=50, mask='auto')
image_path = os.path.join(os.path.dirname(__file__), "Sportunion quer 4c.png")
c.drawImage(image=image_path, x=(w-180), y=(h-100), width=150, height=50, mask='auto')
c.setFont("Helvetica", 9) c.setFont("Helvetica", 9)
text = c.beginText(60, h - 150) text = c.beginText(60, h - 150)
if not member is None:
if member.member_count > 1: if member.member_count > 1:
text.textLine(f"{member.member_firstname_spouse} u. {member.member_firstname} {member.member_surname}") text.textLine(f"{member.member_firstname_spouse} u. {member.member_firstname} {member.member_surname}")
else: else:
@@ -61,6 +79,8 @@ def create_payment_slip(member: models.Members):
else: else:
salutation_gender = "lieber" salutation_gender = "lieber"
text.textLine(f"{salutation_gender.capitalize()} {member.member_firstname}!") text.textLine(f"{salutation_gender.capitalize()} {member.member_firstname}!")
else:
print_multiple_lines(10, text)
c.drawString(w - 150, h - 225, f'St. Thomas, {datetime.date.today().strftime('%x')}') c.drawString(w - 150, h - 225, f'St. Thomas, {datetime.date.today().strftime('%x')}')
print_multiple_lines(5, text) print_multiple_lines(5, text)
@@ -81,13 +101,18 @@ def create_payment_slip(member: models.Members):
# payment slip details # payment slip details
text = c.beginText(11, 75) text = c.beginText(11, 75)
c.setFont("Helvetica", 8) c.setFont("Helvetica", 8)
if not member is None:
text.textLine(f"Beitrag gesamt: {locale.format_string('%.2f', 15 * member.member_count)}") text.textLine(f"Beitrag gesamt: {locale.format_string('%.2f', 15 * member.member_count)}")
text.textLine(f"Mitgliedsnummer: 4732-{member.id:03}") text.textLine(f"Mitgliedsnummer: 4732-{member.id:03}")
else:
text.textLine(f"Beitrag gesamt: {locale.format_string('%.2f', 15)}")
text.textLine(f"Mitgliedsnummer: 4732-NEU")
c.drawText(text) c.drawText(text)
text = c.beginText(188, 103) text = c.beginText(188, 103)
c.setFont("Helvetica", 8) c.setFont("Helvetica", 8)
text.textLine(f"Bei Online-Zahlung bitte die Zahlungsreferenz 2024-4732-{member.id:03}-{member.member_count} eintragen") if not member is None:
text.textLine(f"Bei Online-Zahlung bitte die Zahlungsreferenz 2025-4732-{member.id:03}-{member.member_count} eintragen")
print_multiple_lines(1, text) print_multiple_lines(1, text)
if member.member_count > 1: 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}") text.textLine(f"Mitgliedsnummer: 4732-{member.id:03} {member.member_firstname_spouse} {member.member_suffix} {member.member_firstname} {member.member_surname}")
+8
View File
@@ -0,0 +1,8 @@
from create_payment_slip import create_payment_slip
import logging, sys
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
create_payment_slip()
logging.debug(f'Empty payment slip created')