Client Class und Duty Roster hochgeladen

This commit is contained in:
David Gebert 2021-01-31 11:49:19 +01:00
commit 53406f4e3d
2 changed files with 150 additions and 0 deletions

125
client _test.py Normal file
View File

@ -0,0 +1,125 @@
import math
class key:
how_many_keys = 0
# Initialisierung eines Schlüssels
def __init__(self, keynumber):
self.number = keynumber
self.possessor = "Reception"
#where are the keys
def status_key(self, keynumber=None):
return self.number, self.possessor
def hand_out_key(self, keynumber, Guest):
self.possessor = Guest
def get_back_key(self, keynumber):
self.possessor = "Reception"
key_list = []
for i in range(11, 42, 10):
a = "key_" + str(i) + " = key(" + str(i) + ")"
exec(a)
a2 = "key_list.append(key_" + str(i) + ")"
exec(a2)
b = "key_" + str(i+1) + " = key(" + str(i+1) + ")"
exec(b)
b2 = "key_list.append(key_" + str(i+1) + ")"
exec(b2)
class Client():
months = ['Januar', 'Februar','März','April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
clients = 0
def __init__(self, name: str, surname: str, client_num: int, room_num: int, period, key_num: int, bookings, status: bool):
self.name = name
self.surname = surname
self.client_num = client_num
self.room_num = room_num
self.period = period
self.key_num = key_num
self.bookings = bookings
self.status = status
# Automatic status adjustment
if len(self.bookings) >= 4:
self.status = True
Client.clients += 1
def change_room(self, surname, room_num = 0, key_num = 0):
self.room_num = room_num
num_ = "key_" + str(key_num) + ".hand_out_key(" + str(key_num) + "," + "'" + str(surname) + "')"
try:
exec(num_)
self.key_num = key_num
except:
("Schlüssel mit Daten nicht gefunden.")
def name_change(self, name, surname):
self.name = name
self.surname = surname
# Length of stay as print
def period_print(self):
stay_period = []
for i in self.period:
if i.isdigit():
stay_period.append(i)
stay_period = tuple(stay_period)
# Same month
if stay_period[1] == stay_period[3]:
days = int(stay_period[0]) - int(stay_period[2])
month_num = int(stay_period[1]) + 1
month_print = Client.months[month_num]
print("Der Kunde bleibt", abs(days), "Tage.")
print("Vom", stay_period[0], "bis", stay_period[2], month_print)
# Across months
if stay_period[1] != stay_period[3]:
days = 28 - int(stay_period[0]) + int(stay_period[2])
month_num_1 = int(stay_period[1]) - 1
month_num_2 = int(stay_period[3]) - 1
month_print_1 = Client.months[month_num_1]
month_print_2 = Client.months[month_num_2]
print("Der Kunde bleibt", abs(days), "Tage.")
print("Vom", stay_period[0], month_print_1, "bis", stay_period[2], month_print_2)
# Client information
def info(self, action = None):
dic_ = {"Name" : self.name,
"Nachname" : self.surname,
"Kundennummer" : self.client_num,
"Zimmernummer" : self.room_num,
"Aufenthaltsdauer": self.period,
"Schlüsselnummer" : self.key_num,
"Buchungen" : self.bookings,
"VIP-Status" : self.status
}
if action != None:
# If asked client information is stay period
if action == "Aufenthaltsdauer":
client_num = self.client_num
stay = str(client_num)+ ".period_print()"
exec(stay)
# If asked client information is different
if action != "Aufenthaltsdauer":
for i in dic_:
if i == action:
print(action, "ist", dic_[i])
else:
for i in dic_:
print(i.ljust(16), ": ", dic_[i])
w43 = Client("David", "Gebert", "w43", 0, "11,2,5,3", 22, (51,61,77), False)

25
duty_roster.py Normal file
View File

@ -0,0 +1,25 @@
import random
def duty_roster_write():
with open('dienstplan.txt', 'w', encoding='utf8') as d:
employees = ['M. Gustave', 'Zero Mustafa', 'M. Jean', 'Agatha', 'M. Chuck']
job = ['Concierge', 'Lobby-Boy', 'Rezeptionist', 'Portier']
i = 1
while i < 53:
random.shuffle(employees)
random.shuffle(job)
a = "KW" + str(i)
d.write(a + "#" + employees[0] + ": " + job[0] + "#" + employees[1]\
+ ": " + job[1] + "#" + employees[2] + ": " + job[2] + "#" + employees[3] + ": " \
+ job[3] + "#" + "frei: " + employees[4] + "\n")
i += 1
def duty_roster_read():
with open('dienstplan.txt', 'r', encoding='utf8') as d:
for line in d:
print(line)
duty_roster_write()
duty_roster_read()