From: Michael Wagner
Date: Wed, 28 May 2025 14:38:46 +0000 (+0200)
Subject: pydev-s6
X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/commitdiff_plain/771766d211c1651fc9e0c3de1fc6caeb99c69c7a
pydev-s6
---
diff --git a/Test/FitnessePages/DjangoTest/content.txt b/Test/FitnessePages/DjangoTest/content.txt
new file mode 100644
index 0000000..5897464
--- /dev/null
+++ b/Test/FitnessePages/DjangoTest/content.txt
@@ -0,0 +1,6 @@
+!|test.util.CallScript|
+|call script|!-rm -r ~/test |true-!|
+|call script|mkdir -p ~/test/python/eh_util/eh_app|
+|call script|cp ../python/eh_util/eh_app/tests.py ~/test/python/eh_util/eh_app/|
+|call script|cp ../python/eh_util/manage.py ~/test/python/eh_util/|
+|call script|cd ~/test/python/eh_util/; ./manage.py test|
diff --git a/Test/FitnessePages/DjangoTest/properties.xml b/Test/FitnessePages/DjangoTest/properties.xml
new file mode 100644
index 0000000..e13fdf4
--- /dev/null
+++ b/Test/FitnessePages/DjangoTest/properties.xml
@@ -0,0 +1,12 @@
+
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+
diff --git a/Test/etc/Export.csv b/Test/etc/Export.csv
new file mode 100644
index 0000000..5819ab7
--- /dev/null
+++ b/Test/etc/Export.csv
@@ -0,0 +1,10 @@
+"Anrede";"Vorname";"Nachname";"StraÃe";"Zusatzadresse";"PLZ";"Ort";"Land";"Titel";"Geschlecht";"Familienstand";"Mitglieds-Nr";"Geburtsdatum";"Eintrittsdatum";"Austrittsdatum";"Austrittsgrund";"Zahlungsart";"IBAN";"BIC";"Kontonummer";"Bankleitzahl";"Kreditinstitut";"Kontoinhaber";"Mandatsreferenz";"Debitorenkonto-Nr";"Status";"Branche";"Notfallnummer";"Notfallkontakt";"KommE-Mail_P1";"KommFax_P1";"KommMobil_P1";"KommWeb_P1";"KommTelefon_P1";"KommSkype_P1";"Abteilung_1";"Abteilungseintritt_1";"Abteilungsaustritt_1";"Abteilungsstatus_1";"Abteilungsstatus DFB_1";"Abteilungsaustrittsgrund_1";"Abteilung_2";"Abteilungseintritt_2";"Abteilungsaustritt_2";"Abteilungsstatus_2";"Abteilungsstatus DFB_2";"Abteilungsaustrittsgrund_2";"Beitragsbezeichnung_1_1";"Beitragsstart_1_1";"Beitragsende_1_1";"BeitragBerechnetBis_1_1";"BeitragZahlweise_1_1";"BeitragFälligkeitsdatum_1_1";"BeitragVariabel_1_1";"BeitragFormel_1_1";"BeitragGrundbetrag1_1_1";"BeitragGB1Gesperrt_1_1";"BeitragGrundbetrag2_1_1";"BeitragGB2Gesperrt_1_1";"BeitragGrundbetrag3_1_1";"BeitragGB3Gesperrt_1_1";"BeitragGrundbetrag4_1_1";"BeitragGB4Gesperrt_1_1";"BeitragGrundbetrag5_1_1";"BeitragGB5Gesperrt_1_1";"BeitragZahlweiseGesperrt_1_1";"Freifeldname_1";"Freifeldwert_1";"Freifeldname_2";"Freifeldwert_2";"Freifeldname_3";"Freifeldwert_3";"NotizArt_1";"NotizPrio_1";"NotizBetreff_1";"NotizInhalt_1";"NotizDatum_1"
+Herr;Horsti;Acktu;"Blombergstr. 30";"";81825;München;Deutschland;;;;"14962";25.04.1948;01.01.1998;31.12.2050;;;DE24700202701780047001;HYVEDEMMXXX;"1780047000";"70020270";"UniCredit Bank - HypoVereinsbank";Acktun Horst;"10058";"10253";Aktiv;;;;;"";"";;"4317535";;Standard;01.01.1998;;Aktiv;;;;;;;;;Standard;01.01.1998;;;Jahr;;nein;;;;;;;;;;;;;;"";;"";Zeitung;"Ja";;;;;
+Herr;Horsti;Acktu;"Blombergstr. 30";"";81825;München;Deutschland;;;;"14963";25.04.1948;01.01.1998;31.12.2023;;;DE24700202701780047001;HYVEDEMMXXX;"1780047000";"70020270";"UniCredit Bank - HypoVereinsbank";Acktun Horst;"10058";"10253";Aktiv;;;;;"";"";;"4317535";;Standard;01.01.1998;;Aktiv;;;;;;;;;Standard;01.01.1998;;;Jahr;;nein;;;;;;;;;;;;;;"";;"";Zeitung;"Ja";;;;;
+Herr und Frau;Dr. Michael und Ingrid;Wagner;"Turfstr. 18 a";"";81929;München;Deutschland;;Jur. Person oder sächlich;;"14964";;01.04.2024;;;Lastschrift;DE54700905000004428285;GENODEF1S04;"4428285";"70090500";"Sparda-Bank München";Wagner Dr. Michael und Ingrid;"10255";"10255";Aktiv;;;;;;;;;;;;;;;;Zusatzgrundstück;01.04.2024;;Aktiv;;;;;;;;;;;;;;;;;;;;;;Partnernummer;"76736";VersichertesObjekt;"Gleiwitzer Str. 26, 81929 München";Zeitung;"Nein";;;;;
+Herr und Frau;Dr. Michael und Ingrid;Wagner;"Turfstr. 18 a";"";81929;München;Deutschland;;;;"14965";;01.04.2024;;;Lastschrift;DE54700905000004428285;GENODEF1S04;"4428285";"70090500";"Sparda-Bank München";Wagner Dr. Michael und Ingrid;"10256";"10256";Aktiv;;;;;;;;;;;;;;;;Zusatzgrundstück;01.04.2024;;Aktiv;;;;;;;;;;;;;;;;;;;;;;Partnernummer;"76736";VersichertesObjekt;"Finkenweg 5, 83556 Griesstätt";Zeitung;"Nein";;;;;
+Herr und Frau;Dr. Michael und Ingrid;Wagner;"Turfstr. 18 a";"";81929;München;Deutschland;;;;"76736";25.05.1965;01.12.2012;;;Lastschrift;DE54700905000004428285;GENODEF1S04;"4428285";"70090500";"Sparda-Bank München";Wagner Dr. Michael und Ingrid;"10218";"10218";Aktiv;;;;bonzius@vindelicia.de;"";"";;"99 75 94 94";;Standard;01.12.2012;;Aktiv;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"";VersichertesObjekt;"81929 München, Gleiwitzerstr. 28";Zeitung;"Ja";;;;;
+Frau;Elke;Söller;"Argula-von-Grumbach-Sr. 5";"";92345;Dietfurt;Deutschland;;;;"77912";08.05.1979;01.07.2008;;;;;;;;;;"10193";"10193";Aktiv;;;;;"";"";;"084 64 / 64 21 79";;Standard;01.07.2008;;Aktiv;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"";VersichertesObjekt;"92363 Breitenbrunn, Breitenegg 1 a";Zeitung;"Ja";;;;;
+Frau;Marianne;Söller;"Böhmerbrunnenstr. 27";"";92345;Dietfurt;Deutschland;;;;"76441";;01.01.1995;;;;DE98760520800570713611;BYLADEM1NMA;"570713610";"76052080";"Sparkasse Neumarkt i d OPf-Parsberg";Söllner2 Marianne;"10249";"10249";Aktiv;;;;;;;;;;;;;;;;Zusatzgrundstück;01.01.1995;;Aktiv;;;;;;;;;;;;;;;;;;;;;;Partnernummer;"75987";;"";Zeitung;"Nein";;;;;
+Frau;Marianne;Söller;"Böhmerbrunnenstr. 27";"";92354;Dietfurt;Deutschland;;;;"75987";;01.01.1985;;;;DE98760520800570713611;BYLADEM1NMA;"570713610";"76052080";"Sparkasse Neumarkt i d OPf-Parsberg";Söllner Marianne;"10194";"10194";Aktiv;;;;;"";"";;"084 64 / 15 42";;Standard;01.01.1985;;Aktiv;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"";VersichertesObjekt;"92345 Dietfurt 2, Böhmerbrunnenstr. 21";Zeitung;"Ja";;;;;
+Frau;Marianne;Söller;"Böhmerbrunnenstr. 27";"";92345;Dietfurt;Deutschland;;;;"76491";;01.09.1992;;;;DE98760520800570713611;BYLADEM1NMA;"570713610";"76052080";"Sparkasse Neumarkt i d OPf-Parsberg";Söllner3 Marianne;"10250";"10250";Aktiv;;;;;;;;;;;;;;;;Zusatzgrundstück;01.09.1992;;Aktiv;;;;;;;;;;;;;;;;;;;;;;Partnernummer;"75987";VersichertesObjekt;"92363 Breitbrunn, Tannenweg 6";Zeitung;"Nein";;;;;
diff --git a/bin/pdfersteller b/bin/pdfersteller
new file mode 100755
index 0000000..9ba870d
--- /dev/null
+++ b/bin/pdfersteller
@@ -0,0 +1,4 @@
+#/bin/bash
+
+cd /home/sparky2021/SVBaL/latex
+pdflatex $1
diff --git a/latex/brief.lco b/latex/brief.lco
index ab870ba..91817ba 100644
--- a/latex/brief.lco
+++ b/latex/brief.lco
@@ -9,15 +9,17 @@
\hypersetup{pdfpagemode=None}
\KOMAoptions{
paper=a4,
- pagenumber=botcenter,
+ pagenumber=false,
% fromalign=right,
% fromrule=afteraddress,
% fromphone,
% fromfax,
-% fromlogo,fromurl,fromemail,
+ fromlogo,
+% fromurl,fromemail,
% backaddress,
foldmarks,
% headsepline,footsepline,
+ headsepline=true, % Linie unter dem Header der Folgeseite
enlargefirstpage,
parskip=half
}
@@ -35,13 +37,17 @@
\setkomavar{frombank}{Eine Bank\\IBAN~123\,45\,678}
\setkomavar{place}{München}
\setkomavar{signature}{Michael Wagner\\1.Vorsitzender}
-\setkomavar{fromlogo}{\parbox[b]{8cm}{\usekomafont{fromaddress}%
- {\mbox{\LARGE \bfseries Dr.\ rer.\ nat.\ Joachim~Schlosser}}
- \smallskip}
-}
+%\setkomavar{fromlogo}{\parbox[b]{8cm}{\usekomafont{fromaddress}%
+% {\mbox{\LARGE \bfseries Dr.\ rer.\ nat.\ Joachim~Schlosser}}
+% \smallskip}
+%}
\setkomafont{backaddress}{\sffamily}
\setkomafont{fromaddress}{\sffamily}
-\addtokomafont{fromname}{\scriptsize}
+%\setkomavar{fromlogo}{\parbox[b]{8cm}{\includegraphics[width=2cm]{logo.jpeg}}}
+\setkomavar{fromlogo}{\includegraphics[width=2cm]{logo.jpeg}}
+\setkomavar{nexthead}{\mbox{\textbf{Siedlervereinigung Berg am Laim}} \usekomavar{fromlogo}}
+\headheight=2cm
+\setkomafont{fromname}{\sffamily}
\addtokomafont{fromaddress}{\scriptsize}
\pagestyle{headings}
%\CenterWallPaper{1}{MitgliederausweisSVBaLVorlage_leer_v2.pdf}
diff --git a/latex/brief.tex b/latex/brief.tex
deleted file mode 100644
index 897c89d..0000000
--- a/latex/brief.tex
+++ /dev/null
@@ -1,59 +0,0 @@
-\documentclass{scrlttr2}
-\LoadLetterOption{brief}
-\setkomavar{date}{\vspace*{-6\baselineskip}\today}
-\begin{document}
-\begin{letter}{
- %\today \par \vspace*{2\baselineskip}
- \vspace*{11 mm}\small{Frau\\Erika Schwarze\\Wildenholzenerstr. 14\\81617 München}}
-
-\opening{\par \vspace*{3\baselineskip}Liebe Vereinsmitglieder!}
-\CenterWallPaper{1}{../Aktuell/BriefpapierSVBaLVorlage.pdf}
-Lass mich Dir die Welt zeigen,\\
-wie ich sie sehe ...\\
-Lass mich Deine Gefühle spüren,\\
-sodass ich sie verstehe ...\\
-Lass Dich in meine Arme sinken,\\
-Du bist nicht allein ...\\
-Lass Dich von meinen Träumen berühren,\\
-ich will bei dir sein.
-
-Ulrich Stamm
-
-\vspace*{1 cm}\hrule
-\vspace*{2 cm}
-In ungewissen Zeiten schafft die Beziehung zu einem geliebten Menschen uns Sicherheit, mit der wir voll Zuversicht ins neue Jahr gehen können.
-
-Der Vorstand der Siedlervereinigung Berg am Laim wünscht Ihnen gesegnete Weihnacht und viel Zuversicht im neuen Jahr.
-
-\pagebreak
-\ClearWallPaper
-
-\textbf{Nachrichten aus dem Verband}
-\begin{itemize}
-\item Baumschutzverordnung und Wärmeplan
-
- Die Vorstände der Siedlervereine des Münchner Ostens sind zu diesen im Gespräch mit Stadträten und Ausschüssen. Gerne halten wir Sie bei neuen Entwicklungen auf dem Laufenden.
-
- Am 6.2.2025 um 18:00h hat der Eigenheimer Waldperlach-Neubiberg das Referat für Klima- und Umweltschutz im Leiberheim zu Gast. In einem Tandemvortrag soll die Wärmeplanung für dieses Stadtgebiet vorgestellt und im Anschluss diskutiert werden. Auch interessierte Vereinsmitglieder sind herzlich eingeladen.
-
-\item Neuer Justitiar Karl Schmelzing
-
- Nach langjähriger Tätigkeit für den Verband ist Rainer Schmidt in den Ruhestand gegangen. Für rechtliche Fragen steht nun sein Nachfolger Hr. Karl Schmelzing zur Verfügung.
-
-\item Wärmepumpen und Wallboxen
-
- Wärmepumpen und Wallboxen benötigen viel Strom, der durch das existierende Stromnetz den Verbrauchern zur Verfügung gestellt werden muss. Wir hören bereits von Fällen, dass die Stadtwerke die Installation solcher Einrichtungen ablehnen, da sie sonst eine Ãberlastung der Netze befürchten.
-
- Bitte teilen Sie uns Ihre Erfahrungen zu diesen Themen mit, damit wir einen Ãberblick über die Situation erhalten.
- Vergünstigungen
-
-\item Wir weisen nochmal auf die bereits im Sommerrundbrief beschriebenen Vergünstigungen für die Mitglieder des Eihenheimerverbandes hin: Da sind zum einen Handelsunternehmen im Münchner Osten, die uns Rabatte gewähren, zum anderen gibt es die "Eigenheimervergünstigungen" auf der Internetseite des Verbands. Auf Rückfrage teile ich Ihnen Gerne nochmal die Möglichkeiten mit.
-
-
-\item Mitglieder werben Mitglieder
-
- Ich darf Sie an die 20.- EUR Prämie für die Werbung neuer Mitglieder erinnern.
-\end{itemize}
-%\closing{Viele GrüÃe}
-\end{letter}
-\end{document}
diff --git a/latex/brief.tex b/latex/brief.tex
new file mode 120000
index 0000000..289ee89
--- /dev/null
+++ b/latex/brief.tex
@@ -0,0 +1 @@
+brief_202503.tex
\ No newline at end of file
diff --git a/python/eh_util/eh_app/AWK/pdf_ersteller.py b/python/eh_util/eh_app/AWK/pdf_ersteller.py
new file mode 100644
index 0000000..d86278e
--- /dev/null
+++ b/python/eh_util/eh_app/AWK/pdf_ersteller.py
@@ -0,0 +1,42 @@
+class PdfErsteller(object):
+ '''
+ Klasse zur Erstellung von PDFs
+ '''
+
+
+ def __init__(self, request, template, pfad):
+ self.request = request
+ self.template = template
+ self.pfad = pfad
+
+ def erstellepdf(self, m):
+ gg = m.VersicherteGrundstucke()
+ g1 = gg[0]
+ gn = gg[1:]
+ beitrag = 39 + 32*len(gn)
+ konto = None
+ if len(m.iban) > 0:
+ konto = m.iban[0:4]+" xxxx xxxx xxxx "+m.iban[-2:]
+
+ tex_bearbeitet = self.template.render(
+ {"vorname" : m.vorname,
+ "nachname" : m.nachname,
+ "strasse" : m.strasse,
+ "plz" : m.plz,
+ "ort" : m.ort,
+ "anrede" : m.anrede,
+ "grundstuck1" : g1,
+ "basisbeitrag" : 39,
+ "g_weitere" : gn,
+ "zusatzbeitrag": 32,
+ "beitrag" : beitrag,
+ "konto" : konto,
+ "m_nr" : m.mitgliedsnr
+ }, self.request)
+
+ with open(f'{self.pfad}/{m.nachname}_{m.mitgliedsnr}_brief.tex', 'w') as f: # öffnet ein neues Dokument mit dem Namen test.tex
+ f.write(tex_bearbeitet) # schreibt in dieses neue Dokument
+
+ # AUfruf PDF latex tex -> pdf
+ import subprocess
+ subprocess.run(["bash", "../../bin/pdfersteller", f'{m.nachname}_{m.mitgliedsnr}_brief.tex'])
diff --git a/python/eh_util/eh_app/AWK/routines.py b/python/eh_util/eh_app/AWK/routines.py
index b621b37..fffbfaa 100644
--- a/python/eh_util/eh_app/AWK/routines.py
+++ b/python/eh_util/eh_app/AWK/routines.py
@@ -1,4 +1,5 @@
import os
+from eh_app.AWK import config
'''
def handle_uploaded_file(csv_file):
csv_file_name = str(csv_file)
@@ -9,7 +10,7 @@ def handle_uploaded_file(csv_file):
destination.write(chunk)
'''
def aktualisiere_config(config, data, file):
-
+
if file:
uploaded_file = file.name
data_path = config.requireConfig("data_path")
@@ -18,26 +19,20 @@ def aktualisiere_config(config, data, file):
for chunk in file.chunks():
destination.write(chunk)
config.setConfig("briefpapier", uploaded_file)
-
+
if data["basisbeitrag"]:
config.setConfig("beitrag_basis", data["basisbeitrag"])
-
+
if data["zusatzbeitrag"]:
config.setConfig("beitrag_zusatz", data["zusatzbeitrag"])
-def erstellepdf(text):
- with open(r'G:\SVBaL\python\eh_util\eh_app\test.tex', 'w') as f: # öffnet ein neues Dokument mit dem Namen test.tex
- f.write(text) # schreibt in dieses neue Dokument
-
- # TODO: AUfruf PDF latex tex -> pdf
-
def erstelle_ehmeldung(data):
from PyPDF2 import PdfFileWriter, PdfFileReader
from datetime import date
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
-
+
packet = io.BytesIO()
can = canvas.Canvas(packet, pagesize=letter)
@@ -84,3 +79,20 @@ def erstelle_ehmeldung(data):
output.write(output_stream)
output_stream.close()
+def pdfs_erstellen(request, verein):
+ from django.template import loader
+
+ # lese alle Miglieder
+ cf = config.getInstance("svbal")
+ cf.setConfig("DataFile", "../../Test/etc/Export.csv")
+ from eh_app.qmodels import Mitglied
+ mm = Mitglied.objects.all()
+ template = loader.get_template("brief.tex")
+
+ from eh_app.AWK.pdf_ersteller import PdfErsteller
+ pe = PdfErsteller(request, template, "../../latex")
+
+ # Erstelle PDFs
+ for m in mm:
+ pe.erstellepdf(m)
+
diff --git a/python/eh_util/eh_app/forms.py b/python/eh_util/eh_app/forms.py
index bf19011..a67b75f 100644
--- a/python/eh_util/eh_app/forms.py
+++ b/python/eh_util/eh_app/forms.py
@@ -23,7 +23,29 @@ https://docs.djangoproject.com/en/2.2/topics/forms/
- Doku zu Fields:
https://docs.djangoproject.com/en/2.2/ref/forms/fields/
'''
-class KassenbriefForm(forms.Form):
+class VorlagenForm(forms.Form):
+ template = forms.ChoiceField(choices=())
+ def __init__(self, *args, templates=[('AB', 'ab'),('BC','bc')], **kwargs):
+ #self.templates = templates
+ super().__init__(*args, **kwargs)
+ self.fields['template'].choices = templates
+
+class VorlagenVerwaltungForm(forms.Form):
+ vorlagen_zu_loschen = forms.MultipleChoiceField(
+ widget=forms.CheckboxSelectMultiple,
+ choices=(),
+ label="Vorlagen zum Löschen vormerken:"
+ )
+ vorlage_neu = forms.FileField(label='Neue Vorlage installieren:', required=False)
+ def __init__(self, *args, vorlagen=[('AB', 'ab'),('BC','bc')], **kwargs):
+ self.vorlagen = vorlagen
+ super().__init__(*args, **kwargs)
+ self.fields['vorlagen_zu_loschen'].choices = vorlagen
+
+class BeitragForm(forms.Form):
+ basisbeitrag = forms.IntegerField()
+ zusatzbeitrag = forms.IntegerField(label="Beitrag für Zusatzgrundstück")
+class KassenbriefForm_alt(forms.Form):
#briefpapier = forms.FileField(label='Briefpapier ändern:', required=False)
template = forms.ChoiceField(choices=())
basisbeitrag = forms.IntegerField()
diff --git a/python/eh_util/eh_app/qmodels.py b/python/eh_util/eh_app/qmodels.py
index 3e0e134..6eb376f 100644
--- a/python/eh_util/eh_app/qmodels.py
+++ b/python/eh_util/eh_app/qmodels.py
@@ -85,6 +85,7 @@ class MitgliederQuery:
def VersicherteGrundstucke(self, mitglied):
# Hole Basiseintrag
+
data_set = self.data_source.request(f"SELECT VersichertesObjekt FROM {self.file_name} WHERE `Mitglieds-Nr` = {mitglied.mitgliedsnr}")
if type(data_set) is QError:
raise RuntimeError(data_set)
diff --git a/python/eh_util/eh_app/templates/kassenbrief.html b/python/eh_util/eh_app/templates/kassenbrief.html
index 08cdd27..22e22f3 100644
--- a/python/eh_util/eh_app/templates/kassenbrief.html
+++ b/python/eh_util/eh_app/templates/kassenbrief.html
@@ -7,14 +7,33 @@
Ãberprüfen Sie folgende Eingabedaten:
-Template
+Kassenbriefvorlagen
+{{fehlertext_template}}
-
+
+
+Beiträge
+
+
+
+
+
+
+Vorlagen verwalten
+
+
diff --git a/python/eh_util/eh_app/templates/vorlagen_verwalten.html b/python/eh_util/eh_app/templates/vorlagen_verwalten.html
new file mode 100644
index 0000000..be8a82e
--- /dev/null
+++ b/python/eh_util/eh_app/templates/vorlagen_verwalten.html
@@ -0,0 +1,15 @@
+
+