]> wagnertech.de Git - SVBaL.git/blob - python/eh_util/eh_app/qmodels.py
data[briefpapier] ist None und sollte es nicht sein
[SVBaL.git] / python / eh_util / eh_app / qmodels.py
1 '''
2 Created on 04.12.2024
3
4 @author: sparky2021
5 '''
6 from qif import QIF
7 from .AWK import config
8
9 class MitgliederQuery:
10     def __init__(self):
11         self.data_source = QIF({"d" : ";", "H" : 1})
12         '''
13             d (separator)  : ;
14             H (header line): yes
15         '''
16         self.file_name = config.getInstance().requireConfig("DataFile")
17         self.att_list = "`Mitglieds-Nr`, Anrede, Vorname, Nachname, `Straße`, PLZ, Ort, Geburtsdatum, Eintrittsdatum, Austrittsdatum, Zahlungsart, Iban, Bic, Kontoinhaber, Mandatsreferenz, `KommE-Mail_P1`"
18         #                 0              1       2        3          4        5    6    7             8               9               10           11    12   13            14     15         16              17     
19     def all(self):
20         import datetime
21         
22         data_set = self.data_source.request(f"SELECT {self.att_list} FROM {self.file_name} WHERE Abteilung_1 = 'Standard'")
23         mm = []
24         for data in data_set:
25             eintrittsdatum = datetime.datetime.strptime(data[8], '%d.%m.%Y')
26             if eintrittsdatum > datetime.datetime.today():
27                 continue
28             if data[9] != "":
29                 austrittsdatum = datetime.datetime.strptime(data[9], '%d.%m.%Y')
30                 if austrittsdatum < datetime.datetime.today():
31                     continue
32             m = Mitglied()
33             m.mitgliedsnr    = data[0]
34             m.anrede = data[1]
35             m.vorname = data[2]
36             m.nachname = data[3]
37             m.strasse  = data[4]
38             # "Zusatzadresse"
39             m.plz      = data[5]
40             m.ort      = data[6]
41             
42             # "Land"
43             # "Titel"
44             # "Geschlecht"
45             # "Familienstand"
46             # m.geburtsdatum   = data[7]
47             # "Austrittsgrund"
48             # m.zahlungsart    = data[16]
49             # m.iban           = data[17]
50             # m.bic            = data[18]
51             # "Kontonummer"
52             # "Bankleitzahl"
53             # "Kreditinstitut"
54             # m.kontoinhaber   = data[22]
55             # m.mandatsreferenz = data[23]
56             # m.debitorenkontonr = data[24]
57             # m.status           = data[25]
58             # "Branche"
59             # "Notfallnummer"
60             # "Notfallkontakt"
61             # m.email            = data[29] # "KommE-Mail_P1"
62             # "KommFax_P1"
63             # "KommMobil_P1"
64             # "KommWeb_P1"
65             # "KommTelefon_P1"
66             # "KommSkype_P1"
67             # m.abteilung_1      = data[35]
68             # m.abteilungseintritt_1 = data[36]
69             # m.abteilungsaustritt_1 = data[37]
70             # if data[67] == '""':
71             #     m.stammnummer = 0
72             # else:
73             #     m.stammnummer       = int(m.rd_opt_qval(data[67]))
74             # "Freifeldname_2"
75             # m.ver_grund           = m.rd_opt_qval(data[69])
76             # if len(m.ver_grund) == 0:
77             #     m.ver_grund = f"{m.strasse}, {m.plz} {m.ort}"
78             # "Freifeldname_3"
79             # m.zeitung             = data[71]
80             mm.append(m)
81         return mm
82     
83     def VersicherteGrundstucke(self, mitglied):
84         # Hole Basiseintrag
85         data_set = self.data_source.request(f"SELECT Freifeldwert_1 FROM {self.file_name} WHERE `Mitglieds-Nr` = {mitglied.mitgliedsnr}")
86         if data_set[0][0]:
87             gr = data_set[0][0]
88         else:
89             gr = f"{mitglied.strasse}, {mitglied.plz} {mitglied.ort}"
90         gst = [gr]
91         
92         # Suche nach weiteren Grunstücken
93         data_set = self.data_source.request(f"SELECT Freifeldwert_2 FROM {self.file_name} WHERE Freifeldname_1 = 'Partnernummer' AND Freifeldwert_1 = {mitglied.mitgliedsnr}")
94         for data in data_set:
95             gst.append(data[0])
96         return gst
97     
98 class Mitglied:
99     # TODO: In property verwandeln 
100     objects = MitgliederQuery()
101     def __init__(self):
102         pass
103     
104     def VersicherteGrundstucke(self):
105         return self.objects.VersicherteGrundstucke(self)