Verified Commit dfa9d264 authored by Jakob Moser's avatar Jakob Moser
Browse files

Add helper functions to deal with None

parent 3ff492ca
Loading
Loading
Loading
Loading
+15 −11
Original line number Diff line number Diff line
from pathlib import Path
from typing import Optional

from pypdf import PdfReader

@@ -10,17 +11,20 @@ def load_pdf(pdf_path: Path | str) -> PaymentOrder:
    with PdfReader(pdf_path) as reader:
        fields = reader.get_fields()

    # TODO
    # for field, value in fields.items():
    #    print(field, "=", value)
    def f(name: str) -> Optional[str]:
        return fields[name].value if fields.get(name) else None

    def fs(*names: str) -> Optional[str]:
        values = (f(name) for name in names)
        return "\n".join(value for value in values if value) or None

    return PaymentOrder(
        petitioner_name=fields["Name"].value,
        petitioner_contact=fields["Kontaktdaten"].value,
        reference=fields["Text6"].value + "\n" + fields["Text7"].value,
        amount=parse_euro_amount(fields["Text8"].value),
        payee_name=fields["Text9"].value,
        payee_iban="DE" + fields["Text10"].value,
        payee_bic=fields["Text11"].value,
        budgetary_item_id=fields["Text12"].value,
        petitioner_name=f("Name"),
        petitioner_contact=f("Kontaktdaten"),
        reference=fs("Text6", "Text7"),
        amount=parse_euro_amount(f("Text8")),
        payee_name=f("Text9"),
        payee_iban="DE" + f("Text10"),
        payee_bic=f("Text11"),
        budgetary_item_id=f("Text12"),
    )