コード例 #1
0
ファイル: books_actions.py プロジェクト: yura7k/python_course
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)
コード例 #2
0
    def apartments_list(self):
        print("Apartments List")

        apartments = Apartment.objects()
        columns = ('Name', 'Description', 'Price')

        pretty_print(apartments, columns)
コード例 #3
0
    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)
コード例 #4
0
    def guest_list(self):
        print("Guest List")
        guests = Guest.objects()
        columns = ('Name', 'Last_name', 'Age', 'Is_card')

        pretty_print(guests, columns)
        return guests
コード例 #5
0
    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
コード例 #6
0
    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
コード例 #7
0
    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
コード例 #8
0
    def search_apartment(self, name):
        print("Apartment Search")

        apartment = Apartment.objects().filter(name=name)

        columns = ('Name', 'Description', 'Price')
        pretty_print(apartment, columns)

        return apartment
コード例 #9
0
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)
コード例 #10
0
    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)
コード例 #11
0
    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)
コード例 #12
0
ファイル: books_actions.py プロジェクト: yura7k/python_course
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)
コード例 #13
0
    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)
コード例 #14
0
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)
コード例 #15
0
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)
コード例 #16
0
def view_writers():
    query = ("SELECT * FROM %s" % TABLE_NAME)
    writers = get_data(query)
    pretty_print(writers)