Exemple #1
0
class InvoiceUI:

    def __init__(self):
        self.general = GeneralUI()
        self.logic = LogicAPI()
        self.invoice_menu()

    #Menu header

    def print_select_option(self):
        return input(">> Select option: ").lower()
    
    def print_table_header(self):
        print()
        print(f'{"Invoice ID":<20}{"Contract ID":<20}{"Customer SSN":<20}{"Vehicle ID":<20}{"Rate(€)":<20}{"Days total":<20}{"Total price(€)":<20}{"Late fee(€)":<20}{"State":<20}')
        print("="*180)

    #Print Contract Table Footer
    def print_table_footer(self):
        print("-"*180)
        print()

    def invoice_menu(self):
        while True:
            self.general.ui_menu_header("Invoice Menu")
            self.ui_numbered_menu(["Print invoice list", "Search for invoice by unique ID", "Send invoice", "Mark invoice as paid", "Main menu"])
            self.general.ui_menu_footer()
            choice = self.print_select_option()
            if choice == '1':
                self.print_table_header()
                for i in self.logic.get_all_invoices():
                    print(i)
                self.print_table_footer()
            elif choice == '2':
                id_invoice = input(">> Enter invoice ID: ")
                self.print_table_header()
                for i in self.logic.search_invoices(id_invoice):
                    print(i)
            elif choice == '3':
                invoice_ID = input(">> Enter contract ID: ")
                print(self.logic.create_invoice(invoice_ID))
            elif choice == '4':
                id_invoice = input(">> Enter invoice ID: ")
                print(self.logic.set_invoice_to_paid(id_invoice))
            elif choice == '5':
                return
            else:
                print('Invalid command, try again.')


    #Prints any UI menu in numbered list
    def ui_numbered_menu(self, a_list):
        '''Takes a list as parameter and prints all the items of a list in an order from 1. list[0], 2. list[1] and so on'''
        for i in range(0,(len(a_list))):
            print(f"{i+1}. {a_list[i]}")
Exemple #2
0
 def __init__(self):
     self.general = GeneralUI()
     self.logicAPI = LogicAPI()
     self.employee_menu()
Exemple #3
0
class EmployeeUI:
    def __init__(self):
        self.general = GeneralUI()
        self.logicAPI = LogicAPI()
        self.employee_menu()

    #unique_id,name,ssn,role,address,zip_code,city,country,home_phone,mobile_phone,email,state
    #create new employee
    def ui_new_employee(self):
        employeeFieldnames = [
            "Name", "Social security number", "Role", "Address", "Zip Code",
            "City", "Country", "Home phone", "Mobile phone", "Email",
            "Password"
        ]
        inputList = []
        print("\nPress 'q' and hit 'enter' to cancel at any time.")
        print("\nPlease enter the following details to create a new employee:")
        user_input = ""
        for field in employeeFieldnames:
            if user_input.lower() == "q":
                return
            if field == "Password":
                user_input = self.logicAPI.generate_password()
            else:
                user_input = input(f"Enter {field}: ")
            inputList.append(user_input)
        return inputList

    #Request new value from user
    def value_input(self):
        return input("Enter new value: ")

    #Creates the Edit menu layout and returns the employee Instance after edit
    def ui_edit_employee(self):
        employee = self.ui_single_employee_unique()  #prints specific employee
        selection = ""
        while selection != "11":
            self.ui_print_edit_menu()  #ask user what he would like to edit
            selection = self.general.ui_edit_input()
            if selection == "1":
                employee.name = self.value_input()
            elif selection == "2":
                employee.ssn = self.value_input()
            elif selection == "3":
                employee.role = self.value_input()
            elif selection == "4":
                employee.address = self.value_input()
            elif selection == "5":
                employee.zip_code = self.value_input()
            elif selection == "6":
                employee.city = self.value_input()
            elif selection == "7":
                employee.country = self.value_input()
            elif selection == "8":
                employee.home_phone = self.value_input()
            elif selection == "9":
                employee.mobile_phone = self.value_input()
            elif selection == "10":
                employee.email = self.value_input()
            elif selection == "11":
                return employee

    #unique_id	name	ssn	role	address	zip_code	city	country	home_phone	mobile_phone	email	state
    #Prints the employee Edit menu options
    def ui_print_edit_menu(self):
        '''Prints options for Edit menu and accepts input'''
        self.general.ui_menu_header("Edit employee")
        print("\nSelect field to edit:")
        print("1. Name")
        print("2. SSN")
        print("3. Role")
        print("4. Address")
        print("5. Zip_code")
        print("6. City")
        print("7. Country")
        print("8. Home_phone")
        print("9. Mobile_phone")
        print("10. Email")
        print("11. Exit")
        self.general.ui_menu_footer()

    #Print Employee Table Header
    def ui_employee_table_header(self):
        print(
            f"{'Unique_id':<20}{'Name':<20}{'SSN':<20}{'Role':<20}{'Address':<20}{'Zip_code':<20}{'City':<20}{'Country':<20}{'Home_phone':<20}{'Mobile_phone':<20}{'Email':<20}"
        )
        print("-" * 200)

    #Print employee Table Footer
    def ui_employee_table_footer(self):
        print("-" * 200)
        print()

    #Prints all employee
    def ui_all_employee(self):
        results = self.logicAPI.get_employees()
        print("\nAll employee:")
        self.ui_employee_table_header()
        for employee in results:
            print(employee)
        self.ui_employee_table_footer()

    #Prints customer with unique ID
    def ui_single_employee_unique(self):
        '''Prints a single customer with a unique ID'''
        employee_unique = input(">> Please enter employee ID: ")
        employees = self.logicAPI.search_employee_by_unique(employee_unique)
        print("\ncustomer by ID: " + employee_unique)
        self.ui_employee_table_header()
        for employee in employees:
            print(employee)
        self.ui_employee_table_footer()
        return employee

    #name	ssn	role	address	zip_code	city	country	home_phone	mobile_phone	email	state
    ###availability option search ###
    def ui_name_available_print(self):
        '''Prints all employee name'''
        print("\nAvailable Options:")
        employees = self.logicAPI.available_name()
        for employee in employees:
            print("\t" + employee)
        print()

    def ui_ssn_available_print(self):
        '''Prints all customer SSN'''
        print("\nAvailable Options:")
        employees = self.logicAPI.available_ssn()
        for employee in employees:
            print("\t" + employee)
        print()

    def ui_role_available_print(self):
        '''Prints all employee role'''
        print("\nAvailable Options:")
        employees = self.logicAPI.available_role()
        for employee in employees:
            print("\t" + employee)
        print()

    def ui_address_available_print(self):
        '''Prints all employee address'''
        print("\nAvailable Options:")
        employees = self.logicAPI.available_address()
        for employee in employees:
            print("\t" + employee)
        print()

    def ui_zip_code_available_print(self):
        '''Prints all employee zip_code'''
        print("\nAvailable Options:")
        employees = self.logicAPI.available_zip_code()
        for employee in employees:
            print("\t" + employee)
        print()

    def ui_city_available_print(self):
        '''Prints all employee city'''
        print("\nAvailable Options:")
        employees = self.logicAPI.emp_available_city()
        for employee in employees:
            print("\t" + employee)
        print()

    def ui_country_available_print(self):
        '''Prints all employee country'''
        print("\nAvailable Options:")
        employees = self.logicAPI.emp_available_country()
        for employee in employees:
            print("\t" + employee)
        print()

    #name	ssn	role	address	zip_code	city	country
    #Print the availability data
    def ui_print_country(self):
        self.ui_country_available_print()
        country = input(">> Please enter employee Country: ")
        results = self.logicAPI.search_employees_by_country(country)
        print("\nSearch results for " + country + ": ")
        self.ui_employee_table_header()
        for employee in results:
            print(employee)
        self.ui_employee_table_footer()

    def ui_print_city(self):
        self.ui_city_available_print()
        city = input(">> Please enter employee City: ")
        results = self.logicAPI.search_employees_by_city(city)
        print("\nSearch results for " + city + ": ")
        self.ui_employee_table_header()
        for employee in results:
            print(employee)
        self.ui_employee_table_footer()

    def ui_print_zip_code(self):
        self.ui_zip_code_available_print()
        zip_code = input(">> Please enter employee zip_code: ")
        results = self.logicAPI.search_employees_by_zip_code(zip_code)
        print("\nSearch results for " + zip_code + ": ")
        self.ui_employee_table_header()
        for employee in results:
            print(employee)
        self.ui_employee_table_footer()

    def ui_print_address(self):
        self.ui_address_available_print()
        address = input(">> Please enter employee address: ")
        results = self.logicAPI.search_employees_by_address(address)
        print("\nSearch results for " + address + ": ")
        self.ui_employee_table_header()
        for employee in results:
            print(employee)
        self.ui_employee_table_footer()

    def ui_print_role(self):
        self.ui_role_available_print()
        role = input(">> Please enter employee role: ")
        results = self.logicAPI.search_employees_by_role(role)
        print("\nSearch results for " + role + ": ")
        self.ui_employee_table_header()
        for employee in results:
            print(employee)
        self.ui_employee_table_footer()

    def ui_print_ssn(self):
        self.ui_ssn_available_print()
        ssn = input(">> Please enter employee ssn: ")
        results = self.logicAPI.search_employees_by_id(ssn)
        print("\nSearch results for " + ssn + ": ")
        self.ui_employee_table_header()
        for employee in results:
            print(employee)
        self.ui_employee_table_footer()

    def ui_print_name(self):
        self.ui_name_available_print()
        name = input(">> Please enter employee name: ")
        results = self.logicAPI.search_employees_by_name(name)
        print("\nSearch results for " + name + ": ")
        self.ui_employee_table_header()
        for employee in results:
            print(employee)
        self.ui_employee_table_footer()

    #name	ssn	role	address	zip_code	city	country
    #Prints the search menu for employee
    def ui_search_menu(self):
        self.general.ui_menu_header("Employee Search")
        print("\nPlease select a search option:")
        self.UI_numbered_menu([
            "Name", "Social Security Number", "Role", "Address", "Zip Code",
            "City", "Country", "Exit"
        ])
        #self.UI_numbered_menu([ "ID", "Role", "Exit"])
        self.general.ui_menu_footer()
        selection = input("\n>> Select option: ").lower()
        return selection

    #Prints any UI menu in order
    def UI_numbered_menu(self, a_list):
        '''Takes a list as parameter and prints all the items of a list in an order from 1. list[0], 2. list[1] and so on'''
        for i in range(0, (len(a_list))):
            print(f"{i+1}. {a_list[i]}")

    #name	ssn	role	address	zip_code	city	country
    #Prints the employee Main Menu
    def employee_menu(self):
        while True:
            self.general.ui_menu_header("Employee Menu")
            print(
                "\nSelect an option...\n1. Create new employee \n2. Search employees  \n3. View all employees \n4. Edit employee \n5. Delete employee \n6. Main Menu"
            )
            self.general.ui_menu_footer()
            command = input(">> Select option: ")
            command = command.lower()
            if command == "1":
                new_employee = self.ui_new_employee()
                self.logicAPI.create_employee(new_employee)
            elif command == "2":
                selection = self.ui_search_menu()
                if selection == "1":
                    self.ui_print_name()
                elif selection == "2":
                    self.ui_print_ssn()
                elif selection == "3":
                    self.ui_print_role()
                elif selection == "4":
                    self.ui_print_address()
                elif selection == "5":
                    self.ui_print_zip_code()
                elif selection == "6":
                    self.ui_print_city()
                elif selection == "7":
                    self.ui_print_country()
                elif selection == "8":
                    self.employee_menu()
            elif command == "3":
                self.ui_all_employee()
            elif command == "4":
                new_employee = self.ui_edit_employee()
                self.logicAPI.update_employee(new_employee)
            elif command == "5":
                self.ui_all_employee()
                employee_id = input(">> Enter employee ID to delete: ")
                employee = self.logicAPI.delete_employee(employee_id)
                for result in employee:
                    print(result)
            elif command == "6":
                return
            else:
                print("Invalid command, try again")
Exemple #4
0
 def __init__(self):
     self.general = GeneralUI()
     self.logic = LogicAPI()
     self.report_main_menu()
Exemple #5
0
 def __init__(self):
     self.general = GeneralUI()
     self.logic = LogicAPI()
     self.contract_main_menu()
Exemple #6
0
class ContractUI:
    def __init__(self):
        self.general = GeneralUI()
        self.logic = LogicAPI()
        self.contract_main_menu()

    ### GENERAL FUNCTIONS ###

    #Prints any UI menu in numbered list
    def ui_numbered_menu(self, a_list):
        '''Takes a list as parameter and prints all the items of a list in an order from 1. list[0], 2. list[1] and so on'''
        for i in range(0, (len(a_list))):
            print(f"{i+1}. {a_list[i]}")

    def print_select_option(self):
        return input(">> Select option: ").lower()

    def print_table_header(self):
        print()
        print(
            f'{"Contract ID":<15}{"Customer Name":<15}{"Customer SSN":<15}{"Vehicle ID":<15}{"Contract Duration":<25}{"Country":<15}{"Employee":<15}{"Total price":<15}{"Creation Date":<15}{"Check-out Date":<15}{"Check-in Date":<15}{"Check-in Location":<25}{"State":<15}'
        )
        print("=" * 260)

    #Print Contract Table Footer
    def print_table_footer(self):
        print("-" * 260)
        print()

    def validate(self, date_text):
        try:
            datetime.datetime.strptime(date_text, '%d.%m.%y')
            return True
        except ValueError:
            print("\nIncorrect input, make sure the format is DD.MM.YY\n")
            return False

    def ui_country_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logic.available_country()
        for destination in destinations:
            print("\t" + destination)
        print()
        return destinations

    #Prints UI for new contract
    def new_contract(self):
        contractFieldnames = [
            "Customer name", "Customer Social Security No.", "Vehicle ID",
            "Start date of rental period (dd.mm.yy)",
            "End date of rental period (dd.mm.yy)", "Country", "Employee name",
            "Total price"
        ]  # + "Contract Creation Date"
        inputList = []
        print("\nPress 'q' and hit 'enter' to cancel at any time.")
        print("\nPlease enter the following details to create a new contract:")
        user_input = ""
        for field in contractFieldnames:
            if field == "Country":
                destinations = self.ui_country_available_print()
                user_input = ""
                while user_input not in destinations:
                    user_input = input(f"Enter {field}: ")
                    if user_input == "q":
                        break
            else:
                user_input = input(f"Enter {field}: ")
                if user_input.lower() == "q":
                    return self.contract_main_menu()
                #Checks start date format
                if contractFieldnames.index(field) == 3:
                    date_check = False
                    while user_input != "q":
                        date_check = self.validate(user_input)
                        if date_check == False:
                            user_input = input(f"Enter {field}: ")
                        else:
                            start_date = datetime.datetime.strptime(
                                user_input, '%d.%m.%y')
                            yesterday = datetime.datetime.today(
                            ) - datetime.timedelta(days=1)
                            if start_date <= yesterday:
                                print("Dates before today are invalid")
                                user_input = input(f"Enter {field}: ")
                            else:
                                break
                #Checks end date format
                elif contractFieldnames.index(field) == 4:
                    date_check = False
                    while user_input != "q":
                        date_check = self.validate(user_input)
                        if date_check == False:
                            user_input = input(f"Enter {field}: ")
                        else:
                            end_date = datetime.datetime.strptime(
                                user_input, '%d.%m.%y')
                            if start_date > end_date:
                                print("Dates before start date are invalid.")
                                user_input = input(f"Enter {field}: ")
                            else:
                                break
            inputList.append(user_input)
        #Add Contract creation date "Contract Creation Date"
        contract_creation_date = datetime.datetime.today()
        contract_creation_date = contract_creation_date.strftime('%d.%m.%y')
        inputList.append(contract_creation_date)
        return inputList

    ### CONTRACT MAIN MENU ###
    def contract_main_menu(self):
        while True:
            self.general.ui_menu_header("Contract Menu")
            print("\nPlease select a an option:")
            self.ui_numbered_menu([
                "Create contract", "Search contracts", "View all contracts",
                "Edit contract", "Cancel contract", "Delete contract",
                "Main menu"
            ])
            self.general.ui_menu_footer()
            command = self.print_select_option()
            if command == "1":  #1. Create contract
                contract_param = self.new_contract()
                print(self.logic.create_new_contract(contract_param))
            elif command == "2":  # 2. Search contracts
                self.contract_search_menu()
            elif command == "3":  # 3. View all contracts
                self.print_table_header()
                for item in self.logic.all_contracts():
                    print(item)
                self.print_table_footer()
            elif command == "4":  # 4. Edit contracts
                self.ui_all_contracts()
                edited_contract = self.ui_edit_contract()
                self.print_table_header()
                print(edited_contract)
                self.print_table_footer()
            elif command == "5":  # 5. Cancel contract
                self.ui_all_contracts()
                self.canceled_contract()
            elif command == "6":  # 6. Delete contract
                contract_id = input(">> Enter contract ID to delete: ")
                result_list = self.logic.delete_contract(contract_id)
                for item in result_list:
                    print(item, end="")
            elif command == "7":
                return
            else:
                print("Invalid command, try again")

    ### CONTRACT SEARCH MENU ###

    def contract_search_menu(self):
        while True:
            self.general.ui_menu_header("Contract Search")
            print("\nPlease select search option:")
            self.ui_numbered_menu([
                "Search by Contract ID", "Search by Customer name",
                "Search by Vehicle ID", "Main menu"
            ])
            self.general.ui_menu_footer()
            command = self.print_select_option()
            if command == "1":
                contract_id = input(">> Enter Contract ID: ")
                a_list = self.logic.search_contracts_by_id(contract_id)
                self.print_table_header()
                for item in a_list:
                    print(item)
            elif command == "2":
                vehicle_id = input(">> Enter Customer name: ")
                a_list = self.logic.search_contracts_by_customer(vehicle_id)
                self.print_table_header()
                for item in a_list:
                    print(item)
            elif command == "3":
                vehicle_id = input(">> Enter vehicle ID: ")
                a_list = self.logic.search_contract_by_vin(vehicle_id)
                self.print_table_header()
                for item in a_list:
                    print(item)
            elif command == "4":
                return
            else:
                print("Invalid command, try again")

    def canceled_contract(self):
        contract_ID = input(">> Enter contract ID: ")
        while True:
            command = input(
                "Are you sure you want to cancel contract? (Y)es or (N)o? ")
            command = command.lower()
            if command == "y":
                contracts = self.logic.search_contracts_by_id(contract_ID)
                for contract in contracts:
                    contract.state = "CANCELED"
                    return self.logic.edit_contract(contract)
            elif command == "n":
                return
            else:
                print("\n*** Please select either (Y)es or (N)o ***\n")

    #Creates the Edit menu layout and returns the Contract Instance after edit
    def ui_edit_contract(self):
        contracts = self.ui_single_contract_ID(
        )  #returns a list of contracts, in this case only one contract
        selection = ""
        while selection != "8":
            self.ui_print_edit_menu()  #ask user what he would like to edit
            selection = self.general.ui_edit_input()
            if selection == "1":
                for contract in contracts:
                    contract.customer = self.value_input()
            elif selection == "2":
                for contract in contracts:
                    contract.vehicle_unique_id = self.value_input()
            elif selection == "3":
                for contract in contracts:
                    contract.start_date = self.value_input()
            elif selection == "4":
                for contract in contracts:
                    contract.end_date = self.value_input()
            elif selection == "5":
                for contract in contracts:
                    contract.country = self.value_input()
            elif selection == "6":
                for contract in contracts:
                    contract.employee = self.value_input()
            elif selection == "7":
                for contract in contracts:
                    contract.total_price = self.value_input()
            elif selection == "8":
                return contract

    #Prints the Vehicle Edit menu options
    def ui_print_edit_menu(self):
        '''Prints options for Edit menu and accepts input'''
        self.general.ui_menu_header("Edit vehicle")
        print("\nSelect field to edit:")
        print("1. Customer name")
        print("2. Vehicle ID")
        print("3. Start date")
        print("4. End date")
        print("5. Country")
        print("6. Employee name")
        print("7. Total price")
        print("8. Exit")
        self.general.ui_menu_footer()

    #Prints contract with unique ID
    def ui_single_contract_ID(self):
        '''Prints a single vehicle with a unique ID'''
        contract_ID = input(">> Enter contract ID: ")
        contract = self.logic.search_contracts_by_id(contract_ID)
        print("\Contract by ID: " + contract_ID)
        self.print_table_header()
        for single_contract in contract:
            print(single_contract)
        self.print_table_footer()
        return contract

    #Request new value from user
    def value_input(self):
        return input("Enter new value: ")

    #Prints all contracts
    def ui_all_contracts(self):
        contracts = self.logic.all_contracts()
        print("\nAll Contracts:")
        self.print_table_header()
        for contract in contracts:
            print(contract)
        self.print_table_footer()
Exemple #7
0
 def __init__(self):
     self.general = GeneralUI()
     self.logicAPI = LogicAPI()
     self.destination_menu()
Exemple #8
0
class destinationUI:
    def __init__(self):
        self.general = GeneralUI()
        self.logicAPI = LogicAPI()
        self.destination_menu()
        # self.ui_print_type()

    #Prints UI for new destination
    def ui_new_destination(self):
        destinationFieldnames = [
            "country", "city", "airport", "phone_number", "opening_time",
            "closing_time", "main_contact"
        ]
        inputList = []
        print("\nPress 'q' and hit 'enter' to cancel at any time.")
        print(
            "\nPlease enter the following details to create a new destination:"
        )
        user_input = ""
        user_input = ""
        for field in destinationFieldnames:
            if user_input.lower() == "q":
                return self.destination_menu()
            user_input = input(f"Enter {field}: ")
            inputList.append(user_input)
        return inputList

    #Request new value from user
    def value_input(self):
        return input("Enter new value: ")

    #Creates the Edit menu layout and returns the destination Instance after edit
    def ui_edit_destination(self):
        self.ui_all_destinations()
        destination = self.ui_single_destination_ID(
        )  #prints specific destination
        selection = ""

        while selection != "9":
            self.ui_print_edit_menu()  #ask user what he would like to edit
            selection = self.general.ui_edit_input()
            if selection == "1":
                destination.country = self.value_input()
            elif selection == "2":
                destination.city = self.value_input()
            elif selection == "3":
                destination.airport = self.value_input()
            elif selection == "4":
                destination.phone_number = self.value_input()
            elif selection == "5":
                destination.opening_time = self.value_input()
            elif selection == "6":
                destination.closing_time = self.value_input()
            elif selection == "7":
                destination.main_contact = self.value_input()
            elif selection == "8":
                destination.state = self.value_input()
            elif selection == "9":
                return destination

    #Prints the destination Edit menu options
    def ui_print_edit_menu(self):
        '''Prints options for Edit menu and accepts input'''
        self.general.ui_menu_header("Edit destination")
        print("\nSelect field to edit:")
        print("1. Country")
        print("2. City")
        print("3. Airport")
        print("4. Phone Number")
        print("5. Opening Time")
        print("6. Closing Time")
        print("7. Main Contact")
        print("8. State")
        print("9. Exit")
        self.general.ui_menu_footer()

    #Print Destination Table Header
    def ui_destination_table_header(self):
        print(
            f"{'Unique ID':<20}{'Country':<20}{'City':<20}{'Airport':<20}{'Phone Number':<20}{'Opening Time':<20}{'Closing Time':<20}{'Main Contact':<20}"
        )
        print("-" * 200)

    #Print destination Table Footer
    def ui_destination_table_footer(self):
        print("-" * 200)
        print()

    #Prints all destinations
    def ui_all_destinations(self):
        results = self.logicAPI.all_destinations()
        print("\nAll destinations:")
        self.ui_destination_table_header()
        for destination in results:
            print(destination)
        self.ui_destination_table_footer()

    #Prints destination with unique ID
    def ui_single_destination_ID(self):
        '''Prints a single destination with a unique ID'''
        destination_ID = input(">> Please enter destination ID: ")
        destination = self.logicAPI.search_destinations_by_id(destination_ID)
        print("\ndestination by ID: " + destination_ID)
        self.ui_destination_table_header()
        for destination in destination:
            print(destination)
        self.ui_destination_table_footer()
        return destination

    ### search function ###

    def ui_country_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logicAPI.available_country()
        for destination in destinations:
            print("\t" + destination)
        print()

    def ui_city_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logicAPI.available_city()
        for destination in destinations:
            print("\t" + destination)
        print()

    def ui_airport_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logicAPI.available_airport()
        for destination in destinations:
            print("\t" + destination)
        print()

    def ui_phone_number_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logicAPI.available_phone_number()
        for destination in destinations:
            print("\t" + destination)
        print()

    def ui_opening_time_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logicAPI.available_opening_time()
        for destination in destinations:
            print("\t" + destination)
        print()

    def ui_closing_time_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logicAPI.available_closing_time()
        for destination in destinations:
            print("\t" + destination)
        print()

    def ui_main_contact_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logicAPI.available_main_contact()
        for destination in destinations:
            print("\t" + destination)
        print()

    def ui_print_country(self):
        self.ui_country_available_print()
        country = input(">> Please enter destination Country: ")
        results = self.logicAPI.search_destination_by_country(country)
        print("\nSearch results for " + country + ": ")
        self.ui_destination_table_header()
        for destination in results:
            print(destination)
        self.ui_destination_table_footer()

    def ui_print_city(self):
        self.ui_city_available_print()
        city = input(">> Please enter destination City: ")
        results = self.logicAPI.search_destination_by_city(city)
        print("\nSearch results for " + city + ": ")
        self.ui_destination_table_header()
        for destination in results:
            print(destination)
        self.ui_destination_table_footer()

    def ui_print_airport(self):
        self.ui_airport_available_print()
        airport = input(">> Please enter destination Airport: ")
        results = self.logicAPI.search_destination_by_city(airport)
        print("\nSearch results for " + airport + ": ")
        self.ui_destination_table_header()
        for destination in results:
            print(destination)
        self.ui_destination_table_footer()

    def ui_print_phone_number(self):
        self.ui_phone_number_available_print()
        phone_number = input(">> Please enter destination Phone number: ")
        results = self.logicAPI.search_destination_by_phone_number(
            phone_number)
        print("\nSearch results for " + phone_number + ": ")
        self.ui_destination_table_header()
        for destination in results:
            print(destination)
        self.ui_destination_table_footer()

    def ui_print_opening_time(self):
        self.ui_opening_time_available_print()
        opening_time = input(">> Please enter destination Opening time: ")
        results = self.logicAPI.search_destination_by_opening_time(
            opening_time)
        print("\nSearch results for " + opening_time + ": ")
        self.ui_destination_table_header()
        for destination in results:
            print(destination)
        self.ui_destination_table_footer()

    def ui_print_closing_time(self):
        self.ui_closing_time_available_print()
        closing_time = input(">> Please enter destination Closing time: ")
        results = self.logicAPI.search_destination_by_closing_time(
            closing_time)
        print("\nSearch results for " + closing_time + ": ")
        self.ui_destination_table_header()
        for destination in results:
            print(destination)
        self.ui_destination_table_footer()

    def ui_print_main_contact(self):
        self.ui_main_contact_available_print()
        main_contact = input(">> Please enter destination Main contact: ")
        results = self.logicAPI.search_destination_by_main_contact(
            main_contact)
        print("\nSearch results for " + main_contact + ": ")
        self.ui_destination_table_header()
        for destination in results:
            print(destination)
        self.ui_destination_table_footer()

    ### search function ###

    #Prints the search menu for destinations
    def ui_search_menu(self):
        self.general.ui_menu_header("Destination Search")
        print("\nPlease select a search option:")
        self.UI_numbered_menu([
            "Country", "City", "Airport", "Phone Number", "Opening Time",
            "Closing Time", "Main Contact", "Exit"
        ])
        self.general.ui_menu_footer()
        selection = input("\n>> Select option: ")
        return selection

    #Prints any UI menu in order
    def UI_numbered_menu(self, a_list):
        '''Takes a list as parameter and prints all the items of a list in an order from 1. list[0], 2. list[1] and so on'''
        for i in range(0, (len(a_list))):
            print(f"{i+1}. {a_list[i]}")

    #Prints the destination Main Menu
    def destination_menu(self):
        while True:
            self.general.ui_menu_header("Destination Menu")
            print(
                "\nSelect an option...\n1. Create new destination \n2. Search destinations \n3. View all destinations \n4. Edit destination \n5. Delete destination \n6. Main Menu"
            )
            self.general.ui_menu_footer()
            command = input(">> Select option: ")
            command = command.lower()
            if command == "1":
                new_destination = self.ui_new_destination()
                self.logicAPI.create_destination(*new_destination)
            elif command == "2":
                selection = self.ui_search_menu()
                if selection == "1":
                    self.ui_print_country()
                elif selection == "2":
                    self.ui_print_city()
                elif selection == "3":
                    self.ui_print_airport()
                elif selection == "4":
                    self.ui_print_phone_number()
                elif selection == "5":
                    self.ui_print_opening_time()
                elif selection == "6":
                    self.ui_print_closing_time()
                elif selection == "7":
                    self.ui_print_main_contact()
                elif selection == "8":
                    return
            elif command == "3":
                self.ui_all_destinations()
            elif command == "4":
                new_destination = self.ui_edit_destination()
                self.logicAPI.edit_destination(new_destination)
            elif command == "5":
                self.ui_all_destinations()
                destination_id = input(">> Enter destination ID to delete: ")
                destination = self.logicAPI.delete_destination(destination_id)
                for result in destination:
                    print(result)
            elif command == "6":
                return
            else:
                print("Invalid command, try again")
Exemple #9
0
 def __init__(self):
     self.general = GeneralUI()
     self.logicAPI = LogicAPI()
     self.customer_menu()
Exemple #10
0
class CustomerUI:
    def __init__(self):
        self.general = GeneralUI()
        self.logicAPI = LogicAPI()
        self.customer_menu()

    #unique_id,name,ssn,address,zip_code,city,country,phone,email,state
    #create new customer
    def ui_new_customer(self):
        customerFieldnames = [
            "name", "ssn", "address", "zip_code", "city", "country", "phone",
            "email"
        ]
        inputList = []
        print("\nPress 'q' and hit 'enter' to cancel at any time.")
        print("\nPlease enter the following details to create a new customer:")
        user_input = ""
        for field in customerFieldnames:
            if user_input.lower() == "q":
                return
            user_input = input(f"Enter {field}: ")
            inputList.append(user_input)
        return inputList

    #choose the number to edit
    def value_input(self):
        return input("Enter new value: ")

    #unique_id,name,ssn,address,zip_code,city,country,phone,email,state
    #Creates the Edit menu layout and returns the customer Instance after edit
    def ui_edit_customer(self):
        customer = self.ui_single_customer_unique()  #prints specific customer
        selection = ""
        while selection != "9":
            self.ui_print_edit_menu()
            selection = self.general.ui_edit_input()
            if selection == "1":
                customer.name = self.value_input()
            elif selection == "2":
                customer.ssn = self.value_input()
            elif selection == "3":
                customer.address = self.value_input()
            elif selection == "4":
                customer.zip_code = self.value_input()
            elif selection == "5":
                customer.city = self.value_input()
            elif selection == "6":
                customer.country = self.value_input()
            elif selection == "7":
                customer.phone = self.value_input()
            elif selection == "8":
                customer.email = self.value_input()
            elif selection == "9":
                return customer

    #unique_id,name,ssn,address,zip_code,city,country,phone,email,state
    #Prints the Customer Edit menu options
    def ui_print_edit_menu(self):
        '''Prints options for Edit menu and accepts input'''
        self.general.ui_menu_header("Edit customer")
        print("\nSelect field to edit:")
        print("1. Name")
        print("2. Social Security No.")
        print("3. Address")
        print("4. Zip code")
        print("5. City")
        print("6. Country")
        print("7. Phone")
        print("8. Email")
        print("9. Exit")
        self.general.ui_menu_footer()

    #name,ssn,address,zip_code,city,country,phone,email,state
    #Print Customer Table Header
    def ui_customer_table_header(self):
        print(
            f"{'Customer ID':<20}{'Name':<20}{'SSN':<20}{'Address':<20}{'Zip code':<20}{'City':<20}{'Country':<20}{'Phone':<20}{'Email':<20}"
        )
        print("-" * 200)

    #Print Customer Table Footer
    def ui_customer_table_footer(self):
        print("-" * 200)
        print()

    #Print all customer
    def ui_all_customer(self):
        results = self.logicAPI.all_customer()
        print("\nAll customers:")
        self.ui_customer_table_header()
        for customer in results:
            print(customer)
        self.ui_customer_table_footer()

    #Prints customer with unique ID
    def ui_single_customer_unique(self):
        '''Prints a single customer with a unique ID'''
        customer_unique = input(">> Please enter customer ID: ")
        customers = self.logicAPI.search_customer_by_unique(customer_unique)
        print("\ncustomer by ID: " + customer_unique)
        self.ui_customer_table_header()
        for customer in customers:
            print(customer)
        self.ui_customer_table_footer()
        return customer

    #name,ssn,address,zip_code,city,country
    ###availability option search ###
    def ui_name_available_print(self):
        '''Prints all customer name'''
        print("\nAvailable Options:")
        customers = self.logicAPI.available_customer_name()
        for customer in customers:
            print("\t" + customer)
        print()

    def ui_ssn_available_print(self):
        '''Prints all customer SSN'''
        print("\nAvailable Options:")
        customers = self.logicAPI.available_customer_ssn()
        for customer in customers:
            print("\t" + customer)
        print()

    def ui_address_available_print(self):
        '''Prints all customer address'''
        print("\nAvailable Options:")
        customers = self.logicAPI.available_customer_address()
        for customer in customers:
            print("\t" + customer)
        print()

    def ui_zip_code_available_print(self):
        '''Prints all customer zip_code'''
        print("\nAvailable Options:")
        customers = self.logicAPI.available_customer_zip_code()
        for customer in customers:
            print("\t" + customer)
        print()

    def ui_city_available_print(self):
        '''Prints all customer city'''
        print("\nAvailable Options:")
        customers = self.logicAPI.available_customer_city()
        for customer in customers:
            print("\t" + customer)
        print()

    def ui_country_available_print(self):
        '''Prints all customer country'''
        print("\nAvailable Options:")
        customers = self.logicAPI.available_customer_country()
        for customer in customers:
            print("\t" + customer)
        print()

    #name,ssn,address,zip_code,city,country
    #Print the availability data
    def ui_print_country(self):
        self.ui_country_available_print()
        country = input(">> Please enter customer Country: ")
        results = self.logicAPI.search_customers_by_country(country)
        print("\nSearch results for " + country + ": ")
        self.ui_customer_table_header()
        for customer in results:
            print(customer)
        self.ui_customer_table_footer()

    def ui_print_city(self):
        self.ui_city_available_print()
        city = input(">> Please enter customer City: ")
        results = self.logicAPI.search_customers_by_city(city)
        print("\nSearch results for " + city + ": ")
        self.ui_customer_table_header()
        for customer in results:
            print(customer)
        self.ui_customer_table_footer()

    def ui_print_zip_code(self):
        self.ui_zip_code_available_print()
        zip_code = input(">> Please enter customer zip_code: ")
        results = self.logicAPI.search_customers_by_zip_code(zip_code)
        print("\nSearch results for " + zip_code + ": ")
        self.ui_customer_table_header()
        for customer in results:
            print(customer)
        self.ui_customer_table_footer()

    def ui_print_address(self):
        self.ui_address_available_print()
        address = input(">> Please enter customer address: ")
        results = self.logicAPI.search_customers_by_address(address)
        print("\nSearch results for " + address + ": ")
        self.ui_customer_table_header()
        for customer in results:
            print(customer)
        self.ui_customer_table_footer()

    def ui_print_ssn(self):
        self.ui_ssn_available_print()
        ssn = input(">> Please enter customer ssn: ")
        results = self.logicAPI.search_customers_by_id(ssn)
        print("\nSearch results for " + ssn + ": ")
        self.ui_customer_table_header()
        for customer in results:
            print(customer)
        self.ui_customer_table_footer()

    def ui_print_name(self):
        self.ui_name_available_print()
        name = input(">> Please enter customer name: ")
        results = self.logicAPI.search_customers_by_name(name)
        print("\nSearch results for " + name + ": ")
        self.ui_customer_table_header()
        for customer in results:
            print(customer)
        self.ui_customer_table_footer()

    #Print search menu
    def ui_search_menu(self):
        self.general.ui_menu_header("Customer Search")
        print("\nPlease enter search option:")
        self.UI_numbered_menu([
            "Name", "Social Security No.", "Address", "Zip Code", "City",
            "Country", "Exit"
        ])
        self.general.ui_menu_footer()
        selection = input("\n>> Select option: ").lower()
        return selection

    #Prints any UI menu in order
    def UI_numbered_menu(self, a_list):
        '''Takes a list as parameter and prints all the items of a list in an order from 1. list[0], 2. list[1] and so on'''
        for i in range(0, (len(a_list))):
            print(f"{i+1}. {a_list[i]}")

    #name	ssn	address	zip_code	city	country
    #Print customer main menu
    def customer_menu(self):
        while True:
            self.general.ui_menu_header("Customer Menu")
            print(
                "\nSelect an option...\n1. Create new customer \n2. Search customer \n3. View all customers \n4. Edit customer \n5. Delete customer \n6. Main menu "
            )
            self.general.ui_menu_footer()
            command = input(">> Select option: ").lower()
            command = command.lower()
            if command == "1":
                new_customer = self.ui_new_customer()
                self.logicAPI.create_customer(new_customer)
            elif command == "2":
                selection = self.ui_search_menu()
                if selection == "1":
                    self.ui_print_name()
                elif selection == "2":
                    self.ui_print_ssn()
                elif selection == "3":
                    self.ui_print_address()
                elif selection == "4":
                    self.ui_print_zip_code()
                elif selection == "5":
                    self.ui_print_city()
                elif selection == "6":
                    self.ui_print_country()
                elif selection == "7":
                    self.customer_menu()
            elif command == "3":
                self.ui_all_customer()
            elif command == "4":
                new_customer = self.ui_edit_customer()
                self.logicAPI.update_customer(new_customer)
            elif command == "5":
                customer_id = input(">> Enter customer ID to delete: ")
                customer = self.logicAPI.delete_customer(customer_id)
                for result in customer:
                    print(result)
            elif command == "6":
                return
            else:
                print("Invalid command, try again")
Exemple #11
0
 def __init__(self):
     self.general = GeneralUI()
     self.logic = LogicAPI()
     self.vehicle_menu()
Exemple #12
0
class VehicleUI:
    def __init__(self):
        self.general = GeneralUI()
        self.logic = LogicAPI()
        self.vehicle_menu()
        # self.ui_print_type()

    #Prints UI for new vehicle
    def ui_new_vehicle(self):
        vehicleFieldnames = [
            "Manufacturer", "Model", "Vehicle type", "Status",
            "Manufacturing year", "Color", "License Requirement", "Location",
            "Rate"
        ]
        inputList = []
        print("\nPress 'q' and hit 'enter' to cancel at any time.")
        print("\nPlease enter the following details to create a new vehicle:")
        user_input = ""
        for field in vehicleFieldnames:
            if user_input.lower() == "q":
                return self.vehicle_menu()
            if field == "Location":
                user_input = ""
                destinations = self.ui_country_available_print()
                while user_input not in destinations:
                    user_input = input(f"Enter {field}: ")
            else:
                user_input = input(f"Enter {field}: ")
            inputList.append(user_input)
        return inputList

    #Request new value from user
    def value_input(self):
        return input("Enter new value: ")

    #Creates the Edit menu layout and returns the Vehicle Instance after edit
    def ui_edit_vehicle(self):
        vehicle = self.ui_single_vehicle_ID()  #prints specific vehicle
        selection = ""
        while selection != "9":
            self.ui_print_edit_menu()  #ask user what he would like to edit
            selection = self.general.ui_edit_input()
            if selection == "1":
                vehicle.manufacturer = self.value_input()
            elif selection == "2":
                vehicle.model = self.value_input()
            elif selection == "3":
                vehicle.vehicle_type = self.value_input()
            elif selection == "4":
                vehicle.status = self.value_input()
            elif selection == "5":
                vehicle.man_year = self.value_input()
            elif selection == "6":
                vehicle.color = self.value_input()
            elif selection == "7":
                vehicle.license_type = self.value_input()
            elif selection == "8":
                vehicle.location = self.value_input()
            elif selection == "9":
                vehicle.rate = self.value_input()
            elif selection == "q":
                return vehicle

    #Prints the Vehicle Edit menu options
    def ui_print_edit_menu(self):
        '''Prints options for Edit menu and accepts input'''
        self.general.ui_menu_header("Edit vehicle")
        print("\nSelect field to edit:")
        print("1. Manufacturer")
        print("2. Model")
        print("3. Vehicle type")
        print("4. Status")
        print("5. Manufacturing year")
        print("6. Color")
        print("7. License Requirement")
        print("8. Location")
        print("9. Rate")
        print("q. Exit")
        self.general.ui_menu_footer()

    #Print Vehicle Table Header
    def ui_vehicle_table_header(self):
        print(
            f"{'Unique ID':<20}{'Manufacturer':<20}{'Model':<20}{'Vehicle type':<20}{'Status':<20}{'Manufac. year':<20}{'Color':<20}{'License Req.':<20}{'Location':<20}{'Rate':<20}"
        )
        print("-" * 200)

    #Print Vehicle Table Footer
    def ui_vehicle_table_footer(self):
        print("-" * 200)
        print()

    #Prints all vehicles
    def ui_all_vehicles(self):
        results = self.logic.all_vehicles()
        print("\nAll vehicles:")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

    #Prints vehicle with unique ID
    def ui_single_vehicle_ID(self):
        '''Prints a single vehicle with a unique ID'''
        vehicle_ID = input(">> Please enter vehicle ID: ")
        vehicles = self.logic.search_vehicle_by_ID(vehicle_ID)
        print("\nVehicle by ID: " + vehicle_ID)
        self.ui_vehicle_table_header()
        for vehicle in vehicles:
            print(vehicle)
        self.ui_vehicle_table_footer()
        return vehicle

####################################################Search Menus##########################################################################

    def ui_manufacturer_available_print(self):
        print("\nAvailable Options:")
        vehicles = self.logic.available_manufacturers()
        for vehicle in vehicles:
            print("\t" + vehicle)
        print()

    def ui_model_available_print(self):
        print("\nAvailable Options:")
        vehicles = self.logic.available_model()
        for vehicle in vehicles:
            print("\t" + vehicle)
        print()

    def ui_vehicle_type_available_print(self):
        print("\nAvailable Options:")
        vehicles = self.logic.available_vehicle_type()
        for vehicle in vehicles:
            print("\t" + vehicle)
        print()

    def ui_status_available_print(self):
        print("\nAvailable Options:")
        vehicles = self.logic.available_status()
        for vehicle in vehicles:
            print("\t" + vehicle)
        print()

    def ui_manufacturing_year_available_print(self):
        print("\nAvailable Options:")
        vehicles = self.logic.available_manufacturing_year()
        for vehicle in vehicles:
            print("\t" + vehicle)
        print()

    def ui_color_available_print(self):
        print("\nAvailable Options:")
        vehicles = self.logic.available_color()
        for vehicle in vehicles:
            print("\t" + vehicle)
        print()

    def ui_license_type_available_print(self):
        print("\nAvailable Options:")
        vehicles = self.logic.available_license_type()
        for vehicle in vehicles:
            print("\t" + vehicle)
        print()

    def ui_location_available_print(self):
        print("\nAvailable Options:")
        vehicles = self.logic.available_location()
        for vehicle in vehicles:
            print("\t" + vehicle)
        print()

    def ui_print_manufacturer(self):
        self.ui_manufacturer_available_print()
        manufacturer = input(">> Please enter vehicle manufacturer: ")
        results = self.logic.search_vehicle_by_manufacturer(manufacturer)
        print("\nAll vehicles by manufacturer " + manufacturer + ": ")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

    def ui_print_model(self):
        self.ui_model_available_print()
        model = input(">> Please enter vehicle model: ")
        results = self.logic.search_vehicle_by_model(model)
        print("\nAll vehicles by model " + model + ": ")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

    def ui_print_vehicle_type(self):
        self.ui_vehicle_type_available_print()
        vehicle_type = input(">> Please enter vehicle type: ")
        results = self.logic.search_vehicle_by_vehicle_type(vehicle_type)
        print("\nAll vehicles by type " + vehicle_type + ": ")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

    def ui_print_status(self):
        self.ui_status_available_print()
        status = input(">> Please enter vehicle status: ")
        results = self.logic.search_vehicle_by_status(status)
        print("\nAll vehicles by type " + status + ": ")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

    def ui_print_manufacturing_year(self):
        self.ui_manufacturing_year_available_print()
        manufacturing_year = input(
            ">> Please enter vehicle manufacturing year: ")
        results = self.logic.search_vehicle_by_manufacturing_year(
            manufacturing_year)
        print("\nAll vehicles by manufacturing year " + manufacturing_year +
              ": ")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

    def ui_print_color(self):
        self.ui_color_available_print()
        color = input(">> Please enter vehicle color: ")
        results = self.logic.search_vehicle_by_color(color)
        print("\nAll vehicles by color " + color + ": ")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

    def ui_print_license_type(self):
        self.ui_license_type_available_print()
        license_type = input(">> Please enter vehicle license requirement: ")
        results = self.logic.search_vehicle_by_license_type(license_type)
        print("\nAll vehicles by type " + license_type + ": ")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

    def ui_print_location(self):
        self.ui_location_available_print()
        location = input(">> Please enter vehicle location: ")
        results = self.logic.search_vehicle_by_location(location)
        print("\nAll vehicles by type " + location + ": ")
        self.ui_vehicle_table_header()
        for vehicle in results:
            print(vehicle)
        self.ui_vehicle_table_footer()

#########################################################################################################################

#Prints the search menu for vehicles

    def ui_search_menu(self):
        self.general.ui_menu_header("Vehicle Search")
        print("\nPlease select a search option:")
        self.UI_numbered_menu([
            "Manufacturer", "Model", "Vehicle type", "Status",
            "Manufacturing year", "Color", "License Requirement", "Location",
            "Exit"
        ])
        self.general.ui_menu_footer()
        selection = input("\n>> Select option: ")
        return selection

    #Prints any UI menu in order
    def UI_numbered_menu(self, a_list):
        '''Takes a list as parameter and prints all the items of a list in an order from 1. list[0], 2. list[1] and so on'''
        for i in range(0, (len(a_list))):
            print(f"{i+1}. {a_list[i]}")

    def ui_country_available_print(self):
        '''Prints all destination type categories'''
        print("\nAvailable Options:")
        destinations = self.logic.available_country()
        for destination in destinations:
            print("\t" + destination)
        print()
        return destinations

    #Prints the Vehicle Main Menu
    def vehicle_menu(self):
        while True:
            self.general.ui_menu_header("Vehicle Menu")
            print(
                "\nSelect an option...\n1. Create new vehicle \n2. Search vehicles \n3. Check availability \n4. Check in/check out vehicle. \n5. View all vehicles \n6. Edit vehicle \n7. Delete vehicle \n8. Main Menu"
            )
            self.general.ui_menu_footer()
            command = input(">> Select option: ")
            command = command.lower()
            if command == "1":
                new_vehicle = self.ui_new_vehicle()
                self.logic.create_vehicle(*new_vehicle)
            elif command == "2":
                selection = self.ui_search_menu()
                if selection == "1":
                    self.ui_print_manufacturer()
                elif selection == "2":
                    self.ui_print_model()
                elif selection == "3":
                    self.ui_print_vehicle_type()
                elif selection == "4":
                    self.ui_print_status()
                elif selection == "5":
                    self.ui_print_manufacturing_year()
                elif selection == "6":
                    self.ui_print_color()
                elif selection == "7":
                    self.ui_print_license_type()
                elif selection == "8":
                    self.ui_print_location()
                elif selection == "9":
                    self.vehicle_menu()
            elif command == "3":
                self.ui_all_vehicles()
            elif command == "4":
                self.ui_checkin_menu()
            elif command == "5":
                self.ui_all_vehicles()
            elif command == "6":
                new_vehicle = self.ui_edit_vehicle()
                self.logic.edit_vehicle(new_vehicle)
            elif command == "7":
                vehicle_id = input(">> Enter vehicle ID to delete: ")
                vehicle = self.logic.delete_vehicle(vehicle_id)
                for result in vehicle:
                    print(result)
            elif command == "8":
                return
            else:
                print("Invalid command, try again")

    def ui_checkin_menu(self):
        self.general.ui_menu_header('Check-in Menu')
        print(
            "Select an option...\n1.Check out vehicle.\n2.Check in vehicle.\n3.Return."
        )
        self.general.ui_menu_footer()
        choice = input(">> Select option: ")
        if choice == '3':
            return
        elif choice == '1':
            vehicle = input("Enter contract ID: ")
            print(self.logic.vehicle_check_out(vehicle))
        elif choice == '2':
            vehicle = input("Enter contract ID: ")
            print(self.logic.vehicle_check_in(vehicle))
        elif choice == '3':
            return
Exemple #13
0
 def __init__(self):
     self.general = GeneralUI()
     self.logic = LogicAPI()
     self.invoice_menu()