#5 Possibility to create a blank payment-sheet
This commit is contained in:
@@ -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}")
|
||||||
|
|||||||
@@ -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')
|
||||||
Reference in New Issue
Block a user