Пример #1
0
    def booking_add(self):
        print(Fore.RED, " Add Booking ".center(30, "*"), Fore.RESET)
        guest = Guest_service()
        guest_id = guest.search_guest()

        Apartments = Apartment_service()
        apartments = Apartments.search_apartment()
       
        rowIdx = get_int("Please select apt number: ", 0, len(apartments))
        apartment = apartments[rowIdx]
        apartment_price = apartment.price

        booking = Booking()
        booking.guest_id = guest_id
        booking.booked_date = datetime.datetime.now()
        booking.chek_in_date = get_date("Input Data")
        booking.chek_out_date = get_date("Input Data")
        
        if (apartments == None or len(apartments) == 0):
            print("Error")
            return

        apartment.bookings.append(booking)

        apartment.save()    
        
        columns = ("Chek_in_date", "Chek_out_date", "Booked_date")
        pretty_print([booking], columns)

        print("{}Booking duration is {} day(s).{}".format(Fore.YELLOW, booking.duration, Fore.RESET))
        print("{}TOTAL Price {} USD.{}".format(Fore.YELLOW, apartment_price * booking.duration, Fore.RESET))
    
        print(Fore.RED, " Apartment Saved".center(30, "*"), Fore.RESET)
Пример #2
0
    def guest_list(self):
        print(Fore.RED, " Guest List ".center(30, "*"), Fore.RESET)

        guests = Guest.objects()
        columns = ('Id', 'Name', 'Age', 'Is_Card')

        pretty_print(guests, columns)
Пример #3
0
    def apartments_list(self):
        print(Fore.RED, " Apartment List ".center(30, "*"), Fore.RESET)

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

        pretty_print(apartments, columns)
Пример #4
0
    def search_apartment(self, name=''):
        print(Fore.RED, " Apartment Search ".center(30, "*"), Fore.RESET)

        if name == '':
            name = get_string("Pleace, enter apartment name: ")

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

        columns = ('Name', 'Description', 'Price', 'Smoke_allowed')

        pretty_print(apartment, columns)

        return apartment
Пример #5
0
    def booking_list(self):
        print(Fore.RED, " View Booking by Apartment ".center(30, "*"), Fore.RESET)
        columns_apt = ("Name", "price")
        columns_booking = ("guest_id", "chek_in_date", "chek_out_date", "booked_date")

        #  Повертаємо апартаменти та друкуємо табличку
        Apartments = Apartment_service()
        apartments = Apartments.search_apartment()

        for apartment in apartments:
            guest_bookings = []

            #  перевіряємо чи є бронювання
            if apartment.bookings:
                for booking in apartment.bookings:
                    #  Щоб не друкувати на кожне бронювання окрему табличку
                    guest_bookings.append(booking)
                print(Fore.YELLOW, "Booking(s) in " + apartment.name, Fore.RESET)
                pretty_print(guest_bookings, columns_booking)
            else:
                print(Fore.YELLOW, "No booking(s) yet in " + apartment.name, Fore.RESET)
Пример #6
0
    def booking_seach_by_name(self):
        """ View booking by Guest name
        
        Input (str) -  guest name
        Output - print table Bookings
        """
        print(Fore.RED, " Seach Booking by Name".center(30, "*"), Fore.RESET)
            
        #  Повертаємо ID гостя
        guest = Guest_service()
        guest_id = guest.search_guest()
        #  це друкую для виключно перевірки
        print(Fore.YELLOW, "You ID = ", guest_id, Fore.RESET)

        columns_apt = ("Name", "price")
        columns_booking = ("guest_id", "chek_in_date", "chek_out_date", "booked_date")
        message = "You haven't bookings yet!"

        #  Перевіряємо чи є бронювання
        for apartment in Apartment.objects(bookings__guest_id=guest_id):
            guest_bookings = []

            #  Перевіряємо чи це бронювання нашого гостя
            for booking in apartment.bookings:
                if booking.guest_id == guest_id:
                    guest_bookings.append(booking)

            #  якщо є бронювання друкуємо назву апартаментів та бронювання
            if len(guest_bookings) > 0:
                print(Fore.YELLOW, "You boking(s) in " + apartment.name, Fore.RESET)
                pretty_print(guest_bookings, columns_booking)
                message = ''
        
        #  якщо зовсім немає бронювань дкукуємо повідомлення
        if message != '':
            print(Fore.YELLOW, message, Fore.RESET)