From c2c1e1d3c4472d62f0709fd81851a37b6dd77eee Mon Sep 17 00:00:00 2001 From: Michael Wagner Date: Thu, 29 Feb 2024 22:51:28 +0100 Subject: [PATCH] pydev-s6 --- .../eh_util/eh_abgleich/AWK/SVereinControl.py | 40 +++++++++ python/eh_util/eh_abgleich/AWK/__init__.py | 0 python/eh_util/eh_abgleich/AWK/mitglied.py | 90 +++++++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 python/eh_util/eh_abgleich/AWK/SVereinControl.py create mode 100644 python/eh_util/eh_abgleich/AWK/__init__.py create mode 100644 python/eh_util/eh_abgleich/AWK/mitglied.py diff --git a/python/eh_util/eh_abgleich/AWK/SVereinControl.py b/python/eh_util/eh_abgleich/AWK/SVereinControl.py new file mode 100644 index 0000000..64a383a --- /dev/null +++ b/python/eh_util/eh_abgleich/AWK/SVereinControl.py @@ -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 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 index 0000000..7d2673a --- /dev/null +++ b/python/eh_util/eh_abgleich/AWK/mitglied.py @@ -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] + -- 2.20.1