'''
Created on 04.12.2024

@author: sparky2021
'''
from qif import QIF
from .AWK import config

class MitgliederQuery:
    def __init__(self):
        self.data_source = QIF({"d" : ";", "H" : 1})
        '''
            d (separator)  : ;
            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           
    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")
        for data in data_set:
            m = Mitglied()
            m.mitgliedsnr    = data[0]
            m.anrede = data[0]
            m.vorname = data[1]
            m.nachname = data[2]
            m.strasse  = data[3]
            # "Zusatzadresse"
            m.plz      = data[4]
            m.ort      = data[5]
            # "Land"
            # "Titel"
            # "Geschlecht"
            # "Familienstand"
            # m.geburtsdatum   = data[7]
            # "Austrittsgrund"
            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.status           = data[25]
            # "Branche"
            # "Notfallnummer"
            # "Notfallkontakt"
            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]))
            # "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}"
            # "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 ")
        
        
class Mitglied:
    # TODO: In property verwandeln 
    objects = MitgliederQuery()
    def __init__(self):
        pass
    
    def VersicherteGrundstucke(self):
        return self.objects.VersicherteGrundstucke(self.mitgliedsnr)

