Esempio n. 1
0
def generateReport(workerId):
    loggs = api.getWorkersInOut(workerId)
    worker = api.getWorkerData(workerId)
    path = "Reports/%s_%s_%d_%s.csv" % (worker['firstName'],
                                        worker['LastName'], worker['IdW'],
                                        datetime.datetime.now().date())
    inList = []
    outList = []
    for log in loggs:
        if log['InOut'] == 'i':
            inList.append(log['DateL'])
        else:
            outList.append(log['DateL'])

    if len(inList) > len(outList):
        outList.append(str(datetime.datetime.now()))

    workTime = datetime.timedelta()

    file = open(path, 'w')

    file.write("In;Out;Time in work\n")

    for i in range(0, len(inList)):
        logIn = datetime.datetime.strptime(inList[i], "%Y-%m-%d %H:%M:%S.%f")
        logOut = datetime.datetime.strptime(outList[i], "%Y-%m-%d %H:%M:%S.%f")
        oneTimeWork = logOut - logIn
        workTime += oneTimeWork
        floatOneTime = (oneTimeWork.total_seconds() / 3600)
        file.write("%s;%s;%f\n" % (inList[i], outList[i], floatOneTime))
    floatTime = (workTime.total_seconds() / 3600)
    file.write(";All time in work;%f" % floatTime)

    file.close()
Esempio n. 2
0
def asignWorker(cardId, workerFrame):
    selectedWorker = selectWorker(True)

    if str(selectedWorker) == "0":
        api.setCard(cardId, None)
        for wid in workerFrame.winfo_children():
            wid.destroy()
        Label(workerFrame, text="Nie przypisano").grid(column=0, row=0)
    elif str(selectedWorker) == "-1":
        return
    else:
        api.setCard(cardId, selectedWorker)
        for wid in workerFrame.winfo_children():
            wid.destroy()
        card = api.getCardWorker(cardId)
        Label(workerFrame, text=card['Worker']).grid(column=0, row=0)
        Label(workerFrame, text=card['FirstName']).grid(column=1, row=0)
        Label(workerFrame, text=card['LastName']).grid(column=2, row=0)
Esempio n. 3
0
def ukUsagesView():
    ukUsages = api.getUnknownUsagesList()

    ukUsagesWindow = Tk()
    ukUsagesWindow.title("Przeglądanie nieznnych użyć")
    Label(ukUsagesWindow, text="Baza nieznanych użyć:").pack()

    ukUsagesFrame = ScrollableFrame(ukUsagesWindow)
    ukUsagesFrame.pack()

    for ukUsage in ukUsages:
        showUkUsage(ukUsage, ukUsagesFrame.scrollable_frame)

    ukUsagesWindow.mainloop()
Esempio n. 4
0
def logsView():
    logs = api.getLogsInOutList()

    logsWindow = Tk()
    logsWindow.title("Przeglądanie logowań")
    Label(logsWindow, text="Baza logowań:").pack()

    logsFrame = ScrollableFrame(logsWindow)
    logsFrame.pack()

    for log in logs:
        showLog(log, logsFrame.scrollable_frame)

    logsWindow.mainloop()
Esempio n. 5
0
def cardsManagement():
    cards = api.getCardsList()

    cardsWindow = Tk()
    cardsWindow.title("Zarządzanie kartami")
    Label(cardsWindow, text="Baza kart:").pack()

    cardsFrame = ScrollableFrame(cardsWindow)
    cardsFrame.pack()

    for card in cards:
        showCard(card, cardsFrame.scrollable_frame)

    cardsWindow.mainloop()
Esempio n. 6
0
def workersManagement():
    workers = api.getWorkersList()

    workersWindow = Tk()
    workersWindow.title("Zarządzanie pracownikami")
    Label(workersWindow, text="Baza pracowników:").pack()

    workersFrame = ScrollableFrame(workersWindow)
    workersFrame.pack()

    Button(
        workersWindow,
        text="+",
        fg="green",
        command=lambda: addWorkerWindow(workersFrame.scrollable_frame)).pack(
            side=TOP)

    for worker in workers:
        showWorker(worker, workersFrame.scrollable_frame)

    workersWindow.mainloop()
Esempio n. 7
0
def clientsManagment():
    clients = api.getClientsList()

    clientsWindow = Tk()
    clientsWindow.title("Zarządzanie klientami")
    infoLabel = Label(clientsWindow, text="Baza klientów:")
    infoLabel.pack()

    clientsFrame = ScrollableFrame(clientsWindow)
    clientsFrame.pack()

    Button(
        clientsWindow,
        text="+",
        fg="green",
        command=lambda: addClientWindow(clientsFrame.scrollable_frame)).pack(
            side=TOP)

    for client in clients:
        showClient(client, clientsFrame.scrollable_frame)

    clientsWindow.mainloop()
Esempio n. 8
0
def selectWorker(noneSelectOption):

    workersWindow = Tk()
    workersWindow.title("Wybór pracownika")

    Label(workersWindow, text="Wybierz pracownika:").pack()
    selectedWorker = [-1]
    workers = api.getWorkersList()

    scrFrame = ScrollableFrame(workersWindow)
    scrFrame.pack()

    workersFrame = scrFrame.scrollable_frame

    for worker in workers:
        workerFrame = Frame(workersFrame)
        Label(workerFrame, text=worker['IdW']).grid(column=0, row=0)
        Label(workerFrame, text=worker['FirstName']).grid(column=1, row=0)
        Label(workerFrame, text=worker['LastName']).grid(column=2, row=0)
        Button(workerFrame,
               text="Wybierz pracownika",
               command=lambda workerId=worker['IdW']: selectButtonOnClick(
                   workerId, selectedWorker, workersWindow)).grid(column=3,
                                                                  row=0)
        workerFrame.pack()

    if noneSelectOption:
        Button(workersFrame,
               text="Brak pracownika",
               command=lambda: selectButtonOnClick(0, selectedWorker,
                                                   workersWindow)).pack()

    workersFrame.pack()

    Button(workersWindow, text="Anuluj", command=workersWindow.destroy).pack()

    workersWindow.wait_window()
    return selectedWorker[0]
Esempio n. 9
0
def RFIDHandler(clientId, cardId, date):
    if api.doesClientExist(clientId):
        if api.doesCardExist(cardId):
            worker = api.getCardWorker(cardId)
            if worker == None:
                api.addUnknownUsage(clientId, cardId, date)
                return None
            elif api.isWorkerLoggedIn(worker['Worker']):
                api.addLogInOut(clientId, worker['Worker'], 'o', date)
                api.logOutWorker(worker['Worker'])
                return worker
            else:
                api.addLogInOut(clientId, worker['Worker'], 'i', date)
                api.logInWorker(worker['Worker'])
                return worker
        else:
            api.addCard(cardId, None)
            api.addUnknownUsage(clientId, cardId, date)
            return None
    else:
        print("Próba logowania z nieuprawnionego klienta")
Esempio n. 10
0
def addWorker(firstName, lastName, frame):
    newWorker = api.addWorker(firstName, lastName)

    showWorker(newWorker, frame)
Esempio n. 11
0
def deleteClient(id, cFrame):
    cFrame.destroy()
    api.deleteClient(id)
Esempio n. 12
0
def addClient(name, frame):
    newClient = api.addClient(name)
    system.generateTerminalCode(newClient['NameC'], newClient['IdC'])

    showClient(newClient, frame)