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()
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)
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()
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()
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()
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()
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()
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]
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")
def addWorker(firstName, lastName, frame): newWorker = api.addWorker(firstName, lastName) showWorker(newWorker, frame)
def deleteClient(id, cFrame): cFrame.destroy() api.deleteClient(id)
def addClient(name, frame): newClient = api.addClient(name) system.generateTerminalCode(newClient['NameC'], newClient['IdC']) showClient(newClient, frame)