0

Need help with a code.

Hello, I have this code below, I used easy gui, Pickle and date.time. I've gotten this so far and I need help with a few things. Here's what I need help with: Produce replacement invoices for cancelled orders Also add a standard delivery charge of £5.99 for all orders. Order over £50 not inc delivery recieves a 5% discount. If an order is cancelled the user is charged 20% of the cost of the order. Also the program needs to have built using simple code that's understandable and needs to be annotated with comments using hashes.

3rd Mar 2020, 6:12 PM
Slendy
Slendy - avatar
5 odpowiedzi
+ 1
from easygui import * import datetime import pickle try: fh = open( "orders.p", "rb" ) pickle.load(orders,fh) fh.close() except: orders = [] orders = [] def mainmenu(): while True: msg = """»»————-— ★ ———————-«« Ceramic Arts »»————-— ★ ———————-«« """ title = "Press The Button you'd like to go to." menuoptions = ["Create Order" , "Find Order" , "Edit Order" , "Exit"] choice = buttonbox(msg,choices=menuoptions) if choice == "Create Order": createorder() elif choice == "Find Order": findorder() elif choice =="Pay Order": payorder() elif choice =="Exit": break def createorder(): msgbox("-★Create Your Order★-") neworder = [] while True: studentname = enterbox("Enter Student Name ") if studentname != "": break neworder.append(studentname) form = enterbox("Enter Form") neworder.append(form) email = enterbox("Enter Email Address ") neworder.append(email) colour = enterbox("Enter Hoody Colour ") neworder.append(colour) hoodytext = enterbox("Enter Hoody Text ") neworder.append(hoodytext) while True: qty = enterbox("Enter Quantity ") if qty.isnumeric(): break else: msgbox("Error with number") neworder.append(qty) price = enterbox("Enter Price ") neworder.append(price) paid = "NO" neworder.append(paid) today = datetime.date.today() todaystring = str(today) neworder.append(todaystring) orders.append(neworder) msgbox("Hoody order for", studentname, "created.") recordnumber = len(orders) - 1 receipt(recordnumber) fh = open( "orders.p", "wb" ) pickle.dump( orders, fh) fh.close()
3rd Mar 2020, 6:14 PM
Slendy
Slendy - avatar
0
def findorder() : msgbox("-★Find Order★-") searchterm = enterbox("Enter A Name To Search.") for singleorder in orders: if searchterm in singleorder: msgbox("Student Name :" + singleorder[0]) msgbox("Form:" + singleorder[1]) msgbox("Email :" + singleorder[2]) msgbox("Colour:" + singleorder[3]) msgbox("Hoody Text:" + singleorder[4]) msgbox("QTY :" + singleorder[5]) msgbox("Price (£):" + singleorder[6]) msgbox("Paid:" + singleorder[7]) msgbox("Date:" + singleorder[8]) def payorder(): msgbox("-★Pay For Order★-") recordnumber = enterbox("Enter a record you want to mark as paid") if recordnum.isdigit() and recordnum in range(0,len(orders)-1): msgbox("Student Name :" + orders[recordnum][0]) msgbox("Form :" + orders[recordnum][1]) msgbox("Email :" + singleorder[2]) msgbox("Colour :" + singleorder[3]) msgbox("Hoody Text :" + singleorder[4]) msgbox("QTY :" + singleorder[5]) msgbox("Price (£) :" + singleorder[6]) msgbox("Paid :" + singleorder[7]) msgbox("Date :" + singleorder[8]) answer = enterbox("Do you want to mark your order as paid? Yes / No.") if answer == "Yes": orders[recordnum][7] = "Yes" receipt(recordnum)
3rd Mar 2020, 6:14 PM
Slendy
Slendy - avatar
0
def findoldunpaidorders(): msgbox("-★Find Old Orders★-") d1 = datetime.date.today() for singleorder in orders: d2string = singleorder[8] #gets date in format of yyyy-mm-dd year = int(d2string[0:4]) #extracts day, month year month = int(d2string[5:7]) # converts to ints day = int(d2string[8:10]) d2 = datetime.date(year,month,day) #creates date time object timedelta = d2-d1 #calculates time difference dayselapsed = timedelta.days # gets days diffence if dayselapsed > 10: msgbox("Student Name :" + singleorder[0]) msgbox("Form:" + singleorder[1]) msgbox("Email :" + singleorder[2]) msgbox("Colour:" + singleorder[3]) msgbox("Hoody Text:" + singleorder[4]) msgbox("QTY :" + singleorder[5]) msgbox("Price (£):" + singleorder[6]) msgbox("Paid:" + singleorder[7]) msgbox("Date:" + singleorder[8]) def receipt(recordnum): msgbox("***Creating Receipt***") receiptstring = "Recipet Number: " + str(recordnum) receiptstring += "\n" + "Student Name: " + orders[recordnum][0] receiptstring += "\n" + "Form: " + orders[recordnum][1] receiptstring += "\n" + "Email: " + orders[recordnum][2] receiptstring += "\n" + "Colour: " + orders[recordnum][3] receiptstring += "\n" + "Hoody Text: " + orders[recordnum][4] receiptstring += "\n" + "QTY: " + orders[recordnum][5] receiptstring += "\n" + "Price (£): " + orders[recordnum][6] receiptstring += "\n" + "Paid: " + orders[recordnum][7] receiptstring += "\n" + "Date: " + orders[recordnum][8]
3rd Mar 2020, 6:15 PM
Slendy
Slendy - avatar
0
qty = orders[recordnum][5] price = orders[recordnum][6] total = int(qty) * float(price) totalstring = str(total) receiptstring += "/n" + "total (£):" + totalstring msgbox(receiptstring) filename = "receipt"+str(recordnum)+".txt" fh = open(filename, "w") fh.write(receiptstring) fh.close() msgbox("Receipt has been saved to a file!")
3rd Mar 2020, 6:15 PM
Slendy
Slendy - avatar
0
Sort by date.
3rd Mar 2020, 6:16 PM
Slendy
Slendy - avatar