def getNames(self):
     self.db = BakkieControlDatabase()
     namelist = self.db.getUsers()
     ##print namelist
     newnames = ['iedereen']
     for tup in namelist:
         newnames.append(tup[1])
     return newnames
Esempio n. 2
0
 def naarStaticLijst(self, event):
     self.db = BakkieControlDatabase()
     prijzen = self.db.getPrijzenlijst()
     self.Staticprijzenlijstpaneel = StaticPrijzenlijstscherm(self, prijzen, self.tijd)
     self.Staticprijzenlijstpaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.naarBestelling(evt, self.tijd))
     self.boxje.Add(self.Staticprijzenlijstpaneel, 1, wx.EXPAND | wx.ALL)
     self.bestelling_paneel.Hide()
     self.Staticprijzenlijstpaneel.Show()
     self.SetSize((700, 440))
     self.SetSizer(self.boxje)
     self.Centre()
     self.boxje.Layout()
Esempio n. 3
0
 def welkom(self):
     """ 
     """
     self.db = BakkieControlDatabase()
     self.prijzen = self.db.getPrijzenlijst()
     self.users = self.db.getUsers()
     
     self.welkompaneel = Welkomstscherm(self, -1)
     self.menupaneel = Menuscherm(self, -1)
     self.menupaneel.Hide()
     self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
     self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, "koffie"))
     self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, "bier"))
Esempio n. 4
0
 def gebruikerOpslaan(self, event):
     toevoegen = True
     self.db = BakkieControlDatabase()
     users = self.db.getUsers()
     naam = self.frameToe.txtCtrlNaam.GetValue()
     index = self.gebruikerspaneel.LCGebruikers.GetItemCount()
     for i in users:
         if i[1] == naam:
             toevoegen = False
     if len(str(naam)) == 0 or len(str(naam)) > 10 or int(index) > 9 or toevoegen == False:
         pass
     else:
         self.gebruikerspaneel.LCGebruikers.InsertStringItem(index+1, naam)
         self.db.addUser(naam)
         self.frameToe.Close()
Esempio n. 5
0
    def logScherm(self, event, tijd):
        self.db = BakkieControlDatabase()
        days, log = self.db.getLog()
        #print log
        self.logpaneel = Logscherm(self, days, log)
        self.boxje.Add(self.logpaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.logpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.logpaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.beheer(evt, tijd))
        self.logpaneel.CBDatum.Bind(wx.EVT_COMBOBOX, self.nieuweLog)
Esempio n. 6
0
 def nieuweLog(self, event):
     dag = self.logpaneel.CBDatum.GetValue()
     self.db = BakkieControlDatabase()
     days, log = self.db.getLog()
     for item in log:
         if str(item[0][0][0:10]) == str(dag):
             index = log.index(item)
             self.logpaneel.list.ClearAll()
             self.logpaneel.list.InsertColumn(0,"Datum", width=130)
             self.logpaneel.list.InsertColumn(1,"Geberurtenis",  width=wx.LIST_AUTOSIZE_USEHEADER)
             try:
                 for a in log[index]:
                     pos = self.logpaneel.list.InsertStringItem(0,str(a[0]))
                     self.logpaneel.list.SetStringItem(pos,1,str(a[1]))
             except:
                 pass
Esempio n. 7
0
    def gebruikersscherm(self, event, tijd):
        """
        """
        self.db = BakkieControlDatabase()
        users = self.db.getUsers()
        self.gebruikerspaneel = Gebruikersscherm(self, users)
        self.boxje.Add(self.gebruikerspaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.gebruikerspaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.gebruikerspaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.beheer(evt, tijd))
        self.gebruikerspaneel.toe.Bind(wx.EVT_BUTTON, self.showPopUpToe)
        self.gebruikerspaneel.ver.Bind(wx.EVT_BUTTON, self.gebruikerVerwijderen)
Esempio n. 8
0
    def prijzenlijstscherm(self, event, tijd):
        """
        """
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        self.prijzenlijstpaneel = Prijzenlijstscherm(self, prijzen)
        self.boxje.Add(self.prijzenlijstpaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.prijzenlijstpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.prijzenlijstpaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.beheer(evt, tijd))
        self.prijzenlijstpaneel.bew.Bind(wx.EVT_BUTTON, self.bewerken)
        self.prijzenlijstpaneel.ops.Bind(wx.EVT_BUTTON, self.opslaan)
 def welkom(self, event):
     """ 
     """
     self.db = BakkieControlDatabase()
     prijzen = self.db.getPrijzenlijst()
     users = self.db.getUsers()
     days, log = self.db.getLog()
     self.welkompaneel = Welkomstscherm(self, -1)
     self.menupaneel = Menuscherm(self)
     self.beheerpaneel = Beheerscherm(self)
     self.prijzenlijstpaneel = Prijzenlijstscherm(self, prijzen)
     self.gebruikerspaneel = Gebruikersscherm(self, users)
     self.logpaneel = Logscherm(self, days, log)
     self.menupaneel.Hide()
     self.beheerpaneel.Hide()
     self.prijzenlijstpaneel.Hide()
     self.gebruikerspaneel.Hide()
     self.logpaneel.Hide()
     self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
     self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, self.naarMenu)
     self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, self.naarMenu)
class Schermpje(wx.Frame):
    def __init__(self, parent, id, title):
        """ 
        """
        wx.Frame.__init__(self, parent, id, 'Bakkie', style=wx.SYSTEM_MENU |
                          wx.CAPTION | wx.CLIP_CHILDREN, size=(1000, 750))
        self.boxje = wx.BoxSizer()
        self.SetBackgroundColour((46,24,0))
        self.welkom(self)
        self.SetSizer(self.boxje)
        self.Centre()
        self.Show()

    def welkom(self, event):
        """ 
        """
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        users = self.db.getUsers()
        days, log = self.db.getLog()
        self.welkompaneel = Welkomstscherm(self, -1)
        self.menupaneel = Menuscherm(self)
        self.beheerpaneel = Beheerscherm(self)
        self.prijzenlijstpaneel = Prijzenlijstscherm(self, prijzen)
        self.gebruikerspaneel = Gebruikersscherm(self, users)
        self.logpaneel = Logscherm(self, days, log)
        self.menupaneel.Hide()
        self.beheerpaneel.Hide()
        self.prijzenlijstpaneel.Hide()
        self.gebruikerspaneel.Hide()
        self.logpaneel.Hide()
        self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
        self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, self.naarMenu)
        self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, self.naarMenu)

    def naarMenu(self, event):
        """
        """
        self.menupaneel = Menuscherm(self) #Balngrijk
        try:
            self.boxje.Add(self.menupaneel, 1, wx.EXPAND | wx.ALL) #probeert het paneel toe te voegen
            self.welkompaneel.Hide()    #Daarna wordt het welkomstscherm verborgen
        except wx._core.PyAssertionError: #De error die optreed
            pass
        self.beheerpaneel.Hide() #Hide alle schermen die een terugknop hebben naar dit scherm
        self.menupaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.menupaneel.new.Bind(wx.EVT_BUTTON, self.beheer)

    def beheer(self, event):
        """
        """
        self.beheerpaneel = Beheerscherm(self) #Balngrijk
        try:
            self.boxje.Add(self.beheerpaneel, 1, wx.EXPAND | wx.ALL)
            self.menupaneel.Hide()
        except wx._core.PyAssertionError:
            pass
        self.menupaneel.Hide()
        self.prijzenlijstpaneel.Hide()
        self.gebruikerspaneel.Hide()
        self.logpaneel.Hide()
        self.beheerpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.beheerpaneel.terug.Bind(wx.EVT_BUTTON, self.naarMenu)
        self.beheerpaneel.pri.Bind(wx.EVT_BUTTON, self.prijzenlijstscherm)
        self.beheerpaneel.geb.Bind(wx.EVT_BUTTON, self.gebruikersscherm)
        self.beheerpaneel.log.Bind(wx.EVT_BUTTON, self.logScherm)

    def prijzenlijstscherm(self, event):
        """
        """
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        self.prijzenlijstpaneel = Prijzenlijstscherm(self, prijzen)
        self.boxje.Add(self.prijzenlijstpaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.prijzenlijstpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.prijzenlijstpaneel.terug.Bind(wx.EVT_BUTTON, self.beheer)
        self.prijzenlijstpaneel.bew.Bind(wx.EVT_BUTTON, self.bewerken)
        self.prijzenlijstpaneel.ops.Bind(wx.EVT_BUTTON, self.opslaan)

    def bewerken(self, event):
        self.prijzenlijstpaneel.txtCtrlKoffie.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlThee.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlCapp.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlFris.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlBier.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlWijn.SetEditable(True)

    def opslaan(self, event):
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        HetZelfde = 0

        prijzenlijst= []
        
        self.prijzenlijstpaneel.txtCtrlKoffie.SetEditable(False)
        newKoffie = self.prijzenlijstpaneel.txtCtrlKoffie.GetLineText(0)
        if any(c.isalpha() for c in newKoffie):
            prijzenlijst.append((1, "Koffie", self.db.getPrijzenlijst()[0][2]))
            self.prijzenlijstpaneel.txtCtrlKoffie.SetValue(str(self.db.getPrijzenlijst()[0][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((1, "Koffie", float(newKoffie)))
            if str(newKoffie) == str(prijzen[0][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlThee.SetEditable(False)
        newThee = self.prijzenlijstpaneel.txtCtrlThee.GetLineText(0)
        if any(c.isalpha() for c in newThee):
            prijzenlijst.append((2, "Thee", self.db.getPrijzenlijst()[1][2]))
            self.prijzenlijstpaneel.txtCtrlThee.SetValue(str(self.db.getPrijzenlijst()[1][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((2, "Thee", float(newThee)))
            if str(newThee) == str(prijzen[1][2]):
                HetZelfde += 1
            
        self.prijzenlijstpaneel.txtCtrlCapp.SetEditable(False)
        newCapp = self.prijzenlijstpaneel.txtCtrlCapp.GetLineText(0)
        if any(c.isalpha() for c in newCapp):
            prijzenlijst.append((3, "Cappuccino", self.db.getPrijzenlijst()[2][2]))
            self.prijzenlijstpaneel.txtCtrlCapp.SetValue(str(self.db.getPrijzenlijst()[2][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((3, "Cappuccino", float(newCapp)))
            if str(newCapp) == str(prijzen[2][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlFris.SetEditable(False)
        newFris = self.prijzenlijstpaneel.txtCtrlFris.GetLineText(0)
        if any(c.isalpha() for c in newFris):
            prijzenlijst.append((4, "Fris", self.db.getPrijzenlijst()[3][2]))
            self.prijzenlijstpaneel.txtCtrlFris.SetValue(str(self.db.getPrijzenlijst()[3][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((4, "Fris", float(newFris)))
            if str(newFris) == str(prijzen[3][2]):
                HetZelfde += 1
            
        self.prijzenlijstpaneel.txtCtrlBier.SetEditable(False)
        newBier = self.prijzenlijstpaneel.txtCtrlBier.GetLineText(0)
        if any(c.isalpha() for c in newBier):
            prijzenlijst.append((5, "Bier", self.db.getPrijzenlijst()[4][2]))
            self.prijzenlijstpaneel.txtCtrlBier.SetValue(str(self.db.getPrijzenlijst()[4][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((5, "Bier", float(newBier)))
            if str(newBier) == str(prijzen[4][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlWijn.SetEditable(False)
        newWijn = self.prijzenlijstpaneel.txtCtrlWijn.GetLineText(0)
        if any(c.isalpha() for c in newWijn):
            prijzenlijst.append((6, "Wijn", self.db.getPrijzenlijst()[5][2]))
            self.prijzenlijstpaneel.txtCtrlWijn.SetValue(str(self.db.getPrijzenlijst()[5][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((6, "Wijn", float(newWijn)))
            if str(newWijn) == str(prijzen[5][2]):
                HetZelfde += 1

        if HetZelfde != 6:
            self.db.setPrijzenlijst(prijzenlijst)

    def gebruikersscherm(self, event):
        """
        """
        self.db = BakkieControlDatabase()
        users = self.db.getUsers()
        self.gebruikerspaneel = Gebruikersscherm(self, users)
        self.boxje.Add(self.gebruikerspaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.gebruikerspaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.gebruikerspaneel.terug.Bind(wx.EVT_BUTTON, self.beheer)
        self.gebruikerspaneel.toe.Bind(wx.EVT_BUTTON, self.showPopUpToe)
        self.gebruikerspaneel.ver.Bind(wx.wx.EVT_BUTTON, self.gebruikerVerwijderen)

    def showPopUpToe(self, event):
        self.frameToe = PopUpFrameToe()
        self.frameToe.Show()

        self.frameToe.cancel.Bind(wx.EVT_BUTTON, self.closePopUpToe)
        self.frameToe.opslaan.Bind(wx.EVT_BUTTON, self.gebruikerOpslaan)

    def closePopUpToe(self, event):
        self.frameToe.Close()

    def gebruikerOpslaan(self, event):
        naam = self.frameToe.txtCtrlNaam.GetValue()
        if len(str(naam)) == 0:
            pass
        else:
            index = self.gebruikerspaneel.LCGebruikers.GetItemCount()
            self.gebruikerspaneel.LCGebruikers.InsertStringItem(index+1, naam)
            self.db.addUser(naam)
            self.frameToe.Close()

    def gebruikerVerwijderen(self, event):
        geselecteerd =  self.gebruikerspaneel.LCGebruikers.GetFirstSelected()
        if geselecteerd == -1:
            pass
        else:
            self.showPopUpVer()
            #self.gebruikerspaneel.LCGebruikers.DeleteItem(long(geselecteerd))

    def showPopUpVer(self):
        self.frameVer = PopUpFrameVer()
        self.frameVer.Show()

        self.frameVer.nee.Bind(wx.EVT_BUTTON, self.closePopUpVer)
        self.frameVer.ja.Bind(wx.EVT_BUTTON, self.verwijderenGebruiker)

    def verwijderenGebruiker(self, event):
        geselecteerd =  self.gebruikerspaneel.LCGebruikers.GetFirstSelected()
        naam = self.gebruikerspaneel.LCGebruikers.GetItemText(geselecteerd, 0)
        self.gebruikerspaneel.LCGebruikers.DeleteItem(long(geselecteerd))
        self.db.deleteUser(naam)
        self.frameVer.Close()

    def closePopUpVer(self, event):
        self.frameVer.Close()

    def logScherm(self, event):
        self.db = BakkieControlDatabase()
        days, log = self.db.getLog()
        #print log
        self.logpaneel = Logscherm(self, days, log)
        self.boxje.Add(self.logpaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.logpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.logpaneel.terug.Bind(wx.EVT_BUTTON, self.beheer)
        self.logpaneel.CBDatum.Bind(wx.EVT_COMBOBOX, self.nieuweLog)

    def nieuweLog(self, event):
        dag = self.logpaneel.CBDatum.GetValue()
        self.db = BakkieControlDatabase()
        days, log = self.db.getLog()
        for item in log:
            if str(item[0][0][0:10]) == str(dag):
                index = log.index(item)
                self.logpaneel.list.ClearAll()
                self.logpaneel.list.InsertColumn(0,"Datum", width=130)
                self.logpaneel.list.InsertColumn(1,"Geberurtenis",  width=wx.LIST_AUTOSIZE_USEHEADER)
                try:
                    for a in log[index]:
                        pos = self.logpaneel.list.InsertStringItem(0,str(a[0]))
                        self.logpaneel.list.SetStringItem(pos,1,str(a[1]))
                except:
                    pass

    def onStop(self, event):
        """ Als onStop als event van een knop wordt gebonden sluit het
        scherm.
        """
        self.Close()
class Schermpje(wx.Frame):
    def __init__(self, parent, id, title):
        """ 
        """
        wx.Frame.__init__(self, parent, id, title, style=wx.SYSTEM_MENU |
                          wx.CAPTION | wx.CLIP_CHILDREN, size=(1000, 750))
        self.boxje = wx.BoxSizer()
        self.SetBackgroundColour((46,24,0))
        self.welkom()
        self.SetSizer(self.boxje)
        self.Centre()
        self.Show()

    def welkom(self):
        """ 
        """
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        users = self.db.getUsers()
        
        self.welkompaneel = Welkomstscherm(self, -1)
        self.menupaneel = Menuscherm(self, -1)
        self.menupaneel.Hide()
        self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
        self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, self.naarMenu)
        #self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, self.koffie)
        self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, self.naarMenu)
        #self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, self.bier)

    def bier(self, event):
        self.SetBackgroundColour((255,255,20))

    def koffie(self, event):
        self.SetBackgroundColour((46,24,0))

    def naarWelkom(self, event):
        self.menupaneel.Hide()
        self.welkompaneel.Hide()
        self.welkompaneel = Welkomstscherm(self, -1)
        self.menupaneel = Menuscherm(self, -1)
        try:
            self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
            self.menupaneel.Hide()
        except wx._core.PyAssertionError:
            pass
        #self.menupaneel.Hide()
        #self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
        self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, self.naarMenu)
        #self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, self.koffie)
        self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, self.naarMenu)
        #self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, self.bier)
        self.SetSize((1000, 750))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

    def naarMenu(self, event):
        """
        """
        try:
            self.drinken_1_paneel.Hide()
            self.bestelling_paneel.Hide()
            self.frame1.Hide()
        except AttributeError:
            pass
        self.menupaneel = Menuscherm(self, -1)
        try:
            self.boxje.Add(self.menupaneel, 1, wx.EXPAND | wx.ALL)
            self.welkompaneel.Hide()
        except wx._core.PyAssertionError:
            pass
        self.menupaneel.Show()
        self.menupaneel.stop_knop.Bind(wx.EVT_BUTTON, self.onStop)
        self.menupaneel.terug_knop.Bind(wx.EVT_BUTTON, self.naarWelkom)
        self.menupaneel.drinken_halen_knop.Bind(wx.EVT_BUTTON, self.naarIn_dr_ha_1)
        self.SetSize((850, 550))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

    def naarIn_dr_ha_1(self, event):
        self.drinken_1_paneel = In_dr_ha_1_scherm(self, -1)
        try:
            self.bestelling_paneel.Hide()
        except AttributeError:
            pass
        try:
            self.boxje.Add(self.drinken_1_paneel, 1, wx.EXPAND | wx.ALL)
            self.menupaneel.Hide()
        except wx._core.PyAssertionError:
            pass
        self.drinken_1_paneel.Show()
        #self.drinken_1_paneel.drinken_halen_knop.Bind(wx.EVT_RADIOBUTTON, self.naam)
        self.drinken_1_paneel.stop_knop.Bind(wx.EVT_BUTTON, self.onStop)
        self.drinken_1_paneel.terug_knop.Bind(wx.EVT_BUTTON, self.naarMenu)
        self.drinken_1_paneel.random_knop.Bind(wx.EVT_BUTTON, self.naarBestelling)
        self.drinken_1_paneel.hoogste_s_knop.Bind(wx.EVT_BUTTON, self.naarBestelling)
        self.SetSize((950, 550))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

    def naarBestelling(self, event):
        self.bestelling_paneel = Be_dr_ha_1_scherm(self, -1)
        try:
            self.boxje.Add(self.bestelling_paneel, 1, wx.EXPAND | wx.ALL)
            self.drinken_1_paneel.Hide()
        except wx._core.PyAssertionError:
            pass
        self.bestelling_paneel.Show()
        #self.drinken_1_paneel.drinken_halen_knop.Bind(wx.EVT_RADIOBUTTON, self.naam)
        self.bestelling_paneel.doorgaan_knop.Bind(wx.EVT_BUTTON, self.naarPopUp)
        self.bestelling_paneel.terug_knop.Bind(wx.EVT_BUTTON, self.naarIn_dr_ha_1)

        self.SetSize((800, 700))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

    def naarPopUp(self, event):
        self.frame1 = PopUpFrame()
        self.frame1.Show()
        self.frame1.ok.Bind(wx.EVT_BUTTON, self.naarMenu)

    def naam(self, event):
        print("jaja")
        #self.drinken_1_paneel.drinken_halen_knop.

    def onStop(self, event):
        """ 
        """
        self.Destroy()
class Stats(wx.Frame):
    def __init__(self, *args, **kwds):
        if os.path.isfile("temp.png"):
            os.remove("temp.png")
            #print "BESTAAT"
        
        self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.SetBackgroundColour((92,48,0))
        self.savebutton = wx.Button(self, wx.ID_ANY, "Opslaan")
        self.backbutton = wx.Button(self, wx.ID_ANY, "Terug")
        self.backbutton.Bind(wx.EVT_BUTTON, self.onBack)
        self.savebutton.Bind(wx.EVT_BUTTON, self.onSave)
        self.radio_box_1 = wx.RadioBox(self, wx.ID_ANY, ("Soort grafiek"), choices=[("Bar"), ("Circle")], majorDimension=1, style=wx.RA_SPECIFY_ROWS)
        
        pylab.figure(1, figsize=(6,6))
        
        ax = pylab.axes([0.1, 0.1, 0.8, 0.8])

        
        #names = ["Peter","John","James","Mark","Bart","Jude","Andrew","Simon"]
        self.data = [0]
        names= [""]
        title = "Placeholder title"
        self.graph = Creation(names, self.data, title)
        #self.graph.buildBar()
        
        perf_plot = 'temp.png'
        names = self.getNames()
        self.list_box_3 = wx.ListBox(self, wx.ID_ANY, choices=names,
                                                                 style=wx.LB_MULTIPLE)
        self.list_box_2 = wx.ListBox(self, wx.ID_ANY, choices=[("Wie haalt het vaakst?"), ("Wie is de grootste wanbetaler?"),
                                                               ("Welke dranken worden het meest gehaald?"), ("Wie geeft het gulst?")])
        self.radio_box_1.Bind(wx.EVT_RADIOBOX, self.onChange)
        self.list_box_2.Bind(wx.EVT_LISTBOX, self.onUpdateData)
        self.list_box_3.Bind(wx.EVT_LISTBOX, self.onUpdateNames)
        sel = self.radio_box_1.GetSelection()
        ##print self.radio_box_1.GetString(sel)
        self.__set_properties()
        self.onUpdateNames(wx.EVT_LISTBOX)
        self.onUpdateData(wx.EVT_LISTBOX)
        
        self.__do_layout()
    def onSave(self, event):
        newname = str(time.strftime("%y_%m_%d_%H_%M_%S"))
        newname+=".png"
        shutil.copy("temp.png",newname)
    def onBack(self, event):
        self.Hide()
    def getNames(self):
        self.db = BakkieControlDatabase()
        namelist = self.db.getUsers()
        ##print namelist
        newnames = ['iedereen']
        for tup in namelist:
            newnames.append(tup[1])
        return newnames
    def onUpdateNames(self, event):
        self.updateNames()
        
        self.onUpdateData(wx.EVT_LISTBOX)
        
        
        self.onChange(wx.EVT_RADIOBOX)
    def updateNames(self):
        selected = self.list_box_3.GetSelections()
        
        if selected[0] == 0:
            ##print "IEDEREEN"
            
            for name in range(self.list_box_3.GetCount()):
                self.list_box_3.Select(name)
                
                ##print name
            selected = self.list_box_3.GetSelections()[1:]   
        newnames = []
        
        
        for selection in selected:
            newnames.append(str(self.list_box_3.GetString(selection)))
        ##print newnames
        self.graph.setNames(newnames)
        ##print self.graph.getNames()
        data = self.graph.getData()
        self.graph.setData(data[:len(newnames)])
        #self.__do_layout()
    def onUpdateData(self, event):
        self.updateNames()
        stat = self.list_box_2.GetSelection()
        names = self.graph.getNames()
        ##print stat
        if stat == 0:
            freqs = self.db.getUserFreqs()
            
            data_names = []
            data_nums= []
            newdata = []
            for tup in freqs:
                data_names.append(tup[0])
                data_nums.append(tup[1])
            ##print data_names , "D_N"
            
            newdata = []
            for name in names:
                if name in data_names:
                    namenum = data_names.index(name)
                    newdata.append(data_nums[namenum])
                else:
                    newdata.append(0)
                
                    
                
        elif stat == 1:
            debt = self.db.getUserSchulden()
            #print debt
            data_names = []
            data_nums = []
            newdata = []
            for tup in debt:
                data_names.append(tup[0])
                data_nums.append(tup[1])
            for name in names:
                if name in data_names:
                    namenum = data_names.index(name)
                    newdata.append(data_nums[namenum])
                else:
                    newdata.append(0)
        elif stat == 2:
            
            freqs = self.db.getFrequenties()
            data_drinks = []
            data_nums = []
            newdata = []
            for tup in freqs:
                data_drinks.append(tup[0])
                data_nums.append(tup[1])
            
            self.graph.setNames(data_drinks)
            newdata = data_nums
        elif stat == 3:
            loan = self.db.getOpenstaand()
            #print loan
            data_names = []
            data_nums = []
            newdata = []
            for tup in loan:
                data_names.append(tup[0])
                data_nums.append(tup[1])
            for name in names:
                if name in data_names:
                    namenum = data_names.index(name)
                    newdata.append(data_nums[namenum])
                else:
                    newdata.append(0)
        #print self.graph.getData(),"ervoor"
        self.graph.setData(newdata)
        
        self.graph.setTitle(str(self.list_box_2.GetString(stat)))
        #print self.graph.getData(),"erna"
        self.onChange(wx.EVT_RADIOBOX)
    def onChange(self, event):
        graphtype = self.radio_box_1.GetString(self.radio_box_1.GetSelection())
        
        if graphtype == "Circle":
            self.graph.buildPie()
        elif graphtype == "Bar":
            self.graph.buildBar()
            
        self.__do_layout()
    def __set_properties(self):

        self.SetTitle(("Statistieken"))
        self.SetSize((900, 675))
        self.radio_box_1.SetSelection(0)
        self.list_box_3.SetSelection(0)
        self.list_box_2.SetSelection(0)
        #self.radio_box_1.SetBackgroudColour((46,24,0))
    
    def __do_layout(self):

        self.image = wx.Image("temp.png")
        self.image.Rescale(666,500)
        image2 = wx.Bitmap(self.image)
        self.bitmap_1 = wx.StaticBitmap(self, wx.ID_ANY, image2)
        sizer_1 = wx.BoxSizer(wx.VERTICAL) #sizers
        sizer_3 = wx.BoxSizer(wx.HORIZONTAL) # list boxes1
        sizer_2 = wx.BoxSizer(wx.VERTICAL) #Radiobox, bitmap
        sizer_4 = wx.BoxSizer(wx.HORIZONTAL) # Radiobox, buttons
        sizer_5 = wx.BoxSizer(wx.HORIZONTAL) #Butons
        sizer_4.Add(self.radio_box_1, 2, wx.EXPAND, 0)
        sizer_4.Add(sizer_5, 1, wx.EXPAND, 0)
        sizer_5.Add(self.backbutton, 1, wx.EXPAND, 0)
        sizer_5.Add(self.savebutton, 1, wx.EXPAND, 0)
        sizer_2.Add(sizer_4, 1, wx.EXPAND, 0)
        sizer_2.Add(self.bitmap_1, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
 
        sizer_1.Add(sizer_2, 1, wx.EXPAND, 0)
        sizer_3.Add(self.list_box_3, 1, wx.EXPAND, 0)
        sizer_3.Add(self.list_box_2, 1, wx.EXPAND, 0)
        sizer_1.Add(sizer_3, 1, wx.EXPAND, 0)
        
        self.SetSizer(sizer_1)
        
        self.Layout()
from BakkieControlDatabase import BakkieControlDatabase

a = BakkieControlDatabase(True, True)

"""
print "Doe hier je acties"
print "Voeg klaas toe."
a.addUser("Klaas")

print "Show users: "
users = a.getUsers()
print users
print "--------"
print "Verwijder Klaas"
a.deleteUser("Klaas")
users = a.getUsers()
print users
print "--------------"
print "Prijzenlijst:"
prijzen = a.getPrijzenlijst()
print prijzen
prijzen[0][2] = 5.65
a.setPrijzenlijst(prijzen)
prijzen = a.getPrijzenlijst()
print prijzen
print "Sebastiaan heeft voor Jesse een koffie gehaald en voor Dwin een Theetje."
a.setBestelling(1, [[2, 1], [3,2]])
print "Jesse haalt nu cappuchino voor iedereen!"
a.setBestelling(2, [[1, 3], [3,3], [4,3], [5,3]]) 

#a.cursor.execute('INSERT INTO Schulden (SchuldeiserID, SchuldmakerID, Bedrag) VALUES (1, 2, 5);')
Esempio n. 14
0
    def opslaan(self, event):
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        HetZelfde = 0

        prijzenlijst= []
        
        self.prijzenlijstpaneel.txtCtrlKoffie.SetEditable(False)
        newKoffie = self.prijzenlijstpaneel.txtCtrlKoffie.GetLineText(0)
        if any(c.isalpha() for c in newKoffie):
            prijzenlijst.append((1, "Koffie", self.db.getPrijzenlijst()[0][2]))
            self.prijzenlijstpaneel.txtCtrlKoffie.SetValue(str(self.db.getPrijzenlijst()[0][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((1, "Koffie", float(newKoffie)))
            if str(newKoffie) == str(prijzen[0][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlThee.SetEditable(False)
        newThee = self.prijzenlijstpaneel.txtCtrlThee.GetLineText(0)
        if any(c.isalpha() for c in newThee):
            prijzenlijst.append((2, "Thee", self.db.getPrijzenlijst()[1][2]))
            self.prijzenlijstpaneel.txtCtrlThee.SetValue(str(self.db.getPrijzenlijst()[1][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((2, "Thee", float(newThee)))
            if str(newThee) == str(prijzen[1][2]):
                HetZelfde += 1
            
        self.prijzenlijstpaneel.txtCtrlCapp.SetEditable(False)
        newCapp = self.prijzenlijstpaneel.txtCtrlCapp.GetLineText(0)
        if any(c.isalpha() for c in newCapp):
            prijzenlijst.append((3, "Cappuccino", self.db.getPrijzenlijst()[2][2]))
            self.prijzenlijstpaneel.txtCtrlCapp.SetValue(str(self.db.getPrijzenlijst()[2][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((3, "Cappuccino", float(newCapp)))
            if str(newCapp) == str(prijzen[2][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlFris.SetEditable(False)
        newFris = self.prijzenlijstpaneel.txtCtrlFris.GetLineText(0)
        if any(c.isalpha() for c in newFris):
            prijzenlijst.append((4, "Fris", self.db.getPrijzenlijst()[3][2]))
            self.prijzenlijstpaneel.txtCtrlFris.SetValue(str(self.db.getPrijzenlijst()[3][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((4, "Fris", float(newFris)))
            if str(newFris) == str(prijzen[3][2]):
                HetZelfde += 1
            
        self.prijzenlijstpaneel.txtCtrlBier.SetEditable(False)
        newBier = self.prijzenlijstpaneel.txtCtrlBier.GetLineText(0)
        if any(c.isalpha() for c in newBier):
            prijzenlijst.append((5, "Bier", self.db.getPrijzenlijst()[4][2]))
            self.prijzenlijstpaneel.txtCtrlBier.SetValue(str(self.db.getPrijzenlijst()[4][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((5, "Bier", float(newBier)))
            if str(newBier) == str(prijzen[4][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlWijn.SetEditable(False)
        newWijn = self.prijzenlijstpaneel.txtCtrlWijn.GetLineText(0)
        if any(c.isalpha() for c in newWijn):
            prijzenlijst.append((6, "Wijn", self.db.getPrijzenlijst()[5][2]))
            self.prijzenlijstpaneel.txtCtrlWijn.SetValue(str(self.db.getPrijzenlijst()[5][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((6, "Wijn", float(newWijn)))
            if str(newWijn) == str(prijzen[5][2]):
                HetZelfde += 1

        if HetZelfde != 6:
            self.db.setPrijzenlijst(prijzenlijst)
Esempio n. 15
0
class Schermpje(wx.Frame):
    def __init__(self, parent, id, title):
        """ 
        """
        wx.Frame.__init__(self, parent, id, 'Bakkie', style=wx.SYSTEM_MENU |
                          wx.CAPTION | wx.CLIP_CHILDREN, size=(1000, 750))
        self.boxje = wx.BoxSizer()
        #self.SetBackgroundColour((46,24,0))
        self.SetBackgroundColour((92,48,0))
        self.welkom()
        self.SetSizer(self.boxje)
        self.Centre()
        self.Show()

    def welkom(self):
        """ 
        """
        self.db = BakkieControlDatabase()
        self.prijzen = self.db.getPrijzenlijst()
        self.users = self.db.getUsers()
        
        self.welkompaneel = Welkomstscherm(self, -1)
        self.menupaneel = Menuscherm(self, -1)
        self.menupaneel.Hide()
        self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
        self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, "koffie"))
        self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, "bier"))

    def bier(self, event):
        self.SetBackgroundColour((255,255,20))

    def koffie(self, event):
        self.SetBackgroundColour((46,24,0))

    def naarWelkom(self, event):
        self.menupaneel.Hide()
        self.welkompaneel.Hide()
        self.welkompaneel = Welkomstscherm(self, -1)
        self.menupaneel = Menuscherm(self, -1)
        try:
            self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
            self.menupaneel.Hide()
        except wx._core.PyAssertionError:
            pass
        #self.menupaneel.Hide()
        #self.boxje.Add(self.welkompaneel, 1, wx.EXPAND | wx.ALL)
        self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, "koffie"))
        #self.welkompaneel.koffie_knop.Bind(wx.EVT_BUTTON, self.koffie)
        self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, "bier"))
        #self.welkompaneel.bier_knop.Bind(wx.EVT_BUTTON, self.bier)
        self.SetSize((1000, 750))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

    def naarMenu(self, event, tijd):
        """
        """
        self.tijd = tijd
        try:
            self.drinken_1_paneel.Hide()
            self.bestelling_paneel.Hide()
            self.frame1.Hide()
        except AttributeError:
            pass
        try:
            self.beheerpaneel.Hide()
        except AttributeError:
            pass
        
        self.menupaneel = Menuscherm(self, -1)
        
        try:
            self.boxje.Add(self.menupaneel, 1, wx.EXPAND | wx.ALL)
            self.welkompaneel.Hide()
        except wx._core.PyAssertionError:
            pass
        self.menupaneel.Show()
        self.menupaneel.stop_knop.Bind(wx.EVT_BUTTON, self.onStop)
        self.menupaneel.terug_knop.Bind(wx.EVT_BUTTON, self.naarWelkom)
        self.menupaneel.drinken_halen_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarIn_dr_ha_1(evt, tijd))
        self.menupaneel.schulden_knop.Bind(wx.EVT_BUTTON, lambda evt : self.SchuldStartfunctie(evt, tijd))
        self.menupaneel.beheer_knop.Bind(wx.EVT_BUTTON, lambda evt : self.beheer(evt, tijd))
        self.menupaneel.statistiek_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarStatistiek(evt, tijd))
        self.SetSize((850, 550))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

    def naarIn_dr_ha_1(self, event, tijd):
        self.users = self.db.getUsers()
        self.drinken_1_paneel = In_dr_ha_1_scherm(self, -1, self.users)
        try:
            self.bestelling_paneel.Hide()
        except AttributeError:
            pass
        try:
            self.boxje.Add(self.drinken_1_paneel, 1, wx.EXPAND | wx.ALL)
            self.menupaneel.Hide()
        except wx._core.PyAssertionError:
            pass
        #self.drinken_1_paneel.Update()
        self.drinken_1_paneel.Show()
        #self.drinken_1_paneel.drinken_halen_knop.Bind(wx.EVT_RADIOBUTTON, self.naam)
        self.drinken_1_paneel.stop_knop.Bind(wx.EVT_BUTTON, self.onStop)
        self.drinken_1_paneel.terug_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, tijd))
        self.drinken_1_paneel.random_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarBestelling(evt, tijd))
        self.drinken_1_paneel.hoogste_s_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarBestelling(evt, tijd))
        
        self.SetSize((950, 550))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        
    def naarBestelling(self, event, tijd):
        dezewillen = self.drinken_1_paneel.bestellers
        if len(dezewillen) > 0:
            self.bestelling_paneel = Be_dr_ha_1_scherm(self, -1, dezewillen, self.prijzen, tijd)
            try:
                self.boxje.Add(self.bestelling_paneel, 1, wx.EXPAND | wx.ALL)
                self.drinken_1_paneel.Hide()
            except wx._core.PyAssertionError:
                pass
            try:
                self.Staticprijzenlijstpaneel.Hide()
            except AttributeError:
                pass
            self.bestelling_paneel.Show()
            #self.drinken_1_paneel.drinken_halen_knop.Bind(wx.EVT_RADIOBUTTON, self.naam)
            self.bestelling_paneel.prijzenkaart_knop.Bind(wx.EVT_BUTTON, self.naarStaticLijst)
            self.bestelling_paneel.doorgaan_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarPopUp(evt, tijd))
            self.bestelling_paneel.terug_knop.Bind(wx.EVT_BUTTON, lambda evt : self.naarIn_dr_ha_1(evt, tijd))

            self.SetSize((800, 700))
            self.SetSizer(self.boxje)
            self.Centre()
            self.boxje.Layout()

    def naarStaticLijst(self, event):
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        self.Staticprijzenlijstpaneel = StaticPrijzenlijstscherm(self, prijzen, self.tijd)
        self.Staticprijzenlijstpaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.naarBestelling(evt, self.tijd))
        self.boxje.Add(self.Staticprijzenlijstpaneel, 1, wx.EXPAND | wx.ALL)
        self.bestelling_paneel.Hide()
        self.Staticprijzenlijstpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        
    def naarPopUp(self, event, tijd):
        self.frame1 = PopUpFrame()        
        for t in self.db.getUsers():
                if str(self.bestelling_paneel.haler) in t:
                    haalID = t[0]
        aantal = len(self.bestelling_paneel.bestellers)
        prijzen = self.db.getPrijzenlijst()
        totale_lijst = []
        for x in range(aantal):
            bestellinglijst = []
            product = ""
            if x == 0:
                product = self.bestelling_paneel.combobox_1.GetValue()
            elif x == 1:
                product = self.bestelling_paneel.combobox_2.GetValue()
            elif x == 2:
                product = self.bestelling_paneel.combobox_3.GetValue()
            elif x == 3:
                product = self.bestelling_paneel.combobox_4.GetValue()
            elif x == 4:
                product = self.bestelling_paneel.combobox_5.GetValue()
            elif x == 5:
                product = self.bestelling_paneel.combobox_6.GetValue()
            elif x == 6:
                product = self.bestelling_paneel.combobox_7.GetValue()
            elif x == 7:
                product = self.bestelling_paneel.combobox_8.GetValue()
            elif x == 8:
                product = self.bestelling_paneel.combobox_9.GetValue()
            elif x == 9:
                product = self.bestelling_paneel.combobox_10.GetValue()
            for y in self.db.getUsers():
                if str(self.bestelling_paneel.bestellers[x]) in y:
                    persoonID = y[0]
                    bestellinglijst.append(persoonID)
            for z in self.db.getPrijzenlijst():
                if product in z:
                    productID = z[0]
                    bestellinglijst.append(productID)
            totale_lijst.append(bestellinglijst)
        self.db.setBestelling(haalID, totale_lijst)
        self.frame1.Show()
        self.frame1.ok.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, tijd))


    def SchuldStartfunctie(self, event, tijd):
        users = self.db.getUsers()
        self.Gebruikers = [x[1] for x in users]
        self.IDs = {}
        for x in users:
            self.IDs[x[1]] = x[0]
        self.HergroepeerSchuld()
        self.schuldige = "1"
        self.schuldeiser = "1"
        self.SchuldStartfunctie2()
        
    def SchuldStartfunctie2(self):
	#Bouwt het scherm
        self.SchuldSetpanel()
        self.SchuldStartscherm()
        self.Schuldbuttonevents()

    def HergroepeerSchuld(self):
	#Filtert de IDs uit de schulden lijst van de database (self.schulden)
	# Filtert de namen uit de schuldenlijst van de database (self.SchuldByID)
        Schuld = self.db.getSchulden()
        self.schulden = []
        self.SchuldByID = []
        for x in Schuld:
            temp = [x[1], x[3], x[4]]
            temp2 = [x[0], x[2], x[4]]
            self.schulden.append(temp)
            self.SchuldByID.append(temp2)

    def SchuldSetpanel(self):
	#Aanroepen schermen
        self.paneel = wx.Panel(self, -1)
        self.Schuldpaneel = Schuldenscherm.Schuldenscherm1(self, -1, self.Gebruikers,
                                                      self.schulden)
        self.Vereffenpaneel = VereffenSchuld.VereffenScherm(self, -1, self.Gebruikers)
        self.frame = VereffenSchuld.PopUpFrameVereffend()
        
    def SchuldStartscherm(self):
        self.boxje.Add(self.Schuldpaneel, 1, wx.EXPAND | wx.ALL)
        self.boxje.Add(self.Vereffenpaneel, 1, wx.EXPAND | wx.ALL)
        self.Schuldpanelhide(self.Schuldpaneel, (750, 600))
        self.SetSizer(self.boxje)
        self.Centre()
        self.Show(True)
           
    def Schuldpanelhide(self, zie, bh):
	#Hide overbodige panelen.
	#zie = paneel welke te zien is
	#bh = breedte x hoogte
        self.menupaneel.Hide()
        self.Schuldpaneel.Hide()
        self.Vereffenpaneel.Hide()
        self.frame.Hide()
        zie.Show()
        self.SetSize(bh)
        self.Centre()
        self.Layout()

    def Schuldbuttonevents(self):
	#Bindt de buttons
        self.Schuldpaneel.Terug.Bind(wx.EVT_BUTTON, self.SchuldTerugButton)
        self.Schuldpaneel.Schuldknop.Bind(wx.EVT_BUTTON, self.SchuldButton)
        self.Vereffenpaneel.Vereffenknop.Bind(wx.EVT_BUTTON, self.VereffenButton)
        self.Vereffenpaneel.drop1.Bind(wx.EVT_COMBOBOX, self.SchuldDropButton1)
        self.Vereffenpaneel.drop2.Bind(wx.EVT_COMBOBOX, self.SchuldDropButton2)
        self.frame.terug.Bind(wx.EVT_BUTTON, self.SchuldTerugButton)

    def SchuldTerugButton(self, event):
        #Code voor scherm terug vanaf schuldenscherm, moet naar menuscherm
        self.Schuldpanelhide(self.menupaneel, (850, 550))

    def SchuldButton(self, event):
	#Start het vereffenschuld scherm op
        self.Schuldpanelhide(self.Vereffenpaneel, (450, 300))
        
    def VereffenButton(self, event):
	#Vereffend schuld tussen twee gebruikers
        if self.schuldige == self.schuldeiser or self.schuldige == "1" or self.schuldeiser == "1":
            pass
        else:
            SchuldigeID = self.IDs[self.schuldige] #Haalt ID op
            SchuldEiserID = self.IDs[self.schuldeiser] #Haalt ID op
            for x in self.SchuldByID:
                if x[0] == SchuldigeID and x[1] == SchuldEiserID:
                    Check1 = x[2] # schuld te vereffenen 
                if x[1] == SchuldigeID and x[0] == SchuldEiserID:
                    Check2 = x[2] # schuld andersom te vereffenen
            if float(Check1) > float(Check2):
                self.db.setSchulden(SchuldEiserID, SchuldigeID)
                self.db.setSchulden(SchuldigeID, SchuldEiserID)# reset beiden naar 0
            if float(Check2) > float(Check1):
                self.db.setSchulden(SchuldEiserID, SchuldigeID) #reset laagste schuld naar 0
                self.db.setSchulden(SchuldigeID, SchuldEiserID, float(Check2 - Check1))                
            self.Schuldpanelhide(self.frame, (300, 150))

    def SchuldDropButton1(self, event):
        self.schuldige = self.Vereffenpaneel.drop1.GetValue() #Haalt naam schuldige op

    def SchuldDropButton2(self, event):
        self.schuldeiser = self.Vereffenpaneel.drop2.GetValue() #Haalt naam schuldeiser op

    
    def naarStatistiek(self, event, tijd):
        
        self.statspaneel = Stats(self, wx.ID_ANY, "")
        self.statspaneel.Centre()
       
     
        self.statspaneel.Show()
    

    

    def beheer(self, event, tijd):
        """
        """
        self.beheerpaneel = Beheerscherm(self) #Balngrijk
        try:
            self.menupaneel.Hide()
        except AttributeError:
            pass
        try:
            self.prijzenlijstpaneel.Hide()
        except AttributeError:
            pass
        try:
            self.gebruikerspaneel.Hide()
        except AttributeError:
            pass
        try:
            self.logpaneel.Hide()
        except AttributeError:
            pass
        try:
            self.boxje.Add(self.beheerpaneel, 1, wx.EXPAND | wx.ALL)
            self.menupaneel.Hide()
        except wx._core.PyAssertionError:
            pass
        self.beheerpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.beheerpaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.naarMenu(evt, tijd))
        self.beheerpaneel.pri.Bind(wx.EVT_BUTTON, lambda evt : self.prijzenlijstscherm(evt, tijd))
        self.beheerpaneel.geb.Bind(wx.EVT_BUTTON, lambda evt : self.gebruikersscherm(evt, tijd))
        self.beheerpaneel.log.Bind(wx.EVT_BUTTON, lambda evt : self.logScherm(evt, tijd))

    def prijzenlijstscherm(self, event, tijd):
        """
        """
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        self.prijzenlijstpaneel = Prijzenlijstscherm(self, prijzen)
        self.boxje.Add(self.prijzenlijstpaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.prijzenlijstpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.prijzenlijstpaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.beheer(evt, tijd))
        self.prijzenlijstpaneel.bew.Bind(wx.EVT_BUTTON, self.bewerken)
        self.prijzenlijstpaneel.ops.Bind(wx.EVT_BUTTON, self.opslaan)

    def bewerken(self, event):
        self.prijzenlijstpaneel.txtCtrlKoffie.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlThee.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlCapp.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlFris.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlBier.SetEditable(True)
        self.prijzenlijstpaneel.txtCtrlWijn.SetEditable(True)

    def opslaan(self, event):
        self.db = BakkieControlDatabase()
        prijzen = self.db.getPrijzenlijst()
        HetZelfde = 0

        prijzenlijst= []
        
        self.prijzenlijstpaneel.txtCtrlKoffie.SetEditable(False)
        newKoffie = self.prijzenlijstpaneel.txtCtrlKoffie.GetLineText(0)
        if any(c.isalpha() for c in newKoffie):
            prijzenlijst.append((1, "Koffie", self.db.getPrijzenlijst()[0][2]))
            self.prijzenlijstpaneel.txtCtrlKoffie.SetValue(str(self.db.getPrijzenlijst()[0][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((1, "Koffie", float(newKoffie)))
            if str(newKoffie) == str(prijzen[0][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlThee.SetEditable(False)
        newThee = self.prijzenlijstpaneel.txtCtrlThee.GetLineText(0)
        if any(c.isalpha() for c in newThee):
            prijzenlijst.append((2, "Thee", self.db.getPrijzenlijst()[1][2]))
            self.prijzenlijstpaneel.txtCtrlThee.SetValue(str(self.db.getPrijzenlijst()[1][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((2, "Thee", float(newThee)))
            if str(newThee) == str(prijzen[1][2]):
                HetZelfde += 1
            
        self.prijzenlijstpaneel.txtCtrlCapp.SetEditable(False)
        newCapp = self.prijzenlijstpaneel.txtCtrlCapp.GetLineText(0)
        if any(c.isalpha() for c in newCapp):
            prijzenlijst.append((3, "Cappuccino", self.db.getPrijzenlijst()[2][2]))
            self.prijzenlijstpaneel.txtCtrlCapp.SetValue(str(self.db.getPrijzenlijst()[2][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((3, "Cappuccino", float(newCapp)))
            if str(newCapp) == str(prijzen[2][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlFris.SetEditable(False)
        newFris = self.prijzenlijstpaneel.txtCtrlFris.GetLineText(0)
        if any(c.isalpha() for c in newFris):
            prijzenlijst.append((4, "Fris", self.db.getPrijzenlijst()[3][2]))
            self.prijzenlijstpaneel.txtCtrlFris.SetValue(str(self.db.getPrijzenlijst()[3][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((4, "Fris", float(newFris)))
            if str(newFris) == str(prijzen[3][2]):
                HetZelfde += 1
            
        self.prijzenlijstpaneel.txtCtrlBier.SetEditable(False)
        newBier = self.prijzenlijstpaneel.txtCtrlBier.GetLineText(0)
        if any(c.isalpha() for c in newBier):
            prijzenlijst.append((5, "Bier", self.db.getPrijzenlijst()[4][2]))
            self.prijzenlijstpaneel.txtCtrlBier.SetValue(str(self.db.getPrijzenlijst()[4][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((5, "Bier", float(newBier)))
            if str(newBier) == str(prijzen[4][2]):
                HetZelfde += 1
        
        self.prijzenlijstpaneel.txtCtrlWijn.SetEditable(False)
        newWijn = self.prijzenlijstpaneel.txtCtrlWijn.GetLineText(0)
        if any(c.isalpha() for c in newWijn):
            prijzenlijst.append((6, "Wijn", self.db.getPrijzenlijst()[5][2]))
            self.prijzenlijstpaneel.txtCtrlWijn.SetValue(str(self.db.getPrijzenlijst()[5][2]))
            HetZelfde += 1
        else:
            prijzenlijst.append((6, "Wijn", float(newWijn)))
            if str(newWijn) == str(prijzen[5][2]):
                HetZelfde += 1

        if HetZelfde != 6:
            self.db.setPrijzenlijst(prijzenlijst)

    def gebruikersscherm(self, event, tijd):
        """
        """
        self.db = BakkieControlDatabase()
        users = self.db.getUsers()
        self.gebruikerspaneel = Gebruikersscherm(self, users)
        self.boxje.Add(self.gebruikerspaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.gebruikerspaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.gebruikerspaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.beheer(evt, tijd))
        self.gebruikerspaneel.toe.Bind(wx.EVT_BUTTON, self.showPopUpToe)
        self.gebruikerspaneel.ver.Bind(wx.EVT_BUTTON, self.gebruikerVerwijderen)

    def showPopUpToe(self, event):
        self.frameToe = PopUpFrameToe()
        self.frameToe.Show()

        self.frameToe.cancel.Bind(wx.EVT_BUTTON, self.closePopUpToe)
        self.frameToe.opslaan.Bind(wx.EVT_BUTTON, self.gebruikerOpslaan)

    def closePopUpToe(self, event):
        self.frameToe.Close()

    def gebruikerOpslaan(self, event):
        toevoegen = True
        self.db = BakkieControlDatabase()
        users = self.db.getUsers()
        naam = self.frameToe.txtCtrlNaam.GetValue()
        index = self.gebruikerspaneel.LCGebruikers.GetItemCount()
        for i in users:
            if i[1] == naam:
                toevoegen = False
        if len(str(naam)) == 0 or len(str(naam)) > 10 or int(index) > 9 or toevoegen == False:
            pass
        else:
            self.gebruikerspaneel.LCGebruikers.InsertStringItem(index+1, naam)
            self.db.addUser(naam)
            self.frameToe.Close()

    def gebruikerVerwijderen(self, event):
        geselecteerd =  self.gebruikerspaneel.LCGebruikers.GetFirstSelected()
        if geselecteerd == -1:
            pass
        else:
            self.showPopUpVer()
            #self.gebruikerspaneel.LCGebruikers.DeleteItem(long(geselecteerd))

    def showPopUpVer(self):
        self.frameVer = PopUpFrameVer()
        self.frameVer.Show()

        self.frameVer.nee.Bind(wx.EVT_BUTTON, self.closePopUpVer)
        self.frameVer.ja.Bind(wx.EVT_BUTTON, self.verwijderenGebruiker)

    def verwijderenGebruiker(self, event):
        geselecteerd =  self.gebruikerspaneel.LCGebruikers.GetFirstSelected()
        naam = self.gebruikerspaneel.LCGebruikers.GetItemText(geselecteerd, 0)
        self.gebruikerspaneel.LCGebruikers.DeleteItem(long(geselecteerd))
        self.db.deleteUser(naam)
        self.frameVer.Close()

    def closePopUpVer(self, event):
        self.frameVer.Close()

    def logScherm(self, event, tijd):
        self.db = BakkieControlDatabase()
        days, log = self.db.getLog()
        #print log
        self.logpaneel = Logscherm(self, days, log)
        self.boxje.Add(self.logpaneel, 1, wx.EXPAND | wx.ALL)
        self.beheerpaneel.Hide()
        self.logpaneel.Show()
        self.SetSize((700, 440))
        self.SetSizer(self.boxje)
        self.Centre()
        self.boxje.Layout()

        self.logpaneel.terug.Bind(wx.EVT_BUTTON, lambda evt : self.beheer(evt, tijd))
        self.logpaneel.CBDatum.Bind(wx.EVT_COMBOBOX, self.nieuweLog)

    def nieuweLog(self, event):
        dag = self.logpaneel.CBDatum.GetValue()
        self.db = BakkieControlDatabase()
        days, log = self.db.getLog()
        for item in log:
            if str(item[0][0][0:10]) == str(dag):
                index = log.index(item)
                self.logpaneel.list.ClearAll()
                self.logpaneel.list.InsertColumn(0,"Datum", width=130)
                self.logpaneel.list.InsertColumn(1,"Geberurtenis",  width=wx.LIST_AUTOSIZE_USEHEADER)
                try:
                    for a in log[index]:
                        pos = self.logpaneel.list.InsertStringItem(0,str(a[0]))
                        self.logpaneel.list.SetStringItem(pos,1,str(a[1]))
                except:
                    pass
    
    def onStop(self, event):
        """ 
        """
        self.Destroy()
class SchuldenSchermCode(wx.Frame):

    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(750, 600))
        self.db = BakkieControlDatabase()
        self.SchuldStartfunctie()
        
    def SchuldStartfunctie(self):
        users = self.db.getUsers()
        self.Gebruikers = [x[1] for x in users]
        self.IDs = {}
        for x in users:
            self.IDs[x[1]] = x[0]
        self.HergroepeerSchuld()
        self.schuldige = "1"
        self.schuldeiser = "1"
        self.SchuldStartfunctie2()
        
    def SchuldStartfunctie2(self):
	#Bouwt het scherm
        self.db.setSchulden(1, 3, 6.34) #Verwijder!
        self.db.setSchulden(2, 4, 1.32) #Verwijder!
        self.SchuldSetpanel()
        self.SchuldStartscherm()
        self.Schuldbuttonevents()

    def HergroepeerSchuld(self):
	#Filtert de IDs uit de schulden lijst van de database (self.schulden)
	# Filtert de namen uit de schuldenlijst van de database (self.SchuldByID)
        Schuld = self.db.getSchulden()
        self.schulden = []
        self.SchuldByID = []
        for x in Schuld:
            temp = [x[1], x[3], x[4]]
            temp2 = [x[0], x[2], x[4]]
            self.schulden.append(temp)
            self.SchuldByID.append(temp2)

    def SchuldSetpanel(self):
	#Aanroepen schermen
        self.paneel = wx.Panel(self, -1)
        self.Schuldpaneel = Schuldenscherm.Schuldenscherm1(self.paneel, -1, self.Gebruikers,
                                                      self.schulden)
        self.Vereffenpaneel = VereffenSchuld.VereffenScherm(self.paneel, -1, self.Gebruikers)
        self.frame = VereffenSchuld.PopUpFrameVereffend()
        
    def SchuldStartscherm(self):
        self.boxje = wx.BoxSizer(wx.VERTICAL)
        self.boxje.Add(self.Schuldpaneel, 1, wx.EXPAND)
        self.boxje.Add(self.Vereffenpaneel, 1, wx.EXPAND)
        self.Schuldpanelhide(self.Schuldpaneel, (750, 600))
        self.paneel.SetSizer(self.boxje)
        self.Centre()
        self.Show(True)
           
    def Schuldpanelhide(self, zie, bh):
	#Hide overbodige panelen.
	#zie = paneel welke te zien is
	#bh = breedte x hoogte
        self.Schuldpaneel.Hide()
        self.Vereffenpaneel.Hide()
        self.frame.Hide()
        zie.Show()
        self.SetSize(bh)
        self.Centre()
        self.Refresh()

    def Schuldbuttonevents(self):
	#Bindt de buttons
        self.Schuldpaneel.Terug.Bind(wx.EVT_BUTTON, self.SchuldTerugButton)
        self.Schuldpaneel.Schuldknop.Bind(wx.EVT_BUTTON, self.SchuldButton)
        self.Vereffenpaneel.Vereffenknop.Bind(wx.EVT_BUTTON, self.VereffenButton)
        self.Vereffenpaneel.drop1.Bind(wx.EVT_COMBOBOX, self.SchuldDropButton1)
        self.Vereffenpaneel.drop2.Bind(wx.EVT_COMBOBOX, self.SchuldDropButton2)
        self.frame.terug.Bind(wx.EVT_BUTTON, self.SchuldTerugButton)

    def SchuldTerugButton(self, event):
        #Code voor scherm terug vanaf schuldenscherm, moet naar menuscherm
        "voer hier code in om terug te gaan naar het menuscherm"

    def SchuldButton(self, event):
	#Start het vereffenschuld scherm op
        self.Schuldpanelhide(self.Vereffenpaneel, (450, 300))
        
    def VereffenButton(self, event):
	#Vereffend schuld tussen twee gebruikers
        if self.schuldige == self.schuldeiser or self.schuldige == "1" or self.schuldeiser == "1":
            pass
        else:
            SchuldigeID = self.IDs[self.schuldige] #Haalt ID op
            SchuldEiserID = self.IDs[self.schuldeiser] #Haalt ID op
            for x in self.SchuldByID:
                if x[0] == SchuldigeID and x[1] == SchuldEiserID:
                    Check1 = x[2] # schuld te vereffenen 
                if x[1] == SchuldigeID and x[0] == SchuldEiserID:
                    Check2 = x[2] # schuld andersom te vereffenen
            if float(Check1) > float(Check2):
                self.db.setSchulden(SchuldEiserID, SchuldigeID)
                self.db.setSchulden(SchuldigeID, SchuldEiserID)# reset beiden naar 0
            if float(Check2) > float(Check1):
                self.db.setSchulden(SchuldEiserID, SchuldigeID) #reset laagste schuld naar 0
                self.db.setSchulden(SchuldigeID, SchuldEiserID, float(Check2 - Check1))                
            self.Schuldpanelhide(self.frame, (300, 150))

    def SchuldDropButton1(self, event):
        self.schuldige = self.Vereffenpaneel.drop1.GetValue() #Haalt naam schuldige op

    def SchuldDropButton2(self, event):
        self.schuldeiser = self.Vereffenpaneel.drop2.GetValue() #Haalt naam schuldeiser op
 def __init__(self, parent, id, title):
     wx.Frame.__init__(self, parent, id, title, size=(750, 600))
     self.db = BakkieControlDatabase()
     self.SchuldStartfunctie()