diff --git a/sustApp/create_payment_slip.py b/sustApp/create_payment_slip.py index 9dafe40..7147644 100644 --- a/sustApp/create_payment_slip.py +++ b/sustApp/create_payment_slip.py @@ -15,52 +15,72 @@ def print_multiple_lines(lines: int, text): text.textLines("") cnt += 1 -def create_payment_slip(member: models.Members): +def create_payment_slip(member: models.Members = None): locale.setlocale(locale.LC_ALL, '') + salutation = "Deine" + salutation2 = "Dein" + salutation3 = "Dich" + salutation4 = "Solltest Du" + salutation5 = "sende" + subfolder = "" + 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) + if not member is None: + qrcode = helpers.make_epc_qr(name='Sportunion St. Thomas', + iban='AT493443700000113407', + amount=15*member.member_count, + reference=f'2025-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.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) - 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') - + if not member is None: + 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') + 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) 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" + + if not member is None: + if member.member_count > 1: + text.textLine(f"{member.member_firstname_spouse} u. {member.member_firstname} {member.member_surname}") else: - salutation_gender = "lieber" - text.textLine(f"{salutation_gender.capitalize()} {member.member_firstname}!") + 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}!") + else: + print_multiple_lines(10, text) c.drawString(w - 150, h - 225, f'St. Thomas, {datetime.date.today().strftime('%x')}') print_multiple_lines(5, text) @@ -81,23 +101,28 @@ def create_payment_slip(member: models.Members): # 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}") + if not member is None: + text.textLine(f"Beitrag gesamt: {locale.format_string('%.2f', 15 * member.member_count)}") + 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) 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) + 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) + 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.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() \ No newline at end of file diff --git a/sustApp/print_empty_payment_slip.py b/sustApp/print_empty_payment_slip.py new file mode 100644 index 0000000..69b3221 --- /dev/null +++ b/sustApp/print_empty_payment_slip.py @@ -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') \ No newline at end of file