pydev-s6
authorMichael Wagner <michael@wagnertech.de>
Thu, 29 Feb 2024 21:51:28 +0000 (22:51 +0100)
committerMichael Wagner <michael@wagnertech.de>
Thu, 29 Feb 2024 21:51:28 +0000 (22:51 +0100)
python/eh_util/eh_abgleich/AWK/SVereinControl.py [new file with mode: 0644]
python/eh_util/eh_abgleich/AWK/__init__.py [new file with mode: 0644]
python/eh_util/eh_abgleich/AWK/mitglied.py [new file with mode: 0644]

diff --git a/python/eh_util/eh_abgleich/AWK/SVereinControl.py b/python/eh_util/eh_abgleich/AWK/SVereinControl.py
new file mode 100644 (file)
index 0000000..64a383a
--- /dev/null
@@ -0,0 +1,40 @@
+from AWK.mitglied import Mitglied
+class SVereinDatei(object):
+    '''
+    classdocs
+    '''
+
+    def __init__(self, datei_name):
+        '''
+        Constructor
+        '''
+        self.datei_name = datei_name
+        self.mitglieder = {}
+        
+        dh = open(datei_name)
+        line = dh.readline().rstrip()
+        export_header = line.split(";")
+        
+        sv_pn_spalte = -1
+        
+        i = 0
+        for kopf in export_header:
+            if kopf[0] == '"':
+                kopf = kopf[1:-1]
+            if kopf == 'Freifeldwert_1':
+                sv_pn_spalte = i
+            i += 1
+        
+        if sv_pn_spalte == -1:
+            raise RuntimeError("S-Verein-Export enthält keine Partnernummer")
+
+        for line in dh:
+            data = line.rstrip().split(";")
+            pn = data[sv_pn_spalte]
+            if len(pn) == 0:
+                print("Diese Zeile (export) hat keine Migliedsnummer: ", line)
+            else:
+                if pn[0] == '"':
+                    pn = pn[1:-1]
+                pn = int(pn)
+                self.mitglieder[pn] = Mitglied(data)
diff --git a/python/eh_util/eh_abgleich/AWK/__init__.py b/python/eh_util/eh_abgleich/AWK/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/python/eh_util/eh_abgleich/AWK/mitglied.py b/python/eh_util/eh_abgleich/AWK/mitglied.py
new file mode 100644 (file)
index 0000000..7d2673a
--- /dev/null
@@ -0,0 +1,90 @@
+'''
+Created on 29.02.2024
+
+@author: sparky2021
+'''
+from voluptuous.schema_builder import Self
+
+class Mitglied(object):
+    '''
+    classdocs
+    '''
+
+
+    def __init__(self, data):
+        '''
+        Constructor
+        '''
+        self.anrede = data[0]
+        self.vorname = data[1]
+        self.nachname = data[2]
+        self.strasse  = data[3]
+        # "Zusatzadresse"
+        self.plz      = data[5]
+        self.ort      = data[6]
+        # "Land"
+        # "Titel"
+        # "Geschlecht"
+        # "Familienstand"
+        # "Mitglieds-Nr"
+        self.geburtsdatum = data[12]
+        self.eintrittsdatum = data[13]
+        self.austrittsdatum = data[14]
+        # "Austrittsgrund"
+        self.zahlungsart    = data[16]
+        self.iban           = data[17]
+        self.bic            = data[18]
+        # "Kontonummer"
+        # "Bankleitzahl"
+        # "Kreditinstitut"
+        self.kontoinhaber   = data[22]
+        self.mandatsreferenz = data[23]
+        self.debitorenkontonr = data[24]
+        self.status           = data[25]
+        # "Branche"
+        # "Notfallnummer"
+        # "Notfallkontakt"
+        self.email            = data[29] # "KommE-Mail_P1"
+        # "KommFax_P1"
+        # "KommMobil_P1"
+        # "KommWeb_P1"
+        # "KommTelefon_P1"
+        # "KommSkype_P1"
+        self.abteilung_1      = data[35]
+        self.abteilungseintritt_1 = data[36]
+        self.abteilungsaustritt_1 = data[37]
+        # "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"
+        self.partnernummer       = data[67]
+        # "Freifeldname_2"
+        self.ver_grund           = data[69]
+        # "Freifeldname_3"
+        self.zeitung             = data[71]
+