Пример #1
0
    def get_bookings_analytics_count(self, query, start, end, room_id=None):
        results = []
        start_date, day_after_end_date = CommonAnalytics.convert_dates(
            self, start, end)
        start_dt = dateutil.parser.parse(start_date)
        end_dt = dateutil.parser.parse(day_after_end_date)
        number_of_days = (end_dt - start_dt).days
        room_name = get_room_name(room_id)

        if number_of_days <= 30:
            dates = CommonAnalytics.get_list_of_dates(
                start, number_of_days)
            for date in dates:
                bookings = CommonAnalytics.get_total_bookings(
                    self, query, date[0], date[1], room_id=room_id)
                string_date = dateutil.parser.parse(
                    date[0]).strftime("%b %d %Y")
                output = BookingsAnalyticsCount(
                    period=string_date, bookings=bookings, room_name=room_name)
                results.append(output)

        else:
            dates = CommonAnalytics.get_list_of_month_dates(
                start_date, start_dt, day_after_end_date, end_dt)
            for date in dates:
                bookings = CommonAnalytics.get_total_bookings(
                    self, query, date[0], date[1], room_id=room_id)
                string_month = dateutil.parser.parse(date[0]).strftime("%B")
                output = BookingsAnalyticsCount(
                    period=string_month, bookings=bookings, room_name=room_name)
                results.append(output)

        return results
Пример #2
0
 def bookings_count(self, unconverted_dates, events):
     """
     Get bookings count and period in a given room
     """
     start_date = unconverted_dates['start']
     day_after_end_date = unconverted_dates['end']
     parsed_start_date = dateutil.parser.parse(start_date)
     parsed_end_date = dateutil.parser.parse(day_after_end_date)
     parsed_day_after_end_date = parsed_end_date + relativedelta(days=1)
     number_of_days = (parsed_day_after_end_date - parsed_start_date).days
     bookings_count = []
     user_time_zone = CommonAnalytics.get_user_time_zone()
     if number_of_days <= 30:
         dates = CommonAnalytics.get_list_of_dates(start_date,
                                                   number_of_days)
         for date in dates:
             bookings = 0
             string_date = dateutil.parser.parse(
                 date[0]).strftime("%b %d %Y")
             for event in events:
                 start_timez = dateutil.parser.parse(
                     event.start_time).astimezone(
                         pytz.timezone(user_time_zone))  # noqa
                 if start_timez.strftime("%b %d %Y") == string_date:
                     bookings += 1
             output = BookingsCount(period=string_date,
                                    total_bookings=bookings)
             bookings_count.append(output)
     else:
         dates = CommonAnalytics.get_list_of_month_dates(
             start_date, parsed_start_date, day_after_end_date,
             parsed_day_after_end_date)
         for date in dates:
             string_month = dateutil.parser.parse(date[0]).strftime("%b %Y")
             output = BookingsCount(period=string_month, total_bookings=0)
             for event in events:
                 start_timez = dateutil.parser.parse(
                     event.start_time).astimezone(
                         pytz.timezone(user_time_zone))  # noqa
                 if start_timez.strftime("%b %Y") == string_month:
                     output.total_bookings += 1
             bookings_count.append(output)
     return bookings_count
Пример #3
0
    def get_bookings_analytics_count(self, query, start, end):
        results = []
        start_date, day_after_end_date = CommonAnalytics.convert_dates(
            self, start, end)  # noqa E501
        start_dt = dateutil.parser.parse(start_date)
        end_dt = dateutil.parser.parse(day_after_end_date)
        number_of_days = (end_dt - start_dt).days

        if number_of_days <= 15:
            dates = CommonAnalytics.get_list_of_dates(
                start, number_of_days)  # noqa E501
            for date in dates:
                bookings = CommonAnalytics.get_total_bookings(
                    self, query, date[0], date[1])  # noqa E501
                string_date = dateutil.parser.parse(date[0]).strftime(
                    "%b %d %Y")  # noqa E501
                output = BookingsAnalyticsCount(period=string_date,
                                                bookings=bookings)  # noqa E501
                results.append(output)

        elif number_of_days >= 90:
            dates = CommonAnalytics.get_list_of_month_dates(
                start_date, start_dt, day_after_end_date, end_dt)  # noqa E501
            for date in dates:
                bookings = CommonAnalytics.get_total_bookings(
                    self, query, date[0], date[1])  # noqa E501
                string_month = dateutil.parser.parse(date[0]).strftime("%B")
                output = BookingsAnalyticsCount(period=string_month,
                                                bookings=bookings)  # noqa E501
                results.append(output)

        else:
            raise GraphQLError(
                "Kindly enter a valid date range(less than 15 days or greater than 90 days"
            )  # noqa E501

        return results