'''
Author: Maria Logan
This code is written to allow a user to create, delete or modify
orders using object-oriented programming.
'''
orderList = {}
class theOrder:
# class attribute
count = 0
def __init__(self, number, type, amount):
# object atributes/fields
self.number = number
self.type = type
self.amount = amount
theOrder.count += 1
def setnumber(self, number):
self.number = number
def settype(self, type):
self.type = type
def setamount(self, amount):
self.amount = amount
def getnumber(self):
return self.number
def gettype(self):
return self.type
def getamount(self):
return self.amount
def displayData(self):
print("")
print("Order Information: ")
print("--------------------------")
print("Order Number: ", self.number)
print("Order Name: ", self.type)
print("Order Price: ", self.amount)
def displayMenu():
print("===========Main Menu===========")
print("1. Add Order")
print("2. Delete Order")
print("3. Edit Order")
print("4. Display Orders")
print("5. Save Order")
print("6. Exit the Program")
print("")
return int(input("Selection: "))
def addItem():
number = int(input("Enter item number: "))
type = input("Enter order type: ")
amount = float(input("Enter item amount: "))
order = theOrder(number, type, amount)
orderList[number] = order
def removeItem():
removeNumber = int(input("Enter item number to be removed: "))
if removeNumber in orderList:
del orderList[removeNumber]
else:
print("Item Not Found.")
def editItem():
oldNumber = int(input("Enter item number to edit: "))
if oldNumber in orderList:
newNumber = int(input("Enter new item number: "))
newType = input("Enter new item name: ")
newAmount = float(input("Enter new item amount: "))
orderList[oldNumber] = theOrder(newNumber, newType, newAmount)
else:
print("Item not found in list.")
def printItem():
if len(orderList) == 0:
print("No items in dictionary.")
else:
for x in orderList.keys():
orderList[x].displayData()
def saveData():
FILE_NAME = 'Logan_Maria.txt'
print('Saving Data')
with open(FILE_NAME, 'w') as f:
for item in orderList.keys():
order = orderList[item]
out_str = f'{order.number},{order.type},{order.amount}'
NL = chr(0xA) # NL char
f.write(out_str + NL)
print('Finished Saving Data')
while True:
print("")
selection = displayMenu()
if (selection == 1):
addItem()
elif (selection == 2):
removeItem()
elif (selection == 3):
editItem()
elif (selection == 4):
printItem()
elif (selection == 5):
saveData()
elif (selection == 6):
print("Thank you for coming!")
break
else:
print("Please enter a valid option 1-6.")
print("Exiting Program")