diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/Zeiterfassung.iml b/.idea/Zeiterfassung.iml
new file mode 100644
index 0000000..909438d
--- /dev/null
+++ b/.idea/Zeiterfassung.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..a6218fe
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..7c204cb
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/__pycache__/definitions.cpython-311.pyc b/__pycache__/definitions.cpython-311.pyc
new file mode 100644
index 0000000..0ba3c60
Binary files /dev/null and b/__pycache__/definitions.cpython-311.pyc differ
diff --git a/definitions.py b/definitions.py
new file mode 100644
index 0000000..7ceebf2
--- /dev/null
+++ b/definitions.py
@@ -0,0 +1,5 @@
+# Zeiterfassung
+# Quasi-Konsten
+
+app_title = "Zeiterfassung"
+app_version = "0.0.0"
\ No newline at end of file
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..e69de29
diff --git a/ui.py b/ui.py
new file mode 100644
index 0000000..971d2cb
--- /dev/null
+++ b/ui.py
@@ -0,0 +1,75 @@
+# Zeiterfassung
+# UI Definitionen
+
+import tkinter as tk
+import locale
+locale.setlocale(locale.LC_ALL, '')
+
+from time import strftime
+from definitions import app_title, app_version
+
+# Pinpad
+def win_pinpad():
+
+ def update_time():
+ string_time = strftime('%A, der %d.%m.%Y - %H:%M:%S')
+ nonlocal digital_clock
+ digital_clock.config(text=string_time)
+ digital_clock.after(1000, update_time)
+
+ root = tk.Tk()
+ root.title(app_title + " " + app_version)
+ # Digital clock label configuration
+ digital_clock = tk.Label(root)
+ digital_clock.grid(row=0, column=0, columnspan=3, padx=10, pady=10)
+ # Initial call to update_time function
+ update_time()
+
+ # Benutzernummer
+ tk.Label(root, text="Benutzernummer:").grid(row=1, column=0)
+ usernr = tk.Entry(root, width=10)
+ usernr.grid(row=1,column=1)
+
+ # Pinpad
+
+ def buttonPress(key):
+
+ nonlocal usernr
+ if type(key) is int:
+ if key < 10:
+ usernr.insert('end', str(key))
+ if key =="OK":
+ print("OK pressed")
+ if key == "<-":
+ usernr.delete(usernr.index("end") - 1 )
+ if len(usernr.get()) > 0:
+ buttons["OK"].configure(state="active")
+ else:
+ buttons["OK"].configure(state="disabled")
+
+ # Buttons definieren
+ button_width = 5
+ button_height = 2
+ pinframe = tk.Frame(root)
+ pinframe.grid(row=2, column=0, columnspan=3, padx=10, pady=10)
+ buttons = { }
+
+ keys = [
+ [ 1, 2, 3],
+ [ 4, 5, 6],
+ [ 7, 8, 9],
+ [ "<-", 0, "OK"]
+ ]
+
+ for y, row in enumerate(keys, 1):
+ for x, key in enumerate(row):
+ button = tk.Button(pinframe, width=button_width, height=button_height, text=key, command=lambda key=key: buttonPress(key))
+ button.grid(row=y, column=x)
+ buttons[key] = button
+
+ buttons["OK"].configure(state="disabled")
+
+ # Tkinter main loop
+
+ root.mainloop()
+
diff --git a/zeiterfassung.py b/zeiterfassung.py
deleted file mode 100644
index 52a504d..0000000
--- a/zeiterfassung.py
+++ /dev/null
@@ -1,113 +0,0 @@
-#
-#
-# Zeiterfassung
-
-# Bibliotheksimports
-import time
-import datetime
-import os
-
-# Statische Definitionen
-# Pfade:
-userfolder = "users"
-settingsfolder = "settings"
-program_name = "Zeiterfassung"
-program_version = "0.0.0"
-
-# Funktionen
-
-# Zeitstempel schreiben
-def append_timestamp(filename):
- # Hole den aktuellen Timestamp in Epoch-Zeit
- timestamp = int(time.time())
-
- try:
- # Öffne die Datei im Anhang-Modus ('a')
- with open(filename, 'a') as file:
- # Schreibe den Timestamp in die Datei und füge einen Zeilenumbruch hinzu
- file.write(f"{timestamp}\n")
- except FileNotFoundError:
- # Fehlende Verzeichnisse anlegen
- folder_path = os.path.dirname(filename)
- os.makedirs(folder_path, exist_ok=True)
- append_timestamp(filename)
-
-# Anzahl der Zeilen zählen
-def len_timestamps(filename):
- try:
- # Öffne die Datei im Lese-Modus ('r')
- with open(filename, 'r') as file:
- # Zähle die Zeilen
- lines = file.readlines()
- return len(lines)
- except FileNotFoundError:
- print(f"Die Datei {filename} wurde nicht gefunden.")
- return 0
-
-# Stempelzustand auslesen
-def stempel_zustand(filename):
- lines = len_timestamps(filename)
- if lines == 0:
- print(f"Keine Einträge")
- elif lines % 2 == 0:
- return("in")
- else:
- return("out")
-
-# Stempelübersicht zusammenstellen
-def overview(filename):
-
- # Öffne die Datei im Lese-Modus ('r')
- with open(filename, 'r') as file:
- lines = file.readlines()
-
- in_times = []
- out_times = []
-
- for i in range(0, len(lines)-1):
- if (i + 1) % 2 == 0:
- out_times.append(lines[i])
- else:
- in_times.append(lines[i])
- for i in range(0, len(in_times) - 1):
- print(str(in_times[i]) + " - " + str(out_times[i]))
-
-# Pfade bestimmen
-def scriptpath():
- return os.path.dirname(os.path.abspath(__file__))
-
-def determine_filename(user):
- year = str(datetime.datetime.now().year)
- month = str(datetime.datetime.now().month)
- completepath = scriptpath() + "/" + userfolder +"/" + user + "/" + year + "-" + month + ".txt"
- return completepath
-
-# Benutzer anhand Verzeichnisse auflisten
-def list_users(directory):
- users = [d for d in os.listdir(directory) if os.path.isdir(os.path.join(directory, d))]
- return users
-
-
-# Hauptfunktion
-def main():
- print(program_name + " " + str(program_version))
- print("Welche Funktion soll ausgeführt werden?")
- print("1: Stempeln")
- print("2: Stempelübersicht anzeigen")
- question = int(input("Geben Sie Ihre Antwort ein: "))
-
- if question == 1:
- which_user = input("Für welchen User soll gestempelt werden? ")
- append_timestamp(determine_filename(which_user))
- print("Stempeleintrag vorgenommen")
- elif question == 2:
- which_user = input("Für welchen User sollen die Stempelzeiten angezeigt werden?" )
- print("Zustand: " + stempel_zustand(determine_filename(which_user)))
- overview(determine_filename(which_user))
- else:
- print("Keine Eingabe erkannt.")
-
-
-# Programmstart
-if __name__ == "__main__":
- main()
\ No newline at end of file