Пример #1
0
 def __init__(self, nk_model, nutzermodel):
     QObject.__init__(self)
     self._nk_model = nk_model
     self._nutzermodel = nutzermodel
     self._nutzerdao = NutzerDao()
     self._kassendao = KassenDao()
     self._historiedao = HistorieDao()
Пример #2
0
 def __init__(self, nutzermodel, nk_model):
     QObject.__init__(self)
     self._nutzerkassenmodel = nk_model
     self._nutzermodel = nutzermodel
     self._nutzerdao = NutzerDao()
     self._artikelmodel = ArtikelModel()
     self._kassendao = KassenDao()
     self._historiedao = HistorieDao()
     self._artikeldao = ArtikelDao()
Пример #3
0
class NutzerController(QObject):

    imPathAktualisiert = pyqtSignal(str, int)

    def __init__(self, nutzermodel):
        QObject.__init__(self)
        self._nutzermodel = nutzermodel
        self._nutzerdao = NutzerDao()

    @pyqtSlot(str, int)
    def copyImage(self, path, choise):
        path = path.replace('file://', '')
        filename = path.split('/')
        file = f'src/{filename[-1]}'
        print(file)
        shutil.copy(path, f'qml_elements/{file}')
        self.imPathAktualisiert.emit(file, choise)

    @pyqtSlot(str, str, str, bool)
    def addUser(self, name, konto, image, member):
        if member:
            member = 1
        else:
            member = 0

        if '€' in konto:
            konto = konto.replace('€', '')
        if ',' in konto:
            konto = konto.replace(',', '.')
        self._nutzerdao.create_user(name, image[4:], member, float(konto))

    @pyqtSlot(int)
    def deleteUser(self, index):
        name = self._nutzermodel.names[index]
        self._nutzerdao.delete_user(name)

    @pyqtSlot(int, str, str, bool)
    def updateUser(self, index, konto, image, member):
        name = self._nutzermodel.names[index]
        if member:
            member = 1
        else:
            member = 0

        if '€' in konto:
            konto = konto.replace('€', '')
        if ',' in konto:
            konto = konto.replace(',', '.')
        self._nutzerdao.edit_user(name, image[4:], member, float(konto))
Пример #4
0
class BestellungController(QObject):

    nutzerDatenAktualisiert = pyqtSignal(list)
    anzeigeDatenAktualiesieren = pyqtSignal(list)
    cbIndexAktualisieren = pyqtSignal(int)
    productmodelAktualisiert = pyqtSignal(QAbstractListModel)
    updateImage = pyqtSignal(str)

    def __init__(self, nutzermodel, nk_model):
        QObject.__init__(self)
        self._nutzerkassenmodel = nk_model
        self._nutzermodel = nutzermodel
        self._nutzerdao = NutzerDao()
        self._artikelmodel = ArtikelModel()
        self._kassendao = KassenDao()
        self._historiedao = HistorieDao()
        self._artikeldao = ArtikelDao()

    @pyqtSlot()
    def getUsers(self):
        names = []
        konten = []
        mitglied = []
        bild = []
        user_data = self._nutzerdao.select_users()  #nutzerdaten aus db holen
        for i in range(len(user_data)):
            names.append(user_data[i]['Name'])
            konten.append(user_data[i]['Konto'])
            mitglied.append(user_data[i]['Verein'])
            bild.append(user_data[i]['Bild'])
        self._nutzermodel._names = names  #list für combobox setzen
        self._nutzermodel._konto = konten
        self._nutzermodel._mitglied = mitglied
        self._nutzermodel._bild = bild
        self.nutzerDatenAktualisiert.emit(
            self._nutzermodel._names
        )  #funktion onNutzerDatenAktualisiert aufrufen

    @pyqtSlot(int)
    def getCurrentCBData(self, currentIndex):
        try:
            konto = self._nutzermodel._konto[currentIndex]
            mitglied = self._nutzermodel._mitglied[currentIndex]
            bild = f'src/{self._nutzermodel._bild[currentIndex]}'
            konto = "{:.2f}€".format(konto)

            if mitglied == 0:
                mitglied = 'Besucher'
            else:
                mitglied = 'Vereinsmitglied'

            self.anzeigeDatenAktualiesieren.emit(
                [str(konto), str(mitglied),
                 str(bild)])
        except:
            pass

    @pyqtSlot(int)
    def updateCBIndex(self, index):
        self.cbIndexAktualisieren.emit(index)

    @pyqtSlot(int, float, str)
    def pay(self, index, konto, geld):
        self._nutzerdao.edit_user(self._nutzermodel._names[index],
                                  self._nutzermodel._bild[index],
                                  self._nutzermodel._mitglied[index], konto)
        konto = "{:.2f}€".format(konto)

        now = datetime.now()
        date = now.strftime("%d/%m/%Y %H:%M:%S")
        self._historiedao.create_content(date, 'Listenzahlung',
                                         self._nutzermodel._names[index], geld)
        #logging.warning(f'Listenzahlung von: {self._nutzermodel._names[index]} Betrag: {geld}')

        self._nutzermodel._konto[index] = konto
        self._nutzerkassenmodel.editNutzer(index,
                                           self._nutzermodel._names[index],
                                           konto,
                                           self._nutzermodel._mitglied[index],
                                           self._nutzermodel._bild[index])

    @pyqtSlot(str)
    def payBar(self, geld):
        kasse = self._kassendao.select_geld()

        now = datetime.now()
        date = now.strftime("%d/%m/%Y %H:%M:%S")
        self._historiedao.create_content(date, 'Barzahlung', '-', geld)
        #logging.warning(f'Barzahlung von: - Betrag: {geld}')

        if '€' in geld:
            geld = geld.replace('€', '')
        if ',' in geld:
            geld = geld.replace(',', '.')
        neuKasse = "{:10.2f}".format(float(kasse) + float(geld))
        self._kassendao.edit_geld(neuKasse)

    @pyqtSlot(int, str)
    def updateBestand(self, bestand, artikel):
        product = self._artikeldao.select_article(artikel)
        self._artikeldao.edit_article(artikel, artikel, product[0]['Bild'],
                                      product[0]['Mitglieder_Preis'],
                                      product[0]['Besucher_Preis'],
                                      product[0]['Ist_Kasten'], bestand,
                                      product[0]['Kasten_Size'])

    @pyqtSlot(str)
    def removeFromOrder(self, artikel):
        print(artikel)
        product = self._artikeldao.select_article(artikel)
        self._artikeldao.edit_article(artikel, artikel, product[0]['Bild'],
                                      product[0]['Mitglieder_Preis'],
                                      product[0]['Besucher_Preis'],
                                      product[0]['Ist_Kasten'],
                                      product[0]['Bestand'] + 1,
                                      product[0]['Kasten_Size'])
Пример #5
0
class HistorieController(QObject):
    def __init__(self, nutzermodel, nk_model, historiemodel):
        QObject.__init__(self)
        self._nutzerkassenmodel = nk_model
        self._nutzermodel = nutzermodel
        self._historiemodel = historiemodel
        self._nutzerdao = NutzerDao()
        self._kassendao = KassenDao()
        self._historiedao = HistorieDao()

    @pyqtSlot()
    def loadTableData(self):
        historie = self._historiedao.select_content()

        while self._historiemodel.rowCount() > 0:
            self._historiemodel.deleteContent(0)

        for i in range(len(historie)):
            self._historiemodel.addContent(
                historie[i]['Datum'], historie[i]['Kategorie'],
                historie[i]['Name'],
                "{:10.2f}".format(float(historie[i]['Betrag'])))

    @pyqtSlot(str, str, str, str)
    def deleteContent(self, datum, kategorie, name, betrag):

        if '€' in betrag:
            betrag = betrag.replace('€', '')
        if ',' in betrag:
            betrag = betrag.replace(',', '.')

        if 'Barzahlung' in kategorie:
            kasse = self._kassendao.select_geld()
            self._kassendao.edit_geld(
                "{:10.2f}".format(float(kasse) - float(betrag)))

        elif 'Listenzahlung' in kategorie:
            konto = self._nutzermodel._konto
            names = self._nutzermodel._names

            for i in range(len(names)):
                if names[i] in name:
                    self._nutzerdao.edit_user(
                        self._nutzermodel._names[i],
                        self._nutzermodel._bild[i],
                        self._nutzermodel._mitglied[i],
                        "{:10.2f}".format(float(konto[i]) + float(betrag)))

        elif 'Kassenabrechnung' in kategorie or 'Einzahlung' in kategorie:
            if name in 'Kasse':
                kasse = self._kassendao.select_geld()
                self._kassendao.edit_geld(
                    "{:10.2f}".format(float(kasse) + float(betrag)))
            else:
                konto = self._nutzermodel._konto
                names = self._nutzermodel._names

                for i in range(len(names)):
                    if names[i] in name:
                        self._nutzerdao.edit_user(
                            self._nutzermodel._names[i],
                            self._nutzermodel._bild[i],
                            self._nutzermodel._mitglied[i],
                            "{:10.2f}".format(float(konto[i]) - float(betrag)))

        self._historiedao.delete_content(datum)
Пример #6
0
class KassenController(QObject):

    kasseAktualisieren = pyqtSignal(str)

    def __init__(self, nk_model, nutzermodel):
        QObject.__init__(self)
        self._nk_model = nk_model
        self._nutzermodel = nutzermodel
        self._nutzerdao = NutzerDao()
        self._kassendao = KassenDao()
        self._historiedao = HistorieDao()

    @pyqtSlot()
    def getUsers(self):
        user_data = self._nutzerdao.select_users()  #nutzerdaten aus db holen
        if self._nk_model.rowCount() != 0:
            while self._nk_model.rowCount() != 0:
                self._nk_model.deleteNutzer(0)
        for i in range(len(user_data)):
            self._nk_model.addNutzer(user_data[i]['Name'],
                                     user_data[i]['Konto'],
                                     user_data[i]['Verein'],
                                     f"src/{user_data[i]['Bild']}")

    @pyqtSlot(str, str, str, str)
    def einzahlen(self, name, geld, konto, kasse):
        if '€' in geld:
            geld = geld.replace('€', '')
        if ',' in geld:
            geld = geld.replace(',', '.')
        if '€' in kasse:
            kasse = kasse.replace('€', '')
        if ',' in kasse:
            kasse = kasse.replace(',', '.')

        now = datetime.now()
        date = now.strftime("%d/%m/%Y %H:%M:%S")
        self._historiedao.create_content(date, 'Einzahlung', name, geld)
        #logging.warning(f'Einzahlung  von: {name} Betrag: {geld}')
        neuKasse = "{:10.2f}".format(float(kasse) + float(geld))
        konto = konto.replace('Kontostand:', '')
        neuKonto = "{:10.2f}".format(float(konto) + float(geld))
        name = name.replace(' ', '')
        self._nutzerdao.transaction(name, neuKonto)
        self._kassendao.edit_geld(neuKasse)

    @pyqtSlot()
    def getKasse(self):
        geld = self._kassendao.select_geld()
        geld = "{:.2f}€".format(geld)
        self.kasseAktualisieren.emit(geld)

    @pyqtSlot(str, str, str, int)
    def abrechnen(self, verwendung, geld, name, currentIndex):
        if '€' in geld:
            geld = geld.replace('€', '')
        if ',' in geld:
            geld = geld.replace(',', '.')

        now = datetime.now()
        date = now.strftime("%d/%m/%Y %H:%M:%S")
        self._historiedao.create_content(
            date, f'Kassenabrechnung Verwendung: {verwendung}', name, geld)
        #logging.warning(f'Kassenabrechnung Verwendung: {verwendung} von: {name} Betrag: {geld}')

        if name in 'Kasse':
            kasse = self._kassendao.select_geld()
            kasse = "{:10.2f}".format(float(kasse) - float(geld))
            self._kassendao.edit_geld(kasse)
        else:
            konto = self._nutzermodel._konto[currentIndex]
            konto = "{:10.2f}".format(float(konto) + float(geld))
            bild = self._nutzermodel._bild[currentIndex]
            mitglied = self._nutzermodel._mitglied[currentIndex]
            self._nutzerdao.edit_user(name, bild, mitglied, float(konto))
Пример #7
0
 def __init__(self, nutzermodel):
     QObject.__init__(self)
     self._nutzermodel = nutzermodel
     self._nutzerdao = NutzerDao()