Мастер-Web:Дополнительный модуль Распределенный поиск — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Tarasov (обсуждение | вклад) |
(→Поиск цен) |
||
(не показано 106 промежуточных версий 7 участников) | |||
Строка 1: | Строка 1: | ||
− | <span style="color: | + | <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-9.2.x.xxxxx.zip в корень каталога, где установлено приложение ПК «Мастер-Web». |
− | Для развертывания распределенного поиска необходимо на | + | |
+ | Для развертывания распределенного поиска необходимо на веб-сервере каждого туроператора, цены которого необходимо отображать в собственном приложении, установить 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» производится только в том случае, если локальные предложения туроператора подключены через сервис. | |
− | + | <ul> | |
− | + | <li>В секции <font style="font-family:courier new"><ConfigSections></font> добавить элемент: | |
− | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD> | |
− | + | <syntaxhighlight lang="xml"> | |
− | + | <sectionGroup name="Megatec.Web.Services"> | |
− | + | <section name="servicesAccessibility" | |
− | + | 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> | |
− | + | <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> | ||
+ | </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="<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" /> | ||
+ | |||
+ | Настройки отображения полей данных о туристах содержат параметры: | ||
+ | #'''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%" | № |
− | + | ! width="28%" | Описание | |
− | + | ! width="35%" | Значение | |
− | + | ! width="35%" | Настройка | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | + | |- style="vertical-align:text-top" |
− | + | ||
− | + | | 1 | |
− | + | |Определение колонок тарифов на авиаперелет для отображения в результатах поиска (настройка является обязательной для корректной работы распределенного поиска). Подробнее см. [[Мастер-Web:Установка и настройка|Настройка секции dynamicCharterClasses]] | |
− | + | | | |
− | + | * '''true''' – использовать упрощенную корзину; | |
− | + | * '''false''' или '''отсутствие настройки''' – использовать обычную корзину | |
− | + | |<syntaxhighlight lang="xml" enclose="div"> | |
− | + | <dynamicCharterClasses mode="complex" /> | |
− | + | </syntaxhighlight> | |
− | + | |- style="vertical-align:text-top" | |
− | + | |2 | |
− | + | |Настройка, определяющая страницу, на которую будет попадать пользователь после бронирования тура от стороннего туроператора. | |
− | + | | | |
− | + | * '''true''' – переход осуществляется на страницу (ReservationResultPage.aspx); | |
− | + | * '''false''' или '''отсутствие настройки''' – переход осуществляется на страницу «Информация о заказе» (OrderInfo.aspx) | |
− | + | |<syntaxhighlight lang="xml" enclose="div"> | |
− | + | <add key="DSRedirectToResultPage" value= "true" /> | |
− | + | </syntaxhighlight> | |
− | + | |- style="vertical-align:text-top" | |
− | + | |3 | |
− | + | |Настройка метода проверки квот | |
− | + | | | |
− | + | * '''true''' – квоты проверяются исходя из настроек в базе | |
− | + | * '''false''' или '''отсутствие настройки''' – квоты сервисами не проверяются | |
− | + | | <syntaxhighlight lang="xml" enclose="div"> | |
− | + | <add key="UseNewSetToQuota" value="true" /> | |
− | + | </syntaxhighlight> | |
− | + | |- style="vertical-align:text-top" | |
− | + | |4 | |
− | + | |Отображение '''Даты проживания''' в отеле в экранах: | |
− | + | * Корзина; | |
− | + | * Упрощенная корзина; | |
− | + | * Расширенная корзина; | |
− | + | * Удаленная корзина; | |
− | + | * BasketTUI. | |
− | + | | | |
− | + | * '''true''' — отображать '''Даты проживания''' | |
− | + | * '''false''' или '''отсутствие настройки''' — не отображать '''Даты проживания''' | |
− | + | | <syntaxhighlight lang="xml" enclose="div"> | |
− | + | <add key="showHotelDatesInBasket" value="true"/> | |
− | + | </syntaxhighlight> | |
− | + | |} | |
− | + | ||
− | + | ||
− | + | [[Файл: mb_031.png|left|Дополнительная информация]] <br /> | |
− | + | Для корректного отображения наличия мест в турах от удаленных источников, необходимо указывать соответствующие настройки в web.config [[Web-сервисы: Сервис поиска#Настройки web.config «Поискового сервиса»|поискового сервиса]]. | |
− | + | ||
− | + | =====Настройки экрана «Динамический лист предложений с наличием мест»===== | |
− | + | Настройки для данного экрана задаются в файле web.config, находящемся в папке MasterWebStandard. Данные настройки регулируют отображение тарифов на авиаперелеты, питания и категорий гостиниц. Для этого в конфигурационном файле добавляется секция <MasterWeb>. | |
− | + | <BR> | |
− | + | [[Файл:KE_50.png]]<BR> | |
− | + | Данная секция содержит 3 подсекции настроек: | |
− | + | # dynamicCharterClasses – список тарифов на авиаперелет (еще не реализовано для Распределенного поиска) | |
− | + | # dynamicBoard – список типов питания | |
− | + | # dynamicHotelCategories – список категорий гостиниц. | |
− | + | Классы 2.1 и 2.2 на рисунке отвечают за отображение информации по турам от удаленных источников. Настраиваются аналогично классам отвечающим за отображение [[Мастер-Web:Установка и настройка#Настройка секции dynamicBoard|локальных туров]]. | |
− | + | В классе указывается то название источника, которое указано в конфигурационном файле distributedSearchSettings.xml | |
− | + | ||
− | </ | + | ===Сервис авторизации=== |
− | + | Начиная с релиза 2009.2.16 ПК «Мастер-Web» появилась возможность защиты веб-сервисов распределенного поиска от несанкционированного использования посредством сервиса авторизации (WsAuthorization). ''Установка сервиса описана на странице '''[[Web-сервисы: Сервис для авторизации|Дополнительный модуль Сервис для авторизации]]'' '''. | |
− | < | + | |
− | + | ====Настройка==== | |
− | + | <span style="color:#808080">При необходимости использования веб-сервисов распределенного поиска без сервиса авторизации на релизах до ПК «Мастер-Web» 2009.2.17.1 нужно выполнить скрипт fn_mwCheckToken.sql — его можно запросить в [mailto:service@megatec.ru департаменте по работе с клиентами] компании Мегатек.</span> | |
− | + | ||
− | + | =====Настройка агентского ПК «Мастер-Web»===== | |
− | + | <ul> | |
− | + | <li>В файле настроек распределенного поиска distributedSearchSettings.xml, расположенного в папке templates каталога ПК «Мастер-Web», для использования сервиса авторизации WsAuthorization необходимо указать 3 настройки: | |
− | + | <ul style="list-style:none"> | |
− | + | <li>WsAuthLogin — логин для обращения к WsAuthorization;</li> | |
− | + | <li>WsAuthPassword — пароль для обращения к WsAuthorization;</li> | |
− | + | <li>AuthorizationServiceUrl — адрес авторизационного сервиса.</li> | |
− | + | </ul> | |
− | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD> | |
− | + | <syntaxhighlight lang="xml"> | |
− | + | <DistributedSearchSource | |
− | + | Id="Внешний источник № 7" | |
− | + | WsAuthLogin="qaz" | |
− | + | WsAuthPassword="123"> | |
− | + | ||
− | + | <!-- Адрес авторизационного сервиса --> | |
− | + | <AuthorizationServiceUrl> | |
− | + | http://server:8080/distributedsearch/mw-ws-authorization/WsAuthorization.asmx | |
− | + | </AuthorizationServiceUrl> | |
− | + | … | |
− | + | </DistributedSearchSource> | |
− | + | </syntaxhighlight> | |
− | + | </TD></TR></TABLE> | |
− | + | </li> | |
− | + | <li>При включении хеширования (usePasswordHashing) в настройке WsAuthPassword нужно указывать не пароль, а его хеш: | |
− | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="100%"><TR><TD> | |
− | + | <syntaxhighlight lang="xml"> | |
− | + | <DistributedSearchSource | |
− | + | Id="Внешний источник № 7" | |
− | + | WsAuthLogin="qaz" | |
− | + | WsAuthPassword="xMpCOKC5I4INzFCab3WEmw=="> | |
− | + | </syntaxhighlight> | |
− | + | </TD></TR></TABLE> | |
− | < | + | </li> |
− | + | </ul> | |
− | + | ||
− | + | ===Поддержка репликации=== | |
− | + | ||
− | + | ||
− | + | ====Строки подключения сервисов==== | |
− | + | При развертывании распределенного поиска у туроператоров, использующих [[Мастер-Тур:Настройка_репликации|репликацию]], поисковые веб-сервисы необходимо настроить на поисковую базу данных ПК «Мастер-Тур», а сервисы бронирования и квотирования — на основную базу данных. Строки подключения приведены ниже. | |
− | + | <ul> | |
− | + | <li>Поисковая база данных | |
− | + | <ul style="list-style:none"> | |
− | + | <li>Сервис [[Web-сервисы: Сервис поиска|Search]] | |
− | + | <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=Пароль пользователя; Max Pool Size=500; Application Name=DS" /> | |
− | + | ||
− | + | <add key="pagingType" value="2" /> | |
− | + | </syntaxhighlight> | |
− | + | </TD></TR></TABLE> | |
− | + | </li> | |
− | + | <li>Сервис [[Web-сервисы: Сервис по загрузке поисковых фильтров|FilterBindingService]] | |
− | + | <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" /> | |
− | + | </syntaxhighlight> | |
− | + | </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 /> |
− | [[Файл:818.PNG]]< | + | [[Файл: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. Для перехода на версию статьи, соответствующую используемой Вами версии программы, нажмите ссылку в таблице:
Более ранние версии: |
Содержание
- 1 Введение
- 2 Установка
- 3 Настройка
- 4 Работа в системе
Введение
Дополнительный модуль «Распределенный поиск» предназначен для отображения в едином поисковом модуле как своих, так и сторонних предложений. Модуль позволяет осуществлять поиск и бронирование туров от различных туроператоров в одном приложении ПК «Мастер-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>
|
Настройка, позволяющая включить отправку письма о новом бронировании агентству. Возможные значения:
При выключении этой настройки так же не будут отправляться письма по настройке |
<EMail>
|
E-mail адреса для отправки писем о новых бронированиях, осуществленных через распределенный поиск Адреса перечисляются через точку с запятой. |
<SendAgencyMail>
|
Настройка, позволяющая включить отправку письма о новом бронировании на e-mail адрес пользователя ПК «Мастер-Web», который осуществляет бронирование. Возможные значения:
Письма не будут отправляться при выключенной настройке |
<CostForRoom>
|
Устанавливает всем странам из удаленного источника тип цены за номер. Обрабатывается аналогично настройке costForRoom в экране Подбор туров с наличием мест (QuotedDynamic.aspx). Если по одной стране выводятся туры из локального и внешнего источника, то при несовпадении настроек преимуществом обладает настройка из web.config ПК «Мастер-Web» — т.е. будут отображены туры только из локальной базы данных.
|
<CostForRoomCountries>
|
Устанавливает странам с перечисленными ключами тип цены за номер. Обрабатывается аналогично настройке costForRoomCountries в экране Подбор туров с наличием мест (QuotedDynamic.aspx). Ключи стран через запятую, например, «3, 40, 90». |
Настройка комиссии при отображении цены | |
<AdditionalComission>
|
Наценка в процентах к общей стоимости тура от стороннего туроператора Настройка применяется в экране поиска «DSearchPageM» и в корзине «RemoteBasketM». |
<AdditionalComissionFixed>
|
Фиксированная наценка к общей стоимости тура от стороннего туроператора Настройка применяется только в корзине «RemoteBasketM». |
<AdditionalServiceComission>
|
Фиксированная наценка к стоимости доп. услуг при бронировании туров от стороннего туроператора Настройка применяется только в корзине «RemoteBasketM». |
Настройка правил подстановки сущностей | |
<ReplcamentSearchItems>
|
Правила подстановки данных из поискового фильтра данного источника в локальный фильтр. |
Правило подстановки данных из поискового фильтра данного источника в локальный фильтр задается при помощи набора элементов <ReplcamentSubItem>
, где:
Параметр | Описание |
---|---|
Type
|
Тип узла подстановки. Возможные значения совпадают со значениями из файла-схемы фильтра распределенного поиска. В одном правиле может использоваться несколько типов узлов, которые должны идти в том же порядке, как и в схеме фильтра. Возможные значения:
|
LocalValue
|
Ключ сущности в локальной базе. Если в локальном источнике отсутствует такой ключ, то LocalValue указывать не нужно.
|
RemoteValue
|
Ключ сущности во внешнем источнике. |
Name
|
Название сущности. Настройка используется при отсутствии сущности в локальном источнике. |
При использовании разных, но совместимых версий сервисов и ПК "Мастер-Web", необходимо в конфигурационных файлах сервисов в строке подключения указывать логин и пароль пользователя ПК "Мастер-тур". А также в файле distributedSearchSettings.xml обязательно заполнять тэг <InternalCreator> </InternalCreator> ( см. выше в "Настройки файла distributedSearchSettings.xml"), для корректного отображения заявок в экране "Работа менеджеров" в ПК "Мастер-Тур".
Примеры добавления сущностей
- Добавление предложения по Хорватии (в локальном источнике отсутствует, ключ 123 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике):
<ReplcamentSearchItem> <SubItems> <ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" /> <ReplcamentSubItem Type="country" RemoteValue="123" Name="Хорватия" /> </SubItems> </ReplcamentSearchItem>
- Добавление предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике):
<ReplcamentSearchItem> <SubItems> <ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" /> <ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" /> </SubItems> </ReplcamentSearchItem>
- Включение в предложения по Греции (ключ 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" />
Настройки отображения полей данных о туристах содержат параметры:
- Code= - зашитая в коде константа, которую нельзя изменять.
- Header= - заголовок поля
- Visible= - видимость поля; значения: True – видимый, Flse – невидимый
- Required= - обязательность заполнения поля; значения: True – обязательное, False – необязательное
- Translit= - транслитерация; значения: True – транслитерировать, False – не транслитерировать
- letterCase= - регистр символов в поле; значения: 1 – первая буква заглавная, 2 – все буквы большие, 3 – все буквы маленькие
- 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 |
|
<dynamicCharterClasses mode="complex" />
|
2 | Настройка, определяющая страницу, на которую будет попадать пользователь после бронирования тура от стороннего туроператора. |
|
<add key="DSRedirectToResultPage" value= "true" />
|
3 | Настройка метода проверки квот |
|
<add key="UseNewSetToQuota" value="true" />
|
4 | Отображение Даты проживания в отеле в экранах:
|
|
<add key="showHotelDatesInBasket" value="true"/>
|
Для корректного отображения наличия мест в турах от удаленных источников, необходимо указывать соответствующие настройки в web.config поискового сервиса.
Настройки экрана «Динамический лист предложений с наличием мест»
Настройки для данного экрана задаются в файле web.config, находящемся в папке MasterWebStandard. Данные настройки регулируют отображение тарифов на авиаперелеты, питания и категорий гостиниц. Для этого в конфигурационном файле добавляется секция <MasterWeb>.
Данная секция содержит 3 подсекции настроек:
- dynamicCharterClasses – список тарифов на авиаперелет (еще не реализовано для Распределенного поиска)
- dynamicBoard – список типов питания
- 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" />
- Сервис Search
- Основная база данных
- Сервис 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"/>
- Сервис ReservationService
Использование сервиса авторизации с репликацией
При использовании репликации возможны 2 варианта настройки сервиса авторизации:
- Без защиты — полное отключение сервиса авторизации: и на основной, и на поисковой базе данных.
- Частичная защита — включение сервиса авторизации на поисковой базе данных.
В этом случае обращения к веб-сервисам FilterBindingService и Search, использующим поисковую базу данных, будут проверяться сервисом WsAuthorization, а обращения к сервисам ReservationService, ServiceProvider и CheckQuotesService, использующим основную базу данных, проверяться не будут.
Работа в системе
Схема распределенного поиска
Поиск цен
Для поиска цен через распределенный поиск необходимо выбрать город вылета, страну и период дат заездов. Можно наложить дополнительные фильтры на отбор туров по следующим параметрам:
- Типу тура
- Курорту
- Городу
- Названию тура
- Названию отеля (по ссылке с названия отеля пользователь может перейти на страницу с описанием отеля)
- Типу номера
- Стоимости
- Продолжительности
- Классу гостиницы
- Питанию
- Наличию мест в отеле и на рейсе
По нажатию кнопки «Подобрать тур», системой будут отобраны туры, отвечающие заданным условиям.
Информация в результатах поиска представлена в виде таблицы, содержащей следующие поля:
- Дата заезда – дата заезда по туру
- Отель – название отеля (по ссылке с названия отеля пользователь может перейти на страницу с описанием отеля)
- Категория - категория отеля
- Город – город, к которому привязан отель
- Тип номера – тип номера, на который указана цена
- Категория номера – категория номера, на который указана цена
- Размещение – размещение, на которое указана цена
- Питание – тип питания, на которое указана цена
- Ночи – продолжительность тура в ночах
- Цена
- Вал – валюта, в которой указана цена
- Источник цены – название тура
- Цена за – тип рассчитанной цены: за человека или за номер
- Наличие мест – наличие мест в гостинице
- Эконом, Бизнес - наличие мест на авиаперелеты. Колонки и их названия формируются динамически. Их отображение регулируется настройкой в конфигурационном файле web.config
По нажатию на цену пользователь попадает в экран бронирования тура. При переходе в экран бронирования по собственным турам пользователь попадает в экран «Корзина» (Basket.aspx), «Упрощенная корзина» (SimpleBasket.aspx) или «Расширенная корзина» (Basket.aspx) в зависимости от настроек в конфигурационном файле web.config и наличия установленных надстроек.
При переходе в экран бронирования по турам стороннего туроператора пользователь попадает в экран «Удаленная корзина» (RemoteBasket.aspx).
Актуальность цен
В экране распределенного поиска отбор данных осуществляется по рассчитанным (записанным в БД) ценам туроператоров. При отборе туров, цена на тур стороннего туроператора конвертируется в соответствии с курсом валют в локальной базе. В экране бронирования расчеты ведутся уже по актуальным на данный момент ценам. Т.е. если после расчета прайс-листа цены были изменены, то в экране бронирования стоимость тура покажется уже с учетом этих изменений.
Актуальность наличия мест
В экране распределенного поиска и в экранах бронирования туров наличие мест отображается в соответствии с наличием мест в квоте на момент проверки.
Для собственных туров наличие мест отображается в соответствии с настройками в конфигурационном файле основного приложения ПК Мастер-Web.
Для туров сторонних операторов наличие мест отображается в соответствии с настройками в конфигурационном файле web-сервиса «Сервис проверки наличия мест» (ws-checkquotes).
Даты заездов подсвечиваются в соответствии с установленным значением в настройке ExceptTourDatesWithNoAQ в таблице SystemSettings. Если настройка установлена в значение "1",
то будут исключаться даты туров, на которые нет мест в квоте на перелет. Если настройка установлена в значение "0" или "не установлена", то не будут исключаться даты туров,
на которые нет мест в квоте на перелет.
Корректировка цен от стороннего туроператора
Существует возможность корректировки цен при отображении данных от стороннего туроператора. Есть несколько вариантов корректировки цен:
- Добавление фиксированной наценки к общей стоимости тура от стороннего туроператора
- Добавление процентной наценки к общей стоимости тура от стороннего туроператора
- Добавление фиксированной наценки к стоимости услуг определенных классов
- Добавление процентной наценки с стоимости услуг определенных классов
Соответственно корректировка с добавлением наценки к общей стоимости тура применяется и в экране и поиска, и в экране бронирования туров от стороннего туроператора.
А корректировка с добавлением наценки к стоимости доп.услуг применяется только в экране бронирования туров от стороннего туроператора.
Бронирование заявки
Бронирование тура из стороннего источника происходит в экране Удаленная корзина (RemoteBasketM.aspx).
Бронирование доступно только для зарегистрированных и авторизованных в системе пользователей.
Экран «Удаленная корзина» разделен на несколько блоков. В верхней части экрана отображаются параметры тура:
- Страна
- Название тура
- Даты заезда
- Продолжительность
- Состав заказа
- Наличие мест для отеля и авиаперелета
- Если в туре несколько рейсов, таблица для выбора перелетов.
Подбор перелетов осуществляется по рейсам с актуальным расписанием и ценам. Ниже располагается блок с подробной информацией по выбранному проживанию:
- Название отеля
- Размещение
- Питание
Ниже отображается информация о количестве человек, сумме заказа, с учетом внесенных изменений, а также сумме к оплате, с учетом агентской комиссии.
Далее отображается форма для ввода туристов. Поля, обязательные для ввода определяются настройками ( см. Настройка полей данных о туристах)
Если в туре присутствует несколько рейсов, то экран «Удаленная корзина» позволяет внести необходимые изменения – выбрать другой рейс. Для расчета стоимости тура с учетом изменения рейса, нужно нажать на кнопку «Пересчитать».
Если в туре присутствуют услуги, исключенные при обсчете прайс-листа, то существует возможность добавления этих услуг для конкретных туристов. Для этого необходимо проставить отметки в чек-боксах для нужных услуг. Для расчета стоимости тура с учетом добавленных услуг, нужно нажать на кнопку «Пересчитать».
Для бронирования заявки необходимо нажать кнопку «Забронировать».
По нажатию кнопки «Забронировать», заявка запишется в базу данных стороннего туроператора и туроператора, являющегося владельцем приложения ПК Мастер-Web, и пользователю откроется экран с информацией о сделанном заказе, как показано на изображении ниже.
Здесь пользователю представлена информация о сделанном заказе:
- Номер заявки в базе стороннего туроператора
- Даты заезда
- Продолжительность
- Название отеля
- Размещение в отеле
- Количество человек по путевке
- Список туристов по услуге отель
- Экскурсионная программа тура
- Дополнительные услуги
- Сумма к оплате
- Полная стоимость заказа
- Номер путевки в базе туроператора, являющегося владельцем приложения ПК Мастер-Web
- Дата оформления заказа
При выключенной настройке DSRedirectToResultPage переход осуществляется на стандартную страницу «Информация о заказе» (OrderInfo.aspx).
При бронировании заявки отправляется письмо о новом заказе на адреса:
- Бронирующему агентству (адрес представителя, авторизованного в системе)
- Адреса, указанные в настройке <Email /> в файле templates/distributedSearchSettings.xml
После бронирования путевки, если она изменилась в БД удаленного туроператора, то субагент должен вручную поменять соответствующую путевку в своей БД.
Поиск цен в нескольких источниках
Загрузка фильтров
Существует два варианта загрузки поисковых фильтров:
- Фильтры по своим турам грузятся через прямые запросы к БД, а фильтры по данным сторонних туроператоров грузятся через web-сервис FilterBinding
- Фильтры по всем данным грузятся через web-сервис FilterBinding
В первом случае web-сервис устанавливается только у стороннего туроператора, чьи цены необходимо встроить в приложение туроператора – владельца приложения ПК Мастер-Web.
Во втором случае web-сервис FilterBinding устанавливается и у стороннего туроператора и у туроператора-владельца приложения ПК Мастер-Web.
Экран распределенного поиска
Экран распределенного поиска состоит из блока поисковых фильтров и таблицы с результатами поиска. Блок поисковых фильтров содержит поля:
- Город вылета - названия городов с признаком CT_IsDeparture=1 из таблицы CityDictionary, перегружает все последующие фильтры (для туров от стороннего источника сопоставление городов вылета делается в файле templates/distributedSearchSettings.xml. При этом название города вылета может отображаться либо из базы туроператора, являющегося владельцем приложения ПК Мастер-Web, либо берется значение параметра Name для Type=departFrom из файла templates/distributedSearchSettings.xml)
- Страна - названия стран из таблицы tbl_Country, перегружает все последующие фильтры (для туров от стороннего источника сопоставление стран делается в файле templates/distributedSearchSettings.xml. При этом название страны может отображаться либо из базы туроператора, являющегося владельцем приложения ПК Мастер-Web, либо берется значение параметра Name для Type=country из файла templates/distributedSearchSettings.xml)
- Тип тура - названия типов туров из таблицы TipTur, перегружает все последующие фильтры
- Курорт - названия курортов из таблицы Resorts, перегружает все последующие фильтры
- Город - названия городов из таблицы CityDictionary, перегружает все последующие фильтры
- Тур - названия типов туров из таблицы tbl_TurList, перегружает все последующие фильтры
- Отель - названия отелей из таблицы HotelDictionary, перегружает все последующие фильтры (если поле HD_HTTP заполнено, то в названии отеля формируется ссылка на адрес, указанный в данном поле)
- Даты заезда - даты заезда по турам подсвечиваются в календарях. На подсветку также влияет наличие мест по перелету на дату вылета. В случае отсутствия мест – дата заезда не отображается (не подсвечивается). В случае наличия мест или запроса – дата заезда отображается (подсвечивается).
- Тип номера, либо количество основных и доп.мест - названия типов номеров из таблицы Rooms.
При наличии рассчитанных детских мест в туре, в экране "Распределенного поиска" не отображаются поля для указания возраста детей на дополнительных местах, как в экране "Подбор туров с наличием мест". - Цена не более указанной величины
- Ночи - рассчитанные продолжительности по выбранным в предыдущих фильтрах параметрам
- Категория - рассчитанные категории отелей по выбранным в предыдущих фильтрах параметрам
- Питание - рассчитанные типы питания по выбранным в предыдущих фильтрах параметрам
- Наличие мест в отеле и на рейсе - наличие мест "Есть", "Запрос" и "Нет"
Таблица с результатами поиска содержит поля:
- Дата заезда
- Отель
- Категория - категория отеля
- Город – город, к которому привязан отель
- Тип номера – тип номера, на который указана цена
- Категория номера – категория номера, на который указана цена
- Размещение – размещение, на которое указана цена
- Питание – тип питания, на которое указана цена
- Ночи – продолжительность тура в ночах
- Цена
- Вал – валюта, в которой указана цена
- Источник цены – название тура
- Цена за – тип рассчитанной цены: за человека или за номер
- Наличие мест – наличие мест в гостинице
- Эконом, Бизнес
Все поля являются текстовыми и нередактируемыми.
*Если поле HD_HTTP в таблице HotelDictionary заполнено, то в названии отеля в поле «Отель» формируется ссылка на адрес, указанный в данном поле. *Если поле TL_WEBHTTP в таблице tbl_TurList заполнено, то в названии тура в поле «Источник цены» формируется ссылка на адрес, указанный в данном поле.
По умолчанию данные в результатах поиска отсортированы по полю «Цена» по возрастанию.
Корректировка цен стороннего туроператора
Данные о цене закупки (нетто) и продажной цены для клиента (брутто) поступают от удаленного источника. Для корректировки цен стороннего туроператора необходимо добавить следующие настройки:
- Настройка для добавления фиксированной наценки к общей стоимости тура от стороннего туроператора
- Настройка для добавления процентной наценки к общей стоимости тура от стороннего туроператора
- Настройка для добавления фиксированной наценки к стоимости доп. услуг определенных классов
- Настройка для добавления процентной наценки с стоимости доп. услуг определенных классов
Цена на тур, представленная сторонним источником, конвертируется в соответствии с курсом валют из базы данных удаленного источника. Цена на тур из локального источника конвертируются в соответствии с курсом валют в локальной базе данных.
Список параметров, которые можно передать в «Распределенный поиск»
Данная настройка предусматривает возможность передачи различных параметров через URL страницы. Если существуют рассчитанные прайсы по данной стране, то при загрузке страницы в фильтре данная страна автоматически будет выбрана в списке стран, и будут загружены значения в других поисковых полях. После указания параметров URL необходимо нажать на кнопку .
- departfrom
- country
- city
- hotel
- resort
- tourtype
- tour
- nights
- dateFrom
- dateTo
Значения параметров для стран берутся из таблицы tbl_Country, для городов – CityDictionary, для курортов – Resorts, для отелей - HotelDictionary, для дат заезда и количество ночей - TP_Tours, типы туров - TipTur.
Печать отчетов
По путевкам, забронированным в базе удаленного туроператора с помощью дополнительного модуля Распределенный поиск, агентство в личном кабинете может распечатать только отчет серии 4020 «Счет».
Для того, чтобы работать с другими отчетами необходимо, чтобы субагент, в базе которого создается копия путевки из удаленного источника, сформировал отчет и приложил его к путевке с помощью дополнительного модуля «Привязка файлов к путевке».