Мастер-Web:Дополнительный модуль Подбор туров с наличием мест — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Поисковые фильтры и курсы валют)
Строка 1737: Строка 1737:
 
Для ускорения процесса поиска применяется внутренний механизм кэширования. На данный момент ПК "Мастер-Web" может создавать кэш поисковых фильтров, курсов валют и статусов наличия мест.
 
Для ускорения процесса поиска применяется внутренний механизм кэширования. На данный момент ПК "Мастер-Web" может создавать кэш поисковых фильтров, курсов валют и статусов наличия мест.
 
====Поисковые фильтры и курсы валют====
 
====Поисковые фильтры и курсы валют====
Для включения механизма необходимо добавить внутрь секции <sectionGroup name="megatec.web"> следующий тег:
+
Для включения механизма необходимо добавить внутрь секции <sectionGroup name="megatec.web"> следующие теги:
  <section name="cachingDurations" type="System.Configuration.NameValueSectionHandler" />  
+
<sectionGroup name="cache">
 +
  <section name="cachingDurations" type="System.Configuration.NameValueSectionHandler" />
 +
</sectionGroup>
 
А также добавить внутрь контейнера <megatec.web> следующие теги:
 
А также добавить внутрь контейнера <megatec.web> следующие теги:
 +
<cache>
 
  <cachingDurations>
 
  <cachingDurations>
 
     <add key="quotedDynamicSearchFilters" value="180" />  
 
     <add key="quotedDynamicSearchFilters" value="180" />  
 
     <add key="course" value="180" />  
 
     <add key="course" value="180" />  
 
  </cachingDurations>
 
  </cachingDurations>
 +
</cache>
 
В настройке quotedDynamicSearchFilters задается время обновление кэша поисковых фильтров (в секундах). В настройке course - время обновления кэша курсов валют (в секундах).
 
В настройке quotedDynamicSearchFilters задается время обновление кэша поисковых фильтров (в секундах). В настройке course - время обновления кэша курсов валют (в секундах).
  

Версия 12:20, 21 ноября 2012

Версия статьи от 21.11.2012. Для перехода на версию статьи, соответствующую используемой Вами версии программы, нажмите ссылку в таблице:

Более ранние версии:
До версии ПК «Мастер-Тур» 2009.2.12 включительно
До версии ПК «Мастер-Тур» 2009.2.15 включительно
До версии ПК «Мастер-Тур» 2009.2.15 включительно


Содержание

Введение

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

Установка

Для установки надстройки «Динамический лист с наличием мест» нужно выложить распакованные файлы из архива mw-quoteddynamic-2007.2.XX.XXXX.zip в каталог, где лежит ПК Мастер-Web.

Настройка

После установки Надстройка «Динамический лист с наличием мест» доступна по адресу http: //ip-адрес сервера/MasterWeb/Extra/QuotedDynamic.aspx.

Настройки в файле WEB.CONFIG

Дополнительные настройки, задаваемые в файле web.config, находящемся в папке MasterWeb позволяют задать дополнительные условия для отображения и проверки данных.

Описание

Значение

Настройка

1

Включение возможности поиска по актуальным местам в экране «Динамический лист с наличием мест»

1 – выключить возможность поиска по актуальным местам (форма 1);

2 – включить возможность поиска по актуальным местам (форма 2)

<add key="pagingType" value="2"/>

2

Производить поиск перелетов, если на один из них закончились места и стоит настройка noPlacesQuoteResult = request

- true – подбирать перелет, если места на текущий перелет закончились, по запросу или отсутствует расписание;

- false или отсутствие настройки – не подбирать перелет, если места на текущий перелет закончились или отсутствует расписание

<add key="searchFlightsOnRequest" value="true"/>

3

Отключение ссылок в экранах «Ценовой лист» и «Динамический лист предложений» для перехода в экран «Корзина» (у пользователей сайта не будет возможности перейти к оформлению заявки).

true или отсутствие настройки – ссылки есть;

false – ссылок нет

<add key="priceLinksEnabled" value="false" />

4

Обработка стоп-сейлов на авиаперелет

- true – обрабатывать стоп-сейлы на авиаперелет;

- false или отсутствие настройки – не обрабатывать

<add key="checkStopAvia" value="true"/>

5

Для поиска в экране «Динамический Лист предложений» и для правильного отображения количества человек в «Корзине», если количество основных мест указывается в Справочнике «Типы размещений»

true – количество основных мест берется из справочника «Типы размещений» и, если соответствующее поле там не заполнено, то из справочника «Типы номеров»;

false или отсутствие настройки– количество основных мест берется из справочника «Типы номеров»

<add key="useAccomodationPlaces" value="true" />

6

Настройка, определяющая страны, в которых цены заводятся за номер. Используется в экране

Ключи стран через запятую

<add key="costForRoomCountries" value="9,86,461"/>

7

Для поиска в экране «Динамический Лист предложений» и для правильного отображения количества человек в «Корзине», если количество дополнительных мест указывается в Справочнике «Типы номеров»

– true - количество дополнительных мест берется из справочника «Типы номеров» и, если соответствующее поле там не заполнено, то из справочника «Типы размещений»

– false или отсутствие настройки - количество дополнительных мест берется из справочника «Типы размещений»

<add key="useRoomsExtraPlaces" value="false" />

8

Формат вывода названий питания

- short – выводить коды питания;

- full – выводить полные названия

<add key="pansionNames" value="full"/>

9

Формат вывода названий размещений

- short – выводить коды размещений;

- full – выводить полные названия

<add key="roomNames" value="full"/>

10

Настройка округления суммы в нац. Валюте в экране «Дин. Лист с наличием мест»

- отсутствие настройки – не округлять;

- ceil – округлять в большую сторону;

- floor – округлять в меньшую сторону

<add key="exchangeRoundType" value="ceil"/>

11

Настройка, управляющая отображением ссылки на дополнительное описание. При включенной настройке, если для тура заполнено дополнительное описание, то автоматически генерируется ссылка на страницу TourDescription.aspx, в которую вставляется дополнительное описание.

- true – отображать ссылку на дополнительное описание тура;

- false или отсутствие настройки –  отображать ссылку на описание тура (URL)

<add key="EnableTourDescriptionUrl" value="true"/>

12

Настройка, включающая в экране «Динамический лист с наличием мест» возможность поиска цен по услугам в отелях

- true – включить возможность поиска по услугам в отеле;

- false или отсутствие настройки – возможность поиска по услугам в отелях выключена

<add key=" useHotelServiceFilter" value="true"/>

13

Настройка, определяющая максимальный период для отбора данных в экране «Динамический лист с наличием мест»

- макисмальное количество дней, на которое можно производить отбор данных

<add key="tourDatesIntervalLimit" value="7"/>

14

Настройка, определяющая таблицу, из которой должен браться внутренний курс компании для пересчета стоимости туров в национальную валюту

- RealCoursesFix – внутренний курс компании хранится в таблице RealCoursesFix (при использовании ПК Мастер-Финансы);

- RealCourses или отсутствие настройки – внутренний курс хранится в таблице RealCourses

<add key="realCoursesSource" value="RealCoursesFix" />

15

Настройка, включающая в экране «Динамический лист с наличием мест» дополнительный фильтр по виду тура. Возможными вариантами фильтрации являются:

- все – поиск по всем турам вне зависимости от их вида;

- пакетные туры – поиск туров, в составе которых есть услуги «Авиаперелет»;

- наземное обслуживание – поиск туров без перелетов.

- true – включить видимость фильтра по виду тура;

- false или отсутствие настройки – фильтр по виду тура не отображается

<add key="showKindOfTours" value="true"/>

17

Настройка, позволяющая осуществлять проверку наличия мест в квотах от любого партнера вне зависимости от того, какой партнер предоставляет цену.

- true – включить возможность распечатки счета;

- false или отсутствие настройки – печать счета запрещена

<add key=" checkAllPartnersQuota" value="true"/>

18

Отображение наличия мест (на квотируемые услуги) в экранах, если закончились свободные места в квоте

no: «СТОП»- нет квот;

request: «Запрос» места по запросу;

в отсутствии настройки статус: «СТОП»

<add key="noPlacesQuoteResult" value="request" />

19

Отображение наличия мест в экранах, если релиз-период = 0

true– отображается “запрос”, даже если в квоте еще есть свободные места;

false или отсутствие настройки – отображается статус в соответствии с обычными правилами

< add key=

"setRequestIfReleaseIsZero" value="true" />

20

Проверка агентской квоты

- true или отсутствие настройки - квоты разделяются на агентские/общие

- false - агентские квоты игнорируются, и проверяется только общая квота

<add key="checkAgentQuotesEnabled" value="true" />

21

Проверка общей квоты, если закончились места в агентской

- true или отсутствие настройки - если агентская квота закончилась, то проверяется общая квота

- false - если агентская квота закВерсия статьи от 21-11-2012. Для перехода на версию статьи, соответствующую используемой Вами версии программы, нажмите ссылку в таблице: ончилась, общая не проверяется

<add key=

"checkAgentAndCommonQuote" value="true" />

22

Проверка квот без продолжительности после того, как заканчиваются квоты на продолжительность

- true или отсутствие настройки – проверять квоты без продолжительности после того, как закончатся квоты на продолжительность;

- false – не проверять квоты без продолжительности

<add key="checkNoLongQuota" value="true" />

23

Наличие мест, отображаемое при наступлении релиз-периода

- request – запрос;

- no – нет

<add key=" expiredReleaseQuoteResult " value="request" />

24

Значение, определяющее наличие мест «Есть»

Текстовое или символьное значение, например, «Есть» или «+»

<add key="quotaYesText" value="Есть"/>

25

Значение, определяющее наличие мест «Нет»

Текстовое или символьное значение, например, «Нет» или «-»

<add key="quotaNoText" value="Нет"/>

26

Значение, определяющее наличие мест «Запрос»

Текстовое или символьное значение, например, «Запрос» или «?»

<add key="quotaRequestText" value="Запрос"/>

27

Значение, определяющее наличие мест «Мало»

Текстовое или символьное значение, например, «Мало» или «+»

<add key="quotaFewText" value="Мало"/>

28

Настройка, реализующая возможность  вывода числового значения оставшихся мест в случае, когда достигнуто значение "Мало"

- true – отображается числовое значение оставшихся мест, в случае наличия мест «Мало»

 

- false или отсутствие настройки – настройка выключена, при наличие мест «Мало» отображается значение, которое прописано  в настройке quotaFewText

<add key="showFewCountInQD" value="true"/>

29

Настройка, определяющая необходимость проверки наличия мест по услугам, если статус услуг по умолчанию равен Ok

- true или отсутствие настройки – не проверять наличие мест, если статус услуги по умолчанию Ok (в этом случае наличие мест всегда отображается как «Есть» вне зависимости от состояния квот по услуге);

- false – проверять наличие мест, если статус услуги по умолчанию Ok (наличие мест отображается исходя из состояния квот по услуге в соответствии с настройками)

<add key=" useDefaultServiceQuota" value="true"/>

30

Настройка, реализующая возможность просмотра условий бронирования тура в экране «Динамический лист с наличием мест».

- text – выводить условия бронирования в виде текста на странице в колонке «Условия бронирования»;

- link – в колонке «Условия бронирования» отображается иконка, по нажатию которой открывается окно с условиями бронирования тура;

- none или отсутствие настройки – не отображать колонку «Условия бронирования»

<add key="displayTourDescription" value="link" />

31

Настройка, позволяющая вывести ссылку на результат поиска в экране «Динамический лист с наличием мест». Ссылка отобразится в поле «Ссылка на результат:».

- true – отобразить ссылку на результат поиска;

- false или отсутствие настройки – ссылка на результат поиска не отображается

<add key="showSearchUrl" value="true" />

32

Настройка, регулирующая формат отображения даты в экранах «Ценовой лист» и «Подбор туров с наличием мест»

- true – отображать дату начала и дату окончания тура;

- false или отсутствие настройки – отображать только дату заезда

<add key="priceListShowBothDates" value="true"/>

33

Настройка, определяющая необходимость отображения стоимости туров в национальной валюте в экранах «Ценовой лист» и «Подбор туров с наличием мест»

- true или отсутствие настройки – отображать стоимость туров в национальной валюте в экранах «Ценовой лист» и «Подбор туров с наличием мест»;

- false – отображать стоимость туров в у.е. в экранах «Ценовой лист» и «Подбор туров с наличием мест»

<add key="showCostInNationalRate" value="true" />

34

Настройка, определяющая порядок сортировки результатов поиска в экране «Подбор туров с наличием мест». Значение данной настройки заменяет сортировку по цене (поле pt_price в таблице mwPriceDataTable) в сортировочном выражении

- поля в таблице mwPriceDataTable, по которым необходимо отсортировать данные в результирующей таблице.

Пример основных полей:

  • PT_TourDate – дата заезда по туру
  • PT_Nights – продолжительность тура в ночах
  • PT_TourType – ключ типа тура
  • PT_Price – цена
  • PT_HDName – название отеля
  • PT_TourName – название тура
  • PT_PNName – название питания
  • PT_PNCode – код типа питания
  • PT_RMName – название типа номера
  • PT_RMCode – код типа номера
  • PT_RCName – название категории номера
  • PT_RCCode – код категории номера
  • PT_ACName – название типа размещения
  • PT_ACCode – код типа размещения
  • PT_RSName – название курорта
  • PT_RMOrder – порядок сортировки типов номеров
  • PT_RCOrder – порядок сортировки категорий номеров
  • PT_ACOrder – порядок сортировки типов размещения

 

Для сортировки данных по порядку (прямая сортировка) после названия поля нужно либо не указывать ничего, либо указать значение asc.

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

<add key="priceSortReplacement" value="pt_tourdate desc,pt_hdname asc, pt_price" />

35

Настройка, включающая возможность перехода в экран «Наличие мест на рейсы» или «Полетные программы» из экрана «Подбор туров с наличием мест» при наличии мест «Есть» или «Мало»

- aviaquotes – при наличии мест на рейсы «Есть» или «Мало» существует возможность перехода в экран «Наличие мест на рейсы»;

- aviatimelist – при наличии мест на рейсы «Есть» или «Мало» существует возможность перехода в экране «Полетные программы»

<add key="quotedDynamicAviaQuotesLinkTarget" value="aviatimelist" />

36

Настройка, определяющая необходимость поиска данных не по точному совпадению количества основных и дополнительных мест, указанных в соответствующих фильтрах экрана «Подбор туров с наличием мест», а по сумме основных и дополнительных мест

- true – включить возможность поиска по сумме основных и дополнительных мест;

- false или отсутствие настройки – поиск осуществляется по точному совпадению количества основных и дополнительных мест, указанных в поисковом фильтре

<add key="useTotalPlaceAmount" value="true" />

37

Настройка, включающая отображения списка услуг, входящих в стоимость, при наведении курсора на цену в экране «Подбор туров с наличием мест»

- true – отображать список услуг, входящих в стоимость, при наведении курсора на цену;

- false или отсутствие настройки – список услуг, входящих в стоимость, не отображается

<add key="showQDPricePopup" value="true" />

38

Настройка, при включении которой выбор валюты осуществляется в экране «Подбор туров с наличием мест». Далее выбранная для тура валюта используется на протяжении всего процесса бронирования

- true – выбор валюты осуществляется в экране поиска тура и далее выбранная для тура валюта используется на протяжении всего процесса бронирования;

- false или отсутствие настройки – выбор валюты доступен в экранах «Подбор туров с наличием мест», «Динамический лист с ценами по туру», «Ценовой лист», в корзине стоимость тура отображается либо в национальной валюте, либо в валюте тура.
Внимание! Для корректной работы данной настройки (продолжения процесса бронирования) необходимо отключить настройку отображения цен в корзине в национальной валюте: <add key="ShowBasketCostIn NationalRate" value="false"/>

<add key="UseSearchDefinedCurrency" value="true" />

39

Настройка, включающая отображение доплат по отелю в поле «Условия бронирования» экрана «Подбор туров с наличием мест».

Доплаты отображаются из описания отеля.

- true – отображать доплаты по отелю в поле «Условия бронирования»;

- false или отсутствие настройки – доплаты по отелю не отображаются

<add key="ShowHotelSurcharge" value="true" />

40

Настройка, которая позволяет указать по какому курсу будет расчитываться цена тура.

- plan - цены пересчитываются по плановому курсу валют из справочника МТ (обязательно должна быть прописана вместе с найстройкой <add key="realCoursesSource" value="Courses"/> );

- real или отсутствие настройки - валюту цены пересчитываются по реальному курсу из справочника МТ.

<add key="courseType" value="plan" />

41

Настройка, включающая отображение колонки "Крайний срок подачи документов на визу".

- true - включить отображение колонки "Крайний срок подачи документов на визу" в таблице результатов;

- false или отсутствие настройки - отключить отображение колонки "Крайний срок подачи документов на визу" в таблице результатов.

<add key="showVisaDeadlineColumn" value="true" />

42

Настройка, определяющая проставление чекбоксов наличия мест у отелей

None — ничего не выбрано;

Yes — только гарантированные места;

Request — только места под запрос;

NoFlight или отсутствие настройки — гарантированные места и места под запрос;

All — гарантированные места, места под запрос и мест нет

(Значения настроек регистрозависимые.)

<add key="hotelQuotaMask" value="Yes" />

43

Настройка, определяющая проставление чекбоксов наличия мест у авиаперелётов

None — ничего не выбрано;

Yes — только гарантированные места;

Request — только места под запрос;

NoFlight или отсутствие настройки — гарантированные места и места под запрос;

All — гарантированные места, места под запрос и мест нет

(Значения настроек регистрозависимые.)

<add key="aviaQuotaMask" value="Yes" />

44

Настройка, включающая запись состояния фильтров QD в таблицу [SystemLog]

true — запись включена;

false или отсутствие настройки — запись выключена

<add key="quotedDynamicFilterLog" value="true" />

45

Настройка, позволяющая переключать вид фильтра продолжительностей: чекбоксы или диапазон

true — отображение фильтра в виде диапазона;

false или отсутствие настройки — отображение фильтра в виде чекбоксов

<add key="ShowNightsFilterInQDAsRange" value="true" />

46

Настройка, определяющая режим отображения фильтра по СПО

ShowAll или отсутствие настройки — показывать все туры, включая те, у которых дата начала продаж еще не наступила;

ShowWithoutPrices - в фильтре показывать все туры, включая те, у которых дата начала продаж еще не наступила. Цены по турам, у которых дата начала продаж еще не наступила, не показывать в результатах поиска;

ShowWithStartedSaleDate - показывать только туры, у которых дата начала продаж наступила.

<add key="SpoFilterDisplayMode" value="ShowAll" />

Настройки отображения

Отображение тех или иных элементов поискового фильтра, а так же их вид, размер местоположение и т.д. настраивается через файл стилей styles.css. За настройки отображения отвечают следующие стили:

  • #dof_DepartureCityDiv – фильтр «Город вылета»;
  • #dof_CountryDiv – фильтр «Страна»;
  • #dof_TourTypeDiv – фильтр «Тип тура»;
  • #dof_ResortDiv – название фильтра «Курорт»;
  • #dof_ResortDiv_InnerDiv – фильтр «Курорт»;
  • #dof_RegionDiv – название фильтра «Город»;
  • #dof_RegionDiv_InnerDiv – фильтр «Город»;
  • #dof_SpoDiv – фильтр «СПО»;
  • #dof_HotelDiv – название фильтра «Отель» + быстрый поиск отеля;
  • #hotelDivScroll – фильтр «Отель»;
  • #dof_TourDates – фильтр «Даты заезда»;
  • #dof_RoomTypeDiv – фильтр «Тип номера»;
  • #dof_ChildrenMainDiv – фильтр «Количество взрослых/детей на основном месте»;
  • #dof_ChildrenExtraDiv – фильтр «Количество взрослых/детей на доп. месте»;
  • #dof_NightsDiv – фильтр «Ночи»;
  • #dof_RoomCategoryDiv – фильтр «Категория» (гостиниц);
  • #dof_PansionDiv – фильтр «Питание»;
  • #dof_KindOfTourDiv – фильтр «Виды туров»;
  • #dof_PriceMaximumDiv – фильтр «Цена не более указанной величины»;
  • #dof_CurrencyDiv – контрол переключения валют;
  • #dof_QuotasDiv – контрол «Наличие мест»;
  • #dof_PageSizeDiv – выбор количества строк, отображаемых в результатах поиска;
  • #dof_SearchDiv – кнопка «Подобрать тур»;
  • #dof_UpdateProgressForLeftDiv – прогрессбар 1 ( );
  • #dof_UpdateProgressForMiddleDiv – прогрессбар 2 ( );
  • #dof_CountryDescriptionDiv – описание страны;
  • .qd_Div – нижний колонтитул.

Каждый элемент стилей может содержать настройки:

  • Width – ширина элемента;
  • Height – высота элемента;
  • Overflow – отображение содержания блочного элемента, если оно целиком не помещается и выходит за область заданных размеров;
  • background-color – цвет фона;
  • Border – толщина, стиль и цвет границы вокруг элемента;
  • Display – определение того как элемент должен быть показан;
  • Position – способ позиционирования элемента относительно окна браузера или других объектов на веб-странице;
  • Top – для позиционированного элемента определяет расстояние от верхнего края родительского элемента, не включая отступ, поле и ширину рамки, до верхнего края дочернего элемента;
  • И т.д. (подробнее можно посмотреть на http://www.htmlbook.ru/css/).
Скрытие элементов фильтра

Для того чтобы скрыть тот или иной элемент, необходимо для соответствующего стиля прописать настройку:
Display:none;
Если какой-либо элемент поискового фильтра скрывается, то очень важно учесть, что при этом необходимо заново отпозиционировать все последующие элементы, либо изменить их размеры. Рассмотрим пример. Допустим, мы хотим скрыть фильтр «Курорт». Для этого мы добавляем настройку Display:none; для стилей #dof_ResortDiv и #dof_ResortDiv_InnerDiv:

#dof_ResortDiv
{
width:200px;
display:none;	
}
#dof_ResortDiv_InnerDiv
{
width: 100%; 
height: 74px; 
overflow: auto; 
background-color: LightGrey; 
border: solid 1px black;
display:none;
}

Данное изменение без позиционирования остальных элементов, либо без изменения их размера приводит к тому, что поисковый фильтр разъезжается:
ST56.png
Для того, чтобы фильтр выровнялся достаточно просто изменить значение настройки height для стиля #dof_RegionDiv_InnerDiv:

#dof_RegionDiv_InnerDiv
{
width: 100%; 
height: 193px; 
overflow: auto; 
background-color: LightGrey; 
border: solid 1px black;
}

Т.е. мы увеличиваем высоту фильтра «Регион»:
ST57.png

Настройки дизайна через header.ascx и footer.ascx

Для корректного отображения элементов дизайна header.ascx и footer.ascx необходимо проверить следующее:

  • При использовании файлов MasterPage, отличных от стандартного, необходимо заключить строку в тег
    с указанием id="FooterDiv" class="qd_Div":
 <div id="FooterDiv" class="qd_Div">     
 <!-- #include virtual="~/Controls/Footer.ascx" -->  
 </div>  
  • Содержание файла footer.ascx не должно начинаться с закрывающих тегов.
  • При использовании табличной верстки (содержание файла начинается с закрывающих тегов) необходимо разбить футер на 2 файла:

- в первом из них будут закрываться теги, открытые в файле header.ascx и он должен быть вынесен из тега

в файле MasterPage; - второй файл должен содержать в себе html, который корректно будет обрабатываться внутри тега

;

Пример:

 </table>
 <!-- #include virtual="~/Controls/Footer1.ascx" -->
 <div id="FooterDiv" class="qd_Div">     
 <!-- #include virtual="~/Controls/Footer2.ascx" --> 
 </div>

Настройки экрана «Динамический лист предложений с наличием мест»

Настройки для данного экрана задаются в файле web.config, находящемся в папке MasterWebStandard. Данные настройки регулируют отображение тарифов на авиаперелеты, питания и категорий гостиниц. Для этого в конфигурационном файле добавляется секция <MasterWeb>.
781.PNG
Данная секция содержит 3 подсекции настроек:

  1. dynamicCharterClasses – список тарифов на авиаперелет
  2. dynamicBoard – список типов питания
  3. dynamicHotelCategories – список категорий гостиниц.

Настройка секции dynamicCharterClasses

Данная секция определяет какие колонки тарифов на авиаперелет будут отображаться в результатах поиска в экране «Подбор туров с наличием мест». Секция dynamicCharterClasses должна содержать как минимум одно значение. Для добавления нового значения необходимо добавить строчку вида: <add name="Название тарифа на авиаперелет" keys="ключи тарифов через запятую"/> В значениях параметра name указывается название колонки, которое будет отображаться в экране «Подбор туров с наличием мест», а в значениях параметра keys перечисляются ключи тарифов на авиаперелет. Ключи тарифов на авиаперелет хранятся в таблице AirService.

Настройка секции dynamicBoard

Данная секция определяет, как будут отображаться типы питания в поисковом фильтре экрана «Подбор туров с наличием мест». Параметр mode= в настройках секции <dynamicBoard /> определяет вид группировки типов питания:

  • simple – не группировать типы питания, отображать все варианты из рассчитанных цен;
  • complex – группировать типы питания в соответствии с настройками в секции dynamicBoard;
  • global – группировать типы питания по глобальному коду, указанному в справочнике «Типы питания».
Вариант simple

При выборе варианта simple дополнительных настроек не требуется.

Вариант complex

Если выбран вариант complex, то необходимо:

  1. Определить вид группировки типов питания. Для этого в секции dynamicBoard необходимо добавить нужные значения типов питания. Для добавления нового значения необходимо добавить строчку вида:

<add name="Название типа питания" keys="ключи типов питания через запятую"/> В значениях параметра name указывается название типа питания, которое будет отображаться в экране «Подбор туров с наличием мест», а в значениях параметра keys перечисляются ключи типов питания. Ключи типов питания хранятся в таблице Pansion.

  1. Закомментировать или удалить в файле MasterWebStandard/templates/bindSchemeQuotedDynamic.xml секцию:

<control name="chklBoard" priority="9" type="Pansion" itemType="System.Int32" alwaysSelected="false"> <dependency control="ddlDepartFrom" /> <dependency control="ddlCountry" /> <dependency control="chklRegion" /> <dependency control="ddlTour" /> </control>

Вариант global

Если выбран вариант global, то необходимо заполнить поле «Глобальный код» в справочнике «Типы питания». Например, в справочнике есть типы питания All Inclusive, Ultra All Inclusive, Max All Inclusive, по сути обозначающие тип питания «Всё включено». Для того, чтобы сгруппировать эти типы питания, нужно в поле «Глобальный код» справочника «Типы питания» для этих типов прописать одно и то же значение, например ALL. В этом случае в поисковом фильтре экрана «Подбор туров с наличием мест» отобразится значение ALL, но при поиске будут отбираться данные по всем трем типам питания.

Настройка секции dynamicHotelCategories

Данная секция определяет, как будут отображаться категории отелей в поисковом фильтре экрана «Подбор туров с наличием мест». Параметр mode= в настройках секции <dynamicHotelCategories /> определяет вид группировки категорий гостиниц:

  • simple – не группировать категории отелей, отображать все варианты из рассчитанных цен;
  • complex – группировать категории отелей в соответствии с настройками в секции dynamicHotelCategories;
  • global – группировать категории отелей по глобальному коду, указанному в справочнике «Категории отелей».
Вариант simple

При выборе варианта simple дополнительных настроек не требуется.

Вариант complex

Если выбран вариант complex, то необходимо:

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

<add name="Категория отеля" keys="варианты категорий гостиниц"/> В значениях параметра name указывается категория гостиницы, которая будет отображаться в экране «Подбор туров с наличием мест», а в значениях параметра keys перечисляются варианты категорий гостиниц, которые соответствуют значению в поле name.

  1. Закомментировать или удалить в файле MasterWebStandard/templates/bindSchemeQuotedDynamic.xml секцию:

<control name="chklCategory" priority="8" type="HotelStars" itemType="System.Int32" alwaysSelected="false"> <dependency control="ddlDepartFrom" /> <dependency control="ddlCountry" /> <dependency control="chklRegion" /> <dependency control="ddlTour" /> </control>

Вариант global

Если выбран вариант global, то необходимо заполнить поле «Глобальный код» в справочнике «Категории отелей». Например, в справочнике есть категории 5*, 5*+, 5*****, по сути обозначающие категорию отеля «5*». Для того, чтобы сгруппировать эти категории, нужно в поле «Глобальный код» справочника «Категории отелей» для этих категорий прописать одно и то же значение, например 5*. В этом случае в поисковом фильтре экрана «Подбор туров с наличием мест» отобразится значение 5*, но при поиске будут отбираться данные по всем трем категория отелей.

Передача параметров в экран «Динамический лист с наличием мест»

Данная настройка предусматривает возможность передачи различных параметров через URL страницы. При этом, если существуют рассчитанные прайсы по данной стране, то при загрузке страницы в фильтре данная страна автоматически будет выбрана в списке стран, и будут загружены значения в других поисковых полях. Пример строки подключения:
http:// ip-адрес сервера ПК Мастер-Web/MasterWebStandard/Extra/QuotedDynamic.aspx?country=90&departFrom=1&resort=1&city=275&tourtype=0&tour=267&hotel=3234&room=2&dateFrom=2008-08-15&dateTo=2008-08-25
(здесь параметры country=90&departFrom=1&resort=1&city=275&tourtype=0&tour=267&hotel=3234&room=2&dateFrom=2008-08-15&dateTo=2008-08-25, где «90», «1», «1», «275», «0», «267», «3234», «2», «2008-08-15» и «2008-08-25» их значения)
Возможные варианты:

  • сountry= ключ страны (обязательный параметр)
  • departFrom= ключ города вылета (обязательный параметр)
  • resort= ключи курортов через запятую
  • city= ключи городов через запятую
  • tourtype= ключ типа тура
  • tour= ключ тура в таблице TP_Tours
  • tourlistkey= ключ тура в таблице tbl_TurList
  • hotel= ключи отелей через запятую
  • stars= категории гостиниц через запятую
  • hotelOptions= ключи услуг в отелях через запятую
  • pansion= ключи типов питания через запятую
  • room= ключ типа номера
  • roomCategory= ключ категории номеров
  • adults= количество взрослых
  • childs= количество детей
  • firstChildAge= возраст первого ребенка
  • secondChildAge= возраст второго ребенка
  • dateFrom= дата заезда с
  • dateTo= дата заезда по
  • pricelink_target= открытие ссылки на корзину (_top – в текущем окне, _blank – в отдельном)
  • target= открытие результатов поиска в отдельном окне (blank – открытие страницы с результатами поиска в отдельном окне)
  • pkey= ключ партнера, которому должна отправляться копия письма о новом бронировании при оформлении путевок в экранах «Корзина», «Упрощенная корзина» и «Упрощенная корзина 2» (данный параметр удобно использовать, например, если экран «Динамический лист с наличием мест» встроен в сайт агентства с использованием фреймов)
  • aviaQuotaMask= отметки наличия мест на авиаперелеты (1 – наличие мест «Есть»; 2 – наличие мест «Нет»; 3 – наличие мест «Есть» и «Нет»; 4 – наличие мест «Запрос»; 5 – наличие мест «Есть» и «Запрос»; 6 – наличие мест «Запрос» и «Нет»; 7 – наличие мест «Есть», «Нет» и «Запрос»)
  • hotelQuotaMask= отметки наличия мест в отеле (1 – наличие мест «Есть»; 2 – наличие мест «Нет»; 3 – наличие мест «Есть» и «Нет»; 4 – наличие мест «Запрос»; 5 – наличие мест «Есть» и «Запрос»; 6 – наличие мест «Запрос» и «Нет»; 7 – наличие мест «Есть», «Нет» и «Запрос»)
  • showResults= необходимость автоматического отбора данных при переходе в экран по ссылке с параметрами (0 – данные автоматически не отбираются)
  • priceLimit= цена до
  • mainOnly= поиск только по основным размещениям
  • kindOfTours= виды тура (0 – все; 1 – пакетные туры; 2 – наземное обслуживание)
  • pageSize= количество записей на странице
  • nights= продолжительность в ночах
  • currency= валюта (cu – у.е.; national – национальная валюта; ISO-код валют через запятую)
  • additionalinfo= отображение дополнительного описания тура (отображается в самом верху экрана над фильтрами); доступные значения: 0- не отображать, 1 – отображать
  • autoShiftDays= количество дней отсчитываемых от начальной даты в интервале дат заездов. Интервал ограничивается значением, указанным в настройке TourDatesIntervalLimit в web.config

Настройки на странице «Динамический лист с наличием мест»

Отображение названия курорта в фильтре «Отели»

Для того, чтобы в фильтре «Отели» отображалось название курорта, нужно открыть в текстовом редакторе файл \MasterWebStandard\templates\ bindSchemeQuotedDynamic.xml и в теге <control name="chklHotel" priority="5" type="HotelLink" itemType="System.Int32" alwaysSelected="false"> изменить значение параметра type="HotelLink" на type="HotelResortLink". Пример:<BR <control name="chklHotel" priority="5" type="HotelResortLink" itemType="System.Int32" alwaysSelected="false">

Изменение фильтра «Город» на фильтр «Курорт»

Для того, чтобы в фильтре «Регион» вместо городов отображались курорты, нужно открыть в текстовом редакторе файл \MasterWebStandard\templates\ bindSchemeQuotedDynamic.xml и в теге <control name="chklRegion" priority="2" type="City" itemType="System.String" alwaysSelected="false"> изменить значение параметра type="City" на type="Resort". Пример:

 <control name="chklRegion" priority="2" type="Resort" itemType="System.String" alwaysSelected="false">

Отображение поля «Цена за»

Для того чтобы отобразить поле «Цена за» в экране «Динамический лист с наличием мест» нужно открыть в текстовом редакторе файл \MasterWebStandard\Controls\DynamicOffersTable.ascx и в теге <asp:TemplateColumn HeaderText="Цена<br>за" SortExpression="priceFor" Visible="false"> изменить значение параметра Visible="false" на Visible="true" Пример:
<asp:TemplateColumn HeaderText="Цена<br>за" SortExpression="priceFor" Visible="true" >

Отображение иконки рядом с названием отелей

Для того чтобы отобразить иконку рядом с названием отелей в экране «Подбор туров с наличием мест» нужно открыть в текстовом редакторе файл \MasterWebStandard\Controls\DynamicOffersTable.ascx и в теге <%--<asp:Literal ID="htt_img" runat="server" Text='<%# Megatec.Common.DataAccess.Manager.DbObj.ExecuteScalar(string.Format("exec mwGetHotelTypeImageHtml {0}, \"..\\images\\\"", DataBinder.Eval (Container, "DataItem.HotelKey"))).ToString() %>' />--%> убрать теги комментария <%-- --%>. Пример:
<asp:Literal ID="htt_img" runat="server" Text='<%# Megatec.Common.DataAccess.Manager.DbObj.ExecuteScalar(string.Format("exec mwGetHotelTypeImageHtml {0}, \"..\\images\\\"", DataBinder.Eval (Container, "DataItem.HotelKey"))).ToString() %>' />
Для работы необходимо заполнить поле HTT_ImageName таблицы HotelTypes.

Отображение колонок наличия мест на перелеты в таблице результатов

Для того, чтобы полностью скрыть колонки с наличием мест на перелете в таблице с результатами экрана «Подбор туров с наличием мест» нужно открыть в текстовом редакторе файл \MasterWeb\Controls\QuotedDynamicControl.ascx и в теге <uc2:DynamicOffersTable id="DynamicOffersTable" runat="server" > добавить настройку HideCharterColumns="True". Пример:
<uc2:DynamicOffersTable id="DynamicOffersTable" runat="server" HideCharterColumns="True">

Кэширование

Для ускорения процесса поиска применяется внутренний механизм кэширования. На данный момент ПК "Мастер-Web" может создавать кэш поисковых фильтров, курсов валют и статусов наличия мест.

Поисковые фильтры и курсы валют

Для включения механизма необходимо добавить внутрь секции <sectionGroup name="megatec.web"> следующие теги:

<sectionGroup name="cache"> 
<section name="cachingDurations" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>

А также добавить внутрь контейнера <megatec.web> следующие теги:

<cache> 
<cachingDurations>
    <add key="quotedDynamicSearchFilters" value="180" /> 
    <add key="course" value="180" /> 
</cachingDurations>
</cache>

В настройке quotedDynamicSearchFilters задается время обновление кэша поисковых фильтров (в секундах). В настройке course - время обновления кэша курсов валют (в секундах).

Наличие мест

Интервал обновления кэша квот - 10 минут. Для включения механизма никаких дополнительных настроек указывать не нужно.


Подмешивание отелей в результаты поиска (Smart Search)

Внимание! Данная функциональность не входит в стандартную версию. Поставляется отдельно.

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

Настройка таблицы HotelPriorities

В базе данных ПК «Мастер-Тур» в таблицу HotelPriorities необходимо занести коды отелей с соответствующими приоритетами по странам, курортам и городам. На данный момент информацию необходимо заносить напрямую в базу данных. Позже будет разработан экран для ввода приоритетов из интерфейса программы. Вводимые данные:

  • HP_HDkey – код отеля (колонка HD_Key из таблицы HotelDictionary);
  • HP_CountryPriority – приоритет для страны;
  • HP_ResortPriority – приоритет для курорта;
  • HP_CityPriority – приоритет для города.

Обработка подбора отелей по приоритетам

При подборе тура отели будут выводится в зависимости от заданных данных в фильтрах Страна, Курорт, Город:

Пример:
Заполнены приоритеты для отелей:
Hotel1 (Анталия/курорт X) – Приоритет 1 для страны, приоритет 2 для курорта, приоритет 1 для города
Hotel2 (Анталия/курорт X) - Приоритет 2 для страны, приоритет 1 для курорта, приоритет 2 для города
Hotel3 (Белек/курорт X) - Приоритет 3 для страны, приоритет 4 для курорта, приоритет 2 для города
Hotel4 (Белек/курорт X) - Приоритет страны не задан, приоритет 3 для курорта, приоритет 1 для города
Hotel5 (Алания/курорт Y) - Приоритет страны не задан, приоритет 2 для курорта, приоритет 1 для города
Hotel6 (Алания/курорт Y) - Приоритет страны не задан, приоритет 1 для курорта, приоритет 2 для города

Таблица HotelPriorities

Вывод отелей будет осуществляться следующим образом:

Если выбран только фильтр по Страна:

  • Hotel1
  • Hotel2
  • Hotel3
  • Далее все отели по стандартной схеме


Если выбран фильтр Страна и фильтр Курорт X:

  • Hotel2
  • Hotel1
  • Hotel4
  • Далее все отели по стандартной схеме


Если выбран фильтр Страна и фильтр Курорт X и Y:

  • Hotel2
  • Hotel6
  • Hotel1 или Hotel5
  • Далее все отели по стандартной схеме


Если выбран фильтр Страна, фильтр Курорт X и Город Анталия:

  • Hotel1
  • Hotel2
  • Hotel4
  • Далее все отели по стандартной схеме


Если выбран фильтр Страна, Город Анталия и Алания:

  • Hotel1
  • Hotel5
  • Hotel2 или Hotel6
  • Далее все отели по стандартной схеме


Данные отели будут отображены только в том случае, если по данным отелям есть свободные места по заведенным квотам. Если мест нет или стоит StopSale, то отели подмешиваться в результаты поиска не будут.
В результат поиска может быть подмешено максимум 3 отеля.
Если при поиске не найдены значения в колонке города, будут подмешиваться курорты. Если не найдены регионы, будет подмешиваться страна.
При сортировке по любой колонке в экране QuotedDynamic подмешивание результатов сбрасывается.
Все отели, для которых не проставлен приоритет, но они попадают под заданные фильтры - будут отображаться согласно существующим правилам (сортировка по цене).
Осуществляется вывод только наиболее дешевого размещения для заданных фильтров «количество основных и дополнительных мест». Из отображения исключаются размещения, где присутствует инфант.

Подготовка данных

Экран «Динамический лист с наличием мест» осуществляет поиск и подбор цен по рассчитанным и выставленным в интернет турам. Для корректного отображения наличия мест по отелю и перелету необходимо заполнить справочник «Квоты» для услуг «Проживание» и «Авиаперелет».

Работа в системе

Экран «Динамический лист предложений с наличием мест» (форма 1)

Для сравнения цен в разных гостиницах на определенное размещение удобно использовать экран «Динамический лист предложений с наличием мест».
782.PNG
Для просмотра цен через динамический лист необходимо выбрать город вылета, страну и период дат заездов. Можно наложить дополнительные фильтры на отбор туров по следующим параметрам:

  • Региону
  • Названию тура
  • Названию отеля
  • Типу номера
  • Стоимости
  • Продолжительности
  • Классу гостиницы
  • Питанию

По нажатию кнопки «Подобрать тур», системой будут отобраны туры, отвечающие заданным условиям.
783.PNG
Для того, чтобы при поиске в многоотельном туре были найдены свободные места (отметка о наличии мест была в состоянии «Есть»), необходимо, чтобы у каждого отеля в туре были свободные места.
Информация в результатах поиска представлена в виде таблицы:

Название поля в таблице

Выводимые данные

Заезд

Дата заезда.

Отель

Название гостиницы. По ссылке с названия гостиницы в новом окне откроется описание гостиницы, если URL страницы заведен в системе.

***

Категория гостиницы.

Регион

Город, к которому привязан отель.

Номер

Тип номера, на который указана цена.

Категория номера

Категория номера, на которую указана цена.

Размещение

Тип размещения, на которое указана цена.

Питание

Питание представлено значением типа питания, заведенным в соответствующем справочнике ПК Мастер-Тур.

Ночи

Продолжительность тура в ночах.

Цена

Стоимость тура.

Вал

Валюта, в которой указана цена.

Источник цены

Название тура. По ссылке с названия тура в новом окне откроется описание тура, если URL страницы заведен в системе. Цены указаны за человека или за номер меняется в зависимости от настройки в конфигурационном файле web.config.

Крайний срок подачи документов на визу

Максимальная дата подачи документов на визу для выбранной даты заезда. Данное информационное поле отображается только для визовых стран. Данные для отображения в этом поле берутся из поля «Крайний срок (агентство)» плагина Мастер-Тура «График работы консульств».

Наличие мест

Наличие мест в гостинице.

Эконом, Бизнес

Наличие мест на авиаперелеты. Колонки и их названия формируются динамически. Их отображение регулируется настройкой в конфигурационном файле web.config.

По ссылке с цены, представленной в таблице, можно перейти в экран «Корзина услуг» по данной продолжительности и размещению с возможностью отправки запроса на бронирование.

Экран «Динамический лист предложений с наличием мест» (форма 2)


784.PNG
Для просмотра цен через динамический лист необходимо выбрать город вылета, страну и период дат заездов. Можно наложить дополнительные фильтры на отбор туров по следующим параметрам:

  • Региону
  • Названию тура
  • Названию отеля
  • Типу номера
  • Стоимости
  • Продолжительности
  • Классу гостиницы
  • Питанию
  • Наличию мест в отеле и на рейсе

По нажатию кнопки «Подобрать тур», системой будут отобраны туры, отвечающие заданным условиям.
785.PNG
Для того, чтобы при поиске в многоотельном туре были найдены свободные места (отметка о наличии мест была в состоянии «Есть»), необходимо, чтобы у каждого отеля в туре были свободные места.
Информация в результатах поиска представлена в виде таблицы:

Название поля в таблице

Выводимые данные

Заезд

Дата заезда.

Отель

Название гостиницы. По ссылке с названия гостиницы в новом окне откроется описание гостиницы, если URL страницы заведен в системе.

***

Категория гостиницы.

Регион

Город, к которому привязан отель.

Номер

Тип номера, на который указана цена.

Категория номера

Категория номера, на которую указана цена.

Размещение

Тип размещения, на которое указана цена.

Питание

Питание представлено значением типа питания, заведенным в соответствующем справочнике ПК Мастер-Тур.

Ночи

Продолжительность тура в ночах.

Цена

Стоимость тура.

Вал

Валюта, в которой указана цена.

Источник цены

Название тура. По ссылке с названия тура в новом окне откроется описание тура, если URL страницы заведен в системе. Цены указаны за человека или за номер меняется в зависимости от настройки в конфигурационном файле web.config.

Крайний срок подачи документов на визу

Максимальная дата подачи документов на визу для выбранной даты заезда. Данное информационное поле отображается только для визовых стран. Данные для отображения в этом поле берутся из поля "Крайний срок (агентство)" плагина "График работы консульств" ПК "Мастер-Тур".

Наличие мест

Наличие мест в гостинице.

Эконом, Бизнес

Наличие мест на авиаперелеты. Колонки и их названия формируются динамически. Их отображение регулируется настройкой в конфигурационном файле web.config.

По ссылке с цены, представленной в таблице, можно перейти в экран «Корзина услуг» по данной продолжительности и размещению с возможностью отправки запроса на бронирование.