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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][непроверенная версия]
Строка 2: Строка 2:
  
 
==Введение==
 
==Введение==
Модуль «Распределенный поиск» предназначен для отображения в едином поисковом модуле как своих, так и сторонних предложений. Модуль позволяет осуществлять поиск и бронирование туров от различных туроператоров в одном приложении ПК Мастер-Web.
+
Модуль «Распределенный поиск» предназначен для отображения в едином поисковом модуле как своих, так и сторонних предложений. Модуль позволяет осуществлять поиск и бронирование туров от различных туроператоров в одном приложении ''ПК Мастер-Web''.
 
==Установка==
 
==Установка==
Для установки «Распределенного поиска» нужно распаковать архив надстройки mw-distributedsearch-2007.2.XX.XXXX.zip в корень каталога, где установлено приложение ПК Мастер-Web.
+
Для установки «Распределенного поиска» нужно распаковать архив надстройки <tt>mw-distributedsearch-2007.2.XX.XXXX.zip</tt> в корень каталога, где установлено приложение ''ПК Мастер-Web''.
  
Для развертывания распределенного поиска необходимо на web-сервере каждого туроператора, цены которого необходимо отображать в собственном приложении, установить Сервис по загрузке поисковых фильтров (FilterBinding), Поисковый сервис (SearchService), Сервис проверки наличия мест (CheckQuotes) и Сервис бронирования (Reservation). Описание процесса установки сервисов приведено в руководстве пользователя соответствующего сервиса.
+
Для развертывания распределенного поиска необходимо на web-сервере каждого туроператора, цены которого необходимо отображать в собственном приложении, установить '''Сервис по загрузке поисковых фильтров''' (FilterBinding), '''Поисковый сервис''' (SearchService), '''Сервис проверки наличия мест''' (CheckQuotes) и '''Сервис бронирования''' (Reservation). Описание процесса установки сервисов приведено в руководстве пользователя соответствующего сервиса.
  
 
Если собственные предложения также должны загружаться через web-сервис, то такие же web-сервисы необходимо установить и на своем web-сервере.
 
Если собственные предложения также должны загружаться через web-сервис, то такие же web-сервисы необходимо установить и на своем web-сервере.
 
==Настройка==
 
==Настройка==
 
===Добавление секций===
 
===Добавление секций===
Добавление секций в конфигурационный файл web.config производится только в случае, если локальные предложения туроператора подключаются через сервис.
+
Добавление секций в конфигурационный файл <tt>web.config</tt> производится только в случае, если локальные предложения туроператора подключаются через сервис.
*1. В секции <ConfigSections> добавить подсекцию:
+
*1. В секции ''<ConfigSections>'' добавить подсекцию:
 
  <sectionGroup name="Megatec.Web.Services">
 
  <sectionGroup name="Megatec.Web.Services">
 
  <section name="servicesAccessibility"  
 
  <section name="servicesAccessibility"  
 
  type="Megatec.Configuration.WebServicesSection, Megatec.Configuration"/>
 
  type="Megatec.Configuration.WebServicesSection, Megatec.Configuration"/>
 
  </sectionGroup>
 
  </sectionGroup>
*2. На одном уровне с секцией <ConfigSections> добавить секцию:
+
*2. На одном уровне с секцией ''<ConfigSections>'' добавить секцию:
 
  <Megatec.Web.Services>
 
  <Megatec.Web.Services>
 
   <servicesAccessibility Enabled="true">
 
   <servicesAccessibility Enabled="true">
Строка 33: Строка 33:
  
 
===Настройки файла distributedSearchSettings.xml===
 
===Настройки файла distributedSearchSettings.xml===
Файл distributedSearchSettings.xml содержит информацию о внешних источниках данных.
+
Файл <tt>distributedSearchSettings.xml</tt> содержит информацию о внешних источниках данных.
  
Элемент <Enabled>true</Enabled> элемента <DistributedSearchSettings> указывает на необходимость проведения поиска во внешних источниках данных.
+
Элемент ''<Enabled>true</Enabled>'' элемента ''<DistributedSearchSettings>'' указывает на необходимость проведения поиска во внешних источниках данных.
  
Каждый из элементов <DistributedSearchSource Id="src"> элемента <SearchSources> представляет собой описание источника данных. Атрибут id может быть произвольным, но должен быть уникальным в рамках документа.
+
Каждый из элементов ''<DistributedSearchSource Id="src">'' элемента ''<SearchSources>'' представляет собой описание источника данных. Атрибут ''id'' может быть произвольным, но должен быть уникальным в рамках документа.
  
* <FilterBindingServiceUrl> - адрес сервиса загрузки поискового фильтра для данного источника
+
* '''<FilterBindingServiceUrl>''' - адрес сервиса загрузки поискового фильтра для данного источника
* <SearchServiceUrl> - адрес поискового сервиса для данного источника
+
* '''<SearchServiceUrl>''' - адрес поискового сервиса для данного источника
* <ReservationServiceUrl> - адрес сервиса бронирования для данного источника
+
* '''<ReservationServiceUrl>''' - адрес сервиса бронирования для данного источника
* <ServiceProviderServiceUrl> -
+
* '''<ServiceProviderServiceUrl>'''
* <CheckQuotesServiceUrl> - адрес сервиса проверки наличия мест
+
* '''<CheckQuotesServiceUrl>''' - адрес сервиса проверки наличия мест
* <ReplcamentSearchItems> - правила подстановки данных из поискового фильтра данного источника в локальный фильтр  
+
* '''<ReplcamentSearchItems>''' - правила подстановки данных из поискового фильтра данного источника в локальный фильтр  
* <FlightGroups> - группы тарифов на авиаперелеты
+
* '''<FlightGroups>''' - группы тарифов на авиаперелеты
* <PartnerKey> - ключ партнера, являющегося владельцем приложения ПК Мастер-Web, в удаленном источнике
+
* '''<PartnerKey>''' - ключ партнера, являющегося владельцем приложения ''ПК Мастер-Web'', в удаленном источнике
* <InternalPartnerKey> - ключ партнера, являющегося поставщиком цен, в локальном источнике
+
* '''<InternalPartnerKey>''' - ключ партнера, являющегося поставщиком цен, в локальном источнике
* <InternalServiceKey> - класс услуги в базе туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет использоваться для сохранения услуг из базы стороннего туроператора (все услуги по путевке, которая забронирована по туру стороннего туроператора, будут сохранены под этим классом услуги)
+
* '''<InternalServiceKey>''' - класс услуги в базе туроператора, являющегося владельцем приложения ''ПК Мастер-Web'', который будет использоваться для сохранения услуг из базы стороннего туроператора (все услуги по путевке, которая забронирована по туру стороннего туроператора, будут сохранены под этим классом услуги)
* <InternalCreator> - ключ пользователя из таблицы UserList туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться создателем путевок, оформленных по турам стороннего туроператора
+
* '''<InternalCreator>''' - ключ пользователя из таблицы ''UserList'' туроператора, являющегося владельцем приложения ''ПК Мастер-Web'', который будет прописываться создателем путевок, оформленных по турам стороннего туроператора
* <InternalFilialKey> - ключ филиала (PR_Filial=2) из таблицы tbl_Partners туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться филиалом для путевок, оформленных по турам стороннего туроператора
+
* '''<InternalFilialKey>''' - ключ филиала (PR_Filial=2) из таблицы ''tbl_Partners'' туроператора, являющегося владельцем приложения ''ПК Мастер-Web'', который будет прописываться филиалом для путевок, оформленных по турам стороннего туроператора
* <InternalTourKey> - ключ тура из таблицы tbl_TurList туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться в поле DG_TRKey у путевок, оформленных по турам стороннего туроператора
+
* '''<InternalTourKey>''' - ключ тура из таблицы ''tbl_TurList'' туроператора, являющегося владельцем приложения ''ПК Мастер-Web'', который будет прописываться в поле ''DG_TRKey'' у путевок, оформленных по турам стороннего туроператора
* <DefaultCountryKey> -
+
* '''<DefaultCountryKey>'''
* <DefaultCityKey> -
+
* '''<DefaultCityKey>'''
* <ReservationWaitStatus> -
+
* '''<ReservationWaitStatus>'''
* <ReservationOKStatus> -
+
* '''<ReservationOKStatus>'''
* <AdditionalComissionFixed> - фиксированная наценка к общей стоимости тура от стороннего туроператора
+
* '''<AdditionalComissionFixed>''' - фиксированная наценка к общей стоимости тура от стороннего туроператора
* <AdditionalServiceComission> - фиксированная наценка к стоимости доп.услуг при бронировании туров от стороннего туроператора
+
* '''<AdditionalServiceComission>''' - фиксированная наценка к стоимости доп.услуг при бронировании туров от стороннего туроператора
* <FilialKey> -
+
* '''<FilialKey>'''
* <EMail> - дополнительные e-mail адреса, на которые нужно отправлять письмо о новом бронировании через распределенный поиск; перечисляются через точку с запятой
+
* '''<EMail>''' - дополнительные e-mail адреса, на которые нужно отправлять письмо о новом бронировании через распределенный поиск; перечисляются через точку с запятой
* <DontSendBookingMail> - настройка, управляющая отправкой письма о новом бронировании агентству. Значения: true – не отправлять письмо агентству; false – отправлять письмо о новом бронировании агентству
+
* '''<DontSendBookingMail>''' - настройка, управляющая отправкой письма о новом бронировании агентству. Значения: true – не отправлять письмо агентству; false – отправлять письмо о новом бронировании агентству
  
Правило подстановки данных из поискового фильтра данного источника в локальный фильтр задается при помощи набора элементов <ReplcamentSubItem>, где
+
Правило подстановки данных из поискового фильтра данного источника в локальный фильтр задается при помощи набора элементов ''<ReplcamentSubItem>'', где
* Type - тип условия подстановки; возможные значения: departFrom, country, city
+
* '''Type''' - тип условия подстановки; возможные значения: departFrom, country, city
* LocalValue - ключ сущности в локальной базе (если в локальном источнике отсутствует такой ключ, то LocalValue указывать не нужно)
+
* '''LocalValue''' - ключ сущности в локальной базе (если в локальном источнике отсутствует такой ключ, то LocalValue указывать не нужно)
* RemoteValue - ключ сущности во внешнем источнике
+
* '''RemoteValue''' - ключ сущности во внешнем источнике
* Name - название сущности (настройка используется при отсутствии сущности в локальном источнике)
+
* '''Name''' - название сущности (настройка используется при отсутствии сущности в локальном источнике)
  
 
Примеры:<br />
 
Примеры:<br />
Строка 92: Строка 92:
 
  </ReplcamentSearchItem>
 
  </ReplcamentSearchItem>
 
===Настройка полей данных о туристах===
 
===Настройка полей данных о туристах===
Настройка отображения полей данных о туристах производится в файле descriptions.xml. Данный файл содержит следующие настройки:
+
Настройка отображения полей данных о туристах производится в файле <tt>descriptions.xml</tt>. Данный файл содержит следующие настройки:
  
 
1. Настройка отображения поля «Главный турист»:
 
1. Настройка отображения поля «Главный турист»:
Строка 132: Строка 132:
  
 
Настройки отображения полей данных о туристах содержат параметры:
 
Настройки отображения полей данных о туристах содержат параметры:
#Code= - зашитая в коде константа, которую нельзя изменять.
+
#'''Code=''' - зашитая в коде константа, которую нельзя изменять.
#Header= - заголовок поля
+
#'''Header=''' - заголовок поля
#Visible= - видимость поля; значения: True – видимый, Flse – невидимый
+
#'''Visible=''' - видимость поля; значения: True – видимый, Flse – невидимый
#Required= - обязательность заполнения поля; значения: True – обязательное, False – необязательное
+
#'''Required=''' - обязательность заполнения поля; значения: True – обязательное, False – необязательное
#Translit= - транслитерация; значения: True – транслитерировать, False – не транслитерировать
+
#'''Translit=''' - транслитерация; значения: True – транслитерировать, False – не транслитерировать
#letterCase= - регистр символов в поле; значения: 1 – первая буква заглавная, 2 – все буквы большие, 3 – все буквы маленькие
+
#'''letterCase=''' - регистр символов в поле; значения: 1 – первая буква заглавная, 2 – все буквы большие, 3 – все буквы маленькие
#Edit= - редактирование поля; значения: True – редактируемое, False – нередактируемое
+
#'''Edit=''' - редактирование поля; значения: True – редактируемое, False – нередактируемое
 
===Настройки в web.config приложения ПК Мастер-Web===
 
===Настройки в web.config приложения ПК Мастер-Web===
 
Дополнительные настройки, задаваемые в секции <appSettings/> файла web.config, находящемся в папке с приложением ПК Мастер-Web.
 
Дополнительные настройки, задаваемые в секции <appSettings/> файла web.config, находящемся в папке с приложением ПК Мастер-Web.
Строка 148: Строка 148:
  
 
==Работа в системе==
 
==Работа в системе==
===Схема распределенного поиска===
+
====Схема распределенного поиска====
 
<br />
 
<br />
 
[[Файл:818.PNG]]<br />
 
[[Файл:818.PNG]]<br />
  
===Поиск цен===
+
====Поиск цен====
 
Для поиска цен через распределенный поиск необходимо выбрать город вылета, страну и период дат заездов. Можно наложить дополнительные фильтры на отбор туров по следующим параметрам:  
 
Для поиска цен через распределенный поиск необходимо выбрать город вылета, страну и период дат заездов. Можно наложить дополнительные фильтры на отбор туров по следующим параметрам:  
 
#Типу тура
 
#Типу тура
Строка 187: Строка 187:
  
 
При переходе в экран бронирования по турам стороннего туроператора пользователь попадает в экран «Удаленная корзина» (RemoteBasket.aspx).
 
При переходе в экран бронирования по турам стороннего туроператора пользователь попадает в экран «Удаленная корзина» (RemoteBasket.aspx).
===Актуальность цен===
+
=====Актуальность цен=====
 
В экране распределенного поиска отбор данных осуществляется по рассчитанным (записанным в БД) ценам туроператоров.
 
В экране распределенного поиска отбор данных осуществляется по рассчитанным (записанным в БД) ценам туроператоров.
 
В экране бронирования расчеты ведутся уже по актуальным на данный момент ценам. Т.е. если после расчета прайс-листа цены были изменены, то в экране бронирования стоимость тура покажется уже с учетом этих изменений.
 
В экране бронирования расчеты ведутся уже по актуальным на данный момент ценам. Т.е. если после расчета прайс-листа цены были изменены, то в экране бронирования стоимость тура покажется уже с учетом этих изменений.
===Актуальность наличия мест===
+
=====Актуальность наличия мест=====
 
В экране распределенного поиска и в экранах бронирования туров наличие мест отображается в соответствии с наличием мест в квоте на момент проверки.  
 
В экране распределенного поиска и в экранах бронирования туров наличие мест отображается в соответствии с наличием мест в квоте на момент проверки.  
  
Строка 196: Строка 196:
  
 
Для туров сторонних операторов наличие мест отображается в соответствии с настройками в конфигурационном файле web-сервиса «Сервис проверки наличия мест» (ws-checkquotes).
 
Для туров сторонних операторов наличие мест отображается в соответствии с настройками в конфигурационном файле web-сервиса «Сервис проверки наличия мест» (ws-checkquotes).
===Корректировка цен стороннего туроператора===
+
=====Корректировка цен стороннего туроператора=====
 
Существует возможность корректировки цен при отображении данных от стороннего туроператора.
 
Существует возможность корректировки цен при отображении данных от стороннего туроператора.
 
Есть несколько вариантов корректировки цен:
 
Есть несколько вариантов корректировки цен:
Строка 207: Строка 207:
 
А корректировка с добавлением наценки к стоимости доп.услуг применяется только в экране бронирования туров от стороннего туроператора.
 
А корректировка с добавлением наценки к стоимости доп.услуг применяется только в экране бронирования туров от стороннего туроператора.
  
==Бронирование заявки==
+
===Бронирование заявки===
 +
Бронирование тура из стороннего источника происходит в экране «Удаленная корзина».
 +
Бронирование доступно только для зарегистрированных и авторизованных в системе пользователей.
 +
[[Файл:Ds053.png|x500px]]<br />
 +
Экран «Удаленная корзина» разделен на несколько блоков.
 +
В верхней части экрана отображаются параметры тура:
 +
#Страна
 +
#Название тура
 +
#Даты заезда
 +
#Продолжительность
 +
#Состав заказа
 +
#Наличие мест для отеля и авиаперелета
 +
#Если в туре несколько рейсов, таблица для выбора перелетов.
 +
 
 +
Подбор перелетов осуществляется по рейсам с актуальным расписанием и ценам.
 +
Ниже располагается блок с подробной информацией по выбранному проживанию:
 +
#Название отеля
 +
#Размещение
 +
#Питание
 +
 
 +
Ниже отображается информация о количестве человек, сумме заказа, с учетом внесенных изменений, а также сумме к оплате, с учетом агентской комиссии.
 +
 
 +
Далее отображается форма для ввода туристов. Поля, обязательные для ввода определяются настройками ( см. [[#Настройка полей данных о туристах|Настройка полей данных о туристах]])<br />
 +
[[Файл:Ds054.png|x500px]]<br />
 +
Если в туре присутствует несколько рейсов, то экран «Удаленная корзина» позволяет внести необходимые изменения – выбрать другой рейс. Для расчета стоимости тура с учетом изменения рейса, нужно нажать на кнопку «Пересчитать».
 +
Если в туре присутствуют услуги, исключенные при обсчете прайс-листа, то существует возможность добавления этих услуг для конкретных туристов. Для этого необходимо проставить отметки в чек-боксах для нужных услуг. Для расчета стоимости тура с учетом добавленных услуг, нужно нажать на кнопку «Пересчитать».
 +
 
 +
Для бронирования заявки необходимо нажать кнопку «Забронировать».
 +
 
 +
По нажатию кнопки «Забронировать», заявка запишется в базу данных стороннего туроператора и туроператора, являющегося владельцем приложения ПК Мастер-Web, и пользователю откроется экран с информацией о сделанном заказе.<br />
 +
[[Файл:Ds055.png|x500px]]<br />
 +
Здесь пользователю представлена информация о сделанном заказе:
 +
#Номер заявки в базе стороннего туроператора
 +
#Даты заезда
 +
#Продолжительность
 +
#Название отеля
 +
#Размещение в отеле
 +
#Количество человек по путевке
 +
#Список туристов по услуге отель
 +
#Экскурсионная программа тура
 +
#Дополнительные услуги
 +
#Сумма к оплате
 +
#Полная стоимость заказа
 +
#Номер путевки в базе туроператора, являющегося владельцем приложения ПК Мастер-Web
 +
#Дата оформления заказа
 +
 
 +
При включенной настройке DSRedirectToResultPage переход осуществляется на стандартную страницу «Информация о заказе» (OrderInfo.aspx).
 +
 
 +
При бронировании заявки отправляется письмо о новом заказе на адреса:
 +
#Бронирующему агентству (адрес представителя, авторизованного в системе)
 +
#Адреса, указанные в настройке <Email /> в файле templates/distributedSearchSettings.xml
 +
 
 +
===Поиск цен в нескольких источниках===
 +
=====Загрузка фильтров=====
 +
Существует два варианта загрузки поисковых фильтров:
 +
#Фильтры по своим турам грузятся через прямые запросы к БД, а фильтры по данным сторонних туроператоров грузятся через web-сервис FilterBinding
 +
#Фильтры по всем данным грузятся через web-сервис FilterBinding
 +
 
 +
В первом случае web-сервис устанавливается только у стороннего туроператора, чьи цены необходимо встроить в приложение туроператора – владельца приложения ПК Мастер-Web.
 +
 
 +
Во втором случае web-сервис FilterBinding устанавливается и у стороннего туроператора и у туроператора-владельца приложения ПК Мастер-Web.
 +
=====Экран распределенного поиска=====
 +
Экран распределенного поиска состоит из блока поисковых фильтров и таблицы с результатами поиска.
 +
Блок поисковых фильтров содержит поля:
 +
#Город вылета - названия городов с признаком CT_IsDeparture=1 из таблицы CityDictionary, перегружает все последующие фильтры (для туров от стороннего источника сопоставление городов вылета делается в файле templates/distributedSearchSettings.xml. При этом название города вылета может отображаться либо из базы туроператора, являющегося владельцем приложения ПК Мастер-Web, либо берется значение параметра Name для Type=departFrom из файла templates/distributedSearchSettings.xml)
 +
#Страна - названия стран из таблицы tbl_Country, перегружает все последующие фильтры (для туров от стороннего источника сопоставление стран делается в файле templates/distributedSearchSettings.xml. При этом название страны может отображаться либо из базы туроператора, являющегося владельцем приложения ПК Мастер-Web, либо берется значение параметра Name для Type=country из файла templates/distributedSearchSettings.xml)
 +
#Тип тура - названия типов туров из таблицы TipTur, перегружает все последующие фильтры
 +
#Курорт - названия курортов из таблицы Resorts, перегружает все последующие фильтры
 +
#Город - названия городов из таблицы CityDictionary, перегружает все последующие фильтры
 +
#Тур - названия типов туров из таблицы tbl_TurList, перегружает все последующие фильтры
 +
#Отель - названия отелей из таблицы HotelDictionary, перегружает все последующие фильтры (если поле HD_HTTP заполнено, то в названии отеля формируется ссылка на адрес, указанный в данном поле)
 +
#Даты заезда - даты заезда по турам подсвечиваются в календарях
 +
#Тип номера, либо количество основных и доп.мест - названия типов номеров из таблицы Rooms
 +
#Цена не более указанной величины -
 +
#Ночи - рассчитанные продолжительности по выбранным в предыдущих фильтрах параметрам
 +
#Категория - рассчитанные категории отелей по выбранным в предыдущих фильтрах параметрам
 +
#Питание - рассчитанные типы питания по выбранным в предыдущих фильтрах параметрам
 +
#Наличие мест в отеле и на рейсе - наличие мест "Есть", "Запрос" и "Нет"
 +
Таблица с результатами поиска содержит поля:
 +
#Дата заезда
 +
#Отель
 +
#Категория  - категория отеля
 +
#Город – город, к которому привязан отель
 +
#Тип номера – тип номера, на который указана цена
 +
#Категория номера – категория номера, на который указана цена
 +
#Размещение – размещение, на которое указана цена
 +
#Питание – тип питания, на которое указана цена
 +
#Ночи – продолжительность тура в ночах
 +
#Цена
 +
#Вал – валюта, в которой указана цена
 +
#Источник цены – название тура
 +
#Цена за – тип рассчитанной цены: за человека или за номер
 +
#Наличие мест – наличие мест в гостинице
 +
#Эконом, Бизнес
 +
Все поля являются текстовыми и нередактируемыми.
 +
*Если поле HD_HTTP в таблице HotelDictionary заполнено, то в названии отеля в поле «Отель» формируется ссылка на адрес, указанный в данном поле.
 +
*Если поле TL_WEBHTTP в таблице tbl_TurList заполнено, то в названии тура в поле «Источник цены» формируется ссылка на адрес, указанный в данном поле.
 +
По умолчанию данные в результатах поиска отсортированы по полю «Цена» по возрастанию.
 +
=====Корректировка цен стороннего туроператора=====
 +
Необходимо добавить настройки для корректировки цен стороннего туроператора:
 +
#Настройка для добавления фиксированной наценки к общей стоимости тура от стороннего туроператора
 +
#Настройка для добавления процентной наценки к общей стоимости тура от стороннего туроператора
 +
#Настройка для добавления фиксированной наценки к стоимости доп. услуг определенных классов
 +
#Настройка для добавления процентной наценки с стоимости доп. услуг определенных классов
 +
 
 
[[Category:Мастер-Web_Дополнительные_модули]]
 
[[Category:Мастер-Web_Дополнительные_модули]]

Версия 18:54, 11 декабря 2012

Статья находится на стадии разработки.

Введение

Модуль «Распределенный поиск» предназначен для отображения в едином поисковом модуле как своих, так и сторонних предложений. Модуль позволяет осуществлять поиск и бронирование туров от различных туроператоров в одном приложении ПК Мастер-Web.

Установка

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

Для развертывания распределенного поиска необходимо на web-сервере каждого туроператора, цены которого необходимо отображать в собственном приложении, установить Сервис по загрузке поисковых фильтров (FilterBinding), Поисковый сервис (SearchService), Сервис проверки наличия мест (CheckQuotes) и Сервис бронирования (Reservation). Описание процесса установки сервисов приведено в руководстве пользователя соответствующего сервиса.

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

Настройка

Добавление секций

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

  • 1. В секции <ConfigSections> добавить подсекцию:
<sectionGroup name="Megatec.Web.Services">
<section name="servicesAccessibility" 
type="Megatec.Configuration.WebServicesSection, Megatec.Configuration"/>
</sectionGroup>
  • 2. На одном уровне с секцией <ConfigSections> добавить секцию:
<Megatec.Web.Services>
 <servicesAccessibility Enabled="true">
   <Services>
   <add name="FilterBinding" enabled="true" url="http://somesite/ws-filter-binding/FilterBindingService.asmx"/>
   <add name="DoSearch" enabled="true" url="http://somesite/ws-search/Search.asmx"/>
   <add name="Reservation" enabled="true" url="http://somesite/ws-reservation/ReservationService.asmx"/>
   <add name="ServiceProvider" enabled="true" url="http://somesite/ws-reservation/ServiceProvider.asmx"/>
   <add name="CheckQuotes" enabled="true" url="http://somesite/ws-checkquotes/CheckQuotesService.asmx"/>
   </Services>
 </servicesAccessibility>
</Megatec.Web.Services>

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

Настройки файла distributedSearchSettings.xml

Файл distributedSearchSettings.xml содержит информацию о внешних источниках данных.

Элемент <Enabled>true</Enabled> элемента <DistributedSearchSettings> указывает на необходимость проведения поиска во внешних источниках данных.

Каждый из элементов <DistributedSearchSource Id="src"> элемента <SearchSources> представляет собой описание источника данных. Атрибут id может быть произвольным, но должен быть уникальным в рамках документа.

  • <FilterBindingServiceUrl> - адрес сервиса загрузки поискового фильтра для данного источника
  • <SearchServiceUrl> - адрес поискового сервиса для данного источника
  • <ReservationServiceUrl> - адрес сервиса бронирования для данного источника
  • <ServiceProviderServiceUrl>
  • <CheckQuotesServiceUrl> - адрес сервиса проверки наличия мест
  • <ReplcamentSearchItems> - правила подстановки данных из поискового фильтра данного источника в локальный фильтр
  • <FlightGroups> - группы тарифов на авиаперелеты
  • <PartnerKey> - ключ партнера, являющегося владельцем приложения ПК Мастер-Web, в удаленном источнике
  • <InternalPartnerKey> - ключ партнера, являющегося поставщиком цен, в локальном источнике
  • <InternalServiceKey> - класс услуги в базе туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет использоваться для сохранения услуг из базы стороннего туроператора (все услуги по путевке, которая забронирована по туру стороннего туроператора, будут сохранены под этим классом услуги)
  • <InternalCreator> - ключ пользователя из таблицы UserList туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться создателем путевок, оформленных по турам стороннего туроператора
  • <InternalFilialKey> - ключ филиала (PR_Filial=2) из таблицы tbl_Partners туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться филиалом для путевок, оформленных по турам стороннего туроператора
  • <InternalTourKey> - ключ тура из таблицы tbl_TurList туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться в поле DG_TRKey у путевок, оформленных по турам стороннего туроператора
  • <DefaultCountryKey>
  • <DefaultCityKey>
  • <ReservationWaitStatus>
  • <ReservationOKStatus>
  • <AdditionalComissionFixed> - фиксированная наценка к общей стоимости тура от стороннего туроператора
  • <AdditionalServiceComission> - фиксированная наценка к стоимости доп.услуг при бронировании туров от стороннего туроператора
  • <FilialKey>
  • <EMail> - дополнительные e-mail адреса, на которые нужно отправлять письмо о новом бронировании через распределенный поиск; перечисляются через точку с запятой
  • <DontSendBookingMail> - настройка, управляющая отправкой письма о новом бронировании агентству. Значения: true – не отправлять письмо агентству; false – отправлять письмо о новом бронировании агентству

Правило подстановки данных из поискового фильтра данного источника в локальный фильтр задается при помощи набора элементов <ReplcamentSubItem>, где

  • Type - тип условия подстановки; возможные значения: departFrom, country, city
  • LocalValue - ключ сущности в локальной базе (если в локальном источнике отсутствует такой ключ, то LocalValue указывать не нужно)
  • RemoteValue - ключ сущности во внешнем источнике
  • Name - название сущности (настройка используется при отсутствии сущности в локальном источнике)

Примеры:

  • Пример 1. Добавить предложения по Хорватии (в локальном источнике отсутствует, ключ во внешнем источнике - 123) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
<ReplcamentSearchItem>
 <SubItems>
  <ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
  <ReplcamentSubItem Type="country" LocalValue="0" RemoteValue="123" Name="Хорватия" />
 </SubItems>
</ReplcamentSearchItem>
  • Пример 2. Добавить предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
<ReplcamentSearchItem>
 <SubItems>
  <ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
  <ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
 </SubItems>
</ReplcamentSearchItem>
  • Пример 3. Включить в предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Екатеринбурга (ключ 648 в локальном источнике и 266 во внешнем источнике) город Салоники (в локальном источнике отсутствует ; ключ во внешнем источнике - 615)
<ReplcamentSearchItem>
 <SubItems>
  <ReplcamentSubItem Type="departFrom" LocalValue="648" RemoteValue="266" />
  <ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
  <ReplcamentSubItem Type="city" RemoteValue="615" Name="Салоники" />
 </SubItems>
</ReplcamentSearchItem>

Настройка полей данных о туристах

Настройка отображения полей данных о туристах производится в файле descriptions.xml. Данный файл содержит следующие настройки:

1. Настройка отображения поля «Главный турист»:

<column code="ismain" header="<img src="../images/mw_main_tourist.gif" border="0" alt="Главный турист" />" visible="True" required="True" translit="False" letterCase="0" edit="False" />

2. Настройка отображения поля «Пол туриста»:

<column code="sex" header="Пол<font color="red">*</font>" visible="True" required="False" translit="False" letterCase="0" edit="True" />

3. Настройка отображения поля «Имя рус.»:

<column code="firstnamerus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

4. Настройка отображения поля «Отчество рус.»:

<column code="patronymicrus" header="Отчество" visible="False" required="False" translit="False" letterCase="3" edit="False" />

5. Настройка отображения поля «Фамилия рус.»:

<column code="lastnamerus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

6. Настройка отображения поля «Имя лат.»:

<column code="firstname" header="Имя<font color="red">*</font>" visible="True" required="True" translit="True" letterCase="2" edit="True" validationgroup="TouristsGroup" />

7. Настройка отображения поля «Отчество лат.»:

<column code="patronymic" header="" visible="False" required="False" translit="False" letterCase="2" edit="False" />

8. Настройка отображения поля «Фамилия лат.»:

<column code="lastname" header="Фамилия<font color="red">*</font>" visible="True" required="True" translit="True" letterCase="2" edit="True" validationgroup="TouristsGroup" />

9. Настройка отображения поля «Дата рождения»:

<column code="birthdate" header="Дата рождения<font color="red">*</font><br />(dd.MM.yyyy)" visible="True" required="true" translit="False" letterCase="0" edit="True" validationgroup="TouristsGroup" />

10. Настройка отображения поля «Номер общегражданского паспорта»:

<column code="passportrus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

11. Настройка отображения поля «Дата выдачи общегражданского паспорта»:

<column code="passportdaterus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

12. Настройка отображения поля «Общегражданский паспорт: кем выдан»:

<column code="passportbywhomrus" header="Паспорт: кем выдан" visible="False" required="False" translit="False" letterCase="0" edit="False" />

13. Настройка отображения поля «Номер загранпаспорта»:

<column code="passport" header="Паспорт" visible="True" required="true" translit="False" letterCase="2" edit="True" validationgroup="TouristsGroup" />

14. Настройка отображения поля «Дата выдачи загранпаспорта»:

<column code="passportdate" header="Загран-паспорт: дата выдачи" visible="False" required="False" translit="False" letterCase="0" edit="False" />

15. Настройка отображения поля «Срок действия загранпаспорта»:

<column code="passportdateend" header="Действителен до<br />(dd.MM.yyyy)" visible="true" required="true" translit="False" letterCase="0" edit="True" validationgroup="TouristsGroup"/>

16. Настройка отображения поля «Гражданство»:

<column code="citizenship" header="Гражданство" visible="False" required="False" translit="False" letterCase="0" edit="False" />

17. Настройка отображения поля «Загранпаспорт: кем выдан»:

<column code="passportbywhom" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

18. Настройка отображения поля «Удаление записи»:

<column code="delete" header="" visible="true" required="False" edit="True" />

Настройки отображения полей данных о туристах содержат параметры:

  1. Code= - зашитая в коде константа, которую нельзя изменять.
  2. Header= - заголовок поля
  3. Visible= - видимость поля; значения: True – видимый, Flse – невидимый
  4. Required= - обязательность заполнения поля; значения: True – обязательное, False – необязательное
  5. Translit= - транслитерация; значения: True – транслитерировать, False – не транслитерировать
  6. letterCase= - регистр символов в поле; значения: 1 – первая буква заглавная, 2 – все буквы большие, 3 – все буквы маленькие
  7. Edit= - редактирование поля; значения: True – редактируемое, False – нередактируемое

Настройки в web.config приложения ПК Мастер-Web

Дополнительные настройки, задаваемые в секции <appSettings/> файла web.config, находящемся в папке с приложением ПК Мастер-Web.

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

  • true – переход осуществляется на страницу «Информация о заказе» (OrderInfo.aspx);
  • false или отсутствие настройки – переход осуществляется на страницу ReservationResultPage.aspx
<add name="DSRedirectToResultPage" enabled="true" url="true"/>

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

Схема распределенного поиска


818.PNG

Поиск цен

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

  1. Типу тура
  2. Курорту
  3. Городу
  4. Названию тура
  5. Названию отеля (по ссылке с названия отеля пользователь может перейти на страницу с описанием отеля)
  6. Типу номера
  7. Стоимости
  8. Продолжительности
  9. Классу гостиницы
  10. Питанию
  11. Наличию мест в отеле и на рейсе

Ds052.png
По нажатию кнопки «Подобрать тур», системой будут отобраны туры, отвечающие заданным условиям. Информация в результатах поиска представлена в виде таблицы, содержащей следующие поля:

  1. Дата заезда – дата заезда по туру
  2. Отель – название отеля (по ссылке с названия отеля пользователь может перейти на страницу с описанием отеля)
  3. Категория - категория отеля
  4. Город – город, к которому привязан отель
  5. Тип номера – тип номера, на который указана цена
  6. Категория номера – категория номера, на который указана цена
  7. Размещение – размещение, на которое указана цена
  8. Питание – тип питания, на которое указана цена
  9. Ночи – продолжительность тура в ночах
  10. Цена
  11. Вал – валюта, в которой указана цена
  12. Источник цены – название тура
  13. Цена за – тип рассчитанной цены: за человека или за номер
  14. Наличие мест – наличие мест в гостинице
  15. Эконом, Бизнес - наличие мест на авиаперелеты. Колонки и их названия формируются динамически. Их отображение регулируется настройкой в конфигурационном файле web.config

По нажатию на цену пользователь попадает в экран бронирования тура. При переходе в экран бронирования по собственным турам пользователь попадает в экран «Корзина» (Basket.aspx), «Упрощенная корзина» (SimpleBasket.aspx), «Упрощенная корзина 2» (SimpleBasket.aspx) или «Расширенная корзина» (Basket.aspx) в зависимости от настроек в конфигурационном файле web.config и наличия установленных надстроек.

При переходе в экран бронирования по турам стороннего туроператора пользователь попадает в экран «Удаленная корзина» (RemoteBasket.aspx).

Актуальность цен

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

Актуальность наличия мест

В экране распределенного поиска и в экранах бронирования туров наличие мест отображается в соответствии с наличием мест в квоте на момент проверки.

Для собственных туров наличие мест отображается в соответствии с настройками в конфигурационном файле основного приложения ПК Мастер-Web.

Для туров сторонних операторов наличие мест отображается в соответствии с настройками в конфигурационном файле web-сервиса «Сервис проверки наличия мест» (ws-checkquotes).

Корректировка цен стороннего туроператора

Существует возможность корректировки цен при отображении данных от стороннего туроператора. Есть несколько вариантов корректировки цен:

  1. Добавление фиксированной наценки к общей стоимости тура от стороннего туроператора
  2. Добавление процентной наценки к общей стоимости тура от стороннего туроператора
  3. Добавление фиксированной наценки к стоимости услуг определенных классов
  4. Добавление процентной наценки с стоимости услуг определенных классов

Соответственно корректировка с добавлением наценки к общей стоимости тура применяется и в экране и поиска, и в экране бронирования туров от стороннего туроператора.

А корректировка с добавлением наценки к стоимости доп.услуг применяется только в экране бронирования туров от стороннего туроператора.

Бронирование заявки

Бронирование тура из стороннего источника происходит в экране «Удаленная корзина». Бронирование доступно только для зарегистрированных и авторизованных в системе пользователей. Ds053.png
Экран «Удаленная корзина» разделен на несколько блоков. В верхней части экрана отображаются параметры тура:

  1. Страна
  2. Название тура
  3. Даты заезда
  4. Продолжительность
  5. Состав заказа
  6. Наличие мест для отеля и авиаперелета
  7. Если в туре несколько рейсов, таблица для выбора перелетов.

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

  1. Название отеля
  2. Размещение
  3. Питание

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

Далее отображается форма для ввода туристов. Поля, обязательные для ввода определяются настройками ( см. Настройка полей данных о туристах)
Ds054.png
Если в туре присутствует несколько рейсов, то экран «Удаленная корзина» позволяет внести необходимые изменения – выбрать другой рейс. Для расчета стоимости тура с учетом изменения рейса, нужно нажать на кнопку «Пересчитать». Если в туре присутствуют услуги, исключенные при обсчете прайс-листа, то существует возможность добавления этих услуг для конкретных туристов. Для этого необходимо проставить отметки в чек-боксах для нужных услуг. Для расчета стоимости тура с учетом добавленных услуг, нужно нажать на кнопку «Пересчитать».

Для бронирования заявки необходимо нажать кнопку «Забронировать».

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

  1. Номер заявки в базе стороннего туроператора
  2. Даты заезда
  3. Продолжительность
  4. Название отеля
  5. Размещение в отеле
  6. Количество человек по путевке
  7. Список туристов по услуге отель
  8. Экскурсионная программа тура
  9. Дополнительные услуги
  10. Сумма к оплате
  11. Полная стоимость заказа
  12. Номер путевки в базе туроператора, являющегося владельцем приложения ПК Мастер-Web
  13. Дата оформления заказа

При включенной настройке DSRedirectToResultPage переход осуществляется на стандартную страницу «Информация о заказе» (OrderInfo.aspx).

При бронировании заявки отправляется письмо о новом заказе на адреса:

  1. Бронирующему агентству (адрес представителя, авторизованного в системе)
  2. Адреса, указанные в настройке <Email /> в файле templates/distributedSearchSettings.xml

Поиск цен в нескольких источниках

Загрузка фильтров

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

  1. Фильтры по своим турам грузятся через прямые запросы к БД, а фильтры по данным сторонних туроператоров грузятся через web-сервис FilterBinding
  2. Фильтры по всем данным грузятся через web-сервис FilterBinding

В первом случае web-сервис устанавливается только у стороннего туроператора, чьи цены необходимо встроить в приложение туроператора – владельца приложения ПК Мастер-Web.

Во втором случае web-сервис FilterBinding устанавливается и у стороннего туроператора и у туроператора-владельца приложения ПК Мастер-Web.

Экран распределенного поиска

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

  1. Город вылета - названия городов с признаком CT_IsDeparture=1 из таблицы CityDictionary, перегружает все последующие фильтры (для туров от стороннего источника сопоставление городов вылета делается в файле templates/distributedSearchSettings.xml. При этом название города вылета может отображаться либо из базы туроператора, являющегося владельцем приложения ПК Мастер-Web, либо берется значение параметра Name для Type=departFrom из файла templates/distributedSearchSettings.xml)
  2. Страна - названия стран из таблицы tbl_Country, перегружает все последующие фильтры (для туров от стороннего источника сопоставление стран делается в файле templates/distributedSearchSettings.xml. При этом название страны может отображаться либо из базы туроператора, являющегося владельцем приложения ПК Мастер-Web, либо берется значение параметра Name для Type=country из файла templates/distributedSearchSettings.xml)
  3. Тип тура - названия типов туров из таблицы TipTur, перегружает все последующие фильтры
  4. Курорт - названия курортов из таблицы Resorts, перегружает все последующие фильтры
  5. Город - названия городов из таблицы CityDictionary, перегружает все последующие фильтры
  6. Тур - названия типов туров из таблицы tbl_TurList, перегружает все последующие фильтры
  7. Отель - названия отелей из таблицы HotelDictionary, перегружает все последующие фильтры (если поле HD_HTTP заполнено, то в названии отеля формируется ссылка на адрес, указанный в данном поле)
  8. Даты заезда - даты заезда по турам подсвечиваются в календарях
  9. Тип номера, либо количество основных и доп.мест - названия типов номеров из таблицы Rooms
  10. Цена не более указанной величины -
  11. Ночи - рассчитанные продолжительности по выбранным в предыдущих фильтрах параметрам
  12. Категория - рассчитанные категории отелей по выбранным в предыдущих фильтрах параметрам
  13. Питание - рассчитанные типы питания по выбранным в предыдущих фильтрах параметрам
  14. Наличие мест в отеле и на рейсе - наличие мест "Есть", "Запрос" и "Нет"

Таблица с результатами поиска содержит поля:

  1. Дата заезда
  2. Отель
  3. Категория - категория отеля
  4. Город – город, к которому привязан отель
  5. Тип номера – тип номера, на который указана цена
  6. Категория номера – категория номера, на который указана цена
  7. Размещение – размещение, на которое указана цена
  8. Питание – тип питания, на которое указана цена
  9. Ночи – продолжительность тура в ночах
  10. Цена
  11. Вал – валюта, в которой указана цена
  12. Источник цены – название тура
  13. Цена за – тип рассчитанной цены: за человека или за номер
  14. Наличие мест – наличие мест в гостинице
  15. Эконом, Бизнес

Все поля являются текстовыми и нередактируемыми.

*Если поле HD_HTTP в таблице HotelDictionary заполнено, то в названии отеля в поле «Отель» формируется ссылка на адрес, указанный в данном поле.
*Если поле TL_WEBHTTP в таблице tbl_TurList заполнено, то в названии тура в поле «Источник цены» формируется ссылка на адрес, указанный в данном поле.

По умолчанию данные в результатах поиска отсортированы по полю «Цена» по возрастанию.

Корректировка цен стороннего туроператора

Необходимо добавить настройки для корректировки цен стороннего туроператора:

  1. Настройка для добавления фиксированной наценки к общей стоимости тура от стороннего туроператора
  2. Настройка для добавления процентной наценки к общей стоимости тура от стороннего туроператора
  3. Настройка для добавления фиксированной наценки к стоимости доп. услуг определенных классов
  4. Настройка для добавления процентной наценки с стоимости доп. услуг определенных классов