]> wagnertech.de Git - SVBaL.git/blob - python/eh_util/eh_app/qmodels.py
8a2521b7b80f4e94c729cad63ecbff3f133bbe76
[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 = None
17         self.att_list = "Anrede, Vorname, Nachname, Strasse, PLZ, Ort, Geburtsdatum, Eintrittsdatum, Austrittsdatum, Zahlungsart, Iban, Bic, Kontoinhaber, Mandatsreferenz, Debitorenkontonr, Status, Email, Abteilung_1, Abteilungseintritt_1, Abteilungsaustritt_1, Freifeldname_1, Freifeldwert_1, Freifeldname_2, Freifeldwert_2, Freifeldname_3, Freifeldwert_3"
18         
19     def all(self):
20         if self.file_name == None:
21             self.file_name = config.getInstance().requireConfig("DataFile")
22             
23         data_set = self.data_source.request(f"SELECT {self.att_list} FROM {self.file_name}")
24         for data in data_set:
25             m = Mitglied()
26             m.anrede = data[0]
27             m.vorname = data[1]
28             m.nachname = data[2]
29             m.strasse  = data[3]
30             # "Zusatzadresse"
31             m.plz      = data[4]
32             m.ort      = data[5]
33             # "Land"
34             # "Titel"
35             # "Geschlecht"
36             # "Familienstand"
37             m.mitgliedsnr    = data[6]
38             m.geburtsdatum   = data[7]
39             m.eintrittsdatum = data[8]
40             m.austrittsdatum = data[9]
41             # "Austrittsgrund"
42             m.zahlungsart    = data[16]
43             m.iban           = data[17]
44             m.bic            = data[18]
45             # "Kontonummer"
46             # "Bankleitzahl"
47             # "Kreditinstitut"
48             m.kontoinhaber   = data[22]
49             m.mandatsreferenz = data[23]
50             m.debitorenkontonr = data[24]
51             m.status           = data[25]
52             # "Branche"
53             # "Notfallnummer"
54             # "Notfallkontakt"
55             m.email            = data[29] # "KommE-Mail_P1"
56             # "KommFax_P1"
57             # "KommMobil_P1"
58             # "KommWeb_P1"
59             # "KommTelefon_P1"
60             # "KommSkype_P1"
61             m.abteilung_1      = data[35]
62             m.abteilungseintritt_1 = data[36]
63             m.abteilungsaustritt_1 = data[37]
64             # "Abteilungsstatus_1"
65             # "Abteilungsstatus DFB_1"
66             # "Abteilungsaustrittsgrund_1"
67             # "Abteilung_2"
68             # "Abteilungseintritt_2"
69             # "Abteilungsaustritt_2"
70             # "Abteilungsstatus_2"
71             # "Abteilungsstatus DFB_2"
72             # "Abteilungsaustrittsgrund_2"
73             # "Beitragsbezeichnung_1_1"
74             # "Beitragsstart_1_1"
75             # "Beitragsende_1_1"
76             # "BeitragBerechnetBis_1_1"
77             # "BeitragZahlweise_1_1"
78             # "BeitragFÀlligkeitsdatum_1_1"
79             # "BeitragVariabel_1_1"
80             # "BeitragFormel_1_1"
81             # "BeitragGrundbetrag1_1_1"
82             # "BeitragGB1Gesperrt_1_1"
83             # "BeitragGrundbetrag2_1_1"
84             # "BeitragGB2Gesperrt_1_1"
85             # "BeitragGrundbetrag3_1_1"
86             # "BeitragGB3Gesperrt_1_1"
87             # "BeitragGrundbetrag4_1_1"
88             # "BeitragGB4Gesperrt_1_1"
89             # "BeitragGrundbetrag5_1_1"
90             # "BeitragGB5Gesperrt_1_1"
91             # "BeitragZahlweiseGesperrt_1_1"
92             # "Freifeldname_1"
93             if data[67] == '""':
94                 m.stammnummer = 0
95             else:
96                 m.stammnummer       = int(m.rd_opt_qval(data[67]))
97             # "Freifeldname_2"
98             m.ver_grund           = m.rd_opt_qval(data[69])
99             if len(m.ver_grund) == 0:
100                 m.ver_grund = f"{m.strasse}, {m.plz} {m.ort}"
101             # "Freifeldname_3"
102             m.zeitung             = data[71]
103         
104 class Mitglied:
105     objects = MitgliederQuery()
106     def __init__(self):
107         pass
108