def submit_ride_form(): check_user_ride_status=DbManager.get_user_ride_status(self,global_username) check_user_ride_status_list = [] for i in range(len(check_user_ride_status)): check_user_ride_status_list.append(check_user_ride_status[i][0]) if (("PENDING" in check_user_ride_status_list) or ("ACCEPT" in check_user_ride_status_list)or ("RUNNING" in check_user_ride_status_list)): alert.showinfo("info", "You have already requested for a ride!") else: list_of_ride_id = DbManager.get_ride_id(self) customer_ride_data = [] customer_ride_data.append(current_location_textfield_entry.get()) customer_ride_data.append(destination_location_textfield_entry.get()) customer_ride_data.append(num_of_people_textfield_entry.get()) customer_ride_data.append(num_of_luggage_textfield_entry.get()) customer_ride_data.append(type_of_ride_Selector.get()) customer_ride_data.append(global_username) while (True): current_ride_id = username.upper() + str(random.randint(0, 10000)) if (list_of_ride_id == 0): customer_ride_data.append(current_ride_id) break elif (current_ride_id not in list_of_ride_id): customer_ride_data.append(current_ride_id) break DbManager.submitted_rides(self, customer_ride_data) Thread(target=RideForm.timer_to_search_drivers,args=(self,global_username,)).start() alert.showinfo("info", "Ride submitted succesfully") ride_form_window.destroy() customer_window.deiconify()
def accept_result(): DbManager.modify_ride_distribution(self, ride_id[0], "accept", drivername) individual_ride_window.destroy() ride_details = DbManager.fetch_ride_details( self, ride_id[0]) user_phone_number = DbManager.fetch_user_phone_no( self, ride_details[5]) Ride_acceptance_window.accepted_ride_window( self, ride_details, user_phone_number)
def start_ride(): Thread(target=Ride_acceptance_window.reached_location, args=( self, ride_details, user_details, )).start() start_ride_window.destroy() DbManager.modify_ride_distribution_after_verification( self, "ride_started", ride_details[6]) driver_winodw_mainscreen.deiconify()
def toggle(): if availability_button.config('text')[-1] == 'Available': availability_button.config(text='Un-Available') current_status_of_driver = "Un-Available" DbManager.modify_driver_availability(self, global_username, current_status_of_driver) else: availability_button.config(text='Available') current_status_of_driver = "Available" DbManager.modify_driver_availability(self, global_username, current_status_of_driver)
def reached_location(self, ride_details): count = 0 while (True): time.sleep(1) count += 1 if (count == 20): alert.showinfo( "Info", "Hey ," + " You Reached destination!" + "\nRIDE ID: " + ride_details[6]) DbManager.modify_ride_distribution_after_verification( self, "completed", ride_details[6]) break
def verify_user(): login_result,usertype,firstname,lastname = DbManager.validate_credentials(self,username_textfield_entry.get(),passwrod_textfield_entry.get()) if(login_result==True): DbManager.active_users(self,username_textfield_entry.get(),passwrod_textfield_entry.get()) self.navigate_to_respective_screen(login_window,usertype,username_textfield_entry.get(),firstname,lastname) else: alert.showinfo("info","Invalid credentials") username_textfield_entry.delete(0,'end') passwrod_textfield_entry.delete(0,'end')
def get_pending_rides_list(): availability_status = DbManager.check_driver_availability( self, global_username) if (availability_status != 0): driver_status = DbManager.verify_driver_status(self, username) if (driver_status == 0): Ride_acceptance_window.ride_window(self, username) else: alert.showinfo("info", "Driver has already accepted a ride") else: alert.showinfo("Info", "Turn on availabilty before accepting rides!")
def timer_to_search_drivers(self,username): count=0 while(True): time.sleep(1) count+=1 if(count==30): status=DbManager.get_user_ride_status_for_timer(self,username) if(status==1): DbManager.remove_ride_no_driver_found(self,username) alert.showinfo("Info","No Drivers found. Try after some time!") break else: break
def on_submission(): user_data=[] user_data.append(firstname_textfield_entry.get()) user_data.append(lastname_textfield_entry.get()) user_data.append(address_textfield_entry.get()) user_data.append(contact_textfield_entry.get()) user_data.append(emailid_textfield_entry.get()) user_data.append(radio_button_selector.get()) user_data.append(username_textfield_entry.get()) user_data.append(password_textfield_entry.get()) DbManager.insertuser(self,user_data) alert.showinfo("Info", "Registered Successfully") register_window.destroy() Login_Screen.LoginPage.login_screen(self)
def customer_ride_history_window(self, username): ride_history = DbManager.fetch_ride_details_customer_history(self, username) if(ride_history!=0): if(ride_history[0][7]!="PENDING"): customer_ride_history_window = Tk.Tk() customer_ride_history_window.title("Ride History") listbox = Tk.Listbox(customer_ride_history_window, width=30, height=20) listbox.pack(side=Tk.LEFT, fill=Tk.BOTH) scrollbar = Tk.Scrollbar(customer_ride_history_window) scrollbar.pack(side=Tk.RIGHT, fill=Tk.BOTH) for i in range(len(ride_history)): listbox.insert(Tk.END, "RIDE ID: " + ride_history[i][6]) listbox.insert(Tk.END, "DESTINATION: " + ride_history[i][1]) listbox.insert(Tk.END, "DRIVER NAME: " + ride_history[i][8]) listbox.insert(Tk.END, "RIDE STATUS: " + ride_history[i][7]) listbox.insert(Tk.END, "\n") listbox.config(yscrollcommand=scrollbar.set) scrollbar.config(command=listbox.yview) customer_ride_history_window.mainloop() else: alert.showinfo("info","No History Avaialble") else: alert.showinfo("info","No History Avaialble")
def repeat_ride_window_customer(self,customer_window,username): ride_history_destinations = DbManager.fetch_customer_completed_destinations(self, username) if(ride_history_destinations==0): alert.showinfo("info","No Completed rides available!") else: repeat_ride_window = Tk.Tk() repeat_ride_window.title("Repeat Ride") repeat_ride_window.geometry("300x300") destination_listbox = Tk.Listbox(repeat_ride_window, width=35, height=12) destination_listbox.pack(pady=25) for i in range(len(ride_history_destinations)): destination_listbox.insert(Tk.END, ride_history_destinations[i][0]) destination_listbox.insert(Tk.END, "") def repeat_ride(): if(destination_listbox.get(Tk.ANCHOR)!=""): ride_history_repeat = DbManager.fetch_ride_details_customer_repeat(self, global_username,destination_listbox.get(Tk.ANCHOR)) RideForm.ride_form_for_repeat(self,customer_window,username,ride_history_repeat,repeat_ride_window) else: alert.showinfo("Info","Select the destination") my_button = Tk.Button(repeat_ride_window, text="Repeat Ride", command=repeat_ride, width=13, height=2) my_button.place(x=80, y=250) global my_label my_label = Tk.Label(repeat_ride_window, text=" ") repeat_ride_window.mainloop()
def ride_history_window(self, username): ride_history = DbManager.fetch_rides_distribution_of_driver( self, username) if (len(ride_history) != 0): ride_history_window = Tk.Tk() ride_history_window.title("Ride History") listbox = Tk.Listbox(ride_history_window, width=30, height=20) listbox.pack(side=Tk.LEFT, fill=Tk.BOTH) scrollbar = Tk.Scrollbar(ride_history_window) scrollbar.pack(side=Tk.RIGHT, fill=Tk.BOTH) for i in range(len(ride_history)): listbox.insert(Tk.END, "RIDE ID: " + ride_history[i][1]) if "REJECT" in ride_history[i][2]: listbox.insert(Tk.END, "RIDE STATUS: " + ride_history[i][2][:6]) else: listbox.insert(Tk.END, "RIDE STATUS: " + ride_history[i][2]) listbox.insert(Tk.END, "\n") listbox.config(yscrollcommand=scrollbar.set) scrollbar.config(command=listbox.yview) ride_history_window.mainloop() else: alert.showinfo("Info", "No History available")
def repeat_ride_window(): driver_availability = DbManager.check_driver_availability(self, "customer") if (driver_availability == 0): alert.showinfo("info", "No Drivers Available! ") else: CustomerScreen.repeat_ride_window_customer(self, customer_window, global_username)
def get_ride_form(): driver_availability=DbManager.check_driver_availability(self,"customer") if(driver_availability==0): alert.showinfo("info", "No Drivers Available! ") else: customer_window.withdraw() RideForm.ride_form(self,customer_window,global_username)
def verify_customer(): ride_id_to_verify_customer = DbManager.get_ride_id_to_verify_customer( self, username) if (ride_id_to_verify_customer == 0): ride_id_to_verify_customer_status = DbManager.fetch_ride_status_verification( self, username) if (ride_id_to_verify_customer_status == 0 or ride_id_to_verify_customer_status[0][0] == "COMPLETED"): alert.showinfo("Info", "No rides accepted to verify!") elif (ride_id_to_verify_customer_status[0][0] == "RUNNING"): alert.showinfo("Info", "You are already running a ride!") else: ride_details = DbManager.fetch_ride_details( self, ride_id_to_verify_customer[0][0]) user_Details = DbManager.fetch_user_details( self, ride_details[5]) driver_window.withdraw() Ride_acceptance_window.verify_customer_window( self, ride_details, user_Details, driver_window)
def ride_status_window(self,ride_details): if(ride_details!=0): if ride_details[0][7]=="PENDING": alert.showinfo("Info","Searching for the drivers.\nPlease wait for few seconds") else: def ok_clicked(): customer_ride_status_window.destroy() customer_ride_status_window = Tk.Tk() customer_ride_status_window.geometry("500x330") customer_ride_status_window.title("Ride") ride_info = "RIDE ID: "+ride_details[0][6]+"\nPICK-UP LOCATION: "+ride_details[0][0] +"\nDESTINATION: "+ride_details[0][1] +"\n" +"NO OF PEOPLE: " +ride_details[0][2] + "\n" +"LUGGAGE QUANTITY: "+ ride_details[0][3] \ + "\n" + "RIDE TYPE: "+ride_details[0][4]+"\n\n" driver_details=DbManager.fetch_user_details(self,ride_details[0][8]) driver_info="Driver Name: "+driver_details[0]+", "+driver_details[1]+"\n" +"Driver Contact No: "+ str(driver_details[3]) ride_status_info=ride_info+"\n"+driver_info status = Tk.Label(customer_ride_status_window, text="STATUS: "+ride_details[0][7]) status.config(font=("Courier", 20)) status.place(x=70, y=40) heading = Tk.Label(customer_ride_status_window, text="Ride Status") heading.place(x=220, y=10) ride_info_field = Tk.Label(customer_ride_status_window, text=ride_status_info) ride_info_field.place(x=140, y=90) ok_button = Tk.Button(customer_ride_status_window, text="OK", width=15, height=2,command=ok_clicked) ok_button.place(x=180, y=270) customer_ride_status_window.mainloop() else: alert.showinfo("Info","No ride booked!")
def not_verified_customer_msg(): DbManager.modify_ride_distribution_after_verification( self, "notverified", ride_details[6]) verify_customer_window.destroy() driver_winodw_mainscreen.deiconify() alert.showinfo("info", "Verification Failed!")
def logout(): DbManager.remove_active_user(self, global_username) driver_window.destroy() Login_Screen.LoginPage.login_screen(self)
def on_closing(): if alert.askokcancel("Quit", "Do you want to quit?"): DbManager.remove_active_user(self, global_username) driver_window.destroy() Login_Screen.LoginPage.login_screen(self)
def repeat_ride(): if(destination_listbox.get(Tk.ANCHOR)!=""): ride_history_repeat = DbManager.fetch_ride_details_customer_repeat(self, global_username,destination_listbox.get(Tk.ANCHOR)) RideForm.ride_form_for_repeat(self,customer_window,username,ride_history_repeat,repeat_ride_window) else: alert.showinfo("Info","Select the destination")
def reject_result(): DbManager.modify_ride_distribution(self, ride_id[0], "reject", drivername) individual_ride_window.destroy() Ride_acceptance_window.ride_window(self, drivername)
def ride_status_window(): ride_history = DbManager.fetch_ride_details_customer_ride_status(self, global_username) CustomerScreen.ride_status_window(self,ride_history)
def ride_window(self, drivername): ride_id = [] ride_id_verification = DbManager.fetch_pending_rides_for_distribution_rejected_verification( self) ride_id_rejected = DbManager.fetch_pending_rides_for_distribution_rejected( self, drivername) if ride_id_verification != 0: for i in ride_id_verification: ride_id.append(i[0]) if ride_id_rejected != 0: for i in ride_id_rejected: if i[0] in ride_id: ride_id.remove(i[0]) if (len(ride_id) == 0): ride_id = 0 if (ride_id == 0): alert.showinfo("info", "No Rides Available! ") else: pending_rides = DbManager.fetch_pending_rides(self, ride_id[0]) def accept_result(): DbManager.modify_ride_distribution(self, ride_id[0], "accept", drivername) individual_ride_window.destroy() ride_details = DbManager.fetch_ride_details( self, ride_id[0]) user_phone_number = DbManager.fetch_user_phone_no( self, ride_details[5]) Ride_acceptance_window.accepted_ride_window( self, ride_details, user_phone_number) def reject_result(): DbManager.modify_ride_distribution(self, ride_id[0], "reject", drivername) individual_ride_window.destroy() Ride_acceptance_window.ride_window(self, drivername) individual_ride_window = Tk.Tk() individual_ride_window.geometry("250x200") individual_ride_window.title("Ride") ride_info = pending_rides[0] + "\n" + pending_rides[1] + "\n" + pending_rides[2] + "\n" + \ pending_rides[3] + "\n" + pending_rides[4] heading = Tk.Label(individual_ride_window, text="Ride Information") heading.place(x=70, y=10) ride_info_field = Tk.Label(individual_ride_window, text=ride_info) ride_info_field.place(x=90, y=40) e1 = Tk.Button(individual_ride_window, text="accept", width=10, height=1, command=accept_result) e2 = Tk.Button(individual_ride_window, text="reject", width=10, height=1, command=reject_result) e1.place(x=20, y=150) e2.place(x=120, y=150) individual_ride_window.mainloop() else: alert.showinfo("info", "No Rides Available! ")