Мастер-Тур(15):Поиск вариантов программ туров — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Пример скрипта, для создания View для разграничения поиска по филиалам)
(Быстрый поиск (новая форма))
Строка 510: Строка 510:
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
             search_api_service_url: "http://localhost:9000/TourSearchOwin/", /* URL сервиса  */
 
             search_api_service_url: "http://localhost:9000/TourSearchOwin/", /* URL сервиса  */
 +
            search_client_url: "http://localhost/TourSearchClient/", /* URL клиента поиска */
 
             filtersOrder: {
 
             filtersOrder: {
 
                 country: 1,
 
                 country: 1,
Строка 523: Строка 524:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br />
 
<br />
* search_api_service_url – указывается путь к службе поиска
+
* search_api_service_url – указывается путь к службе поиска (TourSearchOwin)
 +
* search_client_url – указывается путь к клиенту поиска (TourSearchClient)
 
* country: 1 – фильтр страна  
 
* country: 1 – фильтр страна  
 
* type: 2 – фильтр тип тура  
 
* type: 2 – фильтр тип тура  

Версия 14:02, 27 августа 2020

Версия статьи от 27-08-2020.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с 15 версии


Содержание

Введение

Данный экран предназначен для поиска актуальных цен с указанием наличия мест, отображения расширенной информации о программах туров и условиях продажи. Экран позволяет выдавать найденные цены с разной детализацией и группировать по нескольким параметрам. Также данном экран предназначен для поиска туров без проживания (к примеру, экскурсионных), а также автобусных туров (начиная с релиза 15.2).

Страница поиска туров

На данной странице есть несколько функциональных блоков:

  • главные фильтры
  • дополнительные фильтры
  • группировка результатов поиска
  • результаты поиска
Состав тура

Авторизация

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


Восстановление пароля


Восстановление пароля

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

Восстановление пароля


В одно из полей вводим известные данные:

  • Логин — вводим логин для входа в систему (если регистрировались как частное лицо и не меняли логин, то им является e-mail)
  • E-mail — адрес электронной почты, указанный при регистрации

Затем нажимаем кнопку Выслать пароль и на электронную почту придет письмо с логином и паролем для входа в систему бронирования.
Шаблон письма находится в MasterWeb → Templates → PasswordRecovery.xml.

Регистрация агентства

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

Регистрация партнера

Поля для заполнения регистрационных данных:

  • Название агентства(торговая марка);
  • ФИО представителя компании;
  • Логин для доступа к системе;
  • Пароль для доступа к системе;
  • ФИО руководителя;
  • Должность руководителя - не обязательно для заполнения;
  • Страна;
  • Город;
  • Индекс;
  • Адрес места нахождения;
  • Телефон - указывается код города и номер телефона;
  • E-mail;
  • ИНН - не обязательно для заполнения;
  • Система налогооблажения - ОСН или УСН;
  • Р/с - расчетный счет в банке;
  • К/с - корреспондентский счет банка;
  • Наименование банка;
  • БИК - БИК банка.

После того, как все необходимые поля заполнены, нажимаем кнопку Зарегистрироваться. При этом регистрационные данные партнера запишутся в базу. Агентству будет отправлено письмо с логином и договором "О реализации туристического продукта". По умолчанию при регистрации добавляется один пользователь. Дополнительных пользователей можно добавить в Личном кабинете.

Регистрация частного лица

Для того чтобы зарегистрировать частное лицо на форме Вход в систему нужно выбрать пункт Регистрация туриста, после чего откроется регистрационная форма Регистрация частного лица. Существует две формы регистрации частного лица, стандартная форма и упрощенная регистрация частного лица(включается в Панель администрирования).


Стандартная регистрация частного лица
Регистрация частного лица


Заполняем регистрационные данные. Обязательные поля:

  • Имя
  • Фамилия
  • Телефон
  • E-mail (Логин) – введенный e-mail будет являться логином. Поменять логин можно в Справочники->Постоянные клиенты->Регистрационные данные
  • Пароль – должен содержать не менее шести символов, среди которых должны быть латинские буквы (строчные и прописные), цифры или символы
  • Подтверждение пароля
  • Ведите текст с картинки (латиница) – поле для ввода проверочного кода с картинки. Если код трудночитаемый, то можно нажать кнопку Обновить

Необязательные поля:

  • Страна
  • Город
  • Адрес
  • Примечание


Дополнительная информация


В форму регистрации частного лица существует возможность добавить обязательное поле «Гражданство».
Регулируется настройкой Запрашивать гражданство при регистрации частника.
Упрощенная регистрация частного лица

Упрощенная регистрация частного лица

Упрощенная регистрация частного лица включается в общих настройках в панели администрирования. Обязательные поля:

  • Имя
  • Фамилия
  • Телефон
  • E-mail (Логин) – введенный e-mail будет являться логином. Поменять логин можно в Справочники->Постоянные клиенты->Регистрационные данные
  • Ведите текст с картинки (латиница) – поле для ввода проверочного кода с картинки. Если код трудночитаемый, то можно нажать кнопку Обновить

Поле пароль в упрощенной форме регистрации отсутствует. Пароль автоматически генерируются и отправляются на указанный при регистрации электронный адрес.
Настройка Запрашивать гражданство при регистрации частного лица в форме Упрощенная регистрация частного лица не обрабатывается.


После того, как данные заполнены, нажимаем кнопку Зарегистрироваться. По факту регистрации на указанный e-mail частного лица приходит письмо, которое уведомляет об успешно пройденной регистрации. Также приходит письмо на электронную почту администратора системы, уведомляющее, что в системе произошла регистрация частного лица.
Шаблоны писем находятся в папке TourSearchOwin → NotifyResponse:

  • TemplateForTourist.txt - шаблон письма Произведена регистрация в системе онлайн бронирования;
  • TemplateForAdmin.txt - шаблон письма Новая регистрация частного лица

Настройки для отправки писем задаются в конфигурационном файле Megatec.TourSearchOwin.exe.config.

Взаимодействие формы регистрации и корзины
  • Если неавторизированный турист в корзине внес данные туристов и нажал кнопку Вход в систему – открывается окно авторизации. При выборе пункта регистрация туриста – откроется регистрационная форма с уже заполненными данными, внесенными для главного туриста. При нажатии на Зарегистрироваться будет произведена регистрация и авторизация туриста.
  • Если неавторизированный турист в корзине внес данные туристов и нажал кнопку Купить – открывается окно авторизации. При выборе пункта регистрация туриста – откроется регистрационная форма с уже заполненными данными, внесенными для главного туриста. При нажатии на Купить будет произведена регистрация туриста, его авторизация и попытка бронирования (если все обязательные поля заполнены). Если заполнены не все обязательные поля для бронирования, то система сообщит об этом пользователю. Данный пункт обрабатывается только в упрощенной форме регистрации.
  • Если неавторизированный турист в корзине нажал кнопку Вход в систему – открывается окно авторизации. При выборе пункта регистрация туриста – откроется регистрационная форма. После заполнения обязательных полей и нажатии кнопки Зарегистрироваться будет произведена регистрация и авторизация туриста, а все введенные при регистрации данные будут добавлены главному туристу.
  • Если неавторизированный турист в корзине нажал кнопку Купить – открывается окно авторизации. При выборе пункта регистрация туриста – откроется регистрационная форма. После заполнения обязательных полей и нажатии кнопки Купить будет произведена регистрация туриста, его авторизация и попытка бронирования (если все обязательные поля для бронирования заполнены). Если заполнены не все поля, то система сообщит об этом пользователю. Данный пункт обрабатывается только в упрощенной форме регистрации.

Главные фильтры

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

  • Откуда - город начала поездки, существует возможность задать несколько городов начала поездки;
  • Куда - страна прибытия (можно выбрать только одну страну);
  • Тип тура - по умолчанию фильтр заполняется значением Все. В фильтр подгружаются значения (типы туров), соответствующие выбранному направлению. Возможен выбор нескольких вариантов типа тура;
  • Даты начала тура - календарь, где актуальные даты начала тура в выбранную страну подсвечены зеленым цветом. Подсвечиваются только те даты, на которые есть возможность сформировать хотя бы один вариант результата поиска согласно заведенных программ туров;
  • Количество дней - список возможных продолжительностей, которые сформированы автоматически. Отображаются только те продолжительности, на которые есть возможность сформировать хотя бы один вариант результата поиска согласно заведенных программ туров;
  • Взрослые, дети (возраст детей). Если указано количество детей, то возраст детей обязателен для заполнения.

При нажатии на кнопку Очистить фильтры происходит очистка ранее выбранных фильтров.

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

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

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

  • Есть
  • Есть+запрос
  • Все

По умолчанию выбран вариант "Есть+запрос"

Валюта - валюта, в которой будет отображаться цена тура. Отображаются все валюты из справочника "Список валют", у которых выбран признак "Отображать в поиске"
По умолчанию выбрана "национальная" валюта.

Так же в поиске доступен переключатель языков (по умолчанию есть два варианта языка - русский и английский. С настройкой отображаемых данных можно ознакомиться в разделе Настройка языка приложения.

Расчет стоимости тура

Расчет стоимости услуг в составе заказа (Цена тура):
Изначально расчет всегда ведется в валюте тура (например: если цены на услуги заведены в $, а валюта тура EU, то в момент расчета происходит конвертация значения цены в валюте $ в валюту EU по курсу на дату расчета). Затем применяются настройки округления, указанные в ПК Мастер-Тур (если указаны настройки округления стоимости услуг). Стоимости этих услуг суммируются и общая сумма также округляется (по настройкам округления ПК Мастер-Тур). Полученная сумма отображается в корзине как стоимость тура (всегда в валюте тура).

Расчет стоимости тура в валюте, выбранной в поиске:
Округленная (по настройкам, указанным в ПК Мастер-Тур) стоимость в валюте тура конвертируется по текущему курсу в валюту поиска и итоговый результат также округляется (по настройкам, указанным в ПК Мастер-Тур). Аналогичным способом рассчитывается стоимость в национальной валюте в корзине, только в качестве отображаемой валюты всегда выступает национальная валюта.
Расчет стоимости в экранах OrderInfo и OrderList:
При отображении стоимостей в экранах OrderInfo и OrderList, выводятся две цены: первая в валюте тура, полученная в п.1 (не важно в результате расчета или введенная руками), и вторая в национальной валюте, которая получается путем конвертации по зафиксированному курсу, либо курсу на текущую дату из стоимости в валюте путевки. Результат округляется математически до сотых. Аналогично происходит расчет в национальной валюте в экране Путевка (исходя из наличия зафиксированного курса).


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

Состав тура

При изменении основных фильтров (откуда, страна, город, тип тура) будут подобраны ранее выбранные даты заезда и продолжительности, если в них будет возможность найти туры.

Результаты поиска

По каждому найденному варианту тура будет представлена следующая информация:

  • Даты туров и продолжительность тура (в днях) – продолжительность считается по дате окончания предоставления последней услуги. Поэтому, например, при обратном перелете на следующий день, количество дней в туре в поиске будет увеличено на один день
  • Город начала поездки
  • Название тура
  • Отель, город, курорт, категория, продолжительность проживания (в ночах)
  • Авиаперелет - информация по рейсам авиаперелета
  • Цена - минимальная возможная цена варианта тура по заданным в фильтрах дате, продолжительности, количеству людей, туру и отелю.

Для просмотра информации о доступных вариантах размещения и типах питания необходимо кликнуть по слову "Варианты" в соответствующей строке тура. Откроется список доступных вариантов размещения и типов питания по данному отелю.
Слева от варианта размещения или авиаперелета отображается наличие мест.

Состав тура

Отображения минимальной цены для конкретного отеля

Примерно в 1% результатов поиска может возникать ситуация, когда для конкретного отеля подбирается не самая минимальная цена. Отображения минимальной цены конкретного отеля

При инициализации службы поиска происходит "взвешивание" цены на отель. В случаях когда суточные цены на разные размещения или типа питания внесены разным количеством периодов, средний вес более дешевого номера может быть больше, чем у более дорого. Например цены на питании завтрак внесены 4-мя строчками, а цена на питании полупансион 6-ю. При измерении общего среднего веса цены получится, что цена на питании полупансион весит меньше.
Для избежания подобных ситуаций рекомендуем вносить цены на разные размещения и типы питания одинаковым количеством периодов.
Вес суточной цены

Дополнительные фильтры

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

  • Цена – отбор туров в заданном диапазоне цен;
  • Программа тура – отбор по самой программе тура;
  • Параметры проживания – отбор по городу, курорту, категории отеля, питанию, признаку отеля и названию отеля;
    • Признаки отелей – находятся в фильтре Параметры проживания. Производит отбор отелей по выбранному признаку (фильтр доступен, начиная со 2-го релиза). Добавляются в справочнике Признаки отелей;
  • Параметры авиаперелета – отбор по параметрам авиаперелета (время вылета/прилета, аэропорт вылета/прилета, город вылета, авиакомпания и класс перелета);

Начиная с релиза 15.3 реализован механизм, позволяющий не сбрасывать дополнительные фильтры при изменении основных фильтров.
Начиная с релиза 15.3 реализован подсчет общего количества найденных отелей, а также подсчет выбранных отелей в дополнительных фильтрах.
Начиная с релиза 15.3 добавлена возможность выводить в дополнительных фильтрах поиска сгруппированные типы питания и категории отелей по их глобальным кодам. Регулируется соответствующими настройками.
Логика отображения следующая: если в справочнике Типы питания или Категории отелей заполнено поле Глобальный код, то он будет отображаться в дополнительных фильтрах. Если поле Глобальный код не заполнено, то будет отображаться значение, заданное в поле Название. В результатах поиска Глобальный код не отображается.
Начиная с релиза 15.3 добавлены два признака в дополнительные фильтры Параметры авиаперелета:

  • Разрешить комбинировать авиаперелеты – по умолчанию признак не выбран. Выбрать его можно только в том случае, если выбрана хотя бы одна авиакомпания. При выборе данного признака будут подбираться рейсы, которые хотя бы в одном сегменте осуществляются выбранной авиакомпанией. Без выбора этого признака будут подбираться только те рейсы, в которых все сегменты авиаперелета осуществляются выбранной авиакомпанией.
  • Разрешить комбинировать классы – по умолчанию признак не выбран. Выбрать его можно только в том случае, если выбран хотя бы один класс перелета. При выборе данного признака будут подбираться рейсы, в которых хотя бы в одном сегменте авиаперелета перевозка осуществляется выбранным классом. Без выбора этого признака будут подбираться только те рейсы, в которых на всех сегментах авиаперелета перевозка осуществляется выбранным классом.
Заданные дополнительные фильтры отображаются в виде "плашек".
Состав тура

Группировка результатов поиска

Группировать отобранные результаты поиска можно по одному или нескольким параметрам одновременно. Возможны группировки по следующим параметрам:

  • название тура
  • дата тура
  • продолжительность
  • город начала поездки
  • отель
  • город
  • курорт
  • категория отеля

Отдельные случаи группировок по отель, городу, курорту и категории отеля:

  • В случае если производится группировка по отелю и дополнительно делается попытка группировки по городу, курорту, или категории отеля - то группировка по отелю сбрасывается;
  • В случае если производится группировка по городу, курорту или категории отеля и дополнительно делается попытка группировки по отелю - то группировки по городу, курорту и категории отеля сбрасывается.

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

Состав тура

Примечание по стране

Блок Примечание по стране появляется в том случае, если в системе администрирования ПК "Мастер-Web" в поле Примечание подраздела Страны -> Страна задано описание страны.

Примечания по стране

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

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

Нажав либо на изображение preview рядом с отелем, либо на название отеля – откроется окно с изображениями и описанием отеля, разделенное на разделы. Такие же разделы отображаются и в справочнике отеля. Если описание не добавлено, но указана ссылка на сайт в карточке отеля, то нажав на название отеля происходит переход по ссылке. Если добавлено описание, то открывается окно с описанием, и ссылка на сайт находится справа внизу с текстом Подробнее.

Описание отеля

Нажав на изображение, откроется слайдер изображений во весь экран.

Карусель изображений отеля

Отображение в поиске информации по ценовым блокам и акциям

Начиная с релиза 15.5 в настройки ценовых блоков и акций добавлена возможность отображать информацию о них в онлайне. После включения этих настроек в поиске около цен, к которым применяются такие ценовые блоки или акции, появятся специальные иконки, при наведении на которые отобразится необходимая информация.

Пример цены с информацией о ценовом блоке и акциях

Поиск по ночам проживания в отеле

Начиная с релиза 15.5 в настройку Осуществлять поиск панели администрирования добавлена опция "в ночах проживания в отеле".

Настройка поиска цен тура по ночам проживания в отеле

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

Пример поиска цен тура по ночам проживания в отеле

Аналогично информация о туре будет отображаться и в корзине.

Отображение информации о ночах проживания тура в корзине

Поиск, бронирование и квотирование инфанта

Стоимость на услугу Авиаперелет для инфанта вноситься на тот же тариф, для которого заведена стоимость для взрослого. Цена вносится отдельной строчкой с указание возрастных ограничений. Цена за инфант

При поиске туров, где в состав семьи входит инфант, ребенка с возрастом «1 год» необходимо добавлять в основной состав туристов, в основных фильтрах поиска. Возраст инфанта задается в общих настройках, панели администрирования
Фильтры поиска

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

Квоты на отель: Мастер-Тур 15 работает только с ценами и квотами за номер. Инфант не снимает дополнительную квоту, а также не изменяет стоимость номера.
Услуга Авиаперелет для инфанта будет подтверждена вне квоты.
В случае если инфант в процессе тура становится ребенком, он будет занимать квоту на обратном перелете. Цена также будет рассчитана с учетом возраста на обратном перелете.
Результат поиска

Проверка наличия курсов валют в поиске

Проверка наличия курсов валют – по умолчанию признак включен (т.е. поиск туров осуществляется с учетом наличия курса национальной валюты и реальных кросс-курсов).
Включение и отключение признака происходит в общих настройках, панели администрирования.
Если признак включен, но курсы национальной валюты и реальные кросс-курсы не заданы поиск недоступен и отображается сообщение: Курсы не заданы

Что бы поиск работал, нужно добавить курсы национальной валюты и реальные кросс-курсы в соответствующие справочники Мастер-Тур.

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

  • Если отсутствует курс национальной валюты, а поиск происходит в ней, то система все цены показывает равными 0;
  • Если отсутствует кросс-курс между валютами (например: перелет в $, а отель в EU), а поиск происходит в одной из этих валют, то система все цены показывает равными 0;
  • Если отсутствует курс национальной валюты, то в корзине система показывает стоимость в валюте тура, в национальной валюте цена показывается 0. Бронирование происходит по стоимости в валюте тура, при этом курс национальной валюты в путевке не фиксируется, стоимость в национальной валюте указывается 0;
  • Если отсутствует кросс-курс между валютами (например: перелет в $, а отель в EU), то в корзине цена в валюте тура показывается равная 0 и бронирование становится невозможным;


Параметры, передаваемые через URL страницы

Предусмотрена возможность поиска тура по параметрам, указанным в URL-запросе страницы.

Пример URL-запроса:

http://ip-адрес сервера/TourSearchClient?departureCities=1&destination=1_30&tourType=5,2&dates=23.06.2016,24.06.2016,25.06.2016&durations=2,3,4,5,6,7,8,9&adultCount=2&hotelQuota=7&aviaQuota=7&currency=USD

Обязательные параметры URL-запроса

Ниже перечисленные параметры являются обязательными:

  • departureCities — код города вылета из таблицы CityDictionary;
  • destination — "1_" + код страны места назначения из таблицы Country;
  • destCities — код города места назначения из таблицы CityDictionary (только при включенной настройке Отображать фильтр по городам на главной странице поиска);
  • tourType — код типа тура;
  • dates — даты начала тура (даты задаются в формате ДД.ММ.ГГГГ, более одной даты указываются через запятую);
  • durations — продолжительности (задаются через запятую);
  • adultCount — количество взрослых;
  • hotelQuota/aviaQuota — код варианта наличия мест на отели/авиаперелеты (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все");
  • currency — ISO код валюты (задается в справочнике Список валют).

Необязательные параметры URL-запроса

  • childAges — возраст ребенка (если детей более одного, то возраста перечисляется через запятую, если возраст ребенка "0" - то обрабатывается как "не указан");
  • groupingKeys — группировка результатов поиска по:
    • Названию тура;
    • Дате тура;
    • Продолжительности;
    • Городу начала поездки;
    • Отелю;
    • Городу;
    • Курорту;
    • Категории отеля.

Пример: http://ip-адрес сервера/TourSearchClient?departureCities=1&destination=1_30&tourType=5,2&dates=27.06.2016&durations=5&adultCount=2& childAges=1,3&hotelQuota=5&aviaQuota=7&currency=USD&groupingKeys=2,4,8

Параметры фильтров:

1. Цена

  • minPrice — минимальная цена;
  • maxPrice — максимальная цена;

Параметры фильтра Цена можно использовать как в совокупности, так и по отдельности.

2. Программа тура

  • tours — ключ программы тура из таблицы TourPrograms;

3. Параметры проживания

  • cities — код города из таблицы CityDictionary;
  • resorts — код курорта из таблицы Resorts;
  • cats — код категории отеля из таблицы CategoriesofHotel;
  • hotelTypes — код признака отеля из таблицы HotelTypes;
  • pansions — код типа питания из таблицы Pansion;
  • hotels — код отеля из таблицы HotelDictionary;

4. Параметры авиаперелета

  • depTimeFrom/depTimeTo — временной интервал вылета (задается в формате ЧЧ:ММ);
  • arrTimeFrom/arrTimeTo — временной интервал прилета (задается в формате ЧЧ:ММ);

Пример URL-запроса с использованием временных интервалов вылета и прилета:
http://ip-адрес сервера/TourSearchClient?departureCities=232&destination=1_10&tourType=5,2&dates=27.06.2016&durations=5&adultCount=2&hotelQuota=5&aviaQuota=7&currency=USD&depTimeFrom=01:00 &depTimeTo=01:59&arrTimeFrom=02:00& arrTimeTo=03:59

  • dep_airports — коды аэропортов вылета
  • arr_airports — коды аэропортов прилета
  • flightCityDeparture — код города вылета
  • airlines — код авиакомпании из таблицы Airline
  • flightTariffs — код класса перелета
  • departureFlightNumberTransfer – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3.
  • arrivalFlightNumberTransfer – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3.

Ниже перечисленные параметры подразумевают установку признака активности, поэтому принимают только значение true:

  • dTransfer=true — запрет на пересадку для прилета (без пересадок в прямом направлении)
  • aTransfer=true — запрет на пересадку для вылета (без пересадок в обратном направлении)
  • CombineAirlines=true — разрешить комбинировать авиаперелеты. Параметр применяется только при наличии параметра airlines. Обрабатывается начиная с релиза 15.3.
  • CombineTariffs=true — разрешить комбинировать классы перелета. Параметр применяется только при наличии параметра tariff. Обрабатывается начиная с релиза 15.3.

Пример: http://ip-адрес сервера/TourSearchClient?departureCities=1&destination=1_30 &tourType=5,2&dates=27.06.2016&durations=5&adultCount=2&hotelQuota=5&aviaQuota=7&currency=USD&dTransfer=true&aTransfer=true

Настройка View для разграничения туров, опубликованных для продажи

Существует возможность настроить разграничение доступа к турам для пользователя, которым подключается служба поиска в БД. Пользователь прописывается в строке подключения службы поиска
Для пользователя создается View на таблицы ToursSearch и TourPrograms.

Пример скрипта, для создания View для разграничения поиска по странам и городам вылета

IF OBJECT_ID('UserMT.ToursSearchView') IS NOT NULL
	DROP VIEW UserMT.ToursSearchView
GO
CREATE VIEW [UserMT].[ToursSearchView] 
AS 
SELECT * 
FROM dbo.ToursSearch 
WHERE 
	(TS_CTDepartureKeys = '1' or TS_CTDepartureKeys = '5' or TS_CTDepartureKeys = '1;5' or TS_CTDepartureKeys = '5;1') 
	and (TS_CNKeys = '90' or TS_CNKeys = '460' or TS_CNKeys = '460;90' or TS_CNKeys = '90;460' )
GO
IF OBJECT_ID('UserMT.TourProgramsView') IS NOT NULL
	DROP VIEW UserMT.TourProgramsView
GO
CREATE VIEW [UserMT].[TourProgramsView] 
AS 
SELECT * 
FROM dbo.TourPrograms 
WHERE TP_Id in 
	(SELECT TS_Id FROM [UserMT].[ToursSearchView]) 
GO

Где,
(TS_CTDepartureKeys = '1' or TS_CTDepartureKeys = '5' or TS_CTDepartureKeys = '1;5' or TS_CTDepartureKeys = '5;1') and (TS_CNKeys = '90' or TS_CNKeys = '460' or TS_CNKeys = '460;90' or TS_CNKeys = '90;460' ) это условия разграничения.

  • TS_CTDepartureKeys – указываются ключи городов вылета (CT_KEY таблицы Citydictionary);
  • TS_CNKeys – указываются ключи стран, направлений поиска (CN_KEY таблицы Country);
  • UserMT – пользователь, который прописан в строке подключения службы поиска (указан в скрипте в 7 местах);


Пример скрипта, для создания View для разграничения поиска по филиалам

IF OBJECT_ID('UserMT.ToursSearchView') IS NOT NULL
	DROP VIEW UserMT.ToursSearchView
GO
CREATE VIEW [UserMT].[ToursSearchView] 
AS 
SELECT * 
FROM dbo.ToursSearch 
WHERE 
	TS_Id in 
	(select tp_id from (
		SELECT tp_id,tp_xmlsettings, cast(T2.Loc.query('.') as nvarchar(max))  as branches
		FROM   TourPrograms  
		CROSS APPLY tp_xmlsettings.nodes('/TourProgram/TourSettingsViewModel/Branches') as T2(Loc) ) tt
		where ((CHARINDEX('<int>446</int>',branches) > 0) ))
GO
IF OBJECT_ID('UserMT.TourProgramsView') IS NOT NULL
	DROP VIEW UserMT.TourProgramsView
GO
CREATE VIEW [UserMT].[TourProgramsView] 
AS 
SELECT * 
FROM dbo.TourPrograms 
WHERE TP_Id in 
	(SELECT TS_Id FROM [UserMT].[ToursSearchView]) 
GO

Где,

  • <int>446</int> – указывается ключ партнера из таблицы tbl.Partners, который указан в поле филиал бронирования в тур программе;
  • UserMT – пользователь, который прописан в строке подключения службы поиска (указан в скрипте в 7 местах);

Быстрый поиск

Также можно осуществить поиск, воспользовавшись формой Быстрый поиск. Данная форма вставляется в любую страницу сайта (для этого используются фреймы).
Mb 237.png
Для того, чтобы вставить эту форму на страницу, нужно добавить следующий текст:

<IFRAME SRC="HTTP://ip-сервера/TourSearchClient/DemoSearch" scrolling="no" width="280" height="450" FRAMEBORDER="0">

Дизайн настраивается в файле \TourSearchClient\Views\DemoSearch\Index.cshtml. Стили прописываются в файле \TourSearchClient\Content\Shared\Common.css.
На форме отображены фильтры, аналогичные основным фильтрам поиска: Откуда, Куда, Тип тура, Даты заезда, Количество ночей от... до..., Взрослые, Дети. После их заполнения и нажатия кнопки Найти происходит переход на основной поиск, куда передаются все параметры, выбранные в фильтрах быстрого поиска.

Быстрый поиск (новая форма)

Данная форма является альтернативным решение быстрого поиска с другим дизайном и реализацией. As022.JPG
Дизайн и настройки прописываются в файле \TourSearchOwin\NotifyResponse\DemoSearchTemplate.html.
Этот же файл является самой формой поиска, которая встраивается путем вставки в страницу сайта текста в html формате.
Настройки подключения к службе поиска и настройки фильтров:

            search_api_service_url: "http://localhost:9000/TourSearchOwin/", /* URL сервиса  */
            search_client_url: "http://localhost/TourSearchClient/", /* URL клиента поиска */
            filtersOrder: {
                country: 1,
                type: 2,
                date: 3,
                duration: 4,
                people: 5,
                city: 6,
            }
            cityKey: 1,
            countryKey: null,
            title: "",


  • search_api_service_url – указывается путь к службе поиска (TourSearchOwin)
  • search_client_url – указывается путь к клиенту поиска (TourSearchClient)
  • country: 1 – фильтр страна
  • type: 2 – фильтр тип тура
  • date: 3 – фильтр даты заезда
  • duration: 4 – фильтр количество дней
  • people: 5 – фильтр количество туристов
  • city: 6 – фильтр город вылета/выезда

Цифра указывает очередность фильтра, то есть в каком порядке будут расположены фильтры.

  • cityKey – указывается ключ (CT_KEY из таблицы CityDictionary) города вылета/выезда по умолчанию, null – город вылета/выезда в фильтре не будет заполнен
  • countryKey – указывается ключ (CN_KEY из таблицы Country) страны по умолчанию, null – страна в фильтре не будет заполнена
  • title – заголовок над формой поиска, если необходим


Дизайн настраивается в тегах:

            /* Блок с переменными */
            :root {
                --search-color_159753: #00c2eb; /* цвет кнопки Найти */                        
                --search-text-color_159753: #fff; /* цвет текста кнопки Найти */
                --color_159753: #333; /* цвет остальных кнопок */
                --font-size_159753: 15px; /* размер шрифта фильтров */
                --font-size-controlers_159753: 13px; /* размер шрифта выпадающих фильтров количества дней и количества взрослых/детей) */
                --font-size-search-btn_159753: 15px; /* размер шрифта кнопки поиска */
                --font-size-calendar-btn_159753: 13px; /* размер шрифта кнопки очистить в колендаре */
                --font-size-error_159753: 40px; /* размер шрифта текста ошибки */
                --font-color_159753: #000; /* цвет всех шрифтов */
                --font-family_159753: sans-serif; /* гарнитура шрифта */
                --angle-icon-color_159753: #999; /* цвет иконок (треугольных) */
            }

            /*Фон и отступы*/
            .demo-search_159753 {
                background: #eee; /* можно ввести цвет (#eee) или изображение (url("путь к картинке")) */
                padding: 70px 70px 70px 70px; /* отступы до фильтров (сверху/справа/снизу/слева) */
            }

            /* Стили заголовка */
            .demo-search-title_159753 {
                color: #000; /* цвет заголовка */
                margin-bottom: 0px; /* расстояние между заголовком и фильтрами */
                font-family: var(--font-family_159753); /* гарнитура шрифта заголовка */
                font-size: 40px; /* размер шрифта заголовка */
                text-align: center; /* расположение текста заголовка */
            }