Python: My Orders Tracker P-4
Learning : Pythn, sqlite, Database, SQL
Subject: Create a system to track the orders
In this last part we will write the code to Edit an Order, in editing an order function first we will show all orders and will ask the user to select the one to be EDIT, then we will display that order detail on the screen and ask the user to confirm the action by entering ‘Y’ [our code will handel both y and Y]. We will ask the user about each attribute in the Order details if it need to be change or [Just press Enter to Keep the Current Data], also if the user enter ‘e’ or ‘E’ we will exit from the Editing mode.
Here is the code ..
# Function to Edit an Order def edit_order(): os.system('clear') print("\n==========[ Edit Orders ]==========") show_order('yes') edit_order = input(' Select the Order ID to be Edited. [E to Exit] > ') if edit_order in ['e','E'] : return elif not edit_order.isnumeric() : input('\n You need to enter an Order''s ID [Numeric]. .. Press any Key .. ') return try: c.execute ("select * from orders where o_id ={}".format(edit_order)) order_list = c.fetchone() if order_list == [] : input('\n ID {} Not Exsist. .. Press any key to continue. '.format(edit_order)) return os.system('clear') print("\n==========[ Edit Orders ]==========\n") print('\n Details of the Order you select:\n ') print(" "*15,"ID: ",order_list[0]) print(" "*13,"Date: ",order_list[1]) print(" "*5,"Order Number: ",order_list[2]) print(" "*12,"Price: ",order_list[4]) print(" "*9,"Quantity: ",order_list[5]) print(" "*3,"Shipment Price: ",order_list[6]) print(" "*7,"Total Cost: {:.2f}".format((order_list[4]*order_list[5]) + order_list[6])) print(" "*6,"Description: ",order_list[3]) print(" "*12,"Image:",order_list[8]) print(" "*13,"Link:",order_list[7]) user_confirm = input("\n\n You Select to EDIT the above Order, Enter Y to confirm, E to Exit. > ") if user_confirm in ['e','E'] : input('\n You entered ''E'' to Exit. Nothing will be change. Press any key. ') return if user_confirm in ['y','Y'] : #To Edit the order.. print("#"*57) print("##"," "*51,"##") print("## NOTE: Enter E any time to EXIT/Quit."," "*12,"##") print("## OR JUST Press Enter to keep the Current data."," ##") print("##"," "*51,"##") print("#"*57,) while True : new_date = input (f'\n The current date is: {order_list[1]}, Enter the New date as[dd-mm-yyyy] > ') if e_to_exit(new_date) =='e' : return if new_date =="" : break # Break the while loop if the user want to keep the current Date. if date_validation (new_date) == 'valid' : break else : print(date_validation (new_date)) new_onum = input (f'\n The current Order Number is: {order_list[2]}, Enter the New Order Number. [E to Exit]. > ') if e_to_exit(new_onum) =='e' : return new_qunt = input (f'\n The current Quantity is: {order_list[5]}, Enter the New Quantity. [E to Exit]. > ') if e_to_exit(new_qunt) =='e' : return new_price = input (f'\n The current Price is: {order_list[4]}, Enter the New Price. [E to Exit]. > ') if e_to_exit(new_price) =='e' : return new_ship_price = input (f'\n The current shipment Price is: {order_list[6]}, Enter the New Quantity. [E to Exit]. > ') if e_to_exit(new_ship_price) =='e' : return new_link = input (f'\n The current link is: {order_list[7]}, Enter the New Link. [E to Exit]. > ') if e_to_exit(new_link) =='e' : return new_image = input (f'\n The current Image is: {order_list[8]}, Enter the New Image (path). [E to Exit]. > ') if e_to_exit(new_image) =='e' : return new_desc = input (f'\n The current Description is:\n {order_list[3]}.\n\n Enter the New Description. [E to Exit]. > ') if e_to_exit(new_image) =='e' : return # Updating the record in the DataBase. if new_date > '' and new_date != "e" : c.execute("update orders set order_date = '{}' where o_id = {}".format(new_date,int(order_list[0]))) db_conn.commit() if new_onum > '' and new_onum != "e" : c.execute("update orders set order_num = '{}' where o_id = {}".format(new_onum,int(order_list[0]))) db_conn.commit() if new_qunt > '' and new_qunt != "e" : c.execute("update orders set order_quantity = '{}' where o_id = {}".format(new_qunt,int(order_list[0]))) db_conn.commit() if new_price > '' and new_price != "e" : c.execute("update orders set order_price = '{}' where o_id = {}".format(new_price,int(order_list[0]))) db_conn.commit() if new_ship_price > '' and new_ship_price != "e" : c.execute("update orders set order_price = '{}' where o_id = {}".format(new_ship_price,int(order_list[0]))) db_conn.commit() if new_link > '' and new_link != "e" : c.execute("update orders set order_link = '{}' where o_id = {}".format(new_link,int(order_list[0]))) db_conn.commit() if new_image > '' and new_image != "e" : c.execute("update orders set order_img = '{}' where o_id = {}".format(new_image,int(order_list[0]))) db_conn.commit() if new_desc > '' and new_image != "e" : new_desc = " ".join([word.capitalize() for word in new_desc.split(" ")]) c.execute("update orders set order_desc = '{}' where o_id = {}".format(new_desc,int(order_list[0]))) db_conn.commit() input('\n One record has been EDITED and Saved... \n ... Press any key to Continue ...') else: input('\n Wrong input ... Press any key to continue ..') except: pass
[All the System Codes available in Download Page.]
Finish: Now we have an application that will store and retrieve our simple order data.
Enhancement: We can do some enhancement in [link and image] data part to show and display them in better way.
Part 1 | Part 2 | Part 3 | Part 4 |
To Download my Python code (.py) files Click-Here
By: Ali Radwani