Назначение

Предоставляет информацию о таймлайнах, включая их свойства (для хранилища)

Особенности работы представления

Используется для передачи данных в хранилище.

Для таймлайнов, в которых нет привязанной комнаты и у которых тип комнаты = компонетному, для них вычисляется фиктивный номер комнаты многокомпонентного типа, чтобы распределить такие таймлайны по родительским комнатам. В дальнейшем этот фиктивный номер используется при формировании отчетов По номерам.

Не учитываются часовые таймлайны.

Содержит в том числе таймлайны, дата которых выходит за даты реального проживания брони. Для таких таймлайнов не считаются никакие числовые показатели, только финансовые, поскольку бронь уже не проживала в это время и соответственно не занимала место. Эти таймлайны существуют для анализа всех дней из брони, вне зависимости от того, жила ли она фактически в эти дни или нет.

Представление содержит в том числе строки для групповых броней со следующими условиями:

  • если нет броней по группе Квота\Тип комнаты\День, то берем контракт, как он есть
  • выбираем контракты, у которых по группе Квота\Тип комнаты\День есть подходящие, не аннулированные брони, такие контракты схлопываем до одной строки

Описание полей

Имя поляТип данныхОписаниеПримечание
PropertyCodenvarchar (8)Код объекта
DayDatedateДата проживания
ReservationNonvarchar (20)Номер брониPropertyCode.ReservationNo Для строк по контрактам групповых броней тут пусто
QuotaIdnvarchar (39)Идентификатор квотыДля строк по индивидуальным броням, которые не связаны с групповыми бронями, тут ставим 0.
PropertyCode.QuotaId
QuotaItemIdnvarchar (39)Идентификатор контракта квотыДля строк по индивидуальным броням, которые не связаны с групповыми бронями, тут ставим 0.
PropertyCode.QuotaItemId
RoomCountintКомнато-ночь

Для индивидуальных броней считаем как 1, если выполняется один из наборов условий:

  • это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это не день выезда ночной брони, класс типа комнаты Гостевой или Многокомпонент, это первая бронь из разделенной
  • это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это не день выезда ночной брони, класс типа комнаты Компонент, берем 1 из нескольких таймлайнов на компоненты одной комнаты в один день


Для групповых броней берем количество комнат из контракта.

PlaceCountint

Койко-ночь

Для индивидуальных броней считаем как 1, если таймлайн на класс типа комнаты Компонент. Иначе берем количество основных мест в номере.

И выполняются следующие условия:
это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это не день выезда ночной брони, класс типа комнаты не Служебный или Помещения, это первая бронь из разделенной


Для групповых броней берем количество комнат из контракта и умножаем на количество основных мест в номере для компонентных типов номеров или на 1 для остальных

RoomPlaceCountintКомнато/койко ночь

Для индивидуальных броней считаем количество основных мест в номере, если таймлайн на класс типа комнаты Многокомпонент. Иначе считаем как 1.

И выполняются следующие условия:
это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, класс типа комнаты не Служебный или Помещения, это первая бронь из разделенной


Для групповых броней берем количество комнат из контракта и умножаем на количество основных мест в номере для многокомпонентных типов номеров или на 1 для остальных

ManCountint

Человеко-ночь

Для индивидуальных броней

Считаем как сумму всех значений в схеме размещения (взрослые + все категории детей), если выполняются следующие условия:
это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это не день выезда ночной брони


Для групповых броней берем количество всех гостей из контракта и умножаем на количество комнат из контракта

AdultCountint

Количество гостей-взрослых

Для индивидуальных броней: если выполняются условия из примечания к полю ManCount

Для групповых броней берем количество гостей-взрослых из контракта и умножаем на количество комнат из контракта

AdultCountOccupationint

Количество гостей-взрослых, используемое в расчете загрузки по людям.

Определяется, как наименьшее между реальным количеством гостей-взрослых и количеством основных мест по данному типу номеров.

Если выполняются условия из примечания к полю ManCount

Child1Countint

Количество гостей-детей 1-й возрастной группы

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount

Child2Countint

Количество гостей-детей 2-й возрастной группы

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount

Child3Countint

Количество гостей-детей 3-й возрастной группы

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount

Child4Countint

Количество гостей-детей 4-й возрастной группы

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount

Child5Countint

Количество гостей-детей 5-й возрастной группы

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount

ChildCountOccupationint

Количество гостей-детей, используемое в расчете загрузки по людям

Без учета детей без места.

Определяется, как наименьшее между реальным количеством гостей-детей и остатком от количества основных мест после вычета AdultCountOccupation.
Основная идея в том, что количество всех гостей в номере не должно превышать StandardGuestCount

Если выполняются условия из примечания к полю ManCount

ExtraBedAdultCountint

Количество гостей-взрослых на доп. месте

Если выполняются условия из примечания к полю ManCount и стоит признак размещения на доп месте.
ExtraBedChild1CountintКоличество гостей-детей 1-й возрастной группы на доп. месте

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount и стоит признак размещения на доп месте.

ExtraBedChild2CountintКоличество гостей-детей 2-й возрастной группы на доп. месте

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount и стоит признак размещения на доп месте.

ExtraBedChild3CountintКоличество гостей-детей 3-й возрастной группы на доп. месте

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount и стоит признак размещения на доп месте.

ExtraBedChild4CountintКоличество гостей-детей 4-й возрастной группы на доп. месте

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount и стоит признак размещения на доп месте.

ExtraBedChild5CountintКоличество гостей-детей 5-й возрастной группы на доп. месте

Без учета детей без места.

Если выполняются условия из примечания к полю ManCount и стоит признак размещения на доп месте.

ExtraBedGuestCountSumintКоличество гостей всего на доп. местеЕсли выполняются условия из примечания к полю ManCount и стоит признак размещения на доп месте.
RateCodenvarchar (8)Код тарифа
RateNamenvarchar (255)Наименование тарифа
RateCategoryvarchar (9)

Категория тарифа

Гостевой, Льготный, Для сотрудников
RoomCodenvarchar (8)Код комнаты
RoomNamenvarchar (255)Наименование комнаты
ParentRoomCodenvarchar (8)Код родительского расположения (как правило корпус)
LocationCodenvarchar (8)Код расположения номера (как правило этаж)
LocationNamenvarchar (255)Наименование расположения номера
RoomTypeCodenvarchar (8)Код типа комнаты
RoomTypeNamenvarchar (255)Наименование типа комнаты
RoomTypeCategoryCodenvarchar (8)Код категории типа комнаты
RoomTypeCategoryNamenvarchar (255)Наименование категории типа комнаты
GeoCodeGrandParentnvarchar (MAX)

Гео-код третьего уровня


GeoCodeParentnvarchar (MAX)Гео-код второго уровня.


GeoCodeNamenvarchar (255)Гео-код первого уровня
GeoCodenvarchar (8)Код гео-кода
TrackCodenvarchar (8)Трэк-код
OpenCodenvarchar (8)Открытый код.
MarketSegmentCodenvarchar (8)Код сегмента рынка
BookingSourceCodenvarchar (8)Код источник бронирования
IsGuaranteedint

Признак гарантированная / негарантированная бронь

Определяется по наличию хотя бы одной гарантированной брони среди всех разделенных
GuaranteeCodenvarchar (8)Код гарантии брони
ArrivalRoomCountint

Комнато-ночь прибытия брони

Считаем как 1, если выполняется один из наборов условий:

  • это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это не день выезда ночной брони, класс типа комнаты Гостевой или Многокомпонент, это первый таймлайн прибытия среди броней в разделенной
  • это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это не день выезда ночной брони, класс типа комнаты Компонент, это таймлайн прибытия, берем 1 из нескольких таймлайнов на компоненты одной комнаты в один день

Для групповых броней всегда 0

ArrivalPlaceCountint

Койко-ночь прибытия брони

Считаем как 1, если таймлайн на класс типа комнаты Компонент. Иначе берем количество основных мест в номере.

И выполняются следующие условия:
это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это первый таймлайн прибытия среди броней в разделенной, класс типа комнаты не Служебный или Помещения


Для групповых броней всегда 0

ArrivalRoomPlaceCountintКомнат/койко-ночь прибытия брони

Считаем количество основных мест в номере, если таймлайн на класс типа комнаты Многокомпонент. Иначе считаем как 1.

И выполняются следующие условия:
это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это первый таймлайн прибытия среди броней в разделенной, класс типа комнаты не Служебный или Помещения


Для групповых броней всегда 0

ArrivalAdultCountint

Человеко-ночь прибытия для взрослых гостей

Количество гостей-взрослых, если выполняются следующие условия:

это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это таймлайн прибытия


Для групповых броней всегда 0

ArrivalChildCountintЧеловеко-ночь прибытия для детей гостей

Количество гостей-детей, если выполняются следующие условия:

это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это таймлайн прибытия


Для групповых броней всегда 0

ArrivalManCountintЧеловеко-ночь прибытия для всех гостей

Считаем как сумму всех значений в схеме размещения (взрослые + все категории детей), если выполняются следующие условия:

это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это таймлайн прибытия


Для групповых броней всегда 0

DepartureRoomCountint

Комнато-ночь выбытия брони

Считаем как 1, если выполняется один из наборов условий:

  • это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, класс типа комнаты Гостевой или Многокомпонент, это последний таймлайн выбытия среди броней в разделенной
  • это не DayUse бронь, это "полноценная" ночь (то есть у таймлайна признак StayNight = 1), бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, класс типа комнаты Компонент, это таймлайн выбытия, берем 1 из нескольких таймлайнов на компоненты одной комнаты в один день

Для групповых броней всегда 0

DeparturePlaceCountint

Койко-ночь выбытия брони

Считаем как 1, если таймлайн на класс типа комнаты Компонент. Иначе берем количество основных мест в номере.

И выполняются следующие условия:
это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это последний таймлайн выбытия среди броней в разделенной, класс типа комнаты не Служебный или Помещения


Для групповых броней всегда 0

DepartureRoomPlaceCountintКомнато/койко-ночь выбытия брони

Считаем количество основных мест в номере, если таймлайн на класс типа комнаты Многокомпонент. Иначе считаем как 1.

И выполняются следующие условия:
это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это последний таймлайн выбытия среди броней в разделенной, класс типа комнаты не Служебный или Помещения


Для групповых броней всегда 0

DepartureManCountint

Человеко-ночь выбытия брони

Считаем как сумму всех значений в схеме размещения (взрослые + все категории детей), если выполняются следующие условия:

это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это таймлайн выбытия


Для групповых броней всегда 0

DepartureAdultCountintЧеловеко-ночь выбытия для взрослых гостей

Количество гостей-взрослых, если выполняются следующие условия:

это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это таймлайн выбытия


Для групповых броней всегда 0

DepartureChildCountintЧеловеко-ночь выбытия для детей гостей

Количество гостей-детей, если выполняются следующие условия:

это не DayUse бронь, бронь не в статусах WAIT, NOSHOW, CANCEL, дата начала таймлайна между актуальными датами проживания брони, это таймлайн выбытия


Для групповых броней всегда 0

DayUseRoomCountint

Комнато-ночь DayUse

Считаем как 1, если выполняется один из наборов условий:

  • это DayUse бронь, класс типа комнаты Гостевой или Многокомпонент, это первая бронь из разделенной
  • это DayUse бронь, класс типа комнаты Компонент, берем 1 из нескольких таймлайнов на компоненты одной комнаты в один день


Для групповых броней всегда 0

DayUsePlaceCountint

Койко-ночь DayUse

Считаем как 1, если таймлайн на класс типа комнаты Компонент. Иначе берем количество основных мест в номере.

И выполняются следующие условия:
это DayUse бронь, класс типа комнаты не Служебный или Помещения, это первая бронь из разделенной


Для групповых броней всегда 0

DayUseRoomPlaceCountintКомнато/койко ночь DayUse

Считаем количество основных мест в номере, если таймлайн на класс типа комнаты Многокомпонент. Иначе считаем как 1.

И выполняются следующие условия:
это DayUse бронь, класс типа комнаты не Служебный или Помещения, это первая бронь из разделенной


Для групповых броней всегда 0

DayUseManCountint

Человеко-ночь выбытия

Считаем как сумму всех значений в схеме размещения (взрослые + все категории детей), если это DayUse бронь


Для групповых броней всегда 0

WaitListRoomCountint

Комнато-ночь в листе ожидания

Считаем как 1, если выполняется один из наборов условий:

  • это бронь в статусе WAIT, класс типа комнаты Гостевой или Многокомпонент, это таймлайн прибытия
  • это бронь в статусе WAIT, класс типа комнаты Компонент, берем 1 из нескольких таймлайнов на компоненты одной комнаты в один день

Для групповых броней всегда 0

WaitListPlaceCountint

Койко-ночь в листе ожидания

Считаем как 1, если таймлайн на класс типа комнаты Компонент. Иначе берем количество основных мест в номере.

И выполняются следующие условия:
это бронь в статусе WAIT, класс типа комнаты не Служебный или Помещения, это первая бронь из разделенной, это таймлайн прибытия


Для групповых броней всегда 0

WaitListRoomPlaceCountintКомнато/койко ночь в листе ожидания

Считаем количество основных мест в номере, если таймлайн на класс типа комнаты Многокомпонент. Иначе считаем как 1.

И выполняются следующие условия:
это бронь в статусе WAIT, класс типа комнаты не Служебный или Помещения, это первая бронь из разделенной, это таймлайн прибытия


Для групповых броней всегда 0

RevenueStaydecimal

Сумма за проживание по данному таймлайну

Сумма (LocaCurrencyAmount) по доходным транзакциям с кодом типа дохода = ROOM (проживание), связанных с данным таймлайнов по его идентифкатору через представление lr.VTransactionTimeline
Транзакции считаются по своему первоначальному счету на момент создания

Сумма контрактов квот за вычетом суммы из броней этих квот

Для групповой брони: цена контракта, деленная на количество дней контракта

RevenueStayExcludeTaxdecimalСумма за проживание без учета налогов по данному таймлайну

Сумма из предыдущей строки за вычетом суммы налогов
Транзакции считаются по своему первоначальному счету на момент создания

Для групповой брони: цена контракта без налогов, деленная на количество дней контракта

RevenueOtherdecimalСумма прочих доходов по данному таймлайну (кроме проживания)

Сумма (LocaCurrencyAmount) по доходным транзакциям с кодом типа дохода <> ROOM (не проживание), связанных с данным таймлайнов по его идентифкатору через представление lr.VTransactionTimeline
Транзакции считаются по своему первоначальному счету на момент создания

Сумма контрактов квот за вычетом суммы из броней этих квот

Для групповых броней всегда 0

RevenueOtherExcludeTaxdecimalСумма прочих доходов без учета налогов по данному таймлайну (кроме проживания)

Сумма из предыдущей строки за вычетом суммы налогов
Транзакции считаются по своему первоначальному счету на момент создания

Для групповых броней всегда 0

ParentLocationCodenvarchar (8)Код родительской комнаты
ReservationTimelineIdnvarchar (39)Идентификатор таймлайнаPropertyCode.ReservationTimelineId
ActualDatedatetimeАктуальная дата

Системное поле, использующееся для определения, какие строки необходимо перелить в хранилище. Если дата в этом поле больше или равна дате последней переливки - строка переливается в хранилище.

Используется дата выезда брони. Соответственно, до даты выезда брони включительно переливка будет переносить все изменения маркетинговой информации и таймлайнов, после - нет.

HistoryDateFromdatetimeДата начала периодаИспользуется для механизма историчности
HistoryDateTodatetimeДата окончания периодаИспользуется для механизма историчности
NoPlaceChild1CountintКоличество гостей-детей 1-й возрастной группы без местаИспользуется для дальнейшей передачи данных в Hotel Advisors
NoPlaceChild2CountintКоличество гостей-детей 2-й возрастной группы без местаИспользуется для дальнейшей передачи данных в Hotel Advisors
NoPlaceChild3CountintКоличество гостей-детей 3-й возрастной группы без местаИспользуется для дальнейшей передачи данных в Hotel Advisors
NoPlaceChild4CountintКоличество гостей-детей 4-й возрастной группы без местаИспользуется для дальнейшей передачи данных в Hotel Advisors
NoPlaceChild5CountintКоличество гостей-детей 5-й возрастной группы без местаИспользуется для дальнейшей передачи данных в Hotel Advisors

Фрагмент данных

  • No labels