def main(): ipop.cls() username = sys.argv[1] screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tThis page lists all the cancellations done\t\t|\n" + "|\tfrom this account.\t\t\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print (screen) data = mdb.get_user_activity(username, 'cancellations') if data == None or data == '': print ("No cancellation data available in this account.") p = input("Press any key to go to main menu...") exit1(username) else: lines = data.split('\n') m = [] for line in lines: m.append(tuple(line.split('_'))) h = ['Ticket no.', 'Cancelled on', 'Bus ID', 'Source', 'Destination', 'Journey date', 'Seat no.', 'Amount'] ipop.print_table((h, m)) p = input("\nPress any key to go to main menu...") exit1(username)
def main(): ipop.cls() mdb.initialise() try: print(sys.argv[1]) except: pass screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tWelcome\t\t\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tPlease select the appropriate option:\t\t\t|\n" + "|\t1) Bus time table\t\t\t\t\t|\n" + "|\t2) Buses between stops\t\t\t\t\t|\n" + "|\t3) Seat availability\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tLogin and get access to\t\t\t\t\t|\n" + "|\tSeat booking\t\t\t\t\t\t|\n" + "|\tand much more...\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tL) LOGIN\t\t\t\t\t\t|\n" + "|\tNot registered yet? Getting an account is easy\t\t|\n" + "|\tS) SIGN UP >>>>\t\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) p = "Enter option (1,2,3,L,S): " ip = ipop.getUserData([int, str], p, "Wrong data entered!", True, ["x in [1, 2, 3]", "x in ['L', 'S']"], True) if ip == 'L': os.system("python3 login_screen.py") elif ip == 'S': os.system("python3 sign-up_screen.py") elif ip == 1: os.system("python3 time_table_screen.py") elif ip == 2: os.system("python3 buses_between_stops.py") elif ip == 3: os.system("python3 seat_availability.py")
def main(): ipop.cls() username = sys.argv[1] name = mdb.getNameFromUsername(username) screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tHello administrator,\t\t\t\t\t\t\t|\n" + "|\t" + name + "\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tPlease select the appropriate table:\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) print("||\t1. Reservation table") print("||\t2. Cancellation table") print("||\t3. Route table") print("||\t4. Fare chart") print("||\t5. Bus table") print("||") ip = ipop.getUserData([int], "||\tEnter table number: ", "Wrong data entered!", True, ["x in list(range(1,6))"], True) print() if ip != None: ipop.cls() mdb.adminDisplayTable(ip) p = input("\nPress any key to go to main menu....") exit1(username)
def main(): ipop.cls() username = sys.argv[1] name = mdb.getNameFromUsername(username) screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tHello,\t\t\t\t\t\t\t|\n" + "|\t" + name + "\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tPlease select the appropriate option:\t\t\t|\n" + "|\t1) Bus time table\t\t\t\t\t|\n" + "|\t2) Buses between stops\t\t\t\t\t|\n" + "|\t3) Seat availability\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tStart your journey...\t\t\t\t\t|\n" + "|\t4) Book a seat\t\t\t\t\t\t|\n" + "|\t5) Cancel a seat\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tYour activities\t\t\t\t\t\t|\n" + "|\t6) Your reservations\t\t\t\t\t|\n" + "|\t7) Your cancellations\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tNot " + name + "?\n" + "|\tL) Logout\t\t\t\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) p = "Enter option (1-7,L): " ip = ipop.getUserData([int, str], p, "Wrong data entered!", True, ["x in list(range(1,8))", "x == 'L'"], True) if ip == 'L': os.system("python3 main_menu.py") elif ip == 1: os.system("python3 time_table_screen.py '" + username + "'") elif ip == 2: os.system("python3 buses_between_stops.py '" + username + "'") elif ip == 3: os.system("python3 seat_availability.py '" + username + "'") elif ip == 4: os.system("python3 add_reservation.py '" + username + "'") elif ip == 5: os.system("python3 add_cancellation.py '" + username + "'") elif ip == 6: os.system("python3 your_reservations.py '" + username + "'") elif ip == 7: os.system("python3 your_cancellations.py '" + username + "'")
def main(): ipop.cls() back = "python3 main_menu.py" uok = False while True: username = ipop.getUserData([str], "||\tEnter username:\n||\t", "Wrong data!") if username == None: os.system(back) break else: if mdb.checkUsernamePresence(username): uok = True break else: print ("Username not present.") while uok: password = ipop.getUserData([str], "||\tEnter password:\n||\t", "Wrong data!") if password == None: os.system(back) break else: r = mdb.doesPasswordMatch(username, password) if r == 1: if mdb.verifyAdmin(username, password): os.system("python3 admin_page.py '" + username + "'") else: os.system("python3 logged_in_main_menu.py '" + username + "'") break elif r == -1: print ("Wrong password.") else: print("Error!") break
def main(): ipop.cls() username = '' try: username = sys.argv[1] if mdb.checkUsernamePresence(username) == False: username = '' except: pass screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tEnter source, destination, date and bus ID of journey\t|\n" + "|\tto get available seats before planning reservation\t|\n" + "|\tExample: Howrah to Haldia on 20/08/2017 in AC8\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print (screen) print("\nEnter !q to cancel anytime.\n") while True: r = disp_seats() if r == 0: exit1(username) break else: ch = ipop.getUserData([int, str], "||\tEnter 1 to see more seat availabilities or !q for main menu.\n\t", "Wrong data.") if ch == 1: continue else: exit1(username) break
def main(): ipop.cls() username = sys.argv[1] name = mdb.getNameFromUsername(username) fdate = '' tdate = '' screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tHello administrator,\t\t\t\t\t\t\t|\n" + "|\t" + name + "\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tPlease select the appropriate option:\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) print("||\t1. Print entire table") print("||\t2. Print revenue between two dates") print("||") ip = ipop.getUserData([int], "||\tEnter option: ", "Wrong data entered!", True, ["x in [1,2]"], True) print() if ip != None: ipop.cls() if ip == 1: h, c, t = mdb.getRevenue() ipop.print_table((h, c)) print('\nTotal revenue: ' + str(t)) p = input("\nPress any key to go to main menu....") exit1(username) elif ip == 2: while True: print("||\tEnter a 'from' date (DD/MM/YYYY): ") fdate = reqdate() if fdate == '': exit1(username) break print("||\tEnter a 'to' date (DD/MM/YYYY): ") tdate = reqdate() if tdate == '': exit1(username) break if calc.compareDates(fdate, tdate): h, c, t = mdb.getRevenue(fdate, tdate) ipop.print_table((h, c)) print('\nTotal revenue: ' + str(t)) p = input("\nPress any key to go to main menu....") exit1(username) break else: print( "The 'from' date is later than 'to' date.\nEnter 1 to re-enter the dates !q to quit" ) p = ipop.getUserData([int, str], "", "") if p == 1: continue else: break
def main(): ipop.cls() username = sys.argv[1] screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tWelcome to seat cancellation.\t\t\t\t|\n" + "|\tYou will need to provide the ticket number\t\t|\n" + "|\tof every reservation you wish cancel\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) while True: ticket_no = ipop.getUserData([str], "||\tEnter ticket number\n||\t", "Wrong data") details = mdb.ticketDetails(ticket_no, 1) if details == None: print("Ticket number does not exist.") elif username != details[2]: print("This ticket belongs to a different customer.") elif calc.isValidTransactionDate(details[5]): username = details[2] route_id = details[0] bus_id = details[1] starting = details[3] ending = details[4] reservation_date = details[5] amount = details[7] tickString = "_________________________________________________________________\n" + "||\n" + "||\tReservation in bus ID: " + bus_id + "\n" + "||\tOn route ID: " + route_id + "\n" + "||\tJourney starting from: " + starting + "\n" + "||\tJourney ending at: " + ending + "\n" + "||\tOn date: " + reservation_date + '\n' + "||\tNumber of reservations = 1" + '\n||\n' + "||\tTicket numbers:\n" + '||\t' + ticket_no + '\n' + "||\tTotal amounting to: " + str( amount ) + '\n' + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(tickString + '\n') p = input( "To cancel this ticket, press any key or !q to go back....") if p != '!q': if (mdb.add_cancellation(ticket_no) != 1): print("Ticket could not be cancelled.") else: print("Ticket cancelled.") else: print("This ticket cannot be cancelled.") ip = ipop.getUserData( [int, str], "Enter 1 to enter another ticket number, !q to go to main menu.", "Wrong data") if ip == 1: continue else: exit1(username) break
def main(): ipop.cls() username = sys.argv[1] name = mdb.getNameFromUsername(username) screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tHello administrator,\t\t\t\t\t|\n" + "|\t" + name + "\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tSee report on reservation/cancellation\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) fdate = '' tdate = '' cat = 0 t = '' while True: print("\tCatagories:\n\t1. Sort according to bus IDs\n\t2. According to route IDs\n\t3. According to actual routes\n") cat = ipop.getUserData([int], "||\tEnter category: ", "Wrong data entered!", True, ["x in [1,2,3]"], True) if cat == None: exit1(username) break print("||\tEnter a 'from' date (DD/MM/YYYY): ") fdate = reqdate() if fdate == '': exit1(username) break print("||\tEnter a 'to' date (DD/MM/YYYY): ") tdate = reqdate() if tdate == '': exit1(username) break print("\tType:\n\tr. See reservations\n\tc. See cancellations\n") t = ipop.getUserData([str], "||\tEnter type: ", "Wrong data entered!", True, ["x in ['r', 'c']"], True) if t == None: exit1(username) break print() h, c, t = mdb.order_rc_by_catagories(cat, fdate, tdate, t) ipop.print_table((h,c)) print("\nTotal count: " + str(t) + '\n') c = ipop.getUserData([int, str], "||\tEnter 1 for re-search, !q to cancel: ", "Wrong data entered!") if c != 1: exit1(username) break
def main(): ipop.cls() username = '' try: username = sys.argv[1] if mdb.checkUsernamePresence(username) == False: username = '' except: pass screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tEnter bus ID to see time-table\t\t\t\t|\n" + "|\tExample: S1, V10, AC5, SL2 etc...\t\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tDon't know bus id? Enter R to see buses between stops.\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) ttlist = [] if username != '': try: storedtt = mdb.get_user_activity(username, 'time_tables') if storedtt != '': storedtt = storedtt.split('\n') ttlist = list(enumerate(storedtt, start=1)) print("||\tYour previous searches:\n") h = ['Choice', 'Bus ID'] tup = (h, ttlist) ipop.print_table(tup) print("||\tYou can enter these choices in place of bus ID.\n") except: pass while True: r = disp_tt(username, ttlist) if r == 0: exit1(username) break elif r == -1: buses_bet_stops(username) break else: ch = ipop.getUserData( [int, str], "||\tEnter 1 for another search or !q for main menu.\n\t", "Wrong data.") if ch == 1: continue else: exit1(username) break
def main(): ipop.cls() username = '' try: username = sys.argv[1] if mdb.checkUsernamePresence(username) == False: username = '' except: pass screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tEnter source and destination to get avilable buses\t|\n" + "|\tExample: Howrah to Asansol etc...\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) bbslist = [] if username != '': try: storedbbs = mdb.get_user_activity(username, 'buses_between_stops') if storedbbs != '': storedbbs = storedbbs.split('\n') bbslist = list(enumerate(storedbbs, start=1)) print("||\tYour previous searches:\n") h = ['Choice', 'Buses between stops'] tup = (h, bbslist) ipop.print_table(tup) print("||\tYou can enter these choices in starting field.\n") except: pass while True: r = disp_bbs(username, bbslist) if r == 0: exit1(username) break else: ch = ipop.getUserData( [int, str], "||\tEnter 1 for another search or !q for main menu.\n\t", "Wrong data.") if ch == 1: continue else: exit1(username) break
def ticket_print(un, tickets, bus_id, route_id, source, destination, date, n, amount, ts, te): ticketsConcat = '' for t in tickets: ticketsConcat = ticketsConcat + "||\t" + t + '\n' tickString = "_________________________________________________________________\n" + "||\n" + "||\tReservation in bus ID: " + bus_id + "\n" + "||\tOn route ID: " + route_id + "\n" + "||\tJourney starting from: " + source + "\n" + "||\tJourney ending at: " + destination + "\n" + "||\tOn date: " + date + '\n' + "||\tJourney from: " + ts + " to " + te + '\n' + "||\tNumber of reservations = " + str( n ) + '\n||\n' + "||\tTicket numbers:\t\tSeat no:\n" + ticketsConcat + '||\n' + "||\tTotal amounting to: " + str( amount ) + '\n' + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" ipop.cls() print(tickString + '\n') print("Please note down the ticket numbers.\n") p = input("Press any key to go to main menu....") exit1(un)
def main(): ipop.cls() username = sys.argv[1] screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tThis page lists all your payment methods.\t\t|\n" + "|\tYou can add or delete some of them\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) data = mdb.get_user_detail(username, 'payments') if data == None or data == '': print("No payment methods available in this account.") else: lines = data.split('\n') m = list(enumerate(lines, start=1)) h = ['Option', 'Payment method'] ipop.print_table((h, m))
def main(): ipop.cls() uok = False screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tSign up to get exclusive benefits!\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) name = ipop.getUserData([str], "||\tEnter name: ", "Wrong data!", True, ['x != ""']) while True: username = ipop.getUserData([str], "||\tEnter username: "******"Wrong data!", True, ['x != ""']) if mdb.checkUsernamePresence(username) == False: break else: print("Username already present, choose another username.") password = ipop.getUserData([str, int, float], "||\tEnter password: "******"Wrong data!", True, ['x != ""']) confirm = "Enter any character to confirm OR '!q' to cancel registration....\n" print(confirm) c = ipop.getUserData([str], '', 'Enter any character.') if c != None: try: mdb.add_user(name, username, password, '', '') alert = "'\nRegistration successful! Please login again..\n'" os.system("python3 main_menu.py " + alert) except: print('Registration unsuccessful..') exit(0) else: alert = "\nRegistration cancelled..\n" os.system("python3 main_menu.py")
def main(): ipop.cls() username = sys.argv[1] name = mdb.getNameFromUsername(username) screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tHello administrator,\t\t\t\t\t|\n" + "|\t" + name + "\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tPlease select the appropriate option:\t\t\t|\n" + "|\t1) Print tables\t\t\t\t\t\t|\n" + "|\t2) Print revenue\t\t\t\t\t|\n" + "|\t3) Sort reservation/cancellation catagory-wise\t\t|\n" + "|\t4) Sort reservation/cancellation month-wise\t\t|\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tL) Logout\t\t\t\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) p = "Enter option (1-4,L): " ip = ipop.getUserData([int, str], p, "Wrong data entered!", True, ["x in list(range(1,5))", "x == 'L'"], True) if ip == 1: os.system("python3 display_tables.py '" + username + "'") if ip == 2: os.system("python3 display_revenue.py '" + username + "'") if ip == 3: os.system("python3 sort_rc_cat.py '" + username + "'") if ip == 4: os.system("python3 sort_rc_month.py '" + username + "'") elif ip == 'L': os.system("python3 main_menu.py")
def main(): ipop.cls() username = sys.argv[1] screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tWelcome to seat reservation.\t\t\t\t|\n" + "|\tYou will be guided through the reservation process.\t|\n" + "|\tPlease enter the relevant information as asked.\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) print( "\nOn entering the start and end of your journey\nwe will automatically list the available buses for you to choose.\nYou can quit the process anytime by entering !q\n" ) routeFlag = False dateFlag = False seatFlag = False seatReserveFlag = False source = '' destination = '' bus_id = '' date = '' n = 0 seats = [] bookedSeats = [] fare = 0 amount = 0 ts = '00:00' te = '00:00' tickets = [] while True: date = ipop.getUserData( [str], "||\tEnter date of journey: (as DD/MM/YYYY format):\n||\t", "Wrong data") if date == None: return 0 else: if calc.isValidTransactionDate(date): dateFlag = True break else: print("Invalid date or wrong date format given.") while dateFlag: source = ipop.getUserData([str], "||\tEnter source:\n||\t", "Wrong data") if source == None: exit1(username) break destination = ipop.getUserData([str], "||\tEnter destination:\n||\t", "Wrong data") if destination == None: exit1(username) break buses = mdb.buses_between_stops(source, destination) if buses == []: print( "Sorry, this route does not exist. Press 1 to re-enter start and destination, !q to cancel and go to main menu." ) p = ipop.getUserData([str, int], "", "Wrong data") if p == 1: continue else: exit1(username) break else: bus_details = [] for b in buses: bus_type = mdb.getBusType(b) bus_fare = mdb.getFare(b, source, destination) n_seats = len(mdb.availableSeats(b, source, destination, date)) bus_details.append((b, bus_type, bus_fare, n_seats)) bh = ['Bus ID', 'Type', 'Fare', 'Seats available'] print("\nFollowing buses are available:") ipop.print_table((bh, bus_details)) print() bus_id = ipop.getUserData([str], "||\tEnter bus id:\n||\t", "Choose among the available buses.", True, ['x in ' + str(buses)], True) if bus_id == None: exit1(username) else: routeFlag = True break if routeFlag: print("Almost there....") while True: n = ipop.getUserData( [int], "||\tEnter number of seats to be reserved:\n||\t", "Wrong data") if n == None: exit1(username) else: seats = mdb.availableSeats(bus_id, source, destination, date) if n > len(seats): print( "The requested number of seats is currently not available in " + bus_id + " on " + date) p = ipop.getUserData([ int, str ], "||\tEnter 1 to decrease number of seats or !q to cancel:\n||\t", "Wrong data") if p == 1: continue else: exit1(username) break else: seatFlag = True break if seatFlag: p = ipop.getUserData([ str ], "||\tEnter S to manually select seats or any other key for automatic selection:\n||\t", "Wrong data") if p == None: exit1(username) elif p == 'S' or p == 's': print("||\tAvailable seats are:") print(seats) print("||\tEnter seat numbers for " + str(n) + " reservations") for i in range(n): s = ipop.getUserData([int], "", "Wrong data", True, ['x in ' + str(seats)], True) if s == None: exit1(username) bookedSeats.append(s) else: for i in range(n): s = seats[i] bookedSeats.append(s) seatReserveFlag = True print("||\tBooked seats are: " + str(bookedSeats) + '\n') if seatReserveFlag: fare = mdb.getFare(bus_id, source, destination) amount = n * fare print("||\tAll set! Total Fare = " + str(n) + " * " + str(fare) + " = " + str(amount)) print("||\tPress any key to book. !q to cancel") p = input() if p == None: exit1(username) else: for bs in bookedSeats: tickets.append( mdb.add_reservation(bus_id, username, source, destination, date, bs, fare) + '\t' + str(bs)) timetable = mdb.bus_timetable(bus_id) for place, time in timetable: if source == place: ts = time if destination == place: te = time ticket_print(username, tickets, bus_id, mdb.getRouteFromBusID(bus_id), source, destination, date, n, amount, ts, te)
def main(): ipop.cls() username = sys.argv[1] name = mdb.getNameFromUsername(username) screen = "_________________________________________________________________\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tHello administrator,\t\t\t\t\t|\n" + "|\t" + name + "\n" + "|\t\t\t\t\t\t\t\t|\n" + "|\tSee report on reservation/cancellation\t\t\t|\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" print(screen) bid = '' rid = '' source = '' destination = '' t = '' print( "\tEnter ATLEAST bus ID, or route ID or source or destination or their combination.\n" ) while True: bid = input("||\tEnter bus ID (leave blank to include all buses): ") if bid == '!q': exit1(username) break elif bid == '': rid = input( "||\tEnter route ID (leave blank to include all routes): ") if rid == '!q': exit1(username) break source = input( "||\tEnter source (leave blank to include all sources): ") if source == '!q': exit1(username) break destination = input( "||\tEnter destination (leave blank to include all destinations): " ) if destination == '!q': exit1(username) break t = input("||\tEnter 'r' for reservation or 'c' for cancellation: ") if t == '!q': exit1(username) break print() h, c = mdb.order_rc_by_month(t, rid, bid, source, destination) if c == []: print("\nData unavailable.") else: ipop.print_table((h, c)) print() c = ipop.getUserData([int, str], "||\tEnter 1 for re-search, !q to cancel: ", "Wrong data entered!") if c != 1: exit1(username) break