示例#1
0
 def __init__(self, parent):
     self.card_expire_date = "0000-00-00"
     self.myDatePicker = DatePicker(self)
     self.myOtherMethods = OtherMethods(self)
     self.myDataBaseConnector = DataBaseConnector(self)
     self.parent = parent
     self.InitMyWindow("ДОБАВИ ПОТРЕБИТЕЛ".decode('utf8'))
     panel = wx.Panel(self)
     box = self.GetManagerBoxSizer(panel)
     panel.SetSizer(box)
     panel.Layout()
     self.panel = panel
    def __init__(self, parent):
        self.loan_date = "0000-00-00"
        self.return_date = "0000-00-00"
        self.myDatePicker = DatePicker(self)
        self.myDataBaseConnector = DataBaseConnector(self)
        self.user_list = list()
        self.PopulateUsersList()
        self.book_list = list()
        self.PopulateBooksList()
        self.inputChoices = list()
        self.myOtherMethods = OtherMethods(self)

        self.parent = parent
        self.InitMyWindow("ЗАЕМАНЕ НА КНИГА".decode('utf8'))
        panel = wx.Panel(self)
        box = self.GetManagerBoxSizer(panel)
        panel.SetSizer(box)
        panel.Layout()
示例#3
0
    def __init__(self):
        try:
            RootPanelCls.__init__(self)

            vpanel = VerticalPanel()
            self.menuBar = Menu()
            vpanel.add(self.menuBar)

            self.datePicker = DatePicker()
            vpanel.add(self.datePicker)

            self.timeGrid = TimeGrid()
            vpanel.add(self.timeGrid)

            self.summary = Summary()
            vpanel.add(self.summary)

            self.add(vpanel)
        except:
            raise
示例#4
0
class UserAdderWindow(wx.Frame):
    def __init__(self, parent):
        self.card_expire_date = "0000-00-00"
        self.myDatePicker = DatePicker(self)
        self.myOtherMethods = OtherMethods(self)
        self.myDataBaseConnector = DataBaseConnector(self)
        self.parent = parent
        self.InitMyWindow("ДОБАВИ ПОТРЕБИТЕЛ".decode('utf8'))
        panel = wx.Panel(self)
        box = self.GetManagerBoxSizer(panel)
        panel.SetSizer(box)
        panel.Layout()
        self.panel = panel

    def GetManagerBoxSizer(self, panel):
        manager_box = wx.BoxSizer(wx.VERTICAL)
        m_text = wx.StaticText(panel, -1, "ДОБАВИ ПОТРЕБИТЕЛ".decode('utf8'))
        m_text.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        m_text.SetSize(m_text.GetBestSize())
        manager_box.Add(m_text, 0, wx.ALL, 10)

        first_name_box = wx.BoxSizer(wx.HORIZONTAL)
        first_name_label = wx.StaticText(panel, -1, "първо име".decode('utf8'))
        first_name_label.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        first_name_label.SetSize(first_name_label.GetBestSize())
        first_name_box.Add(first_name_label, 0, wx.ALL, 10)
        self.first_name_input = wx.TextCtrl(panel, -1, size=(140, -1))
        first_name_box.Add(self.first_name_input, 0, wx.ALL, 10)
        manager_box.Add(first_name_box, 0, wx.LEFT, 10)

        middle_name_box = wx.BoxSizer(wx.HORIZONTAL)
        middle_name_label = wx.StaticText(panel, -1,
                                          "второ име".decode('utf8'))
        middle_name_label.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        first_name_label.SetSize(middle_name_label.GetBestSize())
        middle_name_box.Add(middle_name_label, 0, wx.ALL, 10)
        self.middle_name_input = wx.TextCtrl(panel, -1, size=(140, -1))
        middle_name_box.Add(self.middle_name_input, 0, wx.ALL, 10)
        manager_box.Add(middle_name_box, 0, wx.LEFT, 10)

        last_name_box = wx.BoxSizer(wx.HORIZONTAL)
        last_name_label = wx.StaticText(panel, -1, "трето име ".decode('utf8'))
        last_name_label.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        first_name_label.SetSize(last_name_label.GetBestSize())
        last_name_box.Add(last_name_label, 0, wx.ALL, 10)
        self.last_name_input = wx.TextCtrl(panel, -1, size=(140, -1))
        last_name_box.Add(self.last_name_input, 0, wx.ALL, 10)
        manager_box.Add(last_name_box, 0, wx.LEFT, 10)

        phone_box = wx.BoxSizer(wx.HORIZONTAL)
        phone_label = wx.StaticText(panel, -1, "телефон   ".decode('utf8'))
        phone_label.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        first_name_label.SetSize(phone_label.GetBestSize())
        phone_box.Add(phone_label, 0, wx.ALL, 10)
        self.phone_input = wx.TextCtrl(panel, -1, size=(140, -1))
        phone_box.Add(self.phone_input, 0, wx.ALL, 10)
        manager_box.Add(phone_box, 0, wx.LEFT, 10)

        email_box = wx.BoxSizer(wx.HORIZONTAL)
        email_label = wx.StaticText(panel, -1, "е-поща      ".decode('utf8'))
        email_label.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        first_name_label.SetSize(email_label.GetBestSize())
        email_box.Add(email_label, 0, wx.ALL, 10)
        self.email_input = wx.TextCtrl(panel, -1, size=(140, -1))
        email_box.Add(self.email_input, 0, wx.ALL, 10)
        manager_box.Add(email_box, 0, wx.LEFT, 10)

        card_expire_date_box = wx.BoxSizer(wx.HORIZONTAL)
        card_expire_date_label = wx.StaticText(panel, -1,
                                               "  активен до  ".decode('utf8'))
        card_expire_date_label.SetFont(
            wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        card_expire_date_label.SetSize(card_expire_date_label.GetBestSize())
        card_expire_date_box.Add(card_expire_date_label, 0, wx.LEFT, 10)
        self.date_picker = self.myDatePicker.GetDatePicker(panel)
        self.date_picker.Bind(wx.EVT_DATE_CHANGED, self.OnDateChanged)
        card_expire_date_box.Add(self.date_picker, 0, wx.LEFT, 10)
        manager_box.Add(card_expire_date_box, 0, wx.ALL, 0)

        add_button = wx.Button(panel, wx.ID_CLOSE, "Добави".decode('utf8'))
        add_button.Bind(wx.EVT_BUTTON, self.OnAdd)
        manager_box.Add(add_button, 0, wx.ALL, 10)

        return manager_box

    def OnDateChanged(self, event):
        date_str = str(event.GetDate())
        mydate = datetime.strptime(date_str, '%m/%d/%y %H:%M:%S')
        self.card_expire_date = mydate.strftime('%Y-%m-%d')

    def GetDataFromFields(self):
        return_list = list()
        return_list.append(
            self.myOtherMethods.AddQuotes(self.first_name_input.GetValue()))
        return_list.append(
            self.myOtherMethods.AddQuotes(self.middle_name_input.GetValue()))
        return_list.append(
            self.myOtherMethods.AddQuotes(self.last_name_input.GetValue()))
        return_list.append(
            self.myOtherMethods.AddQuotes(self.phone_input.GetValue()))
        return_list.append(
            self.myOtherMethods.AddQuotes(self.email_input.GetValue()))
        return_list.append(self.myOtherMethods.AddQuotes(
            self.card_expire_date))
        return return_list

    def OnAdd(self, event):
        my_data = self.GetDataFromFields()
        if (self.myOtherMethods.CheckIfSomeOfStringsInListIsEmpty(
                my_data, self.panel) == 0):
            self.myDataBaseConnector.AddUser(my_data)
            self.parent.myFormatedInfoGetter.UpdateMainInfo()
            self.Destroy()

    def InitMyWindow(self, title):
        wx.Frame.__init__(self, None, title=title, size=(460, 380))
        self.Center()
class NewLoanWindow(wx.Frame):
    def __init__(self, parent):
        self.loan_date = "0000-00-00"
        self.return_date = "0000-00-00"
        self.myDatePicker = DatePicker(self)
        self.myDataBaseConnector = DataBaseConnector(self)
        self.user_list = list()
        self.PopulateUsersList()
        self.book_list = list()
        self.PopulateBooksList()
        self.inputChoices = list()
        self.myOtherMethods = OtherMethods(self)

        self.parent = parent
        self.InitMyWindow("ЗАЕМАНЕ НА КНИГА".decode('utf8'))
        panel = wx.Panel(self)
        box = self.GetManagerBoxSizer(panel)
        panel.SetSizer(box)
        panel.Layout()

    def GetManagerBoxSizer(self, panel):
        manager_box = wx.BoxSizer(wx.VERTICAL)
        m_text = wx.StaticText(panel, -1, "ЗАЕМАНЕ НА КНИГА".decode('utf8'))
        m_text.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        m_text.SetSize(m_text.GetBestSize())
        manager_box.Add(m_text, 0, wx.ALL, 10)

        manager_box.Add(
            self.GetNewChoiceField(panel, "потребител".decode('utf8'), 0,
                                   self.user_list), 0, wx.LEFT, 10)
        manager_box.Add(
            self.GetNewChoiceField(panel, "книга".decode('utf8'), 1,
                                   self.book_list), 0, wx.LEFT, 10)

        loan_date_box = wx.BoxSizer(wx.HORIZONTAL)
        loan_date_label = wx.StaticText(panel, -1,
                                        "дата на заемане".decode('utf8'))
        loan_date_label.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        loan_date_label.SetSize(loan_date_label.GetBestSize())
        loan_date_box.Add(loan_date_label, 0, wx.LEFT, 10)
        self.loan_date_picker = self.myDatePicker.GetDatePicker(panel)
        self.loan_date_picker.Bind(wx.EVT_DATE_CHANGED, self.OnLoanDateChanged)
        loan_date_box.Add(self.loan_date_picker, 0, wx.LEFT, 10)
        manager_box.Add(loan_date_box, 0, wx.ALL, 0)

        return_date_box = wx.BoxSizer(wx.HORIZONTAL)
        return_date_label = wx.StaticText(panel, -1,
                                          "дата на връщане".decode('utf8'))
        return_date_label.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        return_date_label.SetSize(return_date_label.GetBestSize())
        return_date_box.Add(return_date_label, 0, wx.LEFT, 10)
        self.return_date_picker = self.myDatePicker.GetDatePicker(panel)
        self.return_date_picker.Bind(wx.EVT_DATE_CHANGED,
                                     self.OnReturnDateChanged)
        return_date_box.Add(self.return_date_picker, 0, wx.LEFT, 10)
        manager_box.Add(return_date_box, 0, wx.ALL, 0)

        show_info_button = wx.Button(panel, wx.ID_CLOSE,
                                     "Извърши заемането".decode('utf8'))
        show_info_button.Bind(wx.EVT_BUTTON, self.OnAdd)
        manager_box.Add(show_info_button, 0, wx.ALL, 10)

        return manager_box

    def OnLoanDateChanged(self, event):
        date_str = str(event.GetDate())
        mydate = datetime.strptime(date_str, '%m/%d/%y %H:%M:%S')
        self.loan_date = mydate.strftime('%Y-%m-%d')

    def OnReturnDateChanged(self, event):
        date_str = str(event.GetDate())
        mydate = datetime.strptime(date_str, '%m/%d/%y %H:%M:%S')
        self.return_date = mydate.strftime('%Y-%m-%d')

    def GetDataFromFields(self):
        return_list = list()
        return_list.append(
            self.user_list[self.inputChoices[0].GetSelection()].split()[-1])
        return_list.append(
            self.book_list[self.inputChoices[1].GetSelection()].split()[-1])
        return return_list

    def OnAdd(self, event):
        my_list = self.GetDataFromFields()
        my_list.append(self.myOtherMethods.AddQuotes(self.loan_date))
        my_list.append(self.myOtherMethods.AddQuotes(self.return_date))
        my_list.append("0")
        error_message = "Книгата не може да се заеме, защото:\n".decode('utf8')
        if_error = 0
        if (int(
                self.myDataBaseConnector.GetNumberOfAvailableBooksWithId(
                    my_list[1])) <= 0):
            error_message += "всички бройки от тази книга вече са заети\n".decode(
                "utf8")
            if_error = 1
        if (self.myDataBaseConnector.GetIfUsersCardIsExpired(my_list[0])):
            error_message += "картата на потребителя е изтекла\n".decode(
                "utf8")
            if_error = 1
        if (if_error == 1):
            msg = wx.MessageDialog(self, error_message,
                                   "Грешка".decode('utf8'),
                                   wx.OK | wx.ICON_ERROR)
            msg.ShowModal()
            msg.Destroy()
        else:
            self.myDataBaseConnector.AddLoan(my_list)
            self.parent.myFormatedInfoGetter.UpdateMainInfo()
        self.Destroy()

    def InitMyWindow(self, title):
        wx.Frame.__init__(self, None, title=title, size=(460, 380))
        self.Center()

    def PopulateUsersList(self):
        self.user_list = self.myDataBaseConnector.GetAllUserIdsAndNames()

    def PopulateBooksList(self):
        self.book_list = self.myDataBaseConnector.GetAllBookIdsAndNames()

    def GetNewChoiceField(self, panel, label, index, list_of_choices):
        FirstBox = wx.BoxSizer(wx.HORIZONTAL)
        m_text = wx.StaticText(panel, -1, label)
        m_text.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))
        m_text.SetSize(m_text.GetBestSize())
        FirstBox.Add(m_text, 0, wx.ALL, 10)
        myChoice = wx.Choice(panel, choices=list_of_choices)
        self.inputChoices.append(myChoice)
        FirstBox.Add(self.inputChoices[index], 0, wx.LEFT, 10)
        return FirstBox
示例#6
0
from PySide2.QtWidgets import QApplication, QWidget, QHBoxLayout
import sys

from DatePicker import DatePicker

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = QWidget()
    window.setFixedSize(640, 480)
    layout = QHBoxLayout()
    window.setLayout(layout)
    datePicker = DatePicker()
    window.layout().addWidget(datePicker)
    window.show()
    sys.exit(app.exec_())