def get_updated_customer_data(customer, headers): index = 1 while index < len(customer): ask_label = view.color_sentence( Fore.GREEN, f"Would you like to edit {headers[index]}? ") new_data_label = view.color_sentence( Fore.GREEN, f"Provide new {headers[index]}: ") decision = view.get_yes_or_no(ask_label) if decision: customer[index] = view.get_input(new_data_label) customer[index] = accept_data(customer[index], new_data_label) index += 1 return customer
def get_customer_data(): name_label = view.color_sentence(Fore.GREEN, "Provide customer name: ") name = view.get_input(name_label) if name.lower() == BACK_WORD: return name = accept_data(name, name_label) email_label = view.color_sentence(Fore.GREEN, "Provide customer email: ") email = view.get_input(email_label) if email.lower() == BACK_WORD: return email = accept_data(email, email_label) subscribe_label = view.color_sentence(Fore.GREEN, "Is the customer a subscriber? ") subscribed = view.get_yes_or_no(subscribe_label) subscribed = accept_data(subscribed, subscribe_label) subscribed = "1" if subscribed else '0' return [name, email, subscribed]
def delete_transaction(): view.clear_console() transactions = sales.read() view.print_table(transactions, sales.HEADERS) index = view.get_input('Provide a valid transactions id to delete profile: ') choices = range(len(transactions)) choices = map(lambda x: str(x + 1), choices) while index not in choices: view.print_error_message("Incorrect value. Try again!") index = view.get_input('Provide a valid transactions id to update profile: ') transactions.pop(int(index) - 1) sales.create(transactions) view.print_message(view.color_sentence(Fore.GREEN, "Transaction was deleted.")) view.wait_for_reaction()
def menu(): operation = None while operation != '0': display_menu() try: operation = view.get_input( view.color_sentence(Fore.GREEN, "\nSelect an operation: ")) run_operation(int(operation)) view.wait_for_reaction() except KeyError: view.print_error_message("There is no such option.") view.wait_for_reaction() except ValueError: view.print_error_message("Please enter a number!") view.wait_for_reaction()
def delete_customer(): view.clear_console() view.print_message("Delete customer: ") customers = crm.read() view.print_table(customers, crm.HEADERS, title='All customers:') delete_label = view.color_sentence(Fore.GREEN, "Provide customer id to remove: ") customer_index = view.get_input_number(delete_label, max_value=len(customers)) customers.pop(int(customer_index) - 1) crm.create(customers) view.print_message("Customer was removed correctly.")
def update_customer(): view.clear_console() view.print_message("Update customer: ") customers = crm.read() view.print_table(customers, crm.HEADERS, title='All customers:') update_label = view.color_sentence(Fore.GREEN, "Provide customer id to update: ") customer_index = view.get_input_number(update_label, max_value=len(customers)) - 1 customer_to_update = customers.pop(int(customer_index)) updated_customer = get_updated_customer_data(customer_to_update, crm.HEADERS) customers.insert(int(customer_index), updated_customer) crm.create(customers) view.print_message("Customer was updated correctly.")
def accept_data(data, label): while not view.get_yes_or_no( view.color_sentence(Fore.GREEN, f"Is the value \"{data}\" correct? ")): data = view.get_input(label) return data