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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Поиск цен)
 
(не показано 106 промежуточных версий 7 участников)
Строка 1: Строка 1:
<span style="color:red;font-size:120%">Статья находится на стадии разработки.</span><br>
+
<span style="color:#FF0000;font-size:120%">Статья находится на стадии разработки.</span>
 +
 
 +
Версия статьи от {{REVISIONDAY}}.{{REVISIONMONTH}}.{{REVISIONYEAR}}. Для перехода на версию статьи, соответствующую используемой Вами версии программы, нажмите ссылку в таблице:
 +
 
 +
<table style="background-color:#ffffcc;color:black" border="1" cellpadding="10" cellspacing="0"><tr><td>
 +
Более ранние версии:<br />
 +
[http://wiki.megatec.ru/index.php?title=Мастер-Web:Дополнительный_модуль_Распределенный_поиск&stableid=9996 До версии ПК «Мастер-Web» 2009.2.16 включительно]<br />
 +
[http://wiki.megatec.ru/index.php?title=Мастер-Web:Дополнительный_модуль_Распределенный_поиск&stableid=12962 До версии ПК «Мастер-Web» 2009.2.20.1 включительно]
 +
</td></tr></table><br />
  
 
==Введение==
 
==Введение==
Модуль «Распределенный поиск» предназначен для отображения в собственном поисковом модуле предложений сторонних туроператоров.
+
Дополнительный модуль «Распределенный поиск» предназначен для отображения в едином поисковом модуле как своих, так и сторонних предложений. Модуль позволяет осуществлять поиск и бронирование туров от различных туроператоров в одном приложении ПК «Мастер-Web».
 +
 
 
==Установка==
 
==Установка==
Для установки надстройки "Распределенный поиск" нужно выложить распакованные файлы из архива mw-distributedsearch-2009.2.XX.XXXX.zip в каталог, где лежит ПК "Мастер-Web".<br>
+
Для установки дополнительного модуля «Распределенный поиск» нужно распаковать архив mw-distributedsearch-9.2.x.xxxxx.zip в корень каталога, где установлено приложение ПК «Мастер-Web».
Для развертывания распределенного поиска необходимо на web-сервере каждого туроператора, включая собственный web-сервер, установить Сервис по загрузке поисковых фильтров (FilterBinding) и Поисковый сервис (SearchService). Описание процесса установки сервиса приведено в руководстве пользователя соответствующего сервиса.
+
 
 +
Для развертывания распределенного поиска необходимо на веб-сервере каждого туроператора, цены которого необходимо отображать в собственном приложении, установить 5 веб-сервисов:
 +
<ul>
 +
<li>[[Web-сервисы: Сервис по загрузке поисковых фильтров|FilterBinding]] — сервис по загрузке поисковых фильтров;</li>
 +
<li>[[Web-сервисы: Сервис поиска|Search]] — поисковый сервис;</li>
 +
<li>[[Web-сервисы: Сервис по проверке наличия мест|CheckQuotes]] — сервис по проверке наличия мест;</li>
 +
<li>[[Web-сервисы: Сервис бронирования|Reservation]] — сервис бронирования;</li>
 +
<li>[[#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81_.D0.B0.D0.B2.D1.82.D0.BE.D1.80.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8|WsAuthorization]] — cервис авторизации.</li>
 +
</ul>
 +
Описание процесса установки сервисов приведено в руководстве пользователя соответствующего сервиса.
 +
 
 +
Если собственные предложения также должны загружаться через веб-сервис, то такие же сервисы необходимо установить на своем сервере приложений.
 +
 
 +
Соответствие версий сервисов и ПК "Мастер-Web" показано в [[Мастер-Web: Распределенный поиск. Совместимость версий сервисов и ПК "Мастер-Web"|таблице совместимости]].
  
 
==Настройка==
 
==Настройка==
===Настройки в файле web.config===
+
 
 
====Добавление секций====
 
====Добавление секций====
В конфигурационном файле web.config основного приложения ПК "Мастер-Web" необходимо добавить следующее:
+
Добавление секций в конфигурационный файл web.config ПК «Мастер-Web» производится только в том случае, если локальные предложения туроператора подключены через сервис.
*1. В секции <ConfigSections> добавить подсекцию:
+
<ul>
<sectionGroup name="Megatec.Web.Services">
+
<li>В секции <font style="font-family:courier new"><ConfigSections></font> добавить элемент:
<section name="servicesAccessibility"  
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
type="Megatec.Configuration.WebServicesSection, Megatec.Configuration"/>
+
<syntaxhighlight lang="xml">
</sectionGroup>
+
<sectionGroup name="Megatec.Web.Services">
*2. На одном уровне с секцией <ConfigSections> добавить секцию:
+
  <section name="servicesAccessibility"
<Megatec.Web.Services>
+
    type="Megatec.Configuration.WebServicesSection, Megatec.Configuration"/>
 +
</sectionGroup>
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</li>
 +
<li>На одном уровне с секцией <font style="font-family:courier new"><ConfigSections></font> добавить секцию:<br />
 +
<span style="color:#808080">В данной секции необходимо указать адреса собственных поисковых веб-сервисов.</span>
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
 +
<syntaxhighlight lang="xml">
 +
<Megatec.Web.Services>
 
   <servicesAccessibility Enabled="true">
 
   <servicesAccessibility Enabled="true">
<Services>
+
    <Services>
<add name="FilterBinding" enabled="true" url="http: //website.ru/ws-filter-binding/FilterBindingService.asmx"/>
+
      <add name="FilterBinding" enabled="true"
<add name="DoSearch" enabled="true" url="http: //website.ru/ws-search/Search.asmx"/>
+
        url="http://server:8080/distributedsearch/mw-filterbinding/FilterBindingService.asmx"/>
</Services>
+
      <add name="DoSearch" enabled="true"
</servicesAccessibility>
+
        url="http://server:8080/distributedsearch/mw-megatecwebservices/Search.asmx"/>
</Megatec.Web.Services>
+
      <add name="Reservation" enabled="true"
В данной секции необходимо указать адреса собственного сервиса загрузки фильтра и поискового сервиса.
+
        url="http://server:8080/distributedsearch/mw-ws-reservation/ReservationService.asmx"/>
 +
      <add name="ServiceProvider" enabled="true"
 +
        url="http://server:8080/distributedsearch/mw-ws-reservation/ServiceProvider.asmx"/>
 +
      <add name="CheckQuotes" enabled="true"
 +
        url="http://server:8080/distributedsearch/mw-ws-checkquotes/CheckQuotesService.asmx"/>
 +
    </Services>
 +
  </servicesAccessibility>
 +
</Megatec.Web.Services>
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</li>
 +
</ul>
 +
 
 +
===Настройки файла distributedSearchSettings.xml===
 +
Файл <code>distributedSearchSettings.xml</code> содержит информацию о ''внешних источниках данных''.
 +
 
 +
Элемент <code>'''<Enabled>true</Enabled>'''</code> в секции <code><DistributedSearchSettings></code> указывает на '''необходимость проведения поиска во внешних источниках данных'''.
 +
 
 +
Каждый из элементов <code><DistributedSearchSource Id="source"></code> в секции <code><SearchSources></code> представляет собой описание источника данных. Атрибут '''id''' может быть ''произвольным'', но должен быть ''уникальным'' в рамках документа.
 +
 
 +
{| class="wikitable"
 +
! scope="col" width="300px" | Настройка
 +
! scope="col" width="750px" | Описание
 +
|-
 +
!
 +
!Настройка сервисов
 +
|-
 +
|<code><FilterBindingServiceUrl></code>
 +
||Адрес сервиса по загрузке поисковых фильтров [[Web-сервисы: Сервис по загрузке поисковых фильтров|FilterBinding]].
 +
|-
 +
|<code><SearchServiceUrl></code>
 +
||Адрес поискового сервиса [[Web-сервисы: Сервис поиска|Search]].
 +
|-
 +
|<code><ReservationServiceUrl></code>
 +
||Адрес сервиса бронирования [[Web-сервисы: Сервис бронирования#Сервис бронирования (ReservationService.asmx)|ReservationService]].
 +
|-
 +
|<code><ServiceProviderServiceUrl></code>
 +
||Адрес сервиса формирования списка услуг [[Web-сервисы: Сервис бронирования#Сервис формирования списка услуг (ServiceProvider.asmx)|ServiceProvider]].
 +
|-
 +
|<code><CheckQuotesServiceUrl></code>
 +
||Адрес сервиса по проверке наличия мест [[Web-сервисы: Сервис по проверке наличия мест|CheckQuotesService]].
 +
|-
 +
!
 +
!Настройки бронирования передаваемые удаленному источнику
 +
|-
 +
|<code><PartnerKey></code>
 +
||'''Ключ партнера''', соответствующего ''локальному'' источнику, в базе данных ''удаленного'' источника. Из таблицы <code>'''[tbl_Partners]'''</code>. Используется для установки поля '''DG_PartnerKey''' у путевок в базе данных удаленного источника.
 +
|-
 +
|<code><FilialKey></code>
 +
||'''Ключ филиала партнера''', соответствующего ''локальному'' источнику, в базе данных ''удаленного'' источника. Из таблицы <code>'''[tbl_Partners]'''</code> с условием (<code>'''[PR_Filial]''' = '''2'''</code>). Используется для установки поля '''DG_FilialKey''' у путевок в базе данных удаленного источника.
 +
|-
 +
!
 +
!Настройки бронирования в локальном источнике
 +
|-
 +
|<code><InternalPartnerKey></code>
 +
||'''Ключ партнера''', соответствующего ''удаленному'' источнику, в базе данных ''локального'' источника. Берется из таблицы <code>'''[tbl_Partners]'''</code>. Используется для установки поля '''DG_PartnerKey''' у путевок в базе данных локального источника.
 +
|-
 +
|<code><InternalServiceKey></code>
 +
|'''Класс услуги''' в базе данных ''турагента'', являющегося ''владельцем приложения'' ПК «Мастер-Web», используемый для ''сохранения услуг'' из базы стороннего туроператора<br /><span style="color:#808080">Все услуги по путевке, забронированной по туру стороннего туроператора, будут сохранены с этим классом услуги.</span>
 +
|-
 +
|<code><InternalCreator></code>
 +
||'''Ключ пользователя''' из таблицы <code>'''[UserList]'''</code> ''турагента'', являющегося ''владельцем приложения'' ПК «Мастер-Web», который указывается ''создателем'' для путевок, оформленных по турам стороннего туроператора.
 +
|-
 +
|<code><InternalFilialKey></code>
 +
||'''Ключ филиала партнера''', соответствующего ''удаленному'' источнику, в базе данных ''локального'' источника. Из таблицы <code>'''[tbl_Partners]'''</code> с условием (<code>'''[PR_Filial]''' = '''2'''</code>). Используется для установки поля '''DG_PartnerKey''' у путевок в базе данных локального источника.
 +
|-
 +
|<code><InternalTourKey></code>
 +
||'''Ключ тура''' из таблицы <code>'''[tbl_TurList]'''</code> ''турагента'', являющегося ''владельцем приложения'' ПК «Мастер-Web», который прописывается в поле '''DG_TRKey''' у путевок, используемый для ''создания сохранения путевок'' из базы данных удаленного источника. Все путевки, забронированные в удаленном источнике, будут создаваться в базе данных локального источника с данным ключом тура.
 +
|-
 +
|<code><DefaultCountryKey></code>
 +
||'''Ключ страны''', указываемый в ''путевке'' и ''услугах'' в базе данных ''турагента'', являющегося ''владельцем приложения'' ПК «Мастер-Web», если ''не найдено совпадение по названию страны'' из удаленного источника.
 +
|-
 +
|<code><DefaultCityKey></code>
 +
||'''Ключ города''', указываемый в ''путевке'' и ''услугах'' в базе данных ''турагента'', являющегося ''владельцем приложения'' ПК «Мастер-Web», если ''не найдено совпадение по названию города'' из удаленного источника в списке городов указанной страны.
 +
|-
 +
|<code><ReservationWaitStatus></code>
 +
||'''Статус''', который проставляется путевке в ''локальном'' источнике, в поле '''DG_SOR_CODE''', в том случае, если у путевки в удаленном источнике ''глобальный статус'' '''Wait'''.
 +
|-
 +
|<code><ReservationOKStatus></code>
 +
||'''Статус''', который проставляется путевке в ''локальном'' источнике, в поле '''DG_SOR_CODE''', в том случае, если у путевки в удаленном источнике ''глобальный статус'' '''OK'''.
 +
|-
 +
!
 +
!Дополнительные настройки бронирования
 +
|-
 +
|<code><SendBookingMail></code>
 +
||Настройка, позволяющая '''включить отправку письма''' о новом бронировании агентству.<br />Возможные значения:
 +
* - '''true''' — '''отправлять''' письмо на e-mail адреса, указанные в настройке <code><EMail></code>;
 +
* - '''false''' или '''отсутствие настройки''' — '''не отправлять''' письмо о новом бронировании агентству.
 +
<span style="color:#808080">При выключении этой настройки так же не будут отправляться письма по настройке <code><SendAgencyMail></code>.</span>
 +
|-
 +
|<code><EMail></code>
 +
||'''E-mail адреса''' для '''отправки писем о новых бронированиях''', осуществленных через '''распределенный поиск'''<br /><span style="color:#808080">Адреса перечисляются через точку с запятой.</span>
 +
|-
 +
|-
 +
|<code><SendAgencyMail></code>
 +
||Настройка, позволяющая включить отправку письма о новом бронировании на e-mail адрес пользователя ПК «Мастер-Web», который осуществляет бронирование.<br />Возможные значения:
 +
* - '''true''' — '''отправлять''' письмо на e-mail адрес пользователя;
 +
* - '''false''' или '''отсутствие настройки''' — '''не отправлять''' письмо на e-mail адрес пользователя.
 +
<span style="color:#808080">Письма не будут отправляться при выключенной настройке <code><SendBookingMail>.</code></span>
 +
|-
 +
|<code><CostForRoom></code>
 +
||Устанавливает всем странам из удаленного источника '''тип цены за номер'''.<br />Обрабатывается аналогично настройке [[Мастер-Web:Установка и настройка#.Настройки в файле WEB.CONFIG основного приложения|costForRoom]] в экране [[Мастер-Web:Дополнительный_модуль_Подбор_туров_с_наличием_мест|Подбор туров с наличием мест (QuotedDynamic.aspx)]].<br /><span style="color:#808080">Если по одной стране выводятся туры из локального и внешнего источника, то при несовпадении настроек преимуществом обладает настройка из <code>web.config</code> ПК «Мастер-Web» — т.е. будут отображены туры только из локальной базы данных.</span>
 +
|-
 +
|<code><CostForRoomCountries></code>
 +
||Устанавливает странам с '''перечисленными ключами''' тип '''цены за номер'''.<br />Обрабатывается аналогично настройке [[Мастер-Web:Установка и настройка#.Настройки в файле WEB.CONFIG основного приложения|costForRoomCountries]] в экране [[Мастер-Web:Дополнительный_модуль_Подбор_туров_с_наличием_мест|Подбор туров с наличием мест (QuotedDynamic.aspx)]].<br /><span style="color:#808080">Ключи стран через запятую, например, «3, 40, 90».</span>
 +
|-
 +
!
 +
!Настройка комиссии при отображении цены
 +
|-
 +
|<code><AdditionalComission></code>
 +
||'''Наценка в процентах''' к '''общей стоимости''' тура от стороннего туроператора<br /><span style="color:#808080">Настройка применяется в экране поиска «DSearchPageM» и в корзине «RemoteBasketM».</span>
 +
|-
 +
|<code><AdditionalComissionFixed></code>
 +
||'''Фиксированная наценка''' к '''общей стоимости''' тура от стороннего туроператора<br /><span style="color:#808080">Настройка применяется только в корзине «RemoteBasketM».</span>
 +
|-
 +
|<code><AdditionalServiceComission></code>
 +
||'''Фиксированная наценка''' к '''стоимости доп. услуг''' при бронировании туров от стороннего туроператора<br /><span style="color:#808080">Настройка применяется '''только''' в корзине «RemoteBasketM».</span>
 +
|-
 +
!
 +
!Настройка правил подстановки сущностей
 +
|-
 +
|<code><ReplcamentSearchItems></code>
 +
||Правила '''подстановки данных''' из '''поискового фильтра''' данного источника в локальный фильтр.
 +
|}
 +
 
 +
Правило подстановки данных из поискового фильтра данного источника в локальный фильтр задается при помощи набора элементов <code><ReplcamentSubItem></code>, где:
 +
 
 +
{| class="wikitable"
 +
! scope="col" width="300px" | Параметр
 +
! scope="col" width="750px" | Описание
 +
|-
 +
|<code>Type</code>
 +
||'''Тип узла подстановки'''. Возможные значения ''совпадают'' со значениями из ''файла-схемы фильтра'' распределенного поиска. В ''одном'' правиле может использоваться ''несколько типов узлов'', которые должны идти в ''том же порядке'', как и в ''схеме ''фильтра.<br />Возможные значения:
 +
* '''departFrom''';
 +
* '''country''';
 +
* '''tourtype''';
 +
* '''resort''';
 +
* '''city''';
 +
* '''hotel''';
 +
|-
 +
|<code>LocalValue</code>
 +
||'''Ключ сущности''' в '''локальной''' базе.<br /><span style="color:#808080">Если в локальном источнике отсутствует такой ключ, то <code>LocalValue</code> указывать не нужно.</span>
 +
|-
 +
|<code>RemoteValue</code>
 +
|'''Ключ сущности''' во '''внешнем''' источнике.
 +
|-
 +
|<code>Name</code>
 +
||'''Название сущности.'''<br /><span style="color:#808080">Настройка используется при отсутствии сущности в локальном источнике.</span>
 +
|}
 +
 
 +
 
 +
[[Файл: Ke_030.png|left|Предупреждение]] <br />
 +
При использовании разных, но [[Мастер-Web: Распределенный поиск. Совместимость версий сервисов и ПК "Мастер-Web"|совместимых версий сервисов и ПК "Мастер-Web"]], необходимо в конфигурационных файлах сервисов в строке подключения
 +
указывать логин и пароль пользователя ПК "Мастер-тур".
 +
А также в файле distributedSearchSettings.xml обязательно заполнять тэг <InternalCreator> </InternalCreator> ( см. выше в "'''Настройки файла distributedSearchSettings.xml'''"),
 +
для корректного отображения заявок в экране "Работа менеджеров" в ПК "Мастер-Тур".
 +
 
 +
 
 +
====Примеры добавления сущностей====
 +
<ol>
 +
<li>Добавление предложения по Хорватии (в локальном источнике отсутствует, ключ 123 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике):
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
 +
<syntaxhighlight lang="xml">
 +
<ReplcamentSearchItem>
 +
  <SubItems>
 +
    <ReplcamentSubItem
 +
      Type="departFrom"
 +
      LocalValue="30"
 +
      RemoteValue="1" />
 +
    <ReplcamentSubItem
 +
      Type="country"
 +
      RemoteValue="123"
 +
      Name="Хорватия" />
 +
  </SubItems>
 +
</ReplcamentSearchItem>
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</li>
 +
<li>Добавление предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике):
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
 +
<syntaxhighlight lang="xml">
 +
<ReplcamentSearchItem>
 +
  <SubItems>
 +
    <ReplcamentSubItem
 +
      Type="departFrom"
 +
      LocalValue="30"
 +
      RemoteValue="1" />
 +
    <ReplcamentSubItem
 +
      Type="country"
 +
      LocalValue="520"
 +
      RemoteValue="29" />
 +
  </SubItems>
 +
</ReplcamentSearchItem>
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</li>
 +
<li>Включение в предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Екатеринбурга (ключ 648 в локальном источнике и 266 во внешнем источнике) города Салоники (в локальном источнике отсутствует, ключ 615 во внешнем источнике):
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
 +
<syntaxhighlight lang="xml">
 +
<ReplcamentSearchItem>
 +
  <SubItems>
 +
    <ReplcamentSubItem
 +
      Type="departFrom"
 +
      LocalValue="648"
 +
      RemoteValue="266" />
 +
    <ReplcamentSubItem
 +
      Type="country"
 +
      LocalValue="520"
 +
      RemoteValue="29" />
 +
    <ReplcamentSubItem
 +
      Type="tourtype"
 +
      RemoteValue="2"
 +
      Name="Стандартный тур" />
 +
    <ReplcamentSubItem
 +
      Type="resort"
 +
      RemoteValue="42"
 +
      Name="Салоники" />
 +
    <ReplcamentSubItem
 +
      Type="city"
 +
      RemoteValue="615"
 +
      Name="Салоники" />
 +
    <ReplcamentSubItem
 +
      Type="hotel"
 +
      RemoteValue="130"
 +
      Name="Test_Hotel" />
 +
  </SubItems>
 +
</ReplcamentSearchItem>
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</li>
 +
</ol>
 +
 
 +
====Валидный distributedSearchSettings.xml====
 +
Конфигурационный файл распределенного поиска distributedSearchSettings.xml расположен в папке templates каталога ПК «Мастер-Web». Ниже представлен пример валидного файла конфигурации для работы с одним внешним источником. Подключены 2 страны: Англия и Андорра — для Англии поиск цен производится только по турам с городом отправления Москва (<font style="font-family:courier new">departFrom = 1</font>), а для Андорры — как по турам из Москвы, так и по турам без перелета (<font style="font-family:courier new">departFrom = 0</font>).
 +
 
 +
<span style="color:#808080">Данный файл distributedSearchSettings.xml актуален для ПК «Мастер-Web» релиза 2009.2.17, а также для сервис-паков 2009.2.16.</span>
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
 +
<syntaxhighlight lang="xml">
 +
<?xml version="1.0"?>
 +
<DistributedSearchSettings
 +
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 +
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 +
 
 +
  <!-- РП включен\выключен -->
 +
  <Enabled>true</Enabled>
 +
 
 +
  <!-- Список удаленных источников -->
 +
  <SearchSources>
 +
    <!--
 +
    Удаленный источник.
 +
 
 +
    Id - идентификатор удаленного источника в РП. Любая строка, кроме local.
 +
    WsAuthLogin - логин для авторизации на сервисе.
 +
    WsAuthPassword - пароль для авторизации на сервисе.
 +
    -->
 +
 
 +
    <DistributedSearchSource
 +
        Id="Внешний источник № 7"
 +
        WsAuthLogin="qaz"
 +
        WsAuthPassword="123">
 +
 
 +
      <!-- Адрес авторизационного сервиса -->
 +
      <AuthorizationServiceUrl>
 +
        http://server:8080/distributedsearch/mw-ws-authorization/WsAuthorization.asmx
 +
      </AuthorizationServiceUrl>
 +
 
 +
      <!-- Адрес сервиса получения поискового фильтра -->
 +
      <FilterBindingServiceUrl>
 +
        http://server:8080/distributedsearch/mw-filterbinding/FilterBindingService.asmx
 +
      </FilterBindingServiceUrl>
 +
 
 +
      <!-- Адрес поискового сервиса -->
 +
      <SearchServiceUrl>
 +
        http://server:8080/distributedsearch/mw-megatecwebservices/Search.asmx
 +
      </SearchServiceUrl>
 +
 
 +
      <!-- Адрес сервиса бронирования -->
 +
      <ReservationServiceUrl>
 +
        http://server:8080/distributedsearch/mw-ws-reservation/ReservationService.asmx
 +
      </ReservationServiceUrl>
 +
 
 +
      <!-- Адрес сервиса работы с услугами -->
 +
      <ServiceProviderServiceUrl>
 +
        http://server:8080/distributedsearch/mw-ws-reservation/ServiceProvider.asmx
 +
      </ServiceProviderServiceUrl>
 +
 
 +
      <!-- Адрес сервиса проверки квот -->
 +
      <CheckQuotesServiceUrl>
 +
        http://server:8080/distributedsearch/mw-ws-checkquotes/CheckQuotesService.asmx
 +
      </CheckQuotesServiceUrl>
 +
 
 +
      <!--
 +
        Ключ партнера в локальной БД.
 +
        Значение, которое будет установлено записи в таблице tbl_Dogovor,
 +
        поле DG_PARTNERKEY, и записям в таблице tbl_DogovorList, поле DL_PARTNERKEY.
 +
        Берется из таблицы Partners, поле PR_KEY.
 +
      -->
 +
      <InternalPartnerKey>10760</InternalPartnerKey>
 +
 
 +
      <!--
 +
        Ключ создателя тура в локальной БД.
 +
        Значение, которое будет установлено записи в таблице tbl_Dogovor,
 +
        поле DG_CREATOR, и записям в таблице tbl_DogovorList, поле DL_CREATOR.
 +
        Берется из таблицы UserList, поле US_KEY.
 +
      -->
 +
      <InternalCreator>89</InternalCreator>
 +
 
 +
      <!--
 +
        Ключ класса услуг для фейковых услуг путевки в локальной БД.
 +
        Значение, которое будет установлено записям в таблице tbl_DogovorList,
 +
        поле DL_SVKEY.
 +
        Берется из таблицы Service, поле SV_KEY.
 +
      -->
 +
      <InternalServiceKey>1040</InternalServiceKey>
 +
 
 +
      <!-- Устанавливает всем странам из удаленного источника тип цены за номер. -->
 +
      <CostForRoom>false</CostForRoom>
 +
 
 +
      <!--
 +
        Устанавливает странам с перечисленными ключами тип цены за номер.
 +
        Формат: "1,2,3,..", - ключи стран через запятую.
 +
      -->
 +
      <CostForRoomCountries></CostForRoomCountries>
 +
 
 +
      <!-- Список элементов, которые будут получаться из удаленного источника -->
 +
      <ReplcamentSearchItems>
 +
        <ReplcamentSearchItem>
 +
          <SubItems>
 +
            <ReplcamentSubItem
 +
              Type="departFrom"
 +
              LocalValue="0"
 +
              RemoteValue="0" />
 +
            <ReplcamentSubItem
 +
              Type="country"
 +
              RemoteValue="376"
 +
              Name="Андорра № 7" />
 +
          </SubItems>
 +
        </ReplcamentSearchItem>
 +
        <ReplcamentSearchItem>
 +
          <SubItems>
 +
            <ReplcamentSubItem
 +
              Type="departFrom"
 +
              LocalValue="1"
 +
              RemoteValue="1" />
 +
            <ReplcamentSubItem
 +
              Type="country"
 +
              RemoteValue="222"
 +
              Name="Англия № 7" />
 +
          </SubItems>
 +
        </ReplcamentSearchItem>
 +
        <ReplcamentSearchItem>
 +
          <SubItems>
 +
            <ReplcamentSubItem
 +
              Type="departFrom"
 +
              LocalValue="1"
 +
              RemoteValue="1" />
 +
            <ReplcamentSubItem
 +
              Type="country"
 +
              RemoteValue="376"
 +
              Name="Андорра № 7" />
 +
          </SubItems>
 +
        </ReplcamentSearchItem>
 +
      </ReplcamentSearchItems>
 +
    </DistributedSearchSource>
 +
 
 +
  </SearchSources>
 +
</DistributedSearchSettings>
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
 
 +
===Настройка полей данных о туристах===
 +
Настройка отображения полей данных о туристах производится в файле <tt>descriptions.xml</tt>. Данный файл содержит следующие настройки:
 +
 
 +
1. Настройка отображения поля «Главный турист»:
 +
<column code="ismain" header="&lt;img src=&quot;../images/mw_main_tourist.gif&quot; border=&quot;0&quot; alt=&quot;Главный турист&quot; /&gt;" visible="True" required="True" translit="False" letterCase="0" edit="False" />
 +
2. Настройка отображения поля «Пол туриста»:
 +
<column code="sex" header="Пол&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;" 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="Имя&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;" 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="Фамилия&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;" visible="True" required="True" translit="True" letterCase="2" edit="True" validationgroup="TouristsGroup" />
 +
9. Настройка отображения поля «Дата рождения»:
 +
<column code="birthdate" header="Дата рождения&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;br /&gt;(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="Действителен до&lt;br /&gt;(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" />
 +
 
 +
Настройки отображения полей данных о туристах содержат параметры:
 +
#'''Code=''' - зашитая в коде константа, которую нельзя изменять.
 +
#'''Header=''' - заголовок поля
 +
#'''Visible=''' - видимость поля; значения: True – видимый, Flse – невидимый
 +
#'''Required=''' - обязательность заполнения поля; значения: True – обязательное, False – необязательное
 +
#'''Translit=''' - транслитерация; значения: True – транслитерировать, False – не транслитерировать
 +
#'''letterCase=''' - регистр символов в поле; значения: 1 – первая буква заглавная, 2 – все буквы большие, 3 – все буквы маленькие
 +
#'''Edit=''' - редактирование поля; значения: True – редактируемое, False – нередактируемое
 +
===Настройки файла remoteSearchFilterScheme.xml===
 +
Файл ''remoteSearchFilterScheme.xml'' содержит информацию о зависимостях узлов фильтра друг от друга и вспомогательную информацию по каждому узлу.
 +
 
 +
Узел — это контейнер, объединяющий данные определенного типа. Например: города вылета, страны, категории отелей. Существуют родительские и дочерние узлы. Родительскими называют те узлы, при изменении которых должны быть перезагружены значения данного узла. Дочерними называют те узлы, которые должны быть перезагружены при изменении данного узла.
 +
 
 +
<syntaxhighlight lang="xml" enclose="div">
 +
<control name="lstCity" type="City" firstItem="All" sort="sd_ctname" assembly="Megatec.MasterWeb.Loading">
 +
<dependency control="lstDepartFrom" />
 +
</control>
 +
</syntaxhighlight>
 +
 
 +
Родительский узел задается тегом ''<control>'', для каждого узла есть дополнительная информация:
 +
 
 +
{| class="wikitable"
 +
! scope="col" width="150px" | Параметр
 +
! scope="col" width="750px" | Описание
 +
|-
 +
| <code>name</code>
 +
|| Название контрола в форме фильтра, используется для связи узла фильтра в схеме и контрола на форме.
 +
|-
 +
| <code>type</code>
 +
|| Тип данных в узле фильтра, варианты как и в ''distributedSearchSettings'': ''departFrom'', ''country'' и т.д.
 +
|-
 +
| <code>sort</code>
 +
|| Параметры сортировки значений этого типа в БД
 +
|-
 +
| <code>assembly </code>
 +
|| Служебная информация.  Не изменять! <font style="color:grey">Название сборки, в которой лежат классы для загрузки значений данного типа.</font>
 +
|-
 +
| <code>firstItem</code>
 +
|| Представление элемента «Все»
 +
|-
 +
|}
 +
 
 +
Дочерний узел задается тегом ''<dependency/>'', вложенными в тег ''<control>''.  В атрибуте ''control'' тега ''<dependency/>'' указывается название узла, от которого зависит данный узел. Чтобы задать значение по умолчанию для данного узла, нужно добавить тег ''defaultSelection''. Атрибут ''control'' должен быть равен названию узла фильтра, для которого устанавливается значение по умолчанию, атрибут ''property'' содержит само значение по умолчанию. Форма задания значения по умолчанию такая же, как и при передаче значений через URL.
 +
 
 +
===Настройки в web.config приложения ПК Мастер-Web===
 +
При настройке распределенного поиска в файле <tt>web.config</tt> приложения ПК Мастер-Web необходимо задать дополнительные условия для отображения и проверки данных.
 +
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse"
 +
 
 +
|- style="background-color:#F2F2F2"
  
====Дополнительные настройки====
+
! width="2%" |
Дополнительные настройки, задаваемые в секции <Megatec.Web.Services/> файла web.config основного приложения ПК "Мастер-Web".
+
! width="28%" | Описание
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=645
+
! width="35%" | Значение
style='width:483.4pt;margin-left:-.5pt;border-collapse:collapse'>
+
! width="35%" | Настройка
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border:solid black 1.0pt;
 
  border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=TitleTable style='layout-grid-mode:char'></p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border:solid black 1.0pt;
 
  border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=TitleTable style='layout-grid-mode:char'>Описание</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border:solid black 1.0pt;
 
  border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=TitleTable style='layout-grid-mode:char'>Значение</p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=TitleTable style='layout-grid-mode:char'>Настройка</p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'><span lang=EN-US>1</span></p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая
 
  расположение сервиса по загрузке поисковых фильтров.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext>&nbsp;</p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;FilterBinding&quot; enabled=&quot;true&quot;
 
  url=&quot;http: //Сайт/filterbinding/FilterBindingService.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>2</p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая
 
  расположение поискового сервиса.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext><b>&nbsp;</b></p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;DoSearch&quot; enabled=&quot;true&quot;
 
  url=&quot;http: //Сайт/search/Search.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>3</p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая
 
  расположение сервиса бронирования.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext><b>&nbsp;</b></p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;Reservation&quot; enabled=&quot;true&quot;
 
  url=&quot;http: //Сайт/reservation/ReservationService.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>4</p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая расположение
 
  сервиса формирования списка услуг.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext><b>&nbsp;</b></p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;ServiceProvider&quot; enabled=&quot;true&quot;
 
  url=&quot;http: //Сайт/reservation/ServiceProvider.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>5</p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая
 
  расположение сервиса проверки квот.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext><b>&nbsp;</b></p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;CheckQuotes&quot; enabled=&quot;true&quot; url=&quot;http: //Сайт/checkquotes/CheckQuotesService.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
</table>
 
  
====Настройки файла distributedSearchSettings.xml====
+
|- style="vertical-align:text-top"
Файл distributedSearchSettings.xml содержит информацию о внешних источниках данных.
+
 
Элемент <Enabled>true</Enabled> элемента <DistributedSearchSettings> указывает на необходимость проведения поиска во внешних источниках данных.<BR>
+
| 1
Для того, чтобы добавить нового партнера, у которого будут браться данные, нужно создать новую секцию <DistributedSearchSource Id="src">.
+
|Определение колонок тарифов на авиаперелет для отображения в результатах поиска (настройка является обязательной для корректной работы распределенного поиска). Подробнее см. [[Мастер-Web:Установка и настройка|Настройка секции dynamicCharterClasses]]
Каждый из элементов <DistributedSearchSource Id="src"> элемента <SearchSources> представляет собой описание источника данных. Атрибут id может быть произвольным, но уникальным в рамках документа.<br>
+
|
Чтобы настроить работу с внешним источником данных, в соответствующей секции DistributedSearchSource нужно задать следующие теги:
+
* '''true''' – использовать упрощенную корзину;
<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
+
* '''false''' или '''отсутствие настройки''' – использовать обычную корзину
style='border-collapse:collapse;border:none'>
+
|<syntaxhighlight lang="xml" enclose="div">
<tr>
+
<dynamicCharterClasses mode="complex" />
  <td width=214 valign=top style='width:160.85pt;border:solid windowtext 1.0pt;
+
</syntaxhighlight>
  padding:0cm 5.4pt 0cm 5.4pt'>
+
|- style="vertical-align:text-top"
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;FilterBindingServiceUrl&gt;</span></p>
+
|2
  </td>
+
|Настройка, определяющая страницу, на которую будет попадать пользователь после бронирования тура от стороннего туроператора.
  <td width=424 valign=top style='width:317.7pt;border:solid windowtext 1.0pt;
+
|
  border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
* '''true''' – переход осуществляется на страницу (ReservationResultPage.aspx);
  <p class=MsoNormal>- адрес сервиса загрузки поискового фильтра для данного
+
* '''false''' или '''отсутствие настройки''' – переход осуществляется на страницу «Информация о заказе» (OrderInfo.aspx)
  источника</p>
+
|<syntaxhighlight lang="xml" enclose="div">
  </td>
+
<add key="DSRedirectToResultPage" value= "true" />
</tr>
+
</syntaxhighlight>
<tr>
+
|- style="vertical-align:text-top"
  <td width=214 valign=top style='width:160.85pt;border:solid windowtext 1.0pt;
+
|3
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
|Настройка метода проверки квот
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;SearchServiceUrl&gt;</span></p>
+
|
  </td>
+
* '''true''' – квоты проверяются исходя из настроек в базе
  <td width=424 valign=top style='width:317.7pt;border-top:none;border-left:
+
* '''false''' или '''отсутствие настройки''' – квоты сервисами не проверяются
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+
| <syntaxhighlight lang="xml" enclose="div">
  padding:0cm 5.4pt 0cm 5.4pt'>
+
<add key="UseNewSetToQuota" value="true" />
  <p class=MsoNormal>- адрес поискового сервиса для данного источника</p>
+
</syntaxhighlight>
  </td>
+
|- style="vertical-align:text-top"
</tr>
+
|4
<tr>
+
|Отображение '''Даты проживания''' в отеле в экранах:
  <td width=214 valign=top style='width:160.85pt;border:solid windowtext 1.0pt;
+
* Корзина;
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
* Упрощенная корзина;
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;FlightGroups&gt;</span></p>
+
* Расширенная корзина;
  </td>
+
* Удаленная корзина;
  <td width=424 valign=top style='width:317.7pt;border-top:none;border-left:
+
* BasketTUI.
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+
|
  padding:0cm 5.4pt 0cm 5.4pt'>
+
* '''true''' — отображать '''Даты проживания'''
  <p class=MsoNormal>- перечисление ключей классов перелетов разделенных на
+
* '''false''' или '''отсутствие настройки''' — не отображать '''Даты проживания'''
  группы знаком «|»; порядок групп должен соответствовать порядку указанному в
+
| <syntaxhighlight lang="xml" enclose="div">
  секции <span style='font-size:10.0pt;font-family:"Courier New"'>MasterWeb</span>/<span
+
<add key="showHotelDatesInBasket" value="true"/>
  style='font-size:10.0pt;font-family:"Courier New"'> dynamicCharterClasses</span>
+
</syntaxhighlight>
  файла <span lang=EN-US>web</span>.<span lang=EN-US>config</span>; если какая
+
|}
  либо группа из файла <span lang=EN-US>web</span>.<span lang=EN-US>config</span>
+
 
  несвойственна данному источнику, то в ней указывается ключ ”-1”      </p>
+
 
  </td>
+
[[Файл: mb_031.png|left|Дополнительная информация]] <br />
</tr>
+
Для корректного отображения наличия мест в турах от удаленных источников, необходимо указывать соответствующие настройки в web.config [[Web-сервисы: Сервис поиска#Настройки web.config «Поискового сервиса»|поискового сервиса]].
<tr>
+
 
  <td width=214 valign=top style='width:160.85pt;border:solid windowtext 1.0pt;
+
=====Настройки экрана «Динамический лист предложений с наличием мест»=====
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
Настройки для данного экрана задаются в файле web.config, находящемся в папке MasterWebStandard. Данные настройки регулируют отображение тарифов на авиаперелеты, питания и категорий гостиниц. Для этого в конфигурационном файле добавляется секция <MasterWeb>.  
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;ReplcamentSearchItems</span></p>
+
<BR>
  </td>
+
[[Файл:KE_50.png‎]]<BR>
  <td width=424 valign=top style='width:317.7pt;border-top:none;border-left:
+
Данная секция содержит 3 подсекции настроек:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+
# dynamicCharterClasses – список тарифов на авиаперелет (еще не реализовано для Распределенного поиска)
   padding:0cm 5.4pt 0cm 5.4pt'>
+
# dynamicBoard – список типов питания
  <p class=MsoNormal>- правила подстановки данных из поискового фильтра данного
+
# dynamicHotelCategories – список категорий гостиниц.
   источника в локальный фильтр </p>
+
Классы 2.1 и 2.2 на рисунке отвечают за отображение информации по турам от удаленных источников. Настраиваются аналогично классам отвечающим за отображение [[Мастер-Web:Установка и настройка#Настройка секции dynamicBoard|локальных туров]].
  </td>
+
В классе указывается то название источника, которое указано в конфигурационном файле distributedSearchSettings.xml
</tr>
+
 
</table>
+
===Сервис авторизации===
Для того, чтобы получать предложения по какой либо стране из внешнего источника данных, необходимо добавить новый набор элементов <ReplcamentSubItem>, который задает правило подстановки данных из поискового фильтра данного источника в локальный фильтр, где:
+
Начиная с релиза 2009.2.16 ПК «Мастер-Web» появилась возможность защиты веб-сервисов распределенного поиска от несанкционированного использования посредством сервиса авторизации (WsAuthorization). ''Установка сервиса описана на странице  '''[[Web-сервисы: Сервис для авторизации|Дополнительный модуль Сервис для авторизации]]'' '''.
<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
+
 
style='border-collapse:collapse;border:none'>
+
====Настройка====
<tr>
+
<span style="color:#808080">При необходимости использования веб-сервисов распределенного поиска без сервиса авторизации на релизах до ПК «Мастер-Web» 2009.2.17.1 нужно выполнить скрипт fn_mwCheckToken.sql — его можно запросить в [mailto:service@megatec.ru департаменте по работе с клиентами] компании Мегатек.</span>
  <td width=121 valign=top style='width:90.45pt;border:solid windowtext 1.0pt;
+
 
  padding:0cm 5.4pt 0cm 5.4pt'>
+
=====Настройка агентского ПК «Мастер-Web»=====
   <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Type</span></p>
+
<ul>
  </td>
+
<li>В файле настроек распределенного поиска distributedSearchSettings.xml, расположенного в папке templates каталога ПК «Мастер-Web», для использования сервиса авторизации WsAuthorization необходимо указать 3 настройки:
  <td width=517 valign=top style='width:388.1pt;border:solid windowtext 1.0pt;
+
<ul style="list-style:none">
  border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
<li>WsAuthLogin — логин для обращения к WsAuthorization;</li>
  <p class=MsoNormal>- тип условия подстановки; возможные значения: <span
+
<li>WsAuthPassword — пароль для обращения к WsAuthorization;</li>
  style='font-size:10.0pt;font-family:"Courier New"'>departFrom</span>, <span
+
<li>AuthorizationServiceUrl — адрес авторизационного сервиса.</li>
  style='font-size:10.0pt;font-family:"Courier New"'>country</span>, <span
+
</ul>
  style='font-size:10.0pt;font-family:"Courier New"'>city</span></p>
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
  </td>
+
<syntaxhighlight lang="xml">
</tr>
+
<DistributedSearchSource
<tr>
+
    Id="Внешний источник № 7"
  <td width=121 valign=top style='width:90.45pt;border:solid windowtext 1.0pt;
+
    WsAuthLogin="qaz"
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
    WsAuthPassword="123">
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>LocalValue</span></p>
+
 
  </td>
+
  <!-- Адрес авторизационного сервиса -->
  <td width=517 valign=top style='width:388.1pt;border-top:none;border-left:
+
   <AuthorizationServiceUrl>
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+
    http://server:8080/distributedsearch/mw-ws-authorization/WsAuthorization.asmx
  padding:0cm 5.4pt 0cm 5.4pt'>
+
   </AuthorizationServiceUrl>
  <p class=MsoNormal>- ключ сущности в локальной базе</p>
+
  </td>
+
</DistributedSearchSource>
</tr>
+
</syntaxhighlight>
<tr>
+
</TD></TR></TABLE>
  <td width=121 valign=top style='width:90.45pt;border:solid windowtext 1.0pt;
+
</li>
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
<li>При включении хеширования (usePasswordHashing) в настройке WsAuthPassword нужно указывать не пароль, а его хеш:
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>RemoteValue</span></p>
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
  </td>
+
<syntaxhighlight lang="xml">
  <td width=517 valign=top style='width:388.1pt;border-top:none;border-left:
+
<DistributedSearchSource
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+
   Id="Внешний источник № 7"
  padding:0cm 5.4pt 0cm 5.4pt'>
+
  WsAuthLogin="qaz"
  <p class=MsoNormal>- ключ сущности во внешнем источнике</p>
+
  WsAuthPassword="xMpCOKC5I4INzFCab3WEmw==">
  </td>
+
</syntaxhighlight>
</tr>
+
</TD></TR></TABLE>
</table>
+
</li>
Пример:<BR>
+
</ul>
*1. Добавить предложения по Хорватии (в локальном источнике отсутствует, ключ во внешнем источнике - 123) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
+
 
<ReplcamentSearchItem>
+
===Поддержка репликации===
<SubItems>
+
 
<ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
+
 
<ReplcamentSubItem Type="country" LocalValue="0" RemoteValue="123" Name="Хорватия" />
+
====Строки подключения сервисов====
</SubItems>
+
При развертывании распределенного поиска у туроператоров, использующих [[Мастер-Тур:Настройка_репликации|репликацию]], поисковые веб-сервисы необходимо настроить на поисковую базу данных ПК «Мастер-Тур», а сервисы бронирования и квотирования — на основную базу данных. Строки подключения приведены ниже.
</ReplcamentSearchItem>
+
<ul>
*2. Добавить предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
+
<li>Поисковая база данных
<ReplcamentSearchItem>
+
<ul style="list-style:none">
<SubItems>
+
<li>Сервис [[Web-сервисы: Сервис поиска|Search]]
<ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
<ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
+
<syntaxhighlight lang="xml">
</SubItems>
+
<add key="connectionString" value="Data Source=Сервер с поисковой БД; Initial Catalog=Поисковая БД; User Id=Пользователь из таблицы [UserList]; Password=Пароль пользователя; Max Pool Size=500; Application Name=DS" />
</ReplcamentSearchItem>
+
 
*3. Включить в предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Екатеринбурга (ключ 648 в локальном источнике и 266 во внешнем источнике) город Салоники (в локальном источнике отсутствует ; ключ во внешнем источнике - 615)
+
<add key="pagingType" value="2" />
<ReplcamentSearchItem>
+
</syntaxhighlight>
<SubItems>
+
</TD></TR></TABLE>
<ReplcamentSubItem Type="departFrom" LocalValue="648" RemoteValue="266" />
+
</li>
<ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
+
<li>Сервис [[Web-сервисы: Сервис по загрузке поисковых фильтров|FilterBindingService]]
<ReplcamentSubItem Type="city" LocalValue="0" RemoteValue="615" Name="Салоники" />
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
</SubItems>
+
<syntaxhighlight lang="xml">
</ReplcamentSearchItem>
+
<add key="connectionString" value="Data Source=Сервер с поисковой БД; Initial Catalog=Поисковая БД; User Id=Пользователь из таблицы [UserList]; Password=Пароль пользователя; Application Name=DS" />
====Ограничение вариантов, доступных из внешнего источника====
+
</syntaxhighlight>
Чтобы ограничить предложения из внешнего источника данных, например, по типу тура или по городу, необходимо в базе данных стороннего туроператора создать соответствующее представление (view) для пользователя, который указан в настройках соединения конфигурационного файла web.config сервиса по загрузке поисковых фильтров и поискового сервиса.
+
</TD></TR></TABLE>
 +
</li>
 +
</ul>
 +
</li>
 +
<li>Основная база данных
 +
<ul style="list-style:none">
 +
<li>Сервис [[Web-сервисы: Сервис бронирования#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81_.D0.B1.D1.80.D0.BE.D0.BD.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.28ReservationService.asmx.29|ReservationService]]
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
 +
<syntaxhighlight lang="xml">
 +
<add key="connectionString" value="Data Source=Сервер с основной БД; Initial Catalog=Основная БД; User Id=Пользователь из таблицы [UserList]; Password=Пароль пользователя; Application Name=DS" />
 +
 
 +
<add key="pagingType" value="2" />
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</li>
 +
<li>Сервис [[Web-сервисы:_Сервис_по_проверке_наличия_мест|CheckQuotesService]]
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD>
 +
<syntaxhighlight lang="xml">
 +
<add key="connectionString" value="Data Source=Сервер с основной БД; Initial Catalog=Основная БД; User Id=Пользователь из таблицы [UserList]; Password=Пароль пользователя; Application Name=DS" />
 +
 
 +
<add key="CommonType" value="MasterTour"/>
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</li>
 +
</ul>
 +
</li>
 +
</ul>
 +
 
 +
====Использование сервиса авторизации с репликацией====
 +
При использовании [[Мастер-Тур:Настройка_репликации|репликации]] возможны 2 варианта настройки [[Мастер-Web:Дополнительный_модуль_Распределенный_поиск#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81_.D0.B0.D0.B2.D1.82.D0.BE.D1.80.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8|сервиса авторизации]]:
 +
<ol>
 +
<li>Без защиты — полное отключение сервиса авторизации: и на основной, и на поисковой базе данных.</li>
 +
<li>Частичная защита — включение сервиса авторизации на поисковой базе данных.<br />
 +
В этом случае обращения к веб-сервисам [[Web-сервисы: Сервис по загрузке поисковых фильтров|FilterBindingService]] и [[Web-сервисы: Сервис поиска|Search]], использующим поисковую базу данных, будут проверяться сервисом [[Web-сервисы:_Сервис_для_авторизации|WsAuthorization]], а обращения к сервисам [[Web-сервисы: Сервис бронирования#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81_.D0.B1.D1.80.D0.BE.D0.BD.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.28ReservationService.asmx.29|ReservationService]], [[Web-сервисы: Сервис бронирования#.D0.A1.D0.B5.D1.80.D0.B2.D0.B8.D1.81_.D1.84.D0.BE.D1.80.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D1.81.D0.BF.D0.B8.D1.81.D0.BA.D0.B0_.D1.83.D1.81.D0.BB.D1.83.D0.B3_.28ServiceProvider.asmx.29|ServiceProvider]] и [[Web-сервисы: Сервис по проверке наличия мест|CheckQuotesService]], использующим основную базу данных, проверяться не будут.</li>
 +
</ol>
  
 
==Работа в системе==
 
==Работа в системе==
===Схема распределенного поиска===
+
====Схема распределенного поиска====
<BR>
+
<br />
[[Файл:818.PNG]]<BR>
+
[[Файл:818.PNG]]<br />
 +
 
 +
====Поиск цен====
 +
Для поиска цен через распределенный поиск необходимо выбрать город вылета, страну и период дат заездов. Можно наложить дополнительные фильтры на отбор туров по следующим параметрам:
 +
#'''Типу тура'''
 +
#'''Курорту'''
 +
#'''Городу'''
 +
#'''Названию тура'''
 +
#'''Названию отеля''' (по ссылке с названия отеля пользователь может перейти на страницу с описанием отеля)
 +
#'''Типу номера'''
 +
#'''Стоимости'''
 +
#'''Продолжительности'''
 +
#'''Классу гостиницы'''
 +
#'''Питанию'''
 +
#'''Наличию мест в отеле и на рейсе'''
 +
[[Файл:Ds052.png|x500px]]<br />
 +
По нажатию кнопки «Подобрать тур», системой будут отобраны туры, отвечающие заданным условиям.
 +
Информация в результатах поиска представлена в виде таблицы, содержащей следующие поля:
 +
#'''Дата заезда''' – дата заезда по туру
 +
#'''Отель''' – название отеля (по ссылке с названия отеля пользователь может перейти на страницу с описанием отеля)
 +
#'''Категория'''  - категория отеля
 +
#'''Город''' – город, к которому привязан отель
 +
#'''Тип номера''' – тип номера, на который указана цена
 +
#'''Категория номера''' – категория номера, на который указана цена
 +
#'''Размещение''' – размещение, на которое указана цена
 +
#'''Питание''' – тип питания, на которое указана цена
 +
#'''Ночи''' – продолжительность тура в ночах
 +
#'''Цена'''
 +
#'''Вал''' – валюта, в которой указана цена
 +
#'''Источник цены''' – название тура
 +
#'''Цена за''' – тип рассчитанной цены: за человека или за номер
 +
#'''Наличие мест''' – наличие мест в гостинице
 +
#'''Эконом, Бизнес''' - наличие мест на авиаперелеты. Колонки и их названия формируются динамически. Их отображение регулируется настройкой в конфигурационном файле web.config
 +
По нажатию на цену пользователь попадает в экран бронирования тура.
 +
При переходе в экран бронирования по собственным турам пользователь попадает в экран [[Мастер-Web:Руководство_пользователя._Работа_в_системе_online_бронирования#Экран «Стандартная корзина» («Basket.aspx»)|«Корзина» (Basket.aspx)]], [[Мастер-Web:Руководство_пользователя._Работа_в_системе_online_бронирования#Экран «Упрощенная корзина» («SimpleBasket.aspx»)|«Упрощенная корзина» (SimpleBasket.aspx)]] или [[Мастер-Web:Дополнительный модуль Расширенная корзина|«Расширенная корзина» (Basket.aspx)]] в зависимости от настроек в конфигурационном файле <tt>web.config</tt> и наличия установленных надстроек.
 +
 
 +
При переходе в экран бронирования по турам стороннего туроператора пользователь попадает в экран «Удаленная корзина» (RemoteBasket.aspx).
 +
 
 +
=====Актуальность цен=====
 +
В экране распределенного поиска отбор данных осуществляется по рассчитанным (записанным в БД) ценам туроператоров. При отборе туров, цена на тур стороннего туроператора конвертируется в соответствии с курсом валют в локальной базе.
 +
В экране бронирования расчеты ведутся уже по актуальным на данный момент ценам. Т.е. если после расчета прайс-листа цены были изменены, то в экране бронирования стоимость тура покажется уже с учетом этих изменений.
 +
 
 +
=====Актуальность наличия мест=====
 +
В экране распределенного поиска и в экранах бронирования туров наличие мест отображается в соответствии с наличием мест в квоте на момент проверки.
 +
 
 +
Для собственных туров наличие мест отображается в соответствии с настройками в конфигурационном файле основного приложения ''ПК Мастер-Web''.
 +
 
 +
Для туров сторонних операторов наличие мест отображается в соответствии с настройками в конфигурационном файле web-сервиса «Сервис проверки наличия мест» (ws-checkquotes).
 +
 
 +
[[Файл: mb_031.png|left|Дополнительная информация]] <br />
 +
Даты заездов подсвечиваются в соответствии с установленным значением в настройке '''ExceptTourDatesWithNoAQ''' в таблице '''''SystemSettings'''''. Если настройка установлена в значение '''''"1"''''', <br />то будут исключаться даты туров, на которые нет мест в квоте на перелет. Если настройка установлена в значение '''''"0"''''' или '''''"не установлена"''''', то не будут исключаться даты туров, <br />на которые нет мест в квоте на перелет.
 +
=====Корректировка цен от стороннего туроператора=====
 +
Существует возможность корректировки цен при отображении данных от стороннего туроператора.
 +
Есть несколько вариантов корректировки цен:
 +
#Добавление фиксированной наценки к общей стоимости тура от стороннего туроператора
 +
#Добавление процентной наценки к общей стоимости тура от стороннего туроператора
 +
#Добавление фиксированной наценки к стоимости услуг определенных классов
 +
#Добавление процентной наценки с стоимости услуг определенных классов
 +
Соответственно корректировка с добавлением наценки к общей стоимости тура применяется и в экране и поиска, и в экране бронирования туров от стороннего туроператора.
 +
 
 +
А корректировка с добавлением наценки к стоимости доп.услуг применяется только в экране бронирования туров от стороннего туроператора.
 +
 
 +
===Бронирование заявки===
 +
Бронирование тура из стороннего источника происходит в экране '''Удаленная корзина''' ('''RemoteBasketM.aspx''').<br />
 +
Бронирование доступно только для '''зарегистрированных''' и '''авторизованных в системе''' пользователей.<br />
 +
 
 +
[[Файл:Ds053.png|x500px|Экран «Удаленная корзина» («RemoteBasketM.aspx»)]]<br />
 +
 
 +
Экран «Удаленная корзина» разделен на несколько блоков.
 +
В верхней части экрана отображаются параметры тура:
 +
#'''Страна'''
 +
#'''Название тура'''
 +
#'''Даты заезда'''
 +
#'''Продолжительность'''
 +
#'''Состав заказа'''
 +
#'''Наличие мест для отеля и авиаперелета'''
 +
#Если в туре несколько рейсов, таблица для выбора перелетов.
 +
 
 +
Подбор перелетов осуществляется по рейсам с актуальным расписанием и ценам.
 +
Ниже располагается блок с подробной информацией по выбранному проживанию:
 +
#'''Название отеля'''
 +
#'''Размещение'''
 +
#'''Питание'''
 +
 
 +
Ниже отображается информация о количестве человек, сумме заказа, с учетом внесенных изменений, а также сумме к оплате, с учетом агентской комиссии.
 +
 
 +
Далее отображается форма для ввода туристов. Поля, обязательные для ввода определяются настройками ( см. [[#Настройка полей данных о туристах|Настройка полей данных о туристах]])<br />
 +
[[Файл:Ds054.png|x500px]]<br />
 +
Если в туре присутствует несколько рейсов, то экран «Удаленная корзина» позволяет внести необходимые изменения – выбрать другой рейс. Для расчета стоимости тура с учетом изменения рейса, нужно нажать на кнопку «Пересчитать».
 +
Если в туре присутствуют услуги, исключенные при обсчете прайс-листа, то существует возможность добавления этих услуг для конкретных туристов. Для этого необходимо проставить отметки в чек-боксах для нужных услуг. Для расчета стоимости тура с учетом добавленных услуг, нужно нажать на кнопку «Пересчитать».
 +
 
 +
Для бронирования заявки необходимо нажать кнопку «Забронировать».
 +
 
 +
По нажатию кнопки «Забронировать», заявка запишется в базу данных стороннего туроператора и туроператора, являющегося владельцем приложения ''ПК Мастер-Web'', и пользователю откроется экран с информацией о сделанном заказе, как показано на изображении ниже.<br />
 +
[[Файл:Ds055.png|x500px]]<br />
 +
Здесь пользователю представлена информация о сделанном заказе:
 +
#'''Номер заявки в базе стороннего туроператора'''
 +
#'''Даты заезда'''
 +
#'''Продолжительность'''
 +
#'''Название отеля'''
 +
#'''Размещение в отеле'''
 +
#'''Количество человек по путевке'''
 +
#'''Список туристов по услуге отель'''
 +
#'''Экскурсионная программа тура'''
 +
#'''Дополнительные услуги'''
 +
#'''Сумма к оплате'''
 +
#'''Полная стоимость заказа'''
 +
#'''Номер путевки в базе туроператора''', являющегося владельцем приложения ''ПК Мастер-Web''
 +
#'''Дата оформления заказа'''
 +
 
 +
При выключенной настройке ''DSRedirectToResultPage'' переход осуществляется на стандартную страницу «Информация о заказе» (OrderInfo.aspx).
 +
 
 +
При бронировании заявки отправляется письмо о новом заказе на адреса:
 +
#Бронирующему агентству (адрес представителя, авторизованного в системе)
 +
#Адреса, указанные в настройке ''<Email />'' в файле <tt>templates/distributedSearchSettings.xml</tt>
 +
 
 +
После бронирования путевки, если она '''изменилась в БД удаленного туроператора''', то субагент должен '''вручную поменять соответствующую'''
 +
'''путевку''' в своей БД.
 +
 
 +
===Поиск цен в нескольких источниках===
 +
=====Загрузка фильтров=====
 +
Существует два варианта загрузки поисковых фильтров:
 +
#Фильтры по своим турам грузятся через прямые запросы к БД, а фильтры по данным сторонних туроператоров грузятся через web-сервис FilterBinding
 +
#Фильтры по всем данным грузятся через web-сервис FilterBinding
 +
 
 +
В первом случае web-сервис устанавливается только у стороннего туроператора, чьи цены необходимо встроить в приложение туроператора – владельца приложения ''ПК Мастер-Web''.
 +
 
 +
Во втором случае web-сервис FilterBinding устанавливается и у стороннего туроператора и у туроператора-владельца приложения ''ПК Мастер-Web''.
 +
=====Экран распределенного поиска=====
 +
Экран распределенного поиска состоит из блока поисковых фильтров и таблицы с результатами поиска.
 +
Блок поисковых фильтров содержит поля:
 +
#'''Город вылета''' - названия городов с признаком CT_IsDeparture=1 из таблицы ''CityDictionary'', перегружает все последующие фильтры (для туров от стороннего источника сопоставление городов вылета делается в файле <tt>templates/distributedSearchSettings.xml</tt>. При этом название города вылета может отображаться либо из базы туроператора, являющегося владельцем приложения ''ПК Мастер-Web'', либо берется значение параметра Name для Type=departFrom из файла <tt>templates/distributedSearchSettings.xml</tt>)
 +
#'''Страна''' - названия стран из таблицы ''tbl_Country'', перегружает все последующие фильтры (для туров от стороннего источника сопоставление стран делается в файле <tt>templates/distributedSearchSettings.xml</tt>. При этом название страны может отображаться либо из базы туроператора, являющегося владельцем приложения ''ПК Мастер-Web'', либо берется значение параметра Name для Type=country из файла <tt>templates/distributedSearchSettings.xml</tt>)
 +
#'''Тип тура''' - названия типов туров из таблицы ''TipTur'', перегружает все последующие фильтры
 +
#'''Курорт''' - названия курортов из таблицы ''Resorts'', перегружает все последующие фильтры
 +
#'''Город''' - названия городов из таблицы ''CityDictionary'', перегружает все последующие фильтры
 +
#'''Тур''' - названия типов туров из таблицы ''tbl_TurList'', перегружает все последующие фильтры
 +
#'''Отель''' - названия отелей из таблицы ''HotelDictionary'', перегружает все последующие фильтры (если поле HD_HTTP заполнено, то в названии отеля формируется ссылка на адрес, указанный в данном поле)
 +
#'''Даты заезда''' - даты заезда по турам подсвечиваются в календарях. На подсветку также влияет наличие мест по перелету на дату вылета. В случае отсутствия мест – дата заезда не отображается (не подсвечивается). В случае наличия мест или запроса – дата заезда отображается (подсвечивается).
 +
#'''Тип номера, либо количество основных и доп.мест''' - названия типов номеров из таблицы ''Rooms''. <br />''При наличии рассчитанных детских мест в туре, в экране "Распределенного поиска" не отображаются поля для указания возраста детей на дополнительных местах, как в экране "Подбор туров с наличием мест".''
 +
#'''Цена не более указанной величины'''
 +
#'''Ночи''' - рассчитанные продолжительности по выбранным в предыдущих фильтрах параметрам
 +
#'''Категория''' - рассчитанные категории отелей по выбранным в предыдущих фильтрах параметрам
 +
#'''Питание''' - рассчитанные типы питания по выбранным в предыдущих фильтрах параметрам
 +
#'''Наличие мест в отеле и на рейсе''' - наличие мест "Есть", "Запрос" и "Нет"
 +
Таблица с результатами поиска содержит поля:
 +
#'''Дата заезда'''
 +
#'''Отель'''
 +
#'''Категория'''  - категория отеля
 +
#'''Город''' – город, к которому привязан отель
 +
#'''Тип номера''' – тип номера, на который указана цена
 +
#'''Категория номера''' – категория номера, на который указана цена
 +
#'''Размещение''' – размещение, на которое указана цена
 +
#'''Питание''' – тип питания, на которое указана цена
 +
#'''Ночи''' – продолжительность тура в ночах
 +
#'''Цена'''
 +
#'''Вал''' – валюта, в которой указана цена
 +
#'''Источник цены''' – название тура
 +
#'''Цена за''' – тип рассчитанной цены: за человека или за номер
 +
#'''Наличие мест''' – наличие мест в гостинице
 +
#'''Эконом, Бизнес'''
 +
Все поля являются текстовыми и нередактируемыми.
 +
*Если поле HD_HTTP в таблице ''HotelDictionary'' заполнено, то в названии отеля в поле «Отель» формируется ссылка на адрес, указанный в данном поле.
 +
*Если поле TL_WEBHTTP в таблице ''tbl_TurList'' заполнено, то в названии тура в поле «Источник цены» формируется ссылка на адрес, указанный в данном поле.
 +
По умолчанию данные в результатах поиска отсортированы по полю «Цена» по возрастанию.
 +
 
 +
=====Корректировка цен стороннего туроператора=====
 +
Данные о цене закупки (нетто) и продажной цены для клиента (брутто) поступают от удаленного источника.
 +
Для корректировки цен стороннего туроператора необходимо добавить следующие настройки:
 +
#Настройка для добавления фиксированной наценки к общей стоимости тура от стороннего туроператора
 +
#Настройка для добавления процентной наценки к общей стоимости тура от стороннего туроператора
 +
#Настройка для добавления фиксированной наценки к стоимости доп. услуг определенных классов
 +
#Настройка для добавления процентной наценки с стоимости доп. услуг определенных классов
 +
 
 +
Цена на тур, представленная сторонним источником, конвертируется в соответствии с курсом валют из базы данных удаленного источника. Цена на тур из локального источника конвертируются в соответствии с курсом валют в локальной базе данных.
 +
 
 +
===Список параметров, которые можно передать в «Распределенный поиск»===
 +
 
 +
Данная настройка предусматривает возможность передачи различных параметров через URL страницы. Если существуют рассчитанные прайсы по данной стране, то при загрузке страницы в фильтре данная страна автоматически будет выбрана в списке стран, и будут загружены значения в других поисковых полях. После указания параметров URL необходимо нажать на кнопку [[Файл:KE 18821.png]].<br />
 +
*departfrom
 +
*country
 +
*city
 +
*hotel
 +
*resort
 +
*tourtype
 +
*tour
 +
*nights
 +
*dateFrom
 +
*dateTo
 +
 
 +
Значения параметров для стран берутся из таблицы tbl_Country, для городов – CityDictionary, для курортов – Resorts, для отелей - HotelDictionary, для дат заезда и количество ночей - TP_Tours, типы туров - TipTur.
 +
 
 +
 
 +
 
 +
===Печать отчетов===
 +
По путевкам, забронированным в базе удаленного туроператора с помощью дополнительного модуля '''Распределенный поиск''', агентство в [[Мастер-Web:Руководство пользователя. Работа в системе online бронирования#Просмотр подробной информации о заказе («OrderInfo.aspx»)|личном кабинете]] может распечатать только [[Мастер-Тур:Отчет 4020 Счет|отчет серии 4020 «Счет»]].
 +
 
 +
Для того, чтобы работать с другими отчетами необходимо, чтобы субагент, в базе которого создается копия путевки из удаленного источника, сформировал отчет и приложил его к путевке с помощью дополнительного модуля [[Мастер-Тур:Дополнительный модуль Привязка файлов к путевке|«Привязка файлов к путевке»]].
 +
 
 
[[Category:Мастер-Web_Дополнительные_модули]]
 
[[Category:Мастер-Web_Дополнительные_модули]]

Текущая версия на 14:57, 28 февраля 2017

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

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

Более ранние версии:
До версии ПК «Мастер-Web» 2009.2.16 включительно
До версии ПК «Мастер-Web» 2009.2.20.1 включительно


Содержание

Введение

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

Установка

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

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

  • FilterBinding — сервис по загрузке поисковых фильтров;
  • Search — поисковый сервис;
  • CheckQuotes — сервис по проверке наличия мест;
  • Reservation — сервис бронирования;
  • WsAuthorization — cервис авторизации.

Описание процесса установки сервисов приведено в руководстве пользователя соответствующего сервиса.

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

Соответствие версий сервисов и ПК "Мастер-Web" показано в таблице совместимости.

Настройка

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

Добавление секций в конфигурационный файл web.config ПК «Мастер-Web» производится только в том случае, если локальные предложения туроператора подключены через сервис.

  • В секции <ConfigSections> добавить элемент:
    <sectionGroup name="Megatec.Web.Services">
      <section name="servicesAccessibility"
        type="Megatec.Configuration.WebServicesSection, Megatec.Configuration"/>
    </sectionGroup>
    
  • На одном уровне с секцией <ConfigSections> добавить секцию:
    В данной секции необходимо указать адреса собственных поисковых веб-сервисов.
    <Megatec.Web.Services>
      <servicesAccessibility Enabled="true">
        <Services>
          <add name="FilterBinding" enabled="true"
            url="http://server:8080/distributedsearch/mw-filterbinding/FilterBindingService.asmx"/>
          <add name="DoSearch" enabled="true"
            url="http://server:8080/distributedsearch/mw-megatecwebservices/Search.asmx"/>
          <add name="Reservation" enabled="true"
            url="http://server:8080/distributedsearch/mw-ws-reservation/ReservationService.asmx"/>
          <add name="ServiceProvider" enabled="true"
            url="http://server:8080/distributedsearch/mw-ws-reservation/ServiceProvider.asmx"/>
          <add name="CheckQuotes" enabled="true"
            url="http://server:8080/distributedsearch/mw-ws-checkquotes/CheckQuotesService.asmx"/>
        </Services>
      </servicesAccessibility>
    </Megatec.Web.Services>
    

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

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

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

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

Настройка Описание
Настройка сервисов
<FilterBindingServiceUrl> Адрес сервиса по загрузке поисковых фильтров FilterBinding.
<SearchServiceUrl> Адрес поискового сервиса Search.
<ReservationServiceUrl> Адрес сервиса бронирования ReservationService.
<ServiceProviderServiceUrl> Адрес сервиса формирования списка услуг ServiceProvider.
<CheckQuotesServiceUrl> Адрес сервиса по проверке наличия мест CheckQuotesService.
Настройки бронирования передаваемые удаленному источнику
<PartnerKey> Ключ партнера, соответствующего локальному источнику, в базе данных удаленного источника. Из таблицы [tbl_Partners]. Используется для установки поля DG_PartnerKey у путевок в базе данных удаленного источника.
<FilialKey> Ключ филиала партнера, соответствующего локальному источнику, в базе данных удаленного источника. Из таблицы [tbl_Partners] с условием ([PR_Filial] = 2). Используется для установки поля DG_FilialKey у путевок в базе данных удаленного источника.
Настройки бронирования в локальном источнике
<InternalPartnerKey> Ключ партнера, соответствующего удаленному источнику, в базе данных локального источника. Берется из таблицы [tbl_Partners]. Используется для установки поля DG_PartnerKey у путевок в базе данных локального источника.
<InternalServiceKey> Класс услуги в базе данных турагента, являющегося владельцем приложения ПК «Мастер-Web», используемый для сохранения услуг из базы стороннего туроператора
Все услуги по путевке, забронированной по туру стороннего туроператора, будут сохранены с этим классом услуги.
<InternalCreator> Ключ пользователя из таблицы [UserList] турагента, являющегося владельцем приложения ПК «Мастер-Web», который указывается создателем для путевок, оформленных по турам стороннего туроператора.
<InternalFilialKey> Ключ филиала партнера, соответствующего удаленному источнику, в базе данных локального источника. Из таблицы [tbl_Partners] с условием ([PR_Filial] = 2). Используется для установки поля DG_PartnerKey у путевок в базе данных локального источника.
<InternalTourKey> Ключ тура из таблицы [tbl_TurList] турагента, являющегося владельцем приложения ПК «Мастер-Web», который прописывается в поле DG_TRKey у путевок, используемый для создания сохранения путевок из базы данных удаленного источника. Все путевки, забронированные в удаленном источнике, будут создаваться в базе данных локального источника с данным ключом тура.
<DefaultCountryKey> Ключ страны, указываемый в путевке и услугах в базе данных турагента, являющегося владельцем приложения ПК «Мастер-Web», если не найдено совпадение по названию страны из удаленного источника.
<DefaultCityKey> Ключ города, указываемый в путевке и услугах в базе данных турагента, являющегося владельцем приложения ПК «Мастер-Web», если не найдено совпадение по названию города из удаленного источника в списке городов указанной страны.
<ReservationWaitStatus> Статус, который проставляется путевке в локальном источнике, в поле DG_SOR_CODE, в том случае, если у путевки в удаленном источнике глобальный статус Wait.
<ReservationOKStatus> Статус, который проставляется путевке в локальном источнике, в поле DG_SOR_CODE, в том случае, если у путевки в удаленном источнике глобальный статус OK.
Дополнительные настройки бронирования
<SendBookingMail> Настройка, позволяющая включить отправку письма о новом бронировании агентству.
Возможные значения:
  • - trueотправлять письмо на e-mail адреса, указанные в настройке <EMail>;
  • - false или отсутствие настройкине отправлять письмо о новом бронировании агентству.

При выключении этой настройки так же не будут отправляться письма по настройке <SendAgencyMail>.

<EMail> E-mail адреса для отправки писем о новых бронированиях, осуществленных через распределенный поиск
Адреса перечисляются через точку с запятой.
<SendAgencyMail> Настройка, позволяющая включить отправку письма о новом бронировании на e-mail адрес пользователя ПК «Мастер-Web», который осуществляет бронирование.
Возможные значения:
  • - trueотправлять письмо на e-mail адрес пользователя;
  • - false или отсутствие настройкине отправлять письмо на e-mail адрес пользователя.

Письма не будут отправляться при выключенной настройке <SendBookingMail>.

<CostForRoom> Устанавливает всем странам из удаленного источника тип цены за номер.
Обрабатывается аналогично настройке costForRoom в экране Подбор туров с наличием мест (QuotedDynamic.aspx).
Если по одной стране выводятся туры из локального и внешнего источника, то при несовпадении настроек преимуществом обладает настройка из web.config ПК «Мастер-Web» — т.е. будут отображены туры только из локальной базы данных.
<CostForRoomCountries> Устанавливает странам с перечисленными ключами тип цены за номер.
Обрабатывается аналогично настройке costForRoomCountries в экране Подбор туров с наличием мест (QuotedDynamic.aspx).
Ключи стран через запятую, например, «3, 40, 90».
Настройка комиссии при отображении цены
<AdditionalComission> Наценка в процентах к общей стоимости тура от стороннего туроператора
Настройка применяется в экране поиска «DSearchPageM» и в корзине «RemoteBasketM».
<AdditionalComissionFixed> Фиксированная наценка к общей стоимости тура от стороннего туроператора
Настройка применяется только в корзине «RemoteBasketM».
<AdditionalServiceComission> Фиксированная наценка к стоимости доп. услуг при бронировании туров от стороннего туроператора
Настройка применяется только в корзине «RemoteBasketM».
Настройка правил подстановки сущностей
<ReplcamentSearchItems> Правила подстановки данных из поискового фильтра данного источника в локальный фильтр.

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

Параметр Описание
Type Тип узла подстановки. Возможные значения совпадают со значениями из файла-схемы фильтра распределенного поиска. В одном правиле может использоваться несколько типов узлов, которые должны идти в том же порядке, как и в схеме фильтра.
Возможные значения:
  • departFrom;
  • country;
  • tourtype;
  • resort;
  • city;
  • hotel;
LocalValue Ключ сущности в локальной базе.
Если в локальном источнике отсутствует такой ключ, то LocalValue указывать не нужно.
RemoteValue Ключ сущности во внешнем источнике.
Name Название сущности.
Настройка используется при отсутствии сущности в локальном источнике.


Предупреждение


При использовании разных, но совместимых версий сервисов и ПК "Мастер-Web", необходимо в конфигурационных файлах сервисов в строке подключения 
указывать логин и пароль пользователя ПК "Мастер-тур". 
А также в файле distributedSearchSettings.xml обязательно заполнять тэг <InternalCreator> </InternalCreator> ( см. выше в "Настройки файла distributedSearchSettings.xml"),
для корректного отображения заявок в экране "Работа менеджеров" в ПК "Мастер-Тур".


Примеры добавления сущностей

  1. Добавление предложения по Хорватии (в локальном источнике отсутствует, ключ 123 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике):
    <ReplcamentSearchItem>
      <SubItems>
        <ReplcamentSubItem
          Type="departFrom"
          LocalValue="30"
          RemoteValue="1" />
        <ReplcamentSubItem
          Type="country"
          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" />
      </SubItems>
    </ReplcamentSearchItem>
    
  3. Включение в предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Екатеринбурга (ключ 648 в локальном источнике и 266 во внешнем источнике) города Салоники (в локальном источнике отсутствует, ключ 615 во внешнем источнике):
    <ReplcamentSearchItem>
      <SubItems>
        <ReplcamentSubItem
          Type="departFrom"
          LocalValue="648"
          RemoteValue="266" />
        <ReplcamentSubItem
          Type="country"
          LocalValue="520"
          RemoteValue="29" />
        <ReplcamentSubItem
          Type="tourtype"
          RemoteValue="2"
          Name="Стандартный тур" />
        <ReplcamentSubItem
          Type="resort"
          RemoteValue="42"
          Name="Салоники" />
        <ReplcamentSubItem
          Type="city"
          RemoteValue="615"
          Name="Салоники" />
        <ReplcamentSubItem
          Type="hotel"
          RemoteValue="130"
          Name="Test_Hotel" />
      </SubItems>
    </ReplcamentSearchItem>
    

Валидный distributedSearchSettings.xml

Конфигурационный файл распределенного поиска distributedSearchSettings.xml расположен в папке templates каталога ПК «Мастер-Web». Ниже представлен пример валидного файла конфигурации для работы с одним внешним источником. Подключены 2 страны: Англия и Андорра — для Англии поиск цен производится только по турам с городом отправления Москва (departFrom = 1), а для Андорры — как по турам из Москвы, так и по турам без перелета (departFrom = 0).

Данный файл distributedSearchSettings.xml актуален для ПК «Мастер-Web» релиза 2009.2.17, а также для сервис-паков 2009.2.16.

<?xml version="1.0"?>
<DistributedSearchSettings
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <!-- РП включен\выключен -->
  <Enabled>true</Enabled>

  <!-- Список удаленных источников -->
  <SearchSources>
    <!--
    Удаленный источник.

    Id - идентификатор удаленного источника в РП. Любая строка, кроме local.
    WsAuthLogin - логин для авторизации на сервисе.
    WsAuthPassword - пароль для авторизации на сервисе.
    -->

    <DistributedSearchSource
        Id="Внешний источник № 7"
        WsAuthLogin="qaz"
        WsAuthPassword="123">

      <!-- Адрес авторизационного сервиса -->
      <AuthorizationServiceUrl>
        http://server:8080/distributedsearch/mw-ws-authorization/WsAuthorization.asmx
      </AuthorizationServiceUrl>

      <!-- Адрес сервиса получения поискового фильтра -->
      <FilterBindingServiceUrl>
        http://server:8080/distributedsearch/mw-filterbinding/FilterBindingService.asmx
      </FilterBindingServiceUrl>

      <!-- Адрес поискового сервиса -->
      <SearchServiceUrl>
        http://server:8080/distributedsearch/mw-megatecwebservices/Search.asmx
      </SearchServiceUrl>

      <!-- Адрес сервиса бронирования -->
      <ReservationServiceUrl>
        http://server:8080/distributedsearch/mw-ws-reservation/ReservationService.asmx
      </ReservationServiceUrl>

      <!-- Адрес сервиса работы с услугами -->
      <ServiceProviderServiceUrl>
        http://server:8080/distributedsearch/mw-ws-reservation/ServiceProvider.asmx
      </ServiceProviderServiceUrl>

      <!-- Адрес сервиса проверки квот -->
      <CheckQuotesServiceUrl>
        http://server:8080/distributedsearch/mw-ws-checkquotes/CheckQuotesService.asmx
      </CheckQuotesServiceUrl>

      <!--
        Ключ партнера в локальной БД.
        Значение, которое будет установлено записи в таблице tbl_Dogovor,
        поле DG_PARTNERKEY, и записям в таблице tbl_DogovorList, поле DL_PARTNERKEY.
        Берется из таблицы Partners, поле PR_KEY.
      -->
      <InternalPartnerKey>10760</InternalPartnerKey>

      <!--
        Ключ создателя тура в локальной БД.
        Значение, которое будет установлено записи в таблице tbl_Dogovor,
        поле DG_CREATOR, и записям в таблице tbl_DogovorList, поле DL_CREATOR.
        Берется из таблицы UserList, поле US_KEY.
      -->
      <InternalCreator>89</InternalCreator>

      <!--
        Ключ класса услуг для фейковых услуг путевки в локальной БД.
        Значение, которое будет установлено записям в таблице tbl_DogovorList,
        поле DL_SVKEY.
        Берется из таблицы Service, поле SV_KEY.
      -->
      <InternalServiceKey>1040</InternalServiceKey>

      <!-- Устанавливает всем странам из удаленного источника тип цены за номер. -->
      <CostForRoom>false</CostForRoom>

      <!--
        Устанавливает странам с перечисленными ключами тип цены за номер.
        Формат: "1,2,3,..", - ключи стран через запятую.
      -->
      <CostForRoomCountries></CostForRoomCountries>

      <!-- Список элементов, которые будут получаться из удаленного источника -->
      <ReplcamentSearchItems>
        <ReplcamentSearchItem>
          <SubItems>
            <ReplcamentSubItem
              Type="departFrom"
              LocalValue="0"
              RemoteValue="0" />
            <ReplcamentSubItem
              Type="country"
              RemoteValue="376"
              Name="Андорра № 7" />
          </SubItems>
        </ReplcamentSearchItem>
        <ReplcamentSearchItem>
          <SubItems>
            <ReplcamentSubItem
              Type="departFrom"
              LocalValue="1"
              RemoteValue="1" />
            <ReplcamentSubItem
              Type="country"
              RemoteValue="222"
              Name="Англия № 7" />
          </SubItems>
        </ReplcamentSearchItem>
        <ReplcamentSearchItem>
          <SubItems>
            <ReplcamentSubItem
              Type="departFrom"
              LocalValue="1"
              RemoteValue="1" />
            <ReplcamentSubItem
              Type="country"
              RemoteValue="376"
              Name="Андорра № 7" />
          </SubItems>
        </ReplcamentSearchItem>
      </ReplcamentSearchItems>
    </DistributedSearchSource>

  </SearchSources>
</DistributedSearchSettings>

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

Настройка отображения полей данных о туристах производится в файле 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 – нередактируемое

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

Файл remoteSearchFilterScheme.xml содержит информацию о зависимостях узлов фильтра друг от друга и вспомогательную информацию по каждому узлу.

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

<control name="lstCity" type="City" firstItem="All" sort="sd_ctname" assembly="Megatec.MasterWeb.Loading">
	<dependency control="lstDepartFrom" />
</control>

Родительский узел задается тегом <control>, для каждого узла есть дополнительная информация:

Параметр Описание
name Название контрола в форме фильтра, используется для связи узла фильтра в схеме и контрола на форме.
type Тип данных в узле фильтра, варианты как и в distributedSearchSettings: departFrom, country и т.д.
sort Параметры сортировки значений этого типа в БД
assembly Служебная информация. Не изменять! Название сборки, в которой лежат классы для загрузки значений данного типа.
firstItem Представление элемента «Все»

Дочерний узел задается тегом <dependency/>, вложенными в тег <control>. В атрибуте control тега <dependency/> указывается название узла, от которого зависит данный узел. Чтобы задать значение по умолчанию для данного узла, нужно добавить тег defaultSelection. Атрибут control должен быть равен названию узла фильтра, для которого устанавливается значение по умолчанию, атрибут property содержит само значение по умолчанию. Форма задания значения по умолчанию такая же, как и при передаче значений через URL.

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

При настройке распределенного поиска в файле web.config приложения ПК Мастер-Web необходимо задать дополнительные условия для отображения и проверки данных.

Описание Значение Настройка
1 Определение колонок тарифов на авиаперелет для отображения в результатах поиска (настройка является обязательной для корректной работы распределенного поиска). Подробнее см. Настройка секции dynamicCharterClasses
  • true – использовать упрощенную корзину;
  • false или отсутствие настройки – использовать обычную корзину
<dynamicCharterClasses mode="complex" />
2 Настройка, определяющая страницу, на которую будет попадать пользователь после бронирования тура от стороннего туроператора.
  • true – переход осуществляется на страницу (ReservationResultPage.aspx);
  • false или отсутствие настройки – переход осуществляется на страницу «Информация о заказе» (OrderInfo.aspx)
<add key="DSRedirectToResultPage" value= "true" />
3 Настройка метода проверки квот
  • true – квоты проверяются исходя из настроек в базе
  • false или отсутствие настройки – квоты сервисами не проверяются
<add key="UseNewSetToQuota" value="true" />
4 Отображение Даты проживания в отеле в экранах:
  • Корзина;
  • Упрощенная корзина;
  • Расширенная корзина;
  • Удаленная корзина;
  • BasketTUI.
  • true — отображать Даты проживания
  • false или отсутствие настройки — не отображать Даты проживания
<add key="showHotelDatesInBasket" value="true"/>


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


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

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

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

Классы 2.1 и 2.2 на рисунке отвечают за отображение информации по турам от удаленных источников. Настраиваются аналогично классам отвечающим за отображение локальных туров. В классе указывается то название источника, которое указано в конфигурационном файле distributedSearchSettings.xml

Сервис авторизации

Начиная с релиза 2009.2.16 ПК «Мастер-Web» появилась возможность защиты веб-сервисов распределенного поиска от несанкционированного использования посредством сервиса авторизации (WsAuthorization). Установка сервиса описана на странице Дополнительный модуль Сервис для авторизации .

Настройка

При необходимости использования веб-сервисов распределенного поиска без сервиса авторизации на релизах до ПК «Мастер-Web» 2009.2.17.1 нужно выполнить скрипт fn_mwCheckToken.sql — его можно запросить в департаменте по работе с клиентами компании Мегатек.

Настройка агентского ПК «Мастер-Web»
  • В файле настроек распределенного поиска distributedSearchSettings.xml, расположенного в папке templates каталога ПК «Мастер-Web», для использования сервиса авторизации WsAuthorization необходимо указать 3 настройки:
    • WsAuthLogin — логин для обращения к WsAuthorization;
    • WsAuthPassword — пароль для обращения к WsAuthorization;
    • AuthorizationServiceUrl — адрес авторизационного сервиса.
    <DistributedSearchSource
        Id="Внешний источник № 7"
        WsAuthLogin="qaz"
        WsAuthPassword="123">
    
      <!-- Адрес авторизационного сервиса -->
      <AuthorizationServiceUrl>
        http://server:8080/distributedsearch/mw-ws-authorization/WsAuthorization.asmx
      </AuthorizationServiceUrl></DistributedSearchSource>
    
  • При включении хеширования (usePasswordHashing) в настройке WsAuthPassword нужно указывать не пароль, а его хеш:
    <DistributedSearchSource
      Id="Внешний источник № 7"
      WsAuthLogin="qaz"
      WsAuthPassword="xMpCOKC5I4INzFCab3WEmw==">
    

Поддержка репликации

Строки подключения сервисов

При развертывании распределенного поиска у туроператоров, использующих репликацию, поисковые веб-сервисы необходимо настроить на поисковую базу данных ПК «Мастер-Тур», а сервисы бронирования и квотирования — на основную базу данных. Строки подключения приведены ниже.

  • Поисковая база данных
    • Сервис Search
      <add key="connectionString" value="Data Source=Сервер с поисковой БД; Initial Catalog=Поисковая БД; User Id=Пользователь из таблицы [UserList]; Password=Пароль пользователя; Max Pool Size=500; Application Name=DS" />
      
      <add key="pagingType" value="2" />
      
    • Сервис FilterBindingService
      <add key="connectionString" value="Data Source=Сервер с поисковой БД; Initial Catalog=Поисковая БД; User Id=Пользователь из таблицы [UserList]; Password=Пароль пользователя; Application Name=DS" />
      
  • Основная база данных
    • Сервис ReservationService
      <add key="connectionString" value="Data Source=Сервер с основной БД; Initial Catalog=Основная БД; User Id=Пользователь из таблицы [UserList]; Password=Пароль пользователя; Application Name=DS" />
      
      <add key="pagingType" value="2" />
      
    • Сервис CheckQuotesService
      <add key="connectionString" value="Data Source=Сервер с основной БД; Initial Catalog=Основная БД; User Id=Пользователь из таблицы [UserList]; Password=Пароль пользователя; Application Name=DS" />
      
      <add key="CommonType" value="MasterTour"/>
      

Использование сервиса авторизации с репликацией

При использовании репликации возможны 2 варианта настройки сервиса авторизации:

  1. Без защиты — полное отключение сервиса авторизации: и на основной, и на поисковой базе данных.
  2. Частичная защита — включение сервиса авторизации на поисковой базе данных.
    В этом случае обращения к веб-сервисам FilterBindingService и Search, использующим поисковую базу данных, будут проверяться сервисом WsAuthorization, а обращения к сервисам ReservationService, ServiceProvider и CheckQuotesService, использующим основную базу данных, проверяться не будут.

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

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


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) или «Расширенная корзина» (Basket.aspx) в зависимости от настроек в конфигурационном файле web.config и наличия установленных надстроек.

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

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

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

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

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

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

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

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


Даты заездов подсвечиваются в соответствии с установленным значением в настройке ExceptTourDatesWithNoAQ в таблице SystemSettings. Если настройка установлена в значение "1", 
то будут исключаться даты туров, на которые нет мест в квоте на перелет. Если настройка установлена в значение "0" или "не установлена", то не будут исключаться даты туров,
на которые нет мест в квоте на перелет.
Корректировка цен от стороннего туроператора

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

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

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

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

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

Бронирование тура из стороннего источника происходит в экране Удаленная корзина (RemoteBasketM.aspx).
Бронирование доступно только для зарегистрированных и авторизованных в системе пользователей.

Экран «Удаленная корзина» («RemoteBasketM.aspx»)

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

  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. Настройка для добавления процентной наценки с стоимости доп. услуг определенных классов

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

Список параметров, которые можно передать в «Распределенный поиск»

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

  • departfrom
  • country
  • city
  • hotel
  • resort
  • tourtype
  • tour
  • nights
  • dateFrom
  • dateTo

Значения параметров для стран берутся из таблицы tbl_Country, для городов – CityDictionary, для курортов – Resorts, для отелей - HotelDictionary, для дат заезда и количество ночей - TP_Tours, типы туров - TipTur.


Печать отчетов

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

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