def book_list(): query = ( f"SELECT b.id, b.name as nameBook, w.name FROM {BOOKS.TABLE_NAME} as b, \ {WRITERS.TABLE_NAME} as w WHERE b.writerId = w.id") books = get_data(query) pretty_print(books) print(Fore.GREEN, " Enter <key> comand ".center(30, "*"), Fore.RESET)
def apartments_list(self): print("Apartments List") apartments = Apartment.objects() columns = ('Name', 'Description', 'Price') pretty_print(apartments, columns)
def add_reservation(self): print("Add Reservation") Apartments = Apartment_service() apartments = Apartments.search_apartment() if apartments is None or len(apartments) == 0: print(Fore.YELLOW, "Apatrments not found", Fore.RESET) return rowIdx = get_int("Please, select apt number: ", 0, len(apartments)) apartment = apartments[rowIdx] reservation = Reservation() reservation.booked_date = datetime.datetime.now() reservation.check_in_date = get_date("Please, enter check in date: ") reservation.check_out_date = get_date("Please, enter check out date: ") apartment.reservations.append(reservation) apartment.save() columns = ('Check_in_date', 'Check_out_date', 'Booked_date') pretty_print([reservation], columns) print("{} Booking duration is {} day(s). {}".format(Fore.BLUE, reservation.duration, Fore.RESET)) print(Fore.GREEN, "Reservation saved", Fore.RESET)
def guest_list(self): print("Guest List") guests = Guest.objects() columns = ('Name', 'Last_name', 'Age', 'Is_card') pretty_print(guests, columns) return guests
def search_apartment(self): name = get_string("Please, enter apt name: ") apartment = Apartment.objects().filter(name__icontains=name) columns = ('Name', 'Description', 'Price') pretty_print(apartment, columns) return apartment
def search_guest(self): name = get_string("Please, enter guest name: ") guest = Guest.objects().filter(name__icontains=name) columns = ('Name', 'Age', 'Is_card') pretty_print(guest, columns) return guest
def search_guest(self, name, last_name, age): guest = Guest.objects().filter(name__icontains=name, last_name__icontains=last_name, age__icontains=int(age)) columns = ('Name', 'Last_name', 'Age', 'Is_card') pretty_print(guest, columns) return guest
def search_apartment(self, name): print("Apartment Search") apartment = Apartment.objects().filter(name=name) columns = ('Name', 'Description', 'Price') pretty_print(apartment, columns) return apartment
def get_book_info(): book_name = None while True: book_name = input("Enter book name, please: ") if len(book_name.strip()) > 0: break query = ("SELECT {0}.name as book, {0}.description, {1}.name as writer FROM {0}, {1}" " WHERE {0}.writerId = {1}.id AND {0}.name = '{2}'".format(BOOK_TABLE, WRITERS_TABLE, book_name)) book_info = get_data(query) pretty_print(book_info)
def reservation_list(self): Apartments = Apartment_service() apartments = Apartments.search_apartment() if apartments is None or len(apartments) == 0: print(Fore.YELLOW, "Apartments not found", Fore.RESET) return rowIdx = get_int("Please, select apt number: ", 1, len(apartments)) - 1 apartment = apartments[rowIdx] reservations = apartment.reservations columns = ('Check_in_date', 'Check_out_date', 'Booked_date') pretty_print(reservations, columns)
def add_reservation(self): print("Add Reservation") Apartments = Apartment_service() apartments = Apartments.search_apartment() if apartments is None or len(apartments) == 0: print(Fore.YELLOW, "Apartments not found", Fore.RESET) return rowIdx = get_int("Please, select apt number: ", 1, len(apartments)) - 1 apartment = apartments[rowIdx] Guests = Guest_service() guests = Guests.search_guest() if guests is None or len(guests) == 0: guest = Guests.add_guest() else: rowId = get_int("Please, select guest number: ", 1, len(guests)) - 1 guest = guests[rowId] reservation = Reservation() reservation.guest = guest reservation.booked_date = datetime.datetime.now() reservation.check_in_date = get_date("Please, enter check in date: ") reservation.check_out_date = get_date("Please, enter check out date: ") if reservation.check_in_date > reservation.check_out_date: print("Check out date must be later than the check in date") return apartment.reservations.append(reservation) apartment.save() columns = ('Check_in_date', 'Check_out_date', 'Booked_date') pretty_print([reservation], columns) print("{} Booking duration is {} day(s).{}".format( Fore.BLUE, reservation.duration, Fore.RESET)) print(Fore.GREEN, "Reservation made successfully", Fore.RESET)
def book_info(): book_list() book_id = None while True: book_id = input("Please enter book ID: ") if len(book_id.strip()) > 0: break query = ( f"SELECT b.name, b.description, w.name FROM {BOOKS.TABLE_NAME} as b, \ {WRITERS.TABLE_NAME} as w WHERE b.id = {book_id} and b.writerId = w.id" ) book_description = get_data(query) pretty_print(book_description) print(" Done ".center(30, "*")) print(Fore.GREEN, " Enter <key> comand ".center(30, "*"), Fore.RESET)
def reservation_list_filtered_by_guest(self): Guests = Guest_service() guests = Guests.search_guest() if guests is None or len(guests) == 0: print(Fore.YELLOW, "Guests not found", Fore.RESET) return rowIdx = get_int("Please, select guest name: ", 1, len(guests)) - 1 result = [] guest = guests[rowIdx] columns = ('Check_in_date', 'Check_out_date', 'Booked_date') reservations = Apartment.objects(reservations__guest=guest).all() for apts in reservations: data = {} data['apartment'] = apts.name for cell in columns: data[cell.lower()] = apts.reservations[0][cell.lower()] result.append(data) columns = ('Apartment', 'Check_in_date', 'Check_out_date', 'Booked_date') pretty_print(result, columns)
def books_list(): query = ("SELECT {0}.id, {0}.name as book, {0}.description," " {1}.name as writer FROM {0}, {1} WHERE {0}.writerId = {1}.id".format(BOOK_TABLE, WRITERS_TABLE)) books = get_data(query) pretty_print(books)
def view_writers(): query = ("SELECT * FROM %s" % TABLE_NAME) writers = get_data(query) pretty_print(writers) print(Fore.GREEN, " Enter <key> comand ".center(30, "*"), Fore.RESET)
def view_writers(): query = ("SELECT * FROM %s" % TABLE_NAME) writers = get_data(query) pretty_print(writers)