3 class PdfErsteller(object):
5 Klasse zur Erstellung von PDFs
6 Diese Klasse verwaltet Resourcen. Mit "with" verwenden!
9 def __init__(self, request, template, basisbtr: int, zusatzbtr: int, pfad, pdfersteller):
10 self.request = request
11 self.template = template
13 self.pdfersteller = pdfersteller
14 self.basisbtr = basisbtr
15 self.zusatzbtr = zusatzbtr
18 self.csvfile = open(os.path.join(pfad, "ergebnis", "rechnungen.csv"), "w")
19 print("Name", "Vorname", "Straße", "PLZ", "Ort", "Anz. Grundstück", "Betrag", sep=";", file=self.csvfile )
24 def __exit__(self, exc_type, exc_value, traceback):
25 print ("Gesamt", self.gesamtbetrag, sep=";", file=self.csvfile )
28 def erstellepdf(self, m):
29 gg = m.VersicherteGrundstucke()
32 beitrag = self.basisbtr + self.zusatzbtr*len(gn)
35 konto = m.iban[0:4]+" xxxx xxxx xxxx "+m.iban[-2:]
37 # Hinweise zur Templateerstellung:
38 # https://docs.djangoproject.com/en/2.2/ref/templates/builtins/#ref-templates-builtins-tags
40 tex_bearbeitet = self.template.render(
41 {"vorname" : m.vorname,
42 "nachname" : m.nachname,
43 "strasse" : m.strasse,
48 "basisbeitrag" : self.basisbtr,
50 "zusatzbeitrag": self.zusatzbtr,
53 "m_nr" : m.mitgliedsnr
56 with open(f'{self.pfad}/{m.nachname}_{m.mitgliedsnr}_brief.tex', 'w') as f:
57 f.write(tex_bearbeitet) # schreibt in dieses neue Dokument
59 # AUfruf PDF latex tex -> pdf
61 rc = subprocess.call(["bash", self.pdfersteller, self.pfad, f'{m.nachname}_{m.mitgliedsnr}_brief.tex'])
63 raise RuntimeError(f"pdfersteller.sh failed: {rc}")
65 # schreibe Eintrag in Ergebnisdatei und erhöhe Gesamzbetrag
66 print(m.nachname, m.vorname, m.strasse, m.plz, m.ort, len(gg), beitrag, sep=";", file=self.csvfile )
67 self.gesamtbetrag += beitrag