H (header line): yes
'''
self.file_name = config.getInstance().requireConfig("DataFile")
- self.att_list = "Mitglieds-Nr, Anrede, Vorname, Nachname, Strasse, PLZ, Ort, Geburtsdatum, Eintrittsdatum, Austrittsdatum, Zahlungsart, Iban, Bic, Kontoinhaber, Mandatsreferenz, Email, "
- # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ self.att_list = "`Mitglieds-Nr`, Anrede, Vorname, Nachname, `Straße`, PLZ, Ort, Geburtsdatum, Eintrittsdatum, Austrittsdatum, Zahlungsart, Iban, Bic, Kontoinhaber, Mandatsreferenz, `KommE-Mail_P1`"
+ # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
def all(self):
- data_set = self.data_source.request(f"SELECT {self.att_list} FROM {self.file_name} WHERE Abteilung_1 = 'Standard' AND Eintrittsdatum < NOW AND Austrittsdatum > NOW")
+ import datetime
+
+ data_set = self.data_source.request(f"SELECT {self.att_list} FROM {self.file_name} WHERE Abteilung_1 = 'Standard'")
+ mm = []
for data in data_set:
+ eintrittsdatum = datetime.datetime.strptime(data[8], '%d.%m.%Y')
+ if eintrittsdatum > datetime.datetime.today():
+ continue
+ if data[9] != "":
+ austrittsdatum = datetime.datetime.strptime(data[9], '%d.%m.%Y')
+ if austrittsdatum < datetime.datetime.today():
+ continue
m = Mitglied()
m.mitgliedsnr = data[0]
- m.anrede = data[0]
- m.vorname = data[1]
- m.nachname = data[2]
- m.strasse = data[3]
+ m.anrede = data[1]
+ m.vorname = data[2]
+ m.nachname = data[3]
+ m.strasse = data[4]
# "Zusatzadresse"
- m.plz = data[4]
- m.ort = data[5]
+ m.plz = data[5]
+ m.ort = data[6]
+
# "Land"
# "Titel"
# "Geschlecht"
# "Familienstand"
# m.geburtsdatum = data[7]
# "Austrittsgrund"
- m.zahlungsart = data[16]
- m.iban = data[17]
- m.bic = data[18]
+ # m.zahlungsart = data[16]
+ # m.iban = data[17]
+ # m.bic = data[18]
# "Kontonummer"
# "Bankleitzahl"
# "Kreditinstitut"
- m.kontoinhaber = data[22]
- m.mandatsreferenz = data[23]
- m.debitorenkontonr = data[24]
+ # m.kontoinhaber = data[22]
+ # m.mandatsreferenz = data[23]
+ # m.debitorenkontonr = data[24]
# m.status = data[25]
# "Branche"
# "Notfallnummer"
# "Notfallkontakt"
- m.email = data[29] # "KommE-Mail_P1"
+ # m.email = data[29] # "KommE-Mail_P1"
# "KommFax_P1"
# "KommMobil_P1"
# "KommWeb_P1"
# "KommTelefon_P1"
# "KommSkype_P1"
- m.abteilung_1 = data[35]
- m.abteilungseintritt_1 = data[36]
- m.abteilungsaustritt_1 = data[37]
- if data[67] == '""':
- m.stammnummer = 0
- else:
- m.stammnummer = int(m.rd_opt_qval(data[67]))
+ # m.abteilung_1 = data[35]
+ # m.abteilungseintritt_1 = data[36]
+ # m.abteilungsaustritt_1 = data[37]
+ # if data[67] == '""':
+ # m.stammnummer = 0
+ # else:
+ # m.stammnummer = int(m.rd_opt_qval(data[67]))
# "Freifeldname_2"
- m.ver_grund = m.rd_opt_qval(data[69])
- if len(m.ver_grund) == 0:
- m.ver_grund = f"{m.strasse}, {m.plz} {m.ort}"
+ # m.ver_grund = m.rd_opt_qval(data[69])
+ # if len(m.ver_grund) == 0:
+ # m.ver_grund = f"{m.strasse}, {m.plz} {m.ort}"
# "Freifeldname_3"
- m.zeitung = data[71]
- def VersicherteGrundstucke(self, mitglied_id):
- data_set = self.data_source.request(f"SELECT Freifeldwert_1 FROM {self.file_name} WHERE ")
-
+ # m.zeitung = data[71]
+ mm.append(m)
+ return mm
+
+ def VersicherteGrundstucke(self, mitglied):
+ # Hole Basiseintrag
+ data_set = self.data_source.request(f"SELECT Freifeldwert_1 FROM {self.file_name} WHERE `Mitglieds-Nr` = {mitglied.mitgliedsnr}")
+ if data_set[0][0]:
+ gr = data_set[0][0]
+ else:
+ gr = f"{mitglied.strasse}, {mitglied.plz} {mitglied.ort}"
+ gst = [gr]
+ # Suche nach weiteren Grunstücken
+ data_set = self.data_source.request(f"SELECT Freifeldwert_2 FROM {self.file_name} WHERE Freifeldname_1 = 'Partnernummer' AND Freifeldwert_1 = {mitglied.mitgliedsnr}")
+ for data in data_set:
+ gst.append(data[0])
+ return gst
+
class Mitglied:
# TODO: In property verwandeln
objects = MitgliederQuery()
pass
def VersicherteGrundstucke(self):
- return self.objects.VersicherteGrundstucke(self.mitgliedsnr)
-
+ return self.objects.VersicherteGrundstucke(self)
from django.test import TestCase
# Create your tests here.
+from .AWK import config
class TestConfig(TestCase):
def test_setter(self):
- from .AWK import config
cf = config.getInstance("svbal")
cf.setConfig("bla", "blub")
val = cf.getConfig("bla")
assert (val == "blub")
-'''
class TestQModel(TestCase):
+ def setUp(self):
+ cf = config.getInstance("svbal")
+ cf.setConfig("DataFile", "/home/sparky2021/SVBaL/tmp/Export_20240417-1104.csv")
+
def test_allinstances(self):
-
- from .AWK import config
config.getInstance("svbal")
-
from eh_app.qmodels import Mitglied
-
- config.getInstance("svbal")
-
- data = Mitglied.objects.all()
- print (data)
-'''
+ mm = Mitglied.objects.all()
+ assert (len(mm) == 199)
+ gst = mm[0].VersicherteGrundstucke()
+ assert (len(gst) == 1)
+ for m in mm:
+ if m.nachname == "Wagner":
+ gst = m.VersicherteGrundstucke()
+ assert (len(gst) == 3)
+
\ No newline at end of file