--- /dev/null
+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)
--- /dev/null
+'''
+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]
+