Book Keeping hinzgefügt
This commit is contained in:
parent
882c73de9c
commit
8ceae79bc3
|
@ -0,0 +1,111 @@
|
|||
class Accounting():
|
||||
all_bills = []
|
||||
counter = 0
|
||||
def __init__(self, name:str, surname:str, room_num, key_num, period:str, bill_num:str, bill_status:bool):
|
||||
self.name = name
|
||||
self.surname = surname
|
||||
self.room_num = room_num
|
||||
self.key_num = key_num
|
||||
self.period = period
|
||||
Accounting.counter += 1
|
||||
self.bill_status = bill_status
|
||||
|
||||
|
||||
def show_bill(self):
|
||||
|
||||
stay_period = []
|
||||
num_string = ""
|
||||
for i in self.period:
|
||||
if i.isnumeric():
|
||||
num_string += i
|
||||
if i == ",":
|
||||
stay_period.append(num_string)
|
||||
num_string = ""
|
||||
|
||||
stay_period.append(num_string)
|
||||
|
||||
stay_period = tuple(stay_period)
|
||||
# Same month
|
||||
|
||||
if stay_period[1] == stay_period[3]:
|
||||
days = int(stay_period[0]) - int(stay_period[2])
|
||||
|
||||
# Across months
|
||||
if stay_period[1] != stay_period[3]:
|
||||
# Stay period more than 1 month
|
||||
if int(stay_period[3]) - int(stay_period[1]) > 1:
|
||||
days = 28 - int(stay_period[0]) + int(stay_period[2]) + \
|
||||
((int(stay_period[3]) - int(stay_period[1])-1) * 28)
|
||||
# Stay period
|
||||
else:
|
||||
days = 28 - int(stay_period[0]) + int(stay_period[2])
|
||||
|
||||
costs = int(days) * int(self.room_num)
|
||||
|
||||
"""_______________________________________________________________________"""
|
||||
lines = [[] for i in range(13)]
|
||||
lines[0].append( '┌─────────────────────────────┐')
|
||||
lines[1].append( '│ Rechnung │')
|
||||
lines[2].append( '│ │')
|
||||
lines[3].append( '│Kunde: {} {} '.format(self.name, self.surname))
|
||||
lines[4].append( '│Zimmer: {} '.format(self.room_num))
|
||||
lines[5].append( '│Anz. Tage:{} '.format(days))
|
||||
lines[6].append( '│pro Nacht:{} '.format(self.room_num))
|
||||
lines[7].append( '│Kosten: {}€ '.format(costs))
|
||||
lines[8].append( '│ ')
|
||||
lines[9].append( '│Rech. Nr.:{} '.format(self.bill_num,))
|
||||
lines[10].append('│Beglichen:{} '.format(self.bill_status))
|
||||
lines[11].append('│ │')
|
||||
lines[12].append('└─────────────────────────────┘')
|
||||
|
||||
for i in lines:
|
||||
print(i[0])
|
||||
|
||||
|
||||
def pay_bill(self):
|
||||
self.bill_status = True
|
||||
|
||||
|
||||
def __del__(self):
|
||||
print("Rechnung wurde storniert.")
|
||||
|
||||
|
||||
r43 = Accounting("Karl", "Otto", 16, 21,"2,3,4,5", "", False)
|
||||
bill_list = ["r43"]
|
||||
|
||||
|
||||
def add_bill():
|
||||
name = input("Name : ")
|
||||
surname = input("Nachname :")
|
||||
client_num = input("Kundennummer :")
|
||||
room_num = input("Zimmernummer :")
|
||||
period = input("Aufenthaltszeitraum :")
|
||||
key_num = input("Schlüsselnummer :")
|
||||
bill_num = "r" + str(Accounting.counter)
|
||||
|
||||
c = bill_num + " = Accounting(" + '"' + str(name) + '"' + "," + '"' + \
|
||||
str(surname) + '"' + "," + '"' + str(room_num) + '"' + "," + '"' + str(key_num) \
|
||||
+ '"' + "," + '"' + str(period) + '"' + "," + '"'+ str(bill_num) + '"' + ", False)"
|
||||
try:
|
||||
exec(c)
|
||||
bill_list.append(bill_num)
|
||||
except:
|
||||
print("Konnte nicht ausgeführt werden")
|
||||
print(c)
|
||||
print(bill_list)
|
||||
|
||||
|
||||
def show_single_bill():
|
||||
while True:
|
||||
k = input("Rechnungsnummer? ")
|
||||
if k in bill_list:
|
||||
break
|
||||
c = str(k) + ".show_bill()"
|
||||
exec(c)
|
||||
|
||||
"""
|
||||
def delete_bill():
|
||||
input_ = input("Rechnungsnummer: ")
|
||||
delete = "del " + input_
|
||||
exec(delete)
|
||||
"""
|
Loading…
Reference in New Issue