Мастер-Тур(15):API для разработки онлайн поиска и бронирования — различия между версиями
| [досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) |
Biryukov (обсуждение | вклад) (→Установка) |
||
| (не показано 86 промежуточных версий 6 участников) | |||
| Строка 12: | Строка 12: | ||
Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br /> | Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br /> | ||
После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/"название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/Settings'') | После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/"название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/Settings'') | ||
| + | |||
| + | ==Swagger== | ||
| + | Работу методов можно проверить с помощью Swagger по пути: ''http://localhost:9000/TourSearchOwin/SwaggerUI'' | ||
==Список методов== | ==Список методов== | ||
| Строка 17: | Строка 20: | ||
Последовательность вызова методов сервиса<br /> | Последовательность вызова методов сервиса<br /> | ||
[[Файл:mb_273.png|1000px|Последовательность вызова методов сервиса]] | [[Файл:mb_273.png|1000px|Последовательность вызова методов сервиса]] | ||
| + | |||
| + | ===Информация о состоянии службы поиска (statusCache)=== | ||
| + | Метод выводит информацию о состоянии службы поиска при ее загрузке. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/statusCache? | ||
| + | * Принимаемые параметры: | ||
| + | ** нет принимаемых параметров | ||
| + | * Возвращаемый результат: | ||
| + | ** '''Initialized''' – информация о том, загружена ли служба или нет ('''false''' – инициализация кешей не завершена, '''true''' – инициализация кешей завершена) | ||
| + | ** '''Status''' – состояние службы. Возможные значения: ''Запущена инициализация кэшей'', ''Инициализация кэшей завершена'' | ||
| + | ** '''CacheName''' – информация о том, какой именно кеш сейчас считается (название) | ||
| + | ** '''Iteration''' – порядковый номер считаемого справочника кеша | ||
| + | ** '''CacheCount''' – общее количество кешей | ||
| + | ** '''ProcessMessage''' – детализация. Информацию можно разделить на 3 блока: | ||
| + | *** Загрузка всех справочных данных, кроме расчета маршрутов и актуальных фильтров. В этом случае сообщение будет ''Загрузка кэшей из БД'' | ||
| + | *** Расчет маршрутов. ''CacheName'' – ''HotelScheme'', сообщение будет ''tours load: 956 / 1234'' | ||
| + | *** Расчет актуальных фильтров. ''CacheName'' – ''ActualFilters'', сообщение будет ''Actual filter processed: 783012 / 3865687"'' | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода Settings | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/statusCache | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода statusCache (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "Initialized": false, | ||
| + | "Status": "Запущена инициализация кэшей", | ||
| + | "CacheName": "ToursSearchView", | ||
| + | "Iteration": 10, | ||
| + | "CacheCount": 112, | ||
| + | "ProcessMessage": "Загрузка кэшей из БД" | ||
| + | } | ||
| + | { | ||
| + | "Initialized": false, | ||
| + | "Status": "Запущена инициализация кэшей", | ||
| + | "CacheName": "HotelScheme", | ||
| + | "Iteration": 109, | ||
| + | "CacheCount": 112, | ||
| + | "ProcessMessage": "tours load: 956 / 1234" | ||
| + | } | ||
| + | { | ||
| + | "Initialized": false, | ||
| + | "Status": "Запущена инициализация кэшей", | ||
| + | "CacheName": "ActualFilters", | ||
| + | "Iteration": 112, | ||
| + | "CacheCount": 112, | ||
| + | "ProcessMessage": "Actual filter processed: 783012 / 3865687" | ||
| + | } | ||
| + | { | ||
| + | "Initialized": true, | ||
| + | "Status": "Инициализация кэшей завершена", | ||
| + | "CacheName": null, | ||
| + | "Iteration": 0, | ||
| + | "CacheCount": 0, | ||
| + | "ProcessMessage": null | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
===Авторизация (Token)=== | ===Авторизация (Token)=== | ||
| Строка 105: | Строка 170: | ||
*** ''<add key="enableActualFilters" value="true" />'' - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован" | *** ''<add key="enableActualFilters" value="true" />'' - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован" | ||
*** ''<add key="enableActualFilters" value="false" />'' - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован". | *** ''<add key="enableActualFilters" value="false" />'' - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован". | ||
| − | + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | |
| + | ** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null) | ||
| + | ** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null) | ||
| + | ** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null) | ||
| + | ** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null) | ||
| + | ** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null) | ||
| + | ** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null) | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
| Строка 182: | Строка 253: | ||
"ShowHotelImagesInSearch": true | "ShowHotelImagesInSearch": true | ||
"CacheReadyMessage": "Кеш инициализирован" | "CacheReadyMessage": "Кеш инициализирован" | ||
| + | "nodeId": 2147483647, | ||
| + | "FullPaymentPeriod": null, | ||
| + | "FullPaymentCheckin": 5, | ||
| + | "PrePaymentPeriod": null, | ||
| + | "PrePaymentCheckin": 10, | ||
| + | "PrePaymentPercent": 50.0, | ||
| + | "PrePaymentCu": null | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| − | |||
===Выгрузка списка валют в онлайне (Currency)=== | ===Выгрузка списка валют в онлайне (Currency)=== | ||
| Строка 257: | Строка 334: | ||
** GET .../TourSearchOwin/CurrencyRates | ** GET .../TourSearchOwin/CurrencyRates | ||
* Принимаемые параметры: | * Принимаемые параметры: | ||
| − | ** | + | ** '''dateFrom''' – начальная дата, от которой вывести список курсов валют, в формате DD.MM.YYYY, необязательный параметр (если не указан, берется за текущий день) |
| + | ** '''dateTo''' – конечная дата, до которой вывести список курсов валют, в формате DD.MM.YYYY, необязательный параметр (если не указан, берется за текущий день) | ||
| + | ** '''otherBaseCurrencyId''' – идентификатор любой валюты, эмулирующей работу национальной валюты, необязательный параметр. Если заполнен, то в результатах выдачи параметр ''baseCurrencyId'' будет заменяться на валюту из параметра ''otherBaseCurrencyId'' (обрабатывается с релиза 15.9). | ||
| + | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
** '''baseCurrencyId''' – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке ''basketCurrency'' в конфигурационном файле (обрабатывается с релиза 15.6) | ** '''baseCurrencyId''' – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке ''basketCurrency'' в конфигурационном файле (обрабатывается с релиза 15.6) | ||
** '''currencyId''' – идентификатор валюты, курс которой приводится | ** '''currencyId''' – идентификатор валюты, курс которой приводится | ||
** '''rate''' – курс валюты (отношение '''currencyId''' к '''baseCurrencyId''') | ** '''rate''' – курс валюты (отношение '''currencyId''' к '''baseCurrencyId''') | ||
| + | ** '''date''' – дата, на которую был зарегистрирован выводимый курс валюты | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 268: | Строка 349: | ||
Вызов метода CurrencyRates | Вызов метода CurrencyRates | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/CurrencyRates | + | http://localhost:9000/TourSearchOwin/CurrencyRates?dateFrom=18.09.2024&dateTo=19.09.2024 |
</syntaxhighlight> | </syntaxhighlight> | ||
Возвращаемый результат метода CurrencyRates (в формате JSON) | Возвращаемый результат метода CurrencyRates (в формате JSON) | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | { | + | [ |
| − | + | { | |
| − | + | "BaseCurrencyId": 14, | |
| − | + | "CurrencyId": 1, | |
| − | + | "Rate": 91.429200, | |
| − | + | "Date": "18.09.2024" | |
| − | + | }, | |
| − | + | { | |
| − | + | "BaseCurrencyId": 14, | |
| − | + | "CurrencyId": 2, | |
| − | + | "Rate": 101.505700, | |
| − | + | "Date": "18.09.2024" | |
| − | + | }, | |
| − | + | { | |
| − | + | "BaseCurrencyId": 14, | |
| + | "CurrencyId": 1, | ||
| + | "Rate": 91.671200, | ||
| + | "Date": "19.09.2024" | ||
| + | }, | ||
| + | { | ||
| + | "BaseCurrencyId": 14, | ||
| + | "CurrencyId": 2, | ||
| + | "Rate": 102.039000, | ||
| + | "Date": "19.09.2024" | ||
| + | } | ||
| + | ] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 508: | Строка 600: | ||
** '''Name''' – название страны | ** '''Name''' – название страны | ||
** '''Key''' – идентификатор страны | ** '''Key''' – идентификатор страны | ||
| − | ** '''DestinationType''' – тип результата (параметр не изменяемый, | + | ** '''DestinationType''' – тип результата (внутренний параметр, не изменяемый, всегда возвращается значение = 1) |
** '''IsExist''' – не используется | ** '''IsExist''' – не используется | ||
** '''Data''' – массив данных для контекстного поиска | ** '''Data''' – массив данных для контекстного поиска | ||
| Строка 690: | Строка 782: | ||
** '''departureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ** '''departureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ||
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
| − | ** '''Type *''' – тип результата (всегда | + | ** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ||
** '''terms''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | ** '''terms''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | ||
| Строка 696: | Строка 788: | ||
** '''Key''' – идентификатор типа тура | ** '''Key''' – идентификатор типа тура | ||
** '''Name''' – название типа тура | ** '''Name''' – название типа тура | ||
| − | ** '''ParentId''' – идентификатор группы, к которой относится данный | + | ** '''ParentId''' – идентификатор группы, к которой относится данный тип тура (если тип тура не относится к группе, то возвращается ''null'') |
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 736: | Строка 828: | ||
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ||
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
| − | ** '''Type *''' – тип результата (всегда | + | ** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''tourTypes *''' – идентификатор типа тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ** '''tourTypes *''' – идентификатор типа тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| Строка 772: | Строка 864: | ||
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ||
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
| − | ** '''Type *''' – тип результата (всегда | + | ** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''tourDate *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ** '''tourDate *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
** '''tourTypes *''' – идентификатор типа(ов) тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ** '''tourTypes *''' – идентификатор типа(ов) тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ||
| Строка 811: | Строка 903: | ||
** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | ** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | ||
** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false) | ** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false) | ||
| − | ** '''isFillSecondaryFilters | + | ** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. |
| − | ** '''DestinationType *''' – тип результата (параметр не изменяемый, | + | ** '''DestinationType *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
** '''AdultCount *''' – количество взрослых | ** '''AdultCount *''' – количество взрослых | ||
| Строка 824: | Строка 916: | ||
** '''Groups''' – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля) | ** '''Groups''' – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля) | ||
** '''HotelScheme''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры: | ** '''HotelScheme''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры: | ||
| − | *** '''TemplateId''' – идентификатор шаблона услуги, | + | *** '''TemplateId''' – идентификатор шаблона услуги (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Key->TemplateId), |
| − | *** '''DurationInNight''' – продолжительность отеля в ночах, | + | *** '''DurationInNight''' – продолжительность отеля в ночах (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->DurationInNight), |
| − | *** '''Code''' – ключ отеля, | + | *** '''Code''' – ключ отеля (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->Code), |
| − | *** '''PacketKey''' – ключ пакета, | + | *** '''PacketKey''' – ключ пакета (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PacketId), |
| − | *** '''PartnerKey''' – ключ партнера | + | *** '''PartnerKey''' – ключ партнера (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PartnerId), |
| − | *** '''GDSProviderId''' – ключ провайдера из внешней системы | + | *** '''GDSProviderId''' – ключ провайдера из внешней системы (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->GDSProviderId), |
| − | *** '''TotalTourDuration''' – общая продолжительность тура в днях | + | *** '''TotalTourDuration''' – общая продолжительность тура в днях (этот параметр можно взять из контроллера Tour->Result->Duration) |
** '''BusTransferPointKeys''' – данный признак проставляется в ''true'' в том случае, когда происходит запрос вариантов проживания (кнопка ''Варианты'') в автобусных переездах | ** '''BusTransferPointKeys''' – данный признак проставляется в ''true'' в том случае, когда происходит запрос вариантов проживания (кнопка ''Варианты'') в автобусных переездах | ||
** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура | ** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура | ||
| Строка 865: | Строка 957: | ||
** '''IsGroupingTourAlreadyMerge''' – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. ''IsGroupingTourAlreadyMerge=false'' – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. ''IsGroupingTourAlreadyMerge=true'' – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4. | ** '''IsGroupingTourAlreadyMerge''' – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. ''IsGroupingTourAlreadyMerge=false'' – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. ''IsGroupingTourAlreadyMerge=true'' – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4. | ||
** '''SearchId''' – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5. | ** '''SearchId''' – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5. | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
| Строка 877: | Строка 970: | ||
*** '''TourUrl''' – ссылка на программу тура | *** '''TourUrl''' – ссылка на программу тура | ||
*** '''BookingConditions''' – условия бронирования программы туров | *** '''BookingConditions''' – условия бронирования программы туров | ||
| + | *** '''DefaultManagers''' – список выбранных менеджеров в туре | ||
| + | *** '''Manager''' – ключ менеджера по умолчанию в туре | ||
| + | *** '''Branches''' – список ключей филиалов бронирования | ||
| + | *** '''DetermineTheBranchOnCity''' – признак, определять филиал в зависимости от города начала поездки | ||
| + | *** '''IndividualFlightSelection''' – признак, включены ли индивидуальные настройки подбора перелетов | ||
| + | *** '''RestrictionDateArrival''' – признак, ограничение даты прилета по базовому рейсу в индивидуальных настройках подбора перелетов | ||
| + | *** '''PriceUpdateForView''' – признак обновления цен в индивидуальных настройках подбора перелетов (true – включен, false – выключен) | ||
| + | *** '''SelectFlightAutomatically''' – признак выбирать рейс автоматически, если не выбран пользователем в индивидуальных настройках подбора перелетов | ||
| + | *** '''BaggageSearchOtherFares''' – признак поиска багажа в других тарифах в индивидуальных настройках подбора перелетов | ||
| + | *** '''Luggage''' – значение багажа в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''LuggageForView''' – значение багажа в блоке настроек, влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''LuggageForPrice''' – значение багажа в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''FlightClass''' – класс перелета в индивидуальных настройках подбора перелетов (economy – Эконом, premiumEconomy 2 Премиум-эконом, business – Бизнес, first – Первый) | ||
| + | *** '''Directs''' – значение пересадок в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, onlyDirectFlights – только прямые рейсы) | ||
| + | *** '''DirectsForView''' – значение пересадок в блоке влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect) | ||
| + | *** '''DirectsForPrice''' – значение пересадок в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect) | ||
| + | *** '''DepartureTimeLimit''' – ограничение времени вылета: «Вылет не позже» в формате hh:mm | ||
| + | *** '''SortingForView''' – сортировка в индивидуальных настройках подбора перелетов (cheap – сначала дешевые, fast – сначала быстрые, optimal – оптимальные) | ||
*** '''StartDate''' – дата начала тура | *** '''StartDate''' – дата начала тура | ||
| + | *** '''MaxConnectionTime''' – длительность пересадок в индивидуальных настройках подбора перелетов в формате hh:mm | ||
| + | *** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null) | ||
| + | *** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null) | ||
| + | *** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null) | ||
| + | *** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null) | ||
| + | *** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null) | ||
| + | *** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null) | ||
*** '''Duration''' – продолжительность тура (в днях) | *** '''Duration''' – продолжительность тура (в днях) | ||
*** '''DurationInNight''' – продолжительность проживания (в ночах) | *** '''DurationInNight''' – продолжительность проживания (в ночах) | ||
*** '''Types''' – идентификатор типа туров | *** '''Types''' – идентификатор типа туров | ||
| − | *** '''Cost''' – цена тура | + | *** '''Price''' – цена тура с учетом скидки в валюте поиска |
| + | *** '''Cost''' – цена тура в валюте поиска | ||
*** '''Rate''' – код валюты тура | *** '''Rate''' – код валюты тура | ||
| + | *** '''Penalties''' – внутреннее поле, не используется | ||
*** '''CityDepature''' – город отправления | *** '''CityDepature''' – город отправления | ||
**** '''Key''' – идентификатор города отправления | **** '''Key''' – идентификатор города отправления | ||
| Строка 925: | Строка 1045: | ||
***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ||
***** '''QuotaStatus''' – информация о квоте | ***** '''QuotaStatus''' – информация о квоте | ||
| − | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 956: | Строка 1076: | ||
***** '''Key''' – ключ города | ***** '''Key''' – ключ города | ||
***** '''Value''' – название города | ***** '''Value''' – название города | ||
| − | **** '''Country''' – ключ страны | + | **** '''Country''' – объект страна |
| + | ***** '''Key''' – ключ страны | ||
| + | ***** '''Value''' – название страны | ||
**** '''Code''' – объект код услуги | **** '''Code''' – объект код услуги | ||
***** '''Key''' – ключ услуги | ***** '''Key''' – ключ услуги | ||
| Строка 972: | Строка 1094: | ||
***** '''Cost''' – цена | ***** '''Cost''' – цена | ||
***** '''QuotaStatus''' – объект информация по квотам | ***** '''QuotaStatus''' – объект информация по квотам | ||
| − | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 1062: | Строка 1184: | ||
***** '''enabled''' – флаг включен/выключен | ***** '''enabled''' – флаг включен/выключен | ||
*** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске) | *** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске) | ||
| + | *** '''Routes''' – количество маршрутов для данного варианта поиска (к примеру, если будет несколько вариантов | ||
| + | *** '''IsRemoteHotels''' – признак, есть ли внешние отели в данном варианте | ||
| + | *** '''IsTourImages''' – признак, есть ли картинки тура | ||
| + | *** '''MaskKeys''' – маска фильтра категории номеров | ||
** '''SecondaryFiltersResult''' – результаты доп. фильтров | ** '''SecondaryFiltersResult''' – результаты доп. фильтров | ||
*** '''TourTypes''' – типы тура | *** '''TourTypes''' – типы тура | ||
| Строка 1112: | Строка 1238: | ||
****** '''settings''' – | ****** '''settings''' – | ||
****** '''enabled''' – | ****** '''enabled''' – | ||
| − | |||
**** '''Type''' – тип справочника (используется для внутренних целей) | **** '''Type''' – тип справочника (используется для внутренних целей) | ||
*** '''TourDurations''' – продолжительность тура | *** '''TourDurations''' – продолжительность тура | ||
| Строка 1140: | Строка 1265: | ||
**** '''HotelTypes''' – признаки отелей в дополнительных фильтрах | **** '''HotelTypes''' – признаки отелей в дополнительных фильтрах | ||
***** '''''' – | ***** '''''' – | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 1167: | Строка 1293: | ||
"TourUrl": "www.megatec.ru", | "TourUrl": "www.megatec.ru", | ||
"BookingConditions": "<p>Условия бронирования тура.<\/p>", | "BookingConditions": "<p>Условия бронирования тура.<\/p>", | ||
| + | "DefaultManagers": [], | ||
| + | "Manager": 169, | ||
| + | "Branches": [], | ||
| + | "DetermineTheBranchOnCity": false, | ||
| + | "IndividualFlightSelection": true, | ||
| + | "RestrictionDateArrival": false, | ||
| + | "PriceUpdateForView": false, | ||
| + | "SelectFlightAutomatically": false, | ||
| + | "BaggageSearchOtherFares": false, | ||
| + | "Luggage": "withoutLuggage", | ||
| + | "LuggageForView": "all", | ||
| + | "LuggageForPrice": "all", | ||
| + | "FlightClass": "economy", | ||
| + | "Directs": "all", | ||
| + | "DirectsForView": "all", | ||
| + | "DirectsForPrice": "all", | ||
| + | "DepartureTimeLimit": "", | ||
| + | "SortingForView": "cheap", | ||
"StartDate": "2018-02-25T00:00:00", | "StartDate": "2018-02-25T00:00:00", | ||
| + | "MaxConnectionTime": 0 | ||
| + | "FullPaymentPeriod": 5, | ||
| + | "FullPaymentCheckin": null, | ||
| + | "PrePaymentPeriod": null, | ||
| + | "PrePaymentCheckin": 5, | ||
| + | "PrePaymentCu": null, | ||
| + | "PrePaymentPercent": 10.0, | ||
"Duration": 4, | "Duration": 4, | ||
"DurationInNight": 3, | "DurationInNight": 3, | ||
"Types": [2], | "Types": [2], | ||
| + | "Price": 260, | ||
"Cost": 260, | "Cost": 260, | ||
| + | "Penalties": null, | ||
"Rate": "EU", | "Rate": "EU", | ||
"CityDepature": { | "CityDepature": { | ||
| Строка 1302: | Строка 1455: | ||
"Value": "Завтрак" | "Value": "Завтрак" | ||
}, | }, | ||
| + | "AbsolutePenalties": null, | ||
"Cost": 19.47, | "Cost": 19.47, | ||
"QuotaStatus": { | "QuotaStatus": { | ||
| Строка 1418: | Строка 1572: | ||
"ServiceName": "страховка", | "ServiceName": "страховка", | ||
"City": null, | "City": null, | ||
| − | "Country": | + | "Country": { |
| + | "Key": 90, | ||
| + | "Value": "Австрия" | ||
| + | }, | ||
"Code": { | "Code": { | ||
"Key": 297, | "Key": 297, | ||
| Строка 1471: | Строка 1628: | ||
"Value": "Санто-Доминго" | "Value": "Санто-Доминго" | ||
}, | }, | ||
| − | "Country": | + | "Country": { |
| + | "Key": 90, | ||
| + | "Value": "Австрия" | ||
| + | }, | ||
"Code": { | "Code": { | ||
"Key": 743, | "Key": 743, | ||
| Строка 1606: | Строка 1766: | ||
} | } | ||
}, | }, | ||
| − | "RouteSubVariants": [] | + | "RouteSubVariants": [], |
| + | "Routes": 1, | ||
| + | "IsRemoteHotels": false, | ||
| + | "IsTourImages": false, | ||
| + | "MaskKeys": null | ||
} | } | ||
], | ], | ||
| Строка 1674: | Строка 1838: | ||
} | } | ||
}, | }, | ||
| − | |||
"Type": "TourProgram" | "Type": "TourProgram" | ||
} | } | ||
| Строка 2124: | Строка 2287: | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| + | |||
| + | * Детализация параметра serviceDescriptions из url: | ||
| + | ** '''TemplateId''' – идентификатор шаблона услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Key->TemplateId) | ||
| + | ** '''PatternId''' – идентификатор паттерна услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Key->PatternId) | ||
| + | ** '''SettingId''' – идентификатор услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Key->SettingId) | ||
| + | ** '''ServiceType''' – тип услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->ServiceType) | ||
| + | ** '''Code''' – код услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->Code) | ||
| + | ** '''SubCode1''' – доп. описание 1 услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->SubCode1) | ||
| + | ** '''SubCode2''' – доп. описание 2 услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->SubCode2) | ||
| + | ** '''CountryId''' – ключ страны (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->CountryId) | ||
| + | ** '''CityId''' – ключ города (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->CityId) | ||
| + | ** '''PacketId''' – ключ пакета (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->PacketId) | ||
| + | ** '''PartnerId''' – ключ партнера (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->PartnerId) | ||
| + | ** '''Day''' – день предоставления (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->Day) | ||
| + | ** '''DurationInNight''' – продолжительность в ночах (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->DurationInNight) | ||
| + | |||
| + | Пример: serviceDescriptions=1_0_0_3_107274_1400134_1526_460_1_1830_14752_1_8 | ||
===Выгрузка транспортного плана (TransportPlan) до релиза 15.7 включительно=== | ===Выгрузка транспортного плана (TransportPlan) до релиза 15.7 включительно=== | ||
| Строка 2561: | Строка 2741: | ||
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
** '''DepartureCityKeys *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ** '''DepartureCityKeys *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ||
| − | ** '''DestinationType *''' – тип результата (параметр не изменяемый, | + | ** '''DestinationType *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
** '''Dates *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ** '''Dates *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
| Строка 2571: | Строка 2751: | ||
** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
** '''BusTransferQuota''' – информация о квотах на автобусный переезд (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ** '''BusTransferQuota''' – информация о квотах на автобусный переезд (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
| − | ** '''HotelScheme *''' – объект схемы отеля | + | ** '''HotelScheme *''' – объект схемы отеля (при работе с авиабукингом передается конструкция такого вида ''HotelScheme=[{"TemplateId":"}]'') |
*** '''TemplateId''' – идентификатор шаблона услуги | *** '''TemplateId''' – идентификатор шаблона услуги | ||
*** '''DurationInNight''' – продолжительность отеля в ночах | *** '''DurationInNight''' – продолжительность отеля в ночах | ||
| Строка 2582: | Строка 2762: | ||
** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | ** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | ||
** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false). | ** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false). | ||
| − | ** '''isFillSecondaryFilters | + | ** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. |
| − | ** '''TourKey''' – | + | ** '''TourKey''' – ключ программы тура |
| − | ** '''TourDuration''' – | + | ** '''TourDuration''' – продолжительность тура в днях |
** '''RemoteHotelMode''' – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4. | ** '''RemoteHotelMode''' – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4. | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| Строка 2597: | Строка 2778: | ||
*** '''TourUrl''' – ссылка на программу тура | *** '''TourUrl''' – ссылка на программу тура | ||
*** '''BookingConditions''' – условия бронирования программы туров | *** '''BookingConditions''' – условия бронирования программы туров | ||
| + | *** '''DefaultManagers''' – список выбранных менеджеров в туре | ||
| + | *** '''Manager''' – ключ менеджера по умолчанию в туре | ||
| + | *** '''Branches''' – список ключей филиалов бронирования | ||
| + | *** '''DetermineTheBranchOnCity''' – признак, определять филиал в зависимости от города начала поездки | ||
| + | *** '''IndividualFlightSelection''' – признак, включены ли индивидуальные настройки подбора перелетов | ||
| + | *** '''RestrictionDateArrival''' – признак, ограничение даты прилета по базовому рейсу в индивидуальных настройках подбора перелетов | ||
| + | *** '''PriceUpdateForView''' – признак обновления цен в индивидуальных настройках подбора перелетов (true – включен, false – выключен) | ||
| + | *** '''SelectFlightAutomatically''' – признак выбирать рейс автоматически, если не выбран пользователем в индивидуальных настройках подбора перелетов | ||
| + | *** '''BaggageSearchOtherFares''' – признак поиска багажа в других тарифах в индивидуальных настройках подбора перелетов | ||
| + | *** '''Luggage''' – значение багажа в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''LuggageForView''' – значение багажа в блоке настроек, влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''LuggageForPrice''' – значение багажа в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''FlightClass''' – класс перелета в индивидуальных настройках подбора перелетов (economy – Эконом, premiumEconomy 2 Премиум-эконом, business – Бизнес, first – Первый) | ||
| + | *** '''Directs''' – значение пересадок в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, onlyDirectFlights – только прямые рейсы) | ||
| + | *** '''DirectsForView''' – значение пересадок в блоке влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect) | ||
| + | *** '''DirectsForPrice''' – значение пересадок в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect) | ||
| + | *** '''DepartureTimeLimit''' – ограничение времени вылета: «Вылет не позже» в формате hh:mm | ||
| + | *** '''SortingForView''' – сортировка в индивидуальных настройках подбора перелетов (cheap – сначала дешевые, fast – сначала быстрые, optimal – оптимальные) | ||
| + | *** '''StartDate''' – дата начала тура | ||
| + | *** '''MaxConnectionTime''' – длительность пересадок в индивидуальных настройках подбора перелетов в формате hh:mm | ||
| + | *** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null) | ||
| + | *** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null) | ||
| + | *** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null) | ||
| + | *** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null) | ||
| + | *** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null) | ||
| + | *** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null) | ||
| + | *** '''Duration''' – продолжительность тура (в днях) | ||
| + | *** '''DurationInNight''' – продолжительность проживания (в ночах) | ||
| + | *** '''Types''' – идентификатор типа туров | ||
| + | *** '''Price''' – цена тура с учетом скидки в валюте поиска | ||
| + | *** '''Cost''' – цена тура в валюте поиска | ||
| + | *** '''Rate''' – код валюты тура | ||
| + | *** '''Penalties''' – внутреннее поле, не используется | ||
*** '''StartDate''' – дата начала тура | *** '''StartDate''' – дата начала тура | ||
*** '''Duration''' – продолжительность тура (в днях) | *** '''Duration''' – продолжительность тура (в днях) | ||
| Строка 2645: | Строка 2859: | ||
***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ||
***** '''QuotaStatus''' – информация о квоте | ***** '''QuotaStatus''' – информация о квоте | ||
| − | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 2676: | Строка 2890: | ||
***** '''Key''' – ключ города | ***** '''Key''' – ключ города | ||
***** '''Value''' – название города | ***** '''Value''' – название города | ||
| − | **** '''Country''' – ключ страны | + | **** '''Country''' – объект страна |
| + | ***** '''Key''' – ключ страны | ||
| + | ***** '''Value''' – название страны | ||
**** '''Code''' – объект код услуги | **** '''Code''' – объект код услуги | ||
***** '''Key''' – ключ услуги | ***** '''Key''' – ключ услуги | ||
| Строка 2692: | Строка 2908: | ||
***** '''Cost''' – цена | ***** '''Cost''' – цена | ||
***** '''QuotaStatus''' – объект информация по квотам | ***** '''QuotaStatus''' – объект информация по квотам | ||
| − | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 2783: | Строка 2999: | ||
*** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске) | *** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске) | ||
** '''SecondaryFiltersResult''' – доп. фильтры (не используется при вызове из корзины) | ** '''SecondaryFiltersResult''' – доп. фильтры (не используется при вызове из корзины) | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
| Строка 2810: | Строка 3027: | ||
"TourUrl": "www.megatec.ru", | "TourUrl": "www.megatec.ru", | ||
"BookingConditions": "Условия бронирования тура", | "BookingConditions": "Условия бронирования тура", | ||
| − | "StartDate": "2018- | + | "DefaultManagers": [], |
| − | "Duration": | + | "Manager": 169, |
| − | "DurationInNight": | + | "Branches": [], |
| + | "DetermineTheBranchOnCity": false, | ||
| + | "IndividualFlightSelection": true, | ||
| + | "RestrictionDateArrival": false, | ||
| + | "PriceUpdateForView": false, | ||
| + | "SelectFlightAutomatically": false, | ||
| + | "BaggageSearchOtherFares": false, | ||
| + | "Luggage": "withoutLuggage", | ||
| + | "LuggageForView": "all", | ||
| + | "LuggageForPrice": "all", | ||
| + | "FlightClass": "economy", | ||
| + | "Directs": "all", | ||
| + | "DirectsForView": "all", | ||
| + | "DirectsForPrice": "all", | ||
| + | "DepartureTimeLimit": "", | ||
| + | "SortingForView": "cheap", | ||
| + | "StartDate": "2018-02-25T00:00:00", | ||
| + | "MaxConnectionTime": 0 | ||
| + | "FullPaymentPeriod": 5, | ||
| + | "FullPaymentCheckin": null, | ||
| + | "PrePaymentPeriod": null, | ||
| + | "PrePaymentCheckin": 5, | ||
| + | "PrePaymentCu": null, | ||
| + | "PrePaymentPercent": 10.0, | ||
| + | "Duration": 4, | ||
| + | "DurationInNight": 3, | ||
"Types": [2], | "Types": [2], | ||
| − | "Cost": | + | "Price": 260, |
| + | "Cost": 260, | ||
| + | "Penalties": null, | ||
"Rate": "EU", | "Rate": "EU", | ||
"CityDepature": { | "CityDepature": { | ||
| Строка 3246: | Строка 3490: | ||
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
** '''countryId *''' – ключ страны, для которой будут выгружаться настройки | ** '''countryId *''' – ключ страны, для которой будут выгружаться настройки | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
| + | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
** '''TouristFieldsSettings''' – массив полей с информацией о туристах (из админки Мастер-Web) | ** '''TouristFieldsSettings''' – массив полей с информацией о туристах (из админки Мастер-Web) | ||
| Строка 3256: | Строка 3502: | ||
**** '''IsRequired''' – признак обязательности заполнения поля | **** '''IsRequired''' – признак обязательности заполнения поля | ||
**** '''IsVisible''' – видимость поля (видимое) | **** '''IsVisible''' – видимость поля (видимое) | ||
| − | **** '''IsDisabled''' – | + | **** '''IsDisabled''' – служебный внутренний параметр. При работе с API не используется |
**** '''Translit''' – настройки транслитерации (0 – нет, 1 – транслитерация, 2 – латиница) | **** '''Translit''' – настройки транслитерации (0 – нет, 1 – транслитерация, 2 – латиница) | ||
**** '''LetterCase''' – настройки регистра (0 – по умолчанию, 1 – с заглавной, 2 – большие, 3 – маленькие) | **** '''LetterCase''' – настройки регистра (0 – по умолчанию, 1 – с заглавной, 2 – большие, 3 – маленькие) | ||
| Строка 3285: | Строка 3531: | ||
** '''ChildAgeSetting''' – максимальный возраст ребенка, когда он считается ребенком (лет) | ** '''ChildAgeSetting''' – максимальный возраст ребенка, когда он считается ребенком (лет) | ||
** '''InfantAgeSetting''' – максимальный возраст младенца (месяцев) | ** '''InfantAgeSetting''' – максимальный возраст младенца (месяцев) | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 3576: | Строка 3823: | ||
Метод производит выгрузку услуг доплат к авиаперелетам. | Метод производит выгрузку услуг доплат к авиаперелетам. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** POST .../TourSearchOwin/GetFlightsAdditionalServices? | + | ** POST .../TourSearchOwin/GetFlightsAdditionalServices?nodeId=2147483647 |
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| Строка 3609: | Строка 3857: | ||
**** '''ByPax''' – цена за человека | **** '''ByPax''' – цена за человека | ||
**** '''QuotaStatus''' – объект статус квотирования | **** '''QuotaStatus''' – объект статус квотирования | ||
| − | ***** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 3652: | Строка 3900: | ||
*** '''ServiceName''' – название услуги | *** '''ServiceName''' – название услуги | ||
*** '''City''' – объект город | *** '''City''' – объект город | ||
| − | *** '''Country''' – ключ страны | + | *** '''Country''' – объект страна |
| + | **** '''Key''' – ключ страны | ||
| + | **** '''Value''' – название страны | ||
*** '''Code''' – объект код услуги | *** '''Code''' – объект код услуги | ||
**** '''Key''' – ключ услуги | **** '''Key''' – ключ услуги | ||
| Строка 3668: | Строка 3918: | ||
**** '''Cost''' – цена | **** '''Cost''' – цена | ||
**** '''QuotaStatus''' – объект статус квотирования | **** '''QuotaStatus''' – объект статус квотирования | ||
| − | ***** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 3701: | Строка 3951: | ||
Вызов метода GetHotelsAdditionalServices | Вызов метода GetHotelsAdditionalServices | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | POST http://localhost:9000/TourSearchOwin/ | + | POST http://localhost:9000/TourSearchOwin/GetFlightsAdditionalServices?nodeId=2147483647 HTTP/1.1 |
Content-Type: application/json | Content-Type: application/json | ||
{ | { | ||
| Строка 3842: | Строка 4092: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода GetFlightsAdditionalServices (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
[{ | [{ | ||
"ServiceName": "Доплаты к авиаперелетам", | "ServiceName": "Доплаты к авиаперелетам", | ||
"City": null, | "City": null, | ||
| − | + | "Country": { | |
| + | "Key": 90, | ||
| + | "Value": "Австрия" | ||
| + | }, | ||
"Code": { | "Code": { | ||
"Key": 357, | "Key": 357, | ||
| Строка 3904: | Строка 4157: | ||
Метод производит выгрузку услуг доплат к отелям. | Метод производит выгрузку услуг доплат к отелям. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** POST .../TourSearchOwin/GetHotelsAdditionalServices? | + | ** POST .../TourSearchOwin/GetHotelsAdditionalServices?nodeId=2147483647 |
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| Строка 3937: | Строка 4191: | ||
**** '''ByPax''' – цена за человека | **** '''ByPax''' – цена за человека | ||
**** '''QuotaStatus''' – объект статус квотирования | **** '''QuotaStatus''' – объект статус квотирования | ||
| − | ***** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 4019: | Строка 4273: | ||
**** '''Cost''' – цена | **** '''Cost''' – цена | ||
**** '''QuotaStatus''' – объект статус квотирования | **** '''QuotaStatus''' – объект статус квотирования | ||
| − | ***** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 4052: | Строка 4306: | ||
Вызов метода GetHotelsAdditionalServices | Вызов метода GetHotelsAdditionalServices | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices? HTTP/1.1 | + | POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices?nodeId=2147483647 HTTP/1.1 |
Content-Type: application/json | Content-Type: application/json | ||
| Строка 4188: | Строка 4442: | ||
"ServiceName": "Доплаты к отелям", | "ServiceName": "Доплаты к отелям", | ||
"City": null, | "City": null, | ||
| − | + | "Country": { | |
| + | "Key": 90, | ||
| + | "Value": "Австрия" | ||
| + | }, | ||
"Code": { | "Code": { | ||
"Key": 364, | "Key": 364, | ||
| Строка 4246: | Строка 4503: | ||
Метод производит расчет услуг с индивидуальным выбором у туристов. | Метод производит расчет услуг с индивидуальным выбором у туристов. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** POST .../TourSearchOwin/CalculateIndividualServiceCosts? | + | ** POST .../TourSearchOwin/CalculateIndividualServiceCosts?nodeId=2147483647 |
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| Строка 4308: | Строка 4566: | ||
**** '''Brutto''' – брутто | **** '''Brutto''' – брутто | ||
**** '''Discount''' – скидка | **** '''Discount''' – скидка | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 4314: | Строка 4573: | ||
Вызов метода CalculateIndividualServiceCosts | Вызов метода CalculateIndividualServiceCosts | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | POST http://localhost:9000/TourSearchOwin/CalculateIndividualServiceCosts? HTTP/1.1 | + | POST http://localhost:9000/TourSearchOwin/CalculateIndividualServiceCosts?nodeId=2147483647 HTTP/1.1 |
Content-Type: application/json | Content-Type: application/json | ||
| Строка 5359: | Строка 5618: | ||
***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ||
***** '''QuotaStatus''' – информация о квоте | ***** '''QuotaStatus''' – информация о квоте | ||
| − | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus. | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus. | ||
****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 6267: | Строка 6526: | ||
Метод производит расчет стоимости путевки. | Метод производит расчет стоимости путевки. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** POST .../TourSearchOwin/CalculateReservation? | + | ** POST .../TourSearchOwin/CalculateReservation?nodeId=2147483647 |
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| Строка 6273: | Строка 6533: | ||
* Принимаемые параметры POST запроса: | * Принимаемые параметры POST запроса: | ||
| − | ** '''TourProgramId''' – ключ турпрограммы | + | ** '''TourProgramId *''' – ключ турпрограммы |
| − | ** '''BeginDate''' – дата начала тура | + | ** '''BeginDate *''' – дата начала тура |
| − | ** '''Duration''' – продолжительность тура | + | ** '''Duration *''' – продолжительность тура |
| − | ** '''Currency''' – код валюты | + | ** '''Currency *''' – код валюты |
| − | ** '''initialPrice''' – объект изначальная цена | + | ** '''initialPrice *''' – объект изначальная цена |
| − | *** '''price''' – цена | + | *** '''price *''' – цена |
| − | *** '''currency''' – код валюты | + | *** '''currency *''' – код валюты |
| − | ** '''Services''' – массив услуг | + | ** '''Services *''' – массив услуг |
| − | *** '''Service''' – объект услуги (отель/круиз, авиаперелет, трансфер или др.) | + | *** '''Service *''' – объект услуги (отель/круиз, авиаперелет, трансфер или др.) |
| − | **** '''ServiceType''' – тип услуги (поле ''sv_key'' из таблицы ''service'') | + | **** '''ServiceType *''' – тип услуги (поле ''sv_key'' из таблицы ''service'') |
| − | **** '''Code''' – код услуги | + | **** '''Code *''' – код услуги |
| − | **** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги | + | **** '''SubCode1 *''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги |
| − | **** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги | + | **** '''SubCode2 *''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги |
| − | **** '''Packet''' – ключ пакета услуги | + | **** '''Packet *''' – ключ пакета услуги |
| − | **** '''Partner''' – ключ партнера услуги | + | **** '''Partner *''' – ключ партнера услуги |
| − | **** '''Day''' – день предоставления услуги | + | **** '''Day *''' – день предоставления услуги |
| − | **** '''DurationInNight''' – продолжительность услуги в ночах | + | **** '''DurationInNight *''' – продолжительность услуги в ночах |
| − | **** '''City''' – ключ города | + | **** '''City *''' – ключ города |
| − | **** '''Country''' – страна услуги | + | **** '''Country *''' – страна услуги |
| − | **** '''Attributes''' – битовая маска атрибутов услуг | + | **** '''Attributes *''' – битовая маска атрибутов услуг (Значение по умолчанию 0. Дальше в зависимости от признака услуги, может принимать значениz: |
| − | + | None = 0,если услуга удаляемая, эта настройка находится в программе туров,</br> | |
| − | + | Delete = 1,</br> | |
| − | + | CodeEdit = 2,</br> | |
| − | + | SubCode1Edit = 4,</br> | |
| − | + | CityEdit = 8,</br> | |
| − | + | PartnerEdit = 16,</br> | |
| − | + | BadCheck = 32,</br> | |
| − | + | Invisible = 64, отображаемая</br> | |
| − | + | DurationEdit = 128,</br> | |
| − | + | FullEdit = Delete | CodeEdit | SubCode1Edit | SubCode2Edit | CityEdit | PartnerEdit | DurationEdit,</br> | |
| − | + | Host = 256,</br> | |
| − | + | HostChangeCode2 = Host | 512,</br> | |
| − | + | HostChangeCode1 = Host | 1024,</br> | |
| − | **** ''' | + | HostChangeCode = Host | 2048,</br> |
| − | **** ''' | + | HostChangePartner = Host | 4096,</br> |
| − | **** ''' | + | HostChangePacket = Host | 8192,</br> |
| − | **** ''' | + | Depended = 16384,</br> |
| − | **** ''' | + | DependedCode2 = Depended | 512,</br> |
| − | **** ''' | + | DependedCode1 = Depended | 1024,</br> |
| − | + | DependedCode = Depended | 2048,</br> | |
| − | ***** ''' | + | DependedCity = Depended | 4096,</br> |
| − | ***** ''' | + | DependedCountry = Depended | 8192,</br> |
| − | + | FullDepended = Depended | DependedCode2 | DependedCode1 | DependedCode | DependedCity | DependedCountry,</br> | |
| − | + | NotCalculate = 32768,не рассчитываемая,</br> | |
| − | + | SubCode2Edit = 65536,</br> | |
| − | ***** ''' | + | GDSService = 131072, от внешней системы)</br> |
| − | + | **** ''' *IsRemovable''' – (не обрабатывается) | |
| − | + | **** ''' *Type''' – тип услуги в путевке. Может принимать значения: | |
| − | ** ''' | + | None (0) – не установлено,</br> |
| − | *** ''' | + | Base (1) – базовая услуга. Основные услуги в корзине, проживание, перелет.</br> |
| − | *** ''' | + | Optional (2) – Дополнительная услуга,</br> |
| − | *** ''' | + | NYDinner (4) – Новогодний ужин,</br> |
| − | *** ''' | + | FlightAdditionalPayment (8) – Доплата на перелет,</br> |
| − | *** ''' | + | TourWebDifference (16) – Разница в СПО,</br> |
| − | + | AddedByCalculator (32) – Добавленная при рассчете путевки,</br> | |
| − | *** ''' | + | AddedByReservationBuilder (64) – добавленная услуга при формировании состава путевки,</br> |
| − | *** ''' | + | BaseChanged (128) – базовая измененная услуга,</br> |
| − | *** ''' | + | HotelAdditionalPayment (256) – доплата на отель</br> |
| − | *** ''' | + | **** '''IsHooded *''' – признак скрытая услуга |
| − | *** ''' | + | **** '''IsNotCalculated *''' – признак не рассчитываемая услуга |
| − | *** ''' | + | **** '''BeginDateTimeString *''' – дата и время начала услуги |
| − | *** ''' | + | **** '''EndDateTimeString *''' – дата и время окончания услуги |
| − | *** ''' | + | **** '''TemplateId *''' – порядок расположения шаблона услуги в внутри самой услуги в программе тура |
| − | *** ''' | + | [[Файл: Ea_491.png|600px|индекс шаблона услуги]]</br> |
| − | + | **** '''Cost *''' – цена услуги | |
| − | + | **** '''ByPax *''' – цена за человека | |
| − | *** ''' | + | **** '''QuotaStatus *''' – объект статус квотирования |
| − | *** ''' | + | ***** '''PlacesStatus *''' – статус по квотам (есть места / нет мест / под запрос) |
| − | *** ''' | + | ***** '''FreePlaces *''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. |
| − | *** ''' | + | ***** '''IsFewPlaces *''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. |
| − | *** ''' | + | **** '''Index *''' – индекс услуги |
| − | *** ''' | + | **** '''IsRoute *''' – признак маршрутная услуга (Перелет, автобусный переезд, жд переезд, трансфер, экскурсия) |
| − | *** ''' | + | **** '''ServiceTemplateIndex *''' – индекс шаблона услуги (Порядок расположения услуги в программе тура. Не отображается в программе туров,это просто порядковый номер услуги в путевке) |
| − | *** ''' | + | [[Файл: Ea_490.png|600px|индекс шаблона услуги]]</br> |
| − | *** ''' | + | **** '''RemoteId *''' – информация об услуге во внешней системе |
| − | + | **** '''IsCommission *''' – признак, комиссионная ли услуга | |
| − | *** ''' | + | **** '''BaseFlightsParams *''' – параметры рассчитанных авиаперелетов ''Обязательный параметр, если в путевке есть услуга авиаперелета'' |
| − | *** ''' | + | ***** '''CityArrival *''' – ключ города прибытия прямого перелета |
| − | *** ''' | + | ***** '''FlightCode *''' – ключ прямого авиаперелета |
| − | + | ***** '''TariffKey *''' – ключ тарифа прямого авиаперелета | |
| − | ** ''' | + | ***** '''PartnerId *''' – ключ партнера прямого авиаперелета |
| − | ** ''' | + | ***** '''CityArrival *''' – ключ города прибытия обратного перелета |
| − | ** ''' | + | ***** '''FlightCode *''' – ключ обратного авиаперелета |
| − | ** ''' | + | ***** '''TariffKey *''' – ключ тарифа обратного авиаперелета |
| − | ** ''' | + | ***** '''PartnerId *''' – ключ партнера обратного авиаперелета |
| − | * | + | *** '''TouristNumbersList *''' – массив туристов, привязанных к услуге |
| − | + | ** '''Tourists *''' – массив туристов. Для того, чтобы узнать, какие поля обязательные для туриста, мы можем обратиться к методу [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка настройки отображения полей по туристам (TouristDataSettings)|TouristDataSettings]] по определенной стране. В каждом объекте есть поле '''IsRequired''', которое отвечает за то, будет ли оно обязательным для заполнения или его можно оставить с пустым значением. | |
| − | + | *** '''IsMain *''' – главный турист | |
| − | + | *** '''Number *''' – порядковый номер туриста | |
| − | * Возвращаемый результат: | + | *** '''AgeType *''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант) |
| − | ** '''IsValid''' – признак валидности путевки | + | *** '''MaleFemaleSex *''' – пол (0 – мужской, 1 – женский) |
| − | ** '''ErrorMessage''' – сообщение об ошибке, если есть | + | *** '''FirstName *''' – имя (лат) |
| − | ** '''CalculatedReservation''' – объект рассчитанной путевки | + | *** '''LastName *''' – фамилия (лат) |
| − | *** '''TourKey''' – ключ тура | + | *** '''Patronymic *''' – отчество (лат) |
| − | *** '''BeginDate''' – дата начала тура | + | *** '''FirstNameRus *''' – имя (рус) |
| − | *** '''Duration''' – продолжительность путевки в днях | + | *** '''LastNameRus *''' – фамилия (рус) |
| − | *** '''Currency''' – код валюты тура | + | *** '''PatronymicRus *''' – отчество (рус) |
| − | *** '''CalculatedServicesPrice''' – сумма обязательных услуг, входящих в состав тура | + | *** '''InternationalPassportSeries *''' – серия загранпаспорта |
| − | *** '''ChangedPrice''' – сумма, на которую изменилась итоговая стоимость '''TotalPrice''' в результате добавления обязательных и дополнительных услуг | + | *** '''InternationalPassportNumber *''' – номер загранпаспорта |
| − | *** '''Price''' – итоговая стоимость тура для агентства, рассчитывается как стоимость обязательных услуг, входящих в состав тура + стоимость обязательных услуг, не входящих в состав тура + стоимость дополнительных услуг - партнерская комиссия (в валюте тура) | + | *** '''InternationalPassportDateOfIssue *''' – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''TotalPrice''' – итоговая стоимость тура для туриста, рассчитывается как стоимость обязательных услуг, входящих в состав тура + стоимость обязательных услуг, не входящих в состав тура + стоимость дополнительных услуг (в валюте тура) | + | *** '''InternationalPassportDateOfIssueString *''' – дата выдачи загранпаспорта в строке (DD.MM.YYYY) |
| − | *** '''IsDiscountIsPercent''' – признак, в процентах ли дается партнерская комиссия или в y.e. | + | *** '''InternationalPassportDateOfExpiry *''' – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''NationalChangedPrice''' – сумма, на которую изменилась итоговая стоимость '''TotalPrice''' в результате добавления обязательных и дополнительных услуг (в национальной валюте) | + | *** '''InternationalPassportDateOfExpiryString *''' – дата окончания действия загранпаспорта в строке (DD.MM.YYYY) |
| − | *** '''NationalTotalDiscount''' – партнерская комиссия агентству (в национальной валюте) | + | *** '''internationalPassportByWhom *''' – кем выдан загранпаспорт |
| − | *** '''NationalTotalPrice''' – итоговая стоимость тура для туриста, рассчитывается как стоимость обязательных услуг, входящих в состав тура + стоимость обязательных услуг, не входящих в состав тура + стоимость дополнительных услуг (в национальной валюте) | + | *** '''PassportSeries *''' – серия паспорта |
| − | *** '''NatinoalCalculatedServicesPrice''' – сумма обязательных услуг, входящих в состав тура (в национальной валюте) | + | *** '''PassportNumber *''' – номер паспорта |
| − | *** '''NationalPrice''' – итоговая стоимость тура для агентства, рассчитывается как стоимость обязательных услуг, входящих в состав тура + стоимость обязательных услуг, не входящих в состав тура + стоимость дополнительных услуг - партнерская комиссия (в национальной валюте) | + | *** '''PassportDateOfIssue *''' – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''Discount''' – партнерская комиссия агентству (в процентах или y.e.) | + | *** '''PassportDateOfIssueString *''' – дата выдачи паспорта строковом формате (DD.MM.YYYY) |
| − | *** '''TotalDiscount''' – партнерская комиссия агентству (в валюте тура) | + | *** '''PassportByWhom *''' – кем выдан паспорт |
| − | *** '''ServiceTourists''' – массив услуг, входящих в тур | + | *** '''Citizenship *''' – название страны |
| − | **** '''ServiceType''' – тип услуги | + | *** '''Phone *''' – телефон |
| − | **** '''Day''' – день предоставления | + | *** '''Email *''' – e-mail |
| − | **** '''DurationInNight''' – продолжительность в ночах | + | *** '''BirthDay *''' – дата рождения (YYYY-MM-DDThh:mm:ssz) |
| − | **** '''Time''' – время начала услуги | + | *** '''BirthDayString *''' – дата рождения в строковом формате (DD.MM.YYYY) |
| − | **** '''Name''' – полное описание услуги | + | *** '''BirthPlace *''' – место рождения |
| + | *** '''CitizenID *''' – гражданство | ||
| + | *** '''Age *''' – количество полных лет на момент окончания тура | ||
| + | ** '''Day *''' – день (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''Day2 *''' – дня (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''Days *''' – дней (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''Night *''' – ночь (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''Night2 *''' – ночи (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''Nights *''' – ночей (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''adultsCountOverServiceLimit *''' – Количество взрослых туристов превышает лимит услуги (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''at *''' – на (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''incorrectChildrenInf *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''DiscountCardId *''' – ID основания для скидки (дисконтной карты) полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка основания для скидки (CheckCauseDiscount)|CheckCauseDiscount]] ''Может быть с пустым значением'' | ||
| + | ** '''PromocodeId *''' – ID промокода полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка промокода (CheckPromocode)|CheckPromocode]] ''Может быть с пустым значением'' | ||
| + | |||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''IsValid''' – признак валидности путевки | ||
| + | ** '''ErrorMessage''' – сообщение об ошибке, если есть | ||
| + | ** '''CalculatedReservation''' – объект рассчитанной путевки | ||
| + | *** '''TourKey''' – ключ тура | ||
| + | *** '''BeginDate''' – дата начала тура | ||
| + | *** '''Duration''' – продолжительность путевки в днях | ||
| + | *** '''Currency''' – код валюты тура | ||
| + | *** '''CalculatedServicesPrice''' – сумма обязательных услуг, входящих в состав тура | ||
| + | *** '''ChangedPrice''' – сумма, на которую изменилась итоговая стоимость '''TotalPrice''' в результате добавления обязательных и дополнительных услуг | ||
| + | *** '''Price''' – итоговая стоимость тура для агентства, рассчитывается как стоимость обязательных услуг, входящих в состав тура + стоимость обязательных услуг, не входящих в состав тура + стоимость дополнительных услуг - партнерская комиссия (в валюте тура) | ||
| + | *** '''TotalPrice''' – итоговая стоимость тура для туриста, рассчитывается как стоимость обязательных услуг, входящих в состав тура + стоимость обязательных услуг, не входящих в состав тура + стоимость дополнительных услуг (в валюте тура) | ||
| + | *** '''IsDiscountIsPercent''' – признак, в процентах ли дается партнерская комиссия или в y.e. | ||
| + | *** '''NationalChangedPrice''' – сумма, на которую изменилась итоговая стоимость '''TotalPrice''' в результате добавления обязательных и дополнительных услуг (в национальной валюте) | ||
| + | *** '''NationalTotalDiscount''' – партнерская комиссия агентству (в национальной валюте) | ||
| + | *** '''NationalTotalPrice''' – итоговая стоимость тура для туриста, рассчитывается как стоимость обязательных услуг, входящих в состав тура + стоимость обязательных услуг, не входящих в состав тура + стоимость дополнительных услуг (в национальной валюте) | ||
| + | *** '''NatinoalCalculatedServicesPrice''' – сумма обязательных услуг, входящих в состав тура (в национальной валюте) | ||
| + | *** '''NationalPrice''' – итоговая стоимость тура для агентства, рассчитывается как стоимость обязательных услуг, входящих в состав тура + стоимость обязательных услуг, не входящих в состав тура + стоимость дополнительных услуг - партнерская комиссия (в национальной валюте) | ||
| + | *** '''Discount''' – партнерская комиссия агентству (в процентах или y.e.) | ||
| + | *** '''TotalDiscount''' – партнерская комиссия агентству (в валюте тура) | ||
| + | *** '''ServiceTourists''' – массив услуг, входящих в тур | ||
| + | **** '''ServiceType''' – тип услуги | ||
| + | **** '''Day''' – день предоставления | ||
| + | **** '''DurationInNight''' – продолжительность в ночах | ||
| + | **** '''Time''' – время начала услуги | ||
| + | **** '''Name''' – полное описание услуги | ||
**** '''TouristCount''' – количество туристов на услуге | **** '''TouristCount''' – количество туристов на услуге | ||
**** '''Attributes''' – битовая маска атрибутов | **** '''Attributes''' – битовая маска атрибутов | ||
| Строка 6399: | Строка 6700: | ||
** '''DurationInNights''' – продолжительность тура в ночах | ** '''DurationInNights''' – продолжительность тура в ночах | ||
** '''NationalCurrency''' – код национальной валюты | ** '''NationalCurrency''' – код национальной валюты | ||
| + | ** '''PromoDiscount''' – числовое значение скидки полученное после ввода промокода, либо дисконтной карты | ||
| + | ** '''PromoTotalDiscount''' – значение скидки в валюте тура | ||
| + | ** '''PromoNationalDiscount''' – значение скидки в национальной валюте | ||
| + | ** '''PromoIsDiscountPercent''' – обозначение типа скидки в процентах. Значение может быть: | ||
| + | ***'''true''' – скидка по промокоду, либо дисконтной карты предоставляется в процентах | ||
| + | *** '''false''' – скидка по промокоду, либо дисконтной карты предоставляется в фиксированном значении, согласно валюте тура | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
| + | |||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 6405: | Строка 6714: | ||
Вызов метода CalculateReservation | Вызов метода CalculateReservation | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | POST http://localhost:9000/TourSearchOwin/CalculateReservation? HTTP/1.1 | + | POST http://localhost:9000/TourSearchOwin/CalculateReservation?nodeId=2147483647 HTTP/1.1 |
Content-Type: application/json | Content-Type: application/json | ||
| Строка 6579: | Строка 6888: | ||
"at": "на", | "at": "на", | ||
"incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)" | "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)" | ||
| + | "PromocodeId":"", | ||
| + | "DiscountCardId":"95" | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 6603: | Строка 6914: | ||
"Discount": 0.0, | "Discount": 0.0, | ||
"TotalDiscount": 0.0, | "TotalDiscount": 0.0, | ||
| + | "PromoDiscount": 50.0, | ||
| + | "PromoTotalDiscount": 10.0, | ||
| + | "PromoNationalDiscount": 10.0, | ||
| + | "PromoIsDiscountPercent": true, | ||
"ServiceTourists": [{ | "ServiceTourists": [{ | ||
"ServiceType": 1, | "ServiceType": 1, | ||
| Строка 6658: | Строка 6973: | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** PUT .../TourSearchOwin/CreateReservation/1? | + | ** PUT .../TourSearchOwin/CreateReservation/1?nodeId=2147483647 |
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| Строка 6665: | Строка 6981: | ||
* Принимаемые параметры PUT запроса: | * Принимаемые параметры PUT запроса: | ||
| − | ** '''TourProgramId''' – ключ турпрограммы | + | ** '''TourProgramId *''' – ключ турпрограммы |
| − | ** '''BeginDate''' – дата начала тура (YYYY-MM-DDThh:mm:ss) | + | ** '''BeginDate *''' – дата начала тура (YYYY-MM-DDThh:mm:ss) |
| − | ** '''Duration''' – продолжительность тура | + | ** '''Duration *''' – продолжительность тура |
| − | ** '''Currency''' – код валюты | + | ** '''Currency *''' – код валюты |
| − | ** '''Services''' – массив услуг | + | ** '''Services *''' – массив услуг |
| − | *** '''Service''' – объект услуги (отель/круиз, авиаперелет, трансфер или др.) | + | *** '''Service *''' – объект услуги (отель/круиз, авиаперелет, трансфер или др.) |
| − | **** '''ServiceType''' – тип услуги (поле ''sv_key'' из таблицы ''service'') | + | **** '''ServiceType *''' – тип услуги (поле ''sv_key'' из таблицы ''service'') |
| − | **** '''Code''' – код услуги | + | **** '''Code *''' – код услуги |
| − | **** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги | + | **** '''SubCode1 *''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги |
| − | **** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги | + | **** '''SubCode2 *''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги |
| − | **** '''Packet''' – ключ пакета услуги | + | **** '''Packet *''' – ключ пакета услуги |
| − | **** '''Partner''' – ключ партнера услуги | + | **** '''Partner *''' – ключ партнера услуги |
| − | **** '''Day''' – день предоставления услуги | + | **** '''Day *''' – день предоставления услуги |
| − | **** '''DurationInNight''' – продолжительность услуги в ночах | + | **** '''DurationInNight *''' – продолжительность услуги в ночах |
| − | **** '''City''' – ключ города | + | **** '''City *''' – ключ города |
| − | **** '''Country''' – страна услуги | + | **** '''Country *''' – страна услуги |
| − | **** '''Attributes''' – битовая маска атрибутов услуг | + | **** '''Attributes *''' – битовая маска атрибутов услуг |
| − | **** '''IsRemovable''' – (не обрабатывается) | + | **** '''IsRemovable *''' – (не обрабатывается) |
| − | **** '''Type''' – тип услуги в путевке (базовая дополнительная) | + | **** '''Type *''' – тип услуги в путевке (базовая дополнительная) |
| − | **** '''IsHooded''' – признак скрытая услуга | + | **** '''IsHooded *''' – признак скрытая услуга |
| − | **** '''IsNotCalculated''' – признак не рассчитываемая услуга | + | **** '''IsNotCalculated *''' – признак не рассчитываемая услуга |
| − | **** '''BeginDateTimeString''' – дата и время начала услуги | + | **** '''BeginDateTimeString *''' – дата и время начала услуги |
| − | **** '''EndDateTimeString''' – дата и время окончания услуги | + | **** '''EndDateTimeString *''' – дата и время окончания услуги |
| − | **** '''TemplateId''' – шаблон услуги | + | **** '''TemplateId *''' – шаблон услуги |
| − | **** '''Cost''' – цена услуги | + | **** '''Cost *''' – цена услуги |
| − | **** '''ByPax''' – цена за человека | + | **** '''ByPax *''' – цена за человека |
| − | **** '''QuotaStatus''' – объект статус квотирования | + | **** '''QuotaStatus *''' – объект статус квотирования |
| − | ***** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ***** '''PlacesStatus *''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
| − | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | + | ***** '''FreePlaces *''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. |
| − | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | + | ***** '''IsFewPlaces *''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. |
| − | **** '''Index''' – индекс услуги | + | **** '''Index *''' – индекс услуги |
| − | **** '''IsRoute''' – признак маршрутная услуга | + | **** '''IsRoute *''' – признак маршрутная услуга |
| − | **** '''ServiceTemplateIndex''' – индекс шаблона услуги | + | **** '''ServiceTemplateIndex *''' – индекс шаблона услуги |
| − | **** '''RemoteId''' – информация об услуге во внешний системе | + | **** '''RemoteId *''' – информация об услуге во внешний системе |
| − | **** '''IsCommission''' – признак, комиссионная ли услуга | + | **** '''IsCommission *''' – признак, комиссионная ли услуга |
| − | **** '''BaseFlightsParams''' – параметры рассчитанных авиаперелетов | + | **** '''BaseFlightsParams *''' – параметры рассчитанных авиаперелетов ''Обязательный параметр, если в путевке есть услуга авиаперелета'' |
| − | ***** '''CityArrival''' – ключ города прибытия прямого перелета | + | ***** '''CityArrival *''' – ключ города прибытия прямого перелета |
| − | ***** '''FlightCode''' – ключ прямого авиаперелета | + | ***** '''FlightCode *''' – ключ прямого авиаперелета |
| − | ***** '''TariffKey''' – ключ тарифа прямого авиаперелета | + | ***** '''TariffKey *''' – ключ тарифа прямого авиаперелета |
| − | ***** '''PartnerId''' – ключ партнера прямого авиаперелета | + | ***** '''PartnerId *''' – ключ партнера прямого авиаперелета |
| − | ***** '''CityArrival''' – ключ города прибытия обратного перелета | + | ***** '''CityArrival *''' – ключ города прибытия обратного перелета |
| − | ***** '''FlightCode''' – ключ обратного авиаперелета | + | ***** '''FlightCode *''' – ключ обратного авиаперелета |
| − | ***** '''TariffKey''' – ключ тарифа обратного авиаперелета | + | ***** '''TariffKey *''' – ключ тарифа обратного авиаперелета |
| − | ***** '''PartnerId''' – ключ партнера обратного авиаперелета | + | ***** '''PartnerId *''' – ключ партнера обратного авиаперелета |
| − | *** '''TouristNumbersList''' – массив туристов, привязанных к услуге | + | *** '''TouristNumbersList *''' – массив туристов, привязанных к услуге |
| − | ** '''Tourists''' – массив туристов | + | ** '''Tourists *''' – массив туристов. Для того, чтобы узнать, какие поля обязательные для туриста, мы можем обратиться к методу [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка настройки отображения полей по туристам (TouristDataSettings)|TouristDataSettings]] по определенной стране. В каждом объекте есть поле '''IsRequired''', которое отвечает за то, будет ли оно обязательным для заполнения или его можно оставить с пустым значением. |
| − | + | *** '''IsMain *''' – главный турист | |
| − | + | *** '''Number *''' – порядковый номер туриста | |
| − | *** ''' | + | *** '''AgeType *''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант) |
| − | *** ''' | + | *** '''MaleFemaleSex *''' – пол (0 – мужской, 1 – женский) |
| − | *** ''' | + | *** '''FirstName *''' – имя (лат) |
| − | *** ''' | + | *** '''LastName *''' – фамилия (лат) |
| − | *** ''' | + | *** '''Patronymic *''' – отчество (лат) |
| − | *** ''' | + | *** '''FirstNameRus *''' – имя (рус) |
| − | *** ''' | + | *** '''LastNameRus *''' – фамилия (рус) |
| − | *** ''' | + | *** '''PatronymicRus *''' – отчество (рус) |
| − | *** ''' | + | *** '''InternationalPassportSeries *''' – серия загранпаспорта |
| − | *** ''' | + | *** '''InternationalPassportNumber *''' – номер загранпаспорта |
| − | *** ''' | + | *** '''InternationalPassportDateOfIssue *''' – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** ''' | + | *** '''InternationalPassportDateOfIssueString *''' – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY) |
| − | + | *** '''InternationalPassportDateOfExpiry *''' – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz) | |
| − | *** ''' | + | *** '''InternationalPassportDateOfExpiryString *''' – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY) |
| − | *** ''' | + | *** '''internationalPassportByWhom *''' – кем выдан загранпаспорт |
| − | *** ''' | + | *** '''PassportSeries *''' – серия паспорта |
| − | + | *** '''PassportNumber *''' – номер паспорта | |
| − | *** ''' | + | *** '''PassportDateOfIssue *''' – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** ''' | + | *** '''PassportDateOfIssueString *''' – дата выдачи паспорта в строковом формате (DD.MM.YYYY) |
| − | *** ''' | + | *** '''PassportByWhom *''' – кем выдан паспорт |
| − | *** ''' | + | *** '''Citizenship *''' – название страны |
| − | + | *** '''Phone *''' – телефон | |
| − | *** ''' | + | *** '''Email *''' – e-mail |
| − | *** ''' | + | *** '''BirthDay *''' – дата рождения (YYYY-MM-DDThh:mm:ssz) |
| − | *** ''' | + | *** '''BirthDayString *''' – дата рождения в строковом формате (DD.MM.YYYY) |
| − | + | *** '''BirthPlace *''' – место рождения | |
| − | *** ''' | + | *** '''CitizenID *''' – ID туриста (задается в карточке постоянного клиента) |
| − | *** ''' | + | *** '''Age *''' – количество полных лет на момент окончания тура |
| − | ** ''' | + | ** '''BranchId *''' – ключ филиала бронирования (начиная с релиза 15.3). Если не передан, то филиал бронирования берется из менеджера по умолчанию либо из пользователя, создавшего тур. ''Может быть с пустым значением'' |
| − | + | ** '''OwnerId *''' – ключ ведущего менеджера (начиная с релиза 15.3). Если 0, то берется по умолчанию. Если по умолчанию не указан, то берется создатель тура. ''Может быть с пустым значением'' | |
| − | + | ** '''Day *''' – день (перевод) ''Может быть с пустым значением'' | |
| − | ** ''' | + | ** '''Day2 *''' – дня (перевод) ''Может быть с пустым значением'' |
| − | + | ** '''Days *''' – дней (перевод) ''Может быть с пустым значением'' | |
| − | ** ''' | + | ** '''Night *''' – ночь (перевод) ''Может быть с пустым значением'' |
| − | + | ** '''Night2 *''' – ночи (перевод) ''Может быть с пустым значением'' | |
| − | ** ''' | + | ** '''Nights *''' – ночей (перевод) ''Может быть с пустым значением'' |
| − | ** ''' | + | ** '''adultsCountOverServiceLimit *''' – Количество взрослых туристов превышает лимит услуги (перевод) ''Может быть с пустым значением'' |
| − | ** ''' | + | ** '''incorrectChildrenInf *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) ''Может быть с пустым значением'' |
| − | + | ** '''OrderInfoUrl''' – Адрес окна путевки в личном кабинете | |
| − | * Возвращаемый результат: | + | ** '''DogovorComment''' – Комментарий к путевке (сохраняется как сообщения в истории путевки) ''Может быть с пустым значением'' |
| − | ** '''Reservation''' – объект путевки | + | ** '''DiscountCardId ''' – ID основания для скидки (дисконтной карты) полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка основания для скидки (CheckCauseDiscount)|CheckCauseDiscount]] ''Может быть с пустым значением'' |
| + | ** '''PromocodeId ''' – ID промокода полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка промокода (CheckPromocode)|CheckPromocode]] ''Может быть с пустым значением'' | ||
| + | |||
| + | |||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Reservation''' – объект путевки | ||
*** '''$id''' – внутренний идентификатор для установки связей между сущностями, | *** '''$id''' – внутренний идентификатор для установки связей между сущностями, | ||
*** '''Code''' – код путевки | *** '''Code''' – код путевки | ||
| Строка 6772: | Строка 7094: | ||
*** '''Discount''' – величина скидки на одного человека | *** '''Discount''' – величина скидки на одного человека | ||
*** '''DiscountSum''' – абсолютная величина скидки | *** '''DiscountSum''' – абсолютная величина скидки | ||
| − | *** '''SORCode''' – ключ статус путевки | + | *** '''SORCode''' – ключ статус путевки, возможные значения: 0-в работе, 1-не определён, 2-аннулирован, 3-wait лист, 7-ок. |
*** '''CrDate''' – дата и время создания путевки | *** '''CrDate''' – дата и время создания путевки | ||
*** '''Rate''' – код валюты путевки | *** '''Rate''' – код валюты путевки | ||
| Строка 6825: | Строка 7147: | ||
**** '''SubCode2''' – ключ доп.описания 2 услуги | **** '''SubCode2''' – ключ доп.описания 2 услуги | ||
**** '''Men''' – количество человек, пользующихся услугой по путевке | **** '''Men''' – количество человек, пользующихся услугой по путевке | ||
| − | **** '''Days''' – количество дней услуги | + | **** '''Days''' – количество дней услуги (для услуги Отель ("SVKey": 3) количество ночей услуги) |
**** '''CNKey''' – ключ страны услуги | **** '''CNKey''' – ключ страны услуги | ||
**** '''CTKey''' – ключ города услуги | **** '''CTKey''' – ключ города услуги | ||
| Строка 6835: | Строка 7157: | ||
**** '''Control''' – ключ статуса услуги (ссылка на таблицу Controls), | **** '''Control''' – ключ статуса услуги (ссылка на таблицу Controls), | ||
**** '''Attribute''' – атрибут услуги | **** '''Attribute''' – атрибут услуги | ||
| − | **** '''DateBeg''' – дата начала действия услуги | + | **** '''DateBeg''' – дата начала действия услуги в днях (для отеля - в ночах) |
| − | **** '''DateEnd''' – дата окончания действия услуги | + | **** '''DateEnd''' – дата окончания действия услуги в днях (для отеля - в ночах) |
**** '''Discount''' – размер скидки по услуге | **** '''Discount''' – размер скидки по услуге | ||
**** '''Comment''' – комментарий к услуге | **** '''Comment''' – комментарий к услуге | ||
| Строка 6923: | Строка 7245: | ||
Вызов метода CreateReservation | Вызов метода CreateReservation | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | PUT http://localhost:9000/TourSearchOwin/CreateReservation/1? HTTP/1.1 | + | PUT http://localhost:9000/TourSearchOwin/CreateReservation/1?nodeId=2147483647 HTTP/1.1 |
Content-Type: application/json | Content-Type: application/json | ||
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA- | Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA- | ||
| Строка 7099: | Строка 7421: | ||
"Phone": "", | "Phone": "", | ||
"Email": "", | "Email": "", | ||
| − | "BirthDay": " | + | "BirthDay": "1980-01-01T00:00:00.000Z", |
"BirthDayString": "01.01.1980", | "BirthDayString": "01.01.1980", | ||
"BirthPlace": "Москва", | "BirthPlace": "Москва", | ||
| Строка 7130: | Строка 7452: | ||
"Phone": "", | "Phone": "", | ||
"Email": "", | "Email": "", | ||
| − | "BirthDay": " | + | "BirthDay": "1981-01-01T00:00:00.000Z", |
"BirthDayString": "01.01.1981", | "BirthDayString": "01.01.1981", | ||
"BirthPlace": "Москва", | "BirthPlace": "Москва", | ||
| Строка 7147: | Строка 7469: | ||
"Nights": "ночей", | "Nights": "ночей", | ||
"adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги", | "adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги", | ||
| − | "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)" | + | "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)", |
| + | "OrderInfoUrl": "http://localhost/MasterWeb/OrderInfo.aspx", | ||
| + | "DogovorComment": "" | ||
| + | "PromocodeId":"301", | ||
| + | "DiscountCardId":"" | ||
| + | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 7567: | Строка 7894: | ||
</div></div><br /> | </div></div><br /> | ||
| − | === | + | ===Бронирование путевки с упрощенными входными параметрами (CreateReservationExternalSystem)=== |
| − | Метод | + | Метод производит бронирование путевки с упрощенными входными параметрами. <br /> |
| + | При бронировании проверяется корректность заполнения обязательных полей туристов. В случае, если обязательные поля не заполнены, возвращается ошибка с сообщением, бронь не создается. | ||
| + | Данный метод разработан индивидуально для одного из клиентов. В обычном режиме нужно пользоваться всегда методом [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Бронирование путевки (CreateReservation)|Бронирование путевки (CreateReservation)]] | ||
| − | * Формат запроса: | + | *Формат запроса: |
| − | ** | + | ** PUT .../TourSearchOwin/CreateReservationExternalSystem/1? |
| − | * Принимаемые параметры headers ( '''*''' – обязательный): | + | *Принимаемые параметры headers ('''*''' – обязательный): |
** '''Content-Type *''' – application/json | ** '''Content-Type *''' – application/json | ||
| − | ** '''Authorization *''' – token_type + access_token (полученные из метода .../TourSearchOwin/Token?) | + | ** '''Authorization *''' – token_type + access_token (полученные из метода .../TourSearchOwin/Token?) |
| − | * Принимаемые параметры | + | *Принимаемые параметры PUT запроса: |
| − | ** ''' | + | ** '''BeginDate *''' – дата начала тура (YYYY-MM-DDThh:mm) |
| − | + | ** '''Duration *''' – продолжительность тура в днях | |
| − | + | ** '''Currency *''' – код валюты | |
| − | ** ''' | + | ** '''TourProgramId''' – идентификатор турпрограммы (необязательный, по умолчанию 0) |
| − | ** ''' | + | ** '''Services *''' – массив услуг, в данном случае будет содержать только услугу отель |
| − | ** ''' | + | *** '''Code *''' – идентификатор отеля во внешней системе, сравниваются с промежуточной базой данных статического адаптера [[Megatec Integration Service:Индивидуальные особенности адаптеров TravelLine (Россия)|MIS TravelLine (Россия)]] |
| − | ** ''' | + | *** '''Cost *''' – стоимость проживания за весь период |
| − | ** ''' | + | *** '''Packet *''' – идентификатор пакета, сравниваются с промежуточной базой данных статического адаптера [[Megatec Integration Service:Индивидуальные особенности адаптеров TravelLine (Россия)|MIS TravelLine (Россия)]] |
| − | * | + | *** '''SubCode1 *''' – идентификатор типа номера, сравниваются с промежуточной базой данных статического адаптера [[Megatec Integration Service:Индивидуальные особенности адаптеров TravelLine (Россия)|MIS TravelLine (Россия)]] |
| − | ** ''' | + | ** '''Tourists *''' – массив туристов |
| − | + | *** '''FirstName *''' – имя туриста | |
| − | * | + | *** '''LastName *''' – фамилия туриста |
| − | ** ''' | + | *** '''Patronymic *''' – отчество туриста |
| − | + | *** '''MaleFemaleSex *''' – пол (0 – мужской, 1 – женский) | |
| − | ** ''' | + | *** '''AgeType *''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант) |
| − | + | *** '''Age *''' – количество полных лет на момент окончания тура | |
| − | ** ''' | + | *** '''Phone *''' – телефон (обязателен для первого туриста) |
| − | + | *** '''Email *''' – e-mail (обязателен для первого туриста) | |
| − | * | + | ** '''DogovorComment *''' – комментарий к путевке (ограничение 254 символа, при превышении разбивается на части) |
| − | ** ''' | + | [[Файл:Am 063.png|left]]<br /> |
| − | + | 1. В случае, если в теле запроса указываются ID несинхронизированных отелей, пакета, типа номера, то создаются фиктивные данные, которые необходимо изменить в услуге экрана ''Путевка'' (пример: Отель – ApiHotel, пакет – ApiPacket, тип номера – ApiRoom(ApiRoomCategory),ApiAccmdmen)<br /> | |
| − | * | + | 2. Тип питания всегда будет создаваться фиктивный и его необходимо изменить в услуге экрана ''Путевка'' (пример: Тип питания – ApiPansion)<br /><br /><br /> |
| − | ** ''' | + | *Возвращаемый результат: |
| − | + | ** '''Reservation''' – объект путевки | |
| − | ** | + | *** '''$id''' – внутренний идентификатор для установки связей между сущностями, |
| − | * | + | *** '''Code''' – код путевки |
| − | |||
| − | * | ||
| − | ** ''' | ||
| − | |||
| − | |||
| − | ** ''' | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | * | ||
| − | ** ''' | ||
| − | |||
| − | * | ||
| − | ** ''' | ||
| − | |||
| − | * | ||
| − | ** ''' | ||
| − | |||
| − | ** ''' | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | * | ||
| − | |||
| − | |||
| − | |||
| − | *** '''$id''' – внутренний идентификатор для установки связей между сущностями | ||
| − | *** ''' | ||
*** '''TurDate''' – дата начала тура | *** '''TurDate''' – дата начала тура | ||
| − | *** ''' | + | *** '''TRKey''' – идентификатор тура |
| − | *** ''' | + | *** '''CNKey''' – идентификатор страны |
| − | *** ''' | + | *** '''CTKey''' – идентификатор города |
| − | *** ''' | + | *** '''NMen''' – количество туристов |
| − | *** ''' | + | *** '''Price''' – стоимость путевки |
| − | *** ''' | + | *** '''Payed''' – оплаченная сумма |
| − | *** ''' | + | *** '''NDay''' – продолжительность тура в днях |
| − | *** ''' | + | *** '''MainMan''' – контактное лицо |
| − | *** ''' | + | *** '''MainManPhone''' – телефон контактного лица |
| − | *** ''' | + | *** '''MainManAddress''' – адрес лица, заключившего договор |
| − | *** ''' | + | *** '''MainManPassport''' – паспортные данные контактного лица |
| − | *** ''' | + | *** '''PartnerKey''' – идентификатор партнера |
| − | *** ''' | + | *** '''Operator''' – оператор, оформивший путевку |
| − | *** ''' | + | *** '''Discount''' – размер скидки |
| − | *** ''' | + | *** '''DiscountSum''' – сумма скидки |
| − | + | *** '''SORCode''' – ключ статус путевки, возможные значения: 0-в работе, 1-не определён, 2-аннулирован, 3-wait лист, 7-ок. | |
| − | *** ''' | + | *** '''CrDate''' – дата создания путевки |
| − | *** ''' | + | *** '''Rate''' – код валюты путевки |
| − | *** ''' | + | *** '''Advertise''' – идентификатор рекламного источника |
| − | *** ''' | + | *** '''Locked''' – статус блокировки путевки |
| − | *** ''' | + | *** '''CauseDisc''' – код основания скидки |
| − | *** ''' | + | *** '''PPaymentDate''' – дата предоплаты |
| − | *** ''' | + | *** '''PaymentDate''' – максимальная дата полной оплаты |
| − | *** ''' | + | *** '''Procent''' – предоплата в % |
| − | *** ''' | + | *** '''TurDateBfrAnnul''' – дата начала тура до аннуляции |
| − | *** ''' | + | *** '''ARKey''' – идентификатор причины аннуляции |
| − | *** ''' | + | *** '''Key''' – идентификатор договора |
| − | *** ''' | + | *** '''CodePartner''' – идентификатор партнера |
| − | *** ''' | + | *** '''FilialKey''' – идентификатор филиала |
| − | *** ''' | + | *** '''IsOutDoc''' – статус выдачи документов |
| − | *** ''' | + | *** '''Notes''' – примечания |
| − | *** ''' | + | *** '''DiscSumBfrAnn''' – сумма скидки перед аннуляцией |
| − | *** ''' | + | *** '''PriceBfrAnn''' – цена путевки перед аннуляцией |
| − | + | *** '''RazmerP''' – размер предоплаты | |
| − | ** ''' | + | *** '''LeadDepartment''' – идентификатор ведущего отдела |
| − | *** ''' | + | *** '''MainManEmail''' – e-mail контактного лица |
| − | *** ''' | + | *** '''MainManComment''' – комментарий контактного лица |
| − | *** ''' | + | *** '''DupUserKey''' – идентификатор представителя агента |
| − | *** ''' | + | *** '''BTKey''' – идентификатор системы бронирования |
| − | *** ''' | + | *** '''ConfirmedDate''' – дата подтверждения путевки |
| − | *** ''' | + | *** '''PrtDogKey''' – идентификатор договора партнера |
| − | *** ''' | + | *** '''CTDepartureKey''' – идентификатор города отправления |
| − | *** ''' | + | *** '''PDTType''' – тип договора путевки |
| − | *** ''' | + | *** '''NationalCurrencyPrice''' – цена в национальной валюте |
| − | *** ''' | + | *** '''NationalCurrencyDiscountSum''' – сумма скидки в национальной валюте |
| − | *** ''' | + | *** '''NationalCurrencyPayed''' – оплаченная сумма в национальной валюте |
| − | *** ''' | + | *** '''CurrencyKey''' – идентификатор валюты |
| − | *** ''' | + | *** '''CurrencyRate''' – курс валюты |
| − | *** ''' | + | *** '''ClientKey''' – идентификатор клиента |
| − | *** ''' | + | *** '''AgencyPrice''' – цена для агентства |
| − | *** ''' | + | *** '''Partner''' – информация о партнере |
| − | *** ''' | + | **** '''$id''' – идентификатор записи |
| − | *** ''' | + | **** '''Key''' – идентификатор партнера |
| − | *** ''' | + | **** '''FullName''' – полное название партнера |
| − | *** ''' | + | **** '''Name''' – краткое название партнера |
| − | *** ''' | + | *** '''Services''' – список услуг |
| − | *** ''' | + | **** '''$id''' – внутренний идентификатор для установки связей между сущностями |
| − | *** ''' | + | **** '''DGCod''' – номер путевки |
| − | *** ''' | + | **** '''TurDate''' – дата начала тура |
| − | *** ''' | + | **** '''Key''' – ключ услуги |
| − | *** ''' | + | **** '''PaketKey''' – ключ пакета |
| − | *** ''' | + | **** '''TRKey''' – клют тура |
| − | *** ''' | + | **** '''SVKey''' – ключ типа услуги |
| − | *** ''' | + | **** '''Name''' – наименование услуги |
| − | *** ''' | + | **** '''Day''' – порядковый номер дня тура, в который предоставляется услуга |
| − | *** ''' | + | **** '''Code''' – ключ кода услуги |
| − | *** ''' | + | **** '''SubCode1''' – ключ доп.описания 1 услуги |
| − | *** ''' | + | **** '''SubCode2''' – ключ доп.описания 2 услуги |
| − | *** ''' | + | **** '''Men''' – количество человек, пользующихся услугой по путевке |
| − | + | **** '''Days''' – количество дней услуги | |
| − | *** ''' | + | **** '''CNKey''' – ключ страны услуги |
| − | *** ''' | + | **** '''CTKey''' – ключ города услуги |
| − | *** ''' | + | **** '''PartnerKey''' – ключ партнера, предоставляющего услугу |
| − | *** ''' | + | **** '''Brutto''' – стоимость услуги брутто |
| − | *** ''' | + | **** '''Wait''' – признак услуги ''Снимать квоту при бронировании'' |
| − | *** ''' | + | **** '''Warning''' – неиспользуемое поле |
| − | *** ''' | + | **** '''TimeBeg''' – поле используется для сортировки услуг в путевке |
| − | + | **** '''Control''' – ключ статуса услуги (ссылка на таблицу Controls), | |
| − | ** ''' | + | **** '''Attribute''' – атрибут услуги |
| − | *** ''' | + | **** '''DateBeg''' – дата начала действия услуги |
| − | *** ''' | + | **** '''DateEnd''' – дата окончания действия услуги |
| − | *** ''' | + | **** '''Discount''' – размер скидки по услуге |
| − | *** ''' | + | **** '''Comment''' – комментарий к услуге |
| − | *** ''' | + | **** '''DGKey''' – ключ договора, |
| − | *** ''' | + | **** '''Blocked''' – признак блокировки услуги (''0'' – не блокирована, ''1'' – блокирована) |
| − | *** ''' | + | **** '''NameLat''' – наименование услуги (латинский) |
| − | *** ''' | + | **** '''Long''' – продолжительность тура в днях |
| − | *** ''' | + | **** '''TRFId''' – ключ тарифа |
| − | *** ''' | + | **** '''CreateDate''' – дата создания услуги в путевке |
| − | **** ''' | + | **** '''CalculatePriceDate''' – дата расчета цены |
| − | ** ''' | + | **** '''ShowOrder''' – порядок при сортировке |
| − | *** ''' | + | **** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id'' |
| − | *** ''' | + | ***** '''$ref''' – связь с внутренним идентификатором ''$id'' |
| − | *** ''' | + | *** '''Turists''' – список туристов |
| − | + | **** '''$id''' – внутренний идентификатор для установки связей между сущностями | |
| − | *** ''' | + | **** '''DGCod''' – номер путевки, к которому привязан турист |
| − | + | **** '''Key''' – ключ туриста | |
| + | **** '''TurDate''' – дата начала тура | ||
| + | **** '''NameRus''' – фамилия туриста (русское) | ||
| + | **** '''NameLat''' – фамилия туриста (латинское) | ||
| + | **** '''ShortName''' – имя и отчество туриста в формате ''И.О.'' | ||
| + | **** '''Sex''' – пол туриста (признак): ''Null'' или ''0'' – Муж; ''1'' – Жен; ''2'' – Child (ребенок); ''3'' – Infant (младенец) | ||
| + | **** '''FNameRus''' – имя туриста (русское) | ||
| + | **** '''FNameLat''' – имя туриста (латинское) | ||
| + | **** '''SNameRus''' – отчество туриста (русское) | ||
| + | **** '''SNameLat''' – отчество туриста (латинское) | ||
| + | **** '''BirthDay''' – дата рождения туриста | ||
| + | **** '''BirthCountry''' – страна рождения туриста | ||
| + | **** '''BirthCity''' – город рождения туриста | ||
| + | **** '''Citizen''' – гражданство туриста | ||
| + | **** '''PostIndex''' – почтовый индекс | ||
| + | **** '''PostCity''' – адрес проживания туриста (город) | ||
| + | **** '''PostStreet''' – адрес проживания туриста (улица) | ||
| + | **** '''PostBild''' – адрес проживания туриста (номер дома) | ||
| + | **** '''PostFlat''' – адрес проживания туриста (номер квартиры) | ||
| + | **** '''Phone''' – номер телефона туриста | ||
| + | **** '''PhoneCode''' – код телефона туриста | ||
| + | **** '''PasportType''' – серия заграничного паспорта | ||
| + | **** '''PasportNum''' – номер заграничного паспорта | ||
| + | **** '''PasportDate''' – дата выдачи заграничного паспорта | ||
| + | **** '''PasportDateEnd''' – дата окончания срока действия заграничного паспорта | ||
| + | **** '''PasportByWhom''' – кем выдан заграничный паспорт | ||
| + | **** '''Place''' – место рождения | ||
| + | **** '''IsAnketa''' – выдавалась ли анкета | ||
| + | **** '''PaspRuser''' – серия общегражданского паспорта | ||
| + | **** '''PaspRuNum''' – номер общегражданского паспорта | ||
| + | **** '''PaspRuDate''' – дата выдачи общегражданского паспорта | ||
| + | **** '''PaspRuByWhom''' – кем выдан общегражданский паспорт | ||
| + | **** '''ClientId''' – ключ в таблице клиентов | ||
| + | **** '''IsMain''' – признак главного туриста по путевке | ||
| + | **** '''DGKey''' – ключ кутевки | ||
| + | **** '''RealSex''' – реальный пол туриста: ''Null'' или ''0'' – Муж; ''1'' – Жен | ||
| + | **** '''Email''' – е-mail туриста | ||
| + | **** '''EnableSmsNotifications''' – согласен получать уведомления по СМС | ||
| + | **** '''CitizenId''' – идентификатор туриста | ||
| + | **** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id'' | ||
| + | ***** '''$ref''' – связь с внутренним идентификатором ''$id'' | ||
| + | *** '''TuristServices''' – коллекция связей туриста с услугой | ||
| + | **** '''$id''' – внутренний идентификатор для установки связей между сущностями | ||
| + | **** '''TUKey''' – ключ туриста | ||
| + | **** '''DLKey''' – ключ услуги | ||
| + | **** '''NumDoc''' – номер документа (авиабилета) | ||
| + | **** '''NumRoom''' – номер комнаты (каюты) | ||
| + | **** '''Seat''' – номер места (в номере отеля, каюты) или место в транспорте | ||
| + | **** '''Area''' – зона (палуба) в отеле, круизе | ||
| + | **** '''DocDate''' – дата документа (авиабелета) | ||
| + | **** '''Key''' – первичный ключ связки | ||
| + | **** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id'' | ||
| + | ***** '''$ref''' – связь с внутренним идентификатором ''$id'' | ||
| + | *** '''DogovorMessages''' – сообщение по путевке покупателю | ||
| + | **** '''id''' – внутренний идентификатор для установки связей между сущностями | ||
| + | **** '''Date''' – дата создание сообщения | ||
| + | **** '''Text''' – текст сообщения | ||
| + | **** '''Remark''' – код сообщения | ||
| + | **** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id'' | ||
| + | ***** '''$ref''' – связь с внутренним идентификатором ''$id'' | ||
| + | ** '''ValidationResultSummary''' – объект статус результата бронирования | ||
| + | *** '''ValidationResult''' – объект с ошибками и флагом валидности путевки | ||
| + | **** '''Errors''' – массив ошибок бронирования | ||
| + | **** '''IsValid''' – признак валидности бронирования | ||
| + | *** '''ValidationResultAttributes''' – атрибут результата бронирования | ||
| + | |||
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width: | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:1200px">Пример запроса |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| − | Вызов метода | + | Вызов метода CreateReservationExternalSystem |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | + | PUT http://localhost:9000/TourSearchOwin/CreateReservationExternalSystem/1? | |
Content-Type: application/json | Content-Type: application/json | ||
| − | Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl- | + | Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAObjhnb1q7EOpYmBFLH9T4AAAAAACAAAAAAAQZgAAAAEAACAAAACi2OgeCgKM2UVjnd-_y7WK9Tp90D7uiyDzOpQNy2PUrQAAAAAOgAAAAAIAACAAAABBwMz7N- |
| − | + | lZMFS0R9BqYXrNkVEL0ORSd2IpZ95J78cBHDABAABoZQCpqlwdHPASxLfQj-sRBv1S-kkGRC3g6wMlF_UjzI4PGIv_x5SdDwdIqoveXSyxshY88VidzcMRZjk2HJFjUJrcG_e8FfKpzUZUuFvq1dASzSm83JNgdqNaPjnjqSpffBEfD-zA1L77wMgN9_d70lVTh8PlxXkx_fxQI3D0Dcymqz-Q7ymsWM9HMDlmQ2BllmjBisc8UaYLT3VvmAvI1uDL08FFT1Rx9LFMi2B36OGZQgUoona0KuY48x5Xhbx5yeLAKdvqqEDViG35z7H8_gVU8T5TR08PDJvxvAe24lV1rBGidGNZqPL4meuSrh1hUl9j2vmFfhdGIyBhz7B9Z1Q2iDNfL6j-YfNEcuj8SGTMm5pfObAdcjH5CKI4T- | |
| − | + | QWcvE6HUfRs0UzAf2eF1bXQAAAAGMNV8S-M1ckRYpUCIVNPCLWi4g9HR0oIIJIRCMpu3hAJPM1xlNSaaYabu-il-PwoOthHujA2PZXtXj9-o3wpEA | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{ | { | ||
| − | " | + | "BeginDate": "2024-12-16T14:00", |
| − | " | + | "Duration": 4, |
| − | " | + | "Currency": "рб", |
| − | " | + | "TourProgramId": 0, |
| − | " | + | "Services": [ |
| − | + | { | |
| − | + | "Code": "8746", | |
| − | + | "Cost": 9900, | |
| − | + | "Packet": "359679", | |
| − | " | + | "SubCode1": "356847" |
| − | + | } | |
| − | + | ], | |
| − | + | "Tourists": [ | |
| − | + | { | |
| − | + | "FirstName": "Иван", | |
| − | + | "LastName": "Иванов", | |
| − | + | "Patronymic": "Иванович", | |
| − | + | "MaleFemaleSex": 0, | |
| − | + | "AgeType": 0, | |
| − | + | "Age": 18, | |
| − | + | "Phone": "79876543232", | |
| − | + | "Email": "emailqwerty123@example.com" | |
| − | + | }, | |
| − | + | { | |
| − | + | "FirstName": "Петр", | |
| − | " | + | "LastName": "Петров", |
| − | + | "Patronymic": "Петрович", | |
| − | + | "MaleFemaleSex": 0, | |
| − | + | "AgeType": 0, | |
| − | + | "Age": 18 | |
| − | + | } | |
| − | + | ], | |
| − | + | "DogovorComment": "Это тестовая путевка. Клиент указывает детали отеля и размещения." | |
| − | " | + | } |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:1200px">Пример ответа | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Возвращаемый результат метода CreateReservationExternalSystem (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | { | |
| − | + | "Reservation": { | |
| − | + | "$id": 1, | |
| − | + | "Code": "RU27010037", | |
| − | + | "TurDate": "2025-01-27T12:00:00", | |
| − | + | "TRKey": 0, | |
| − | + | "CNKey": 460, | |
| − | + | "CTKey": 1, | |
| − | + | "NMen": 2, | |
| − | " | + | "Price": 9900.0, |
| − | " | + | "Payed": 0.0, |
| − | " | + | "NDay": 4, |
| − | " | + | "MainMan": "Тестовый Представитель", |
| − | + | "MainManPhone": "+79139992222", | |
| − | + | "MainManAddress": "", | |
| − | + | "MainManPassport": "11111 2222222222222", | |
| − | + | "PartnerKey": 12667, | |
| − | + | "Operator": "Allservises A.A.", | |
| − | + | "Discount": 17.0, | |
| − | + | "DiscountSum": 0.0, | |
| − | + | "SORCode": 0, | |
| − | + | "CrDate": "2025-01-24T17:26:17.25", | |
| − | + | "Rate": "рб", | |
| − | + | "Advertise": 0, | |
| − | + | "Locked": null, | |
| − | + | "CauseDisc": 0, | |
| − | + | "PPaymentDate": null, | |
| − | + | "PaymentDate": "2025-01-26T00:00:00", | |
| − | + | "Procent": 1, | |
| − | + | "TurDateBfrAnnul": null, | |
| − | + | "ARKey": 0, | |
| − | + | "Key": 54010, | |
| − | + | "CodePartner": null, | |
| − | + | "FilialKey": 12850, | |
| − | + | "IsOutDoc": 0, | |
| − | + | "Notes": null, | |
| − | + | "DiscSumBfrAnn": null, | |
| − | + | "PriceBfrAnn": null, | |
| − | + | "RazmerP": 10.0, | |
| − | + | "LeadDepartment": 0, | |
| − | + | "MainManEmail": "test@megatec.ru", | |
| − | + | "MainManComment": "", | |
| − | + | "DupUserKey": 333, | |
| − | + | "BTKey": 1, | |
| − | + | "ConfirmedDate": null, | |
| − | " | + | "PrtDogKey": 1335, |
| − | " | + | "CTDepartureKey": 0, |
| − | " | + | "PDTType": 0, |
| − | " | + | "NationalCurrencyPrice": null, |
| − | + | "NationalCurrencyDiscountSum": null, | |
| − | " | + | "NationalCurrencyPayed": null, |
| − | + | "CurrencyKey": null, | |
| − | + | "CurrencyRate": null, | |
| − | + | "ClientKey": null, | |
| − | + | "AgencyPrice": 0.0, | |
| − | + | "Partner": { | |
| − | + | "$id": 2, | |
| − | + | "Key": 12667, | |
| − | + | "FullName": "Партнер-покупатель (полное название)", | |
| − | + | "Name": "Партнер-покупатель122" | |
| − | + | }, | |
| − | + | "Services": [ | |
| − | + | { | |
| − | + | "$id": 3, | |
| − | + | "DGCod": "RU27010037", | |
| − | + | "TurDate": "2025-01-27T12:00:00", | |
| − | + | "Key": 250570, | |
| − | + | "PaketKey": 2043, | |
| − | + | "TRKey": 0, | |
| − | + | "SVKey": 3, | |
| − | + | "Name": "HOTEL::Москва/ApiHotel-,3 ночи/ApiRoom(ApiRoomCategory),ApiAccmdmen/ApiPansion ApiPansion", | |
| − | + | "Day": 1, | |
| − | + | "Code": 341264, | |
| − | + | "SubCode1": 1552918, | |
| − | + | "SubCode2": 1812, | |
| − | + | "Men": 2, | |
| − | + | "Days": 3, | |
| − | + | "CNKey": 460, | |
| − | + | "CTKey": 1, | |
| − | + | "PartnerKey": 0, | |
| − | + | "Brutto": 9900.0, | |
| − | + | "Wait": null, | |
| − | + | "Warning": 0, | |
| − | + | "TimeBeg": "1899-01-01T00:00:00", | |
| − | + | "Control": 1, | |
| − | + | "Attribute": 65695, | |
| − | + | "DateBeg": "2025-01-27T00:00:00", | |
| − | + | "DateEnd": "2025-01-29T00:00:00", | |
| − | + | "Discount": 0.0, | |
| − | + | "Comment": null, | |
| − | + | "DGKey": 54010, | |
| − | + | "Blocked": null, | |
| − | } | + | "NameLat": "HOTEL::Москва/ApiHotel-,3 ночи/ApiRoom(ApiRoomCategory),ApiAccmdmen/ApiPansion ApiPansion", |
| − | + | "Long": 4, | |
| − | + | "TRFId": 0, | |
| − | + | "CreateDate": "2025-01-24T17:26:17.25", | |
| − | + | "CalculatePriceDate": "2025-01-24T17:26:17.25", | |
| − | + | "ShowOrder": 1, | |
| − | + | "Connections": [ | |
| − | + | { | |
| − | + | "$ref": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | ], | |
| − | + | "Turists": [ | |
| − | + | { | |
| − | + | "$id": 4, | |
| − | + | "DGCod": "RU27010037", | |
| − | + | "Key": 120806, | |
| − | + | "TurDate": "2025-01-27T12:00:00", | |
| − | + | "NameRus": "Иванов", | |
| − | + | "NameLat": "Иванов", | |
| − | + | "ShortName": "И.И.", | |
| − | + | "Sex": 0, | |
| − | + | "FNameRus": "Иван", | |
| − | + | "FNameLat": "Иван", | |
| − | + | "SNameRus": "Иванович", | |
| − | + | "SNameLat": "Иванович", | |
| − | + | "BirthDay": "2007-01-24T00:00:00", | |
| − | + | "BirthCountry": null, | |
| − | + | "BirthCity": null, | |
| − | + | "Citizen": null, | |
| − | + | "PostIndex": null, | |
| − | + | "PostCity": null, | |
| − | + | "PostStreet": null, | |
| − | + | "PostBild": null, | |
| − | + | "PostFlat": null, | |
| − | + | "Phone": "79876543232", | |
| − | + | "PhoneCode": null, | |
| − | + | "PasportType": "", | |
| − | + | "PasportNum": "", | |
| − | + | "PasportDate": null, | |
| − | + | "PasportDateEnd": null, | |
| − | + | "PasportByWhom": null, | |
| − | + | "Place": null, | |
| − | + | "IsAnketa": null, | |
| − | + | "PaspRuser": "", | |
| − | + | "PaspRuNum": "", | |
| − | + | "PaspRuDate": null, | |
| − | + | "PaspRuByWhom": "", | |
| − | + | "ClientId": null, | |
| − | + | "IsMain": 1, | |
| − | + | "DGKey": 54010, | |
| − | + | "RealSex": 0, | |
| − | + | "Email": "emailqwerty123@example.com", | |
| − | + | "EnableSmsNotifications": 0, | |
| − | + | "CitizenId": "", | |
| − | + | "Connections": [ | |
| − | + | { | |
| − | + | "$ref": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | { | |
| − | + | "$id": 5, | |
| − | + | "DGCod": "RU27010037", | |
| − | + | "Key": 120805, | |
| − | + | "TurDate": "2025-01-27T12:00:00", | |
| − | + | "NameRus": "Петров", | |
| − | + | "NameLat": "Петров", | |
| − | + | "ShortName": "П.П.", | |
| − | + | "Sex": 0, | |
| − | + | "FNameRus": "Петр", | |
| − | + | "FNameLat": "Петр", | |
| − | + | "SNameRus": "Петрович", | |
| − | + | "SNameLat": "Петрович", | |
| − | + | "BirthDay": "2007-01-24T00:00:00", | |
| − | + | "BirthCountry": null, | |
| − | + | "BirthCity": null, | |
| − | + | "Citizen": null, | |
| − | + | "PostIndex": null, | |
| − | + | "PostCity": null, | |
| − | + | "PostStreet": null, | |
| − | + | "PostBild": null, | |
| − | + | "PostFlat": null, | |
| − | + | "Phone": null, | |
| − | + | "PhoneCode": null, | |
| − | + | "PasportType": "", | |
| − | + | "PasportNum": "", | |
| − | } | + | "PasportDate": null, |
| − | + | "PasportDateEnd": null, | |
| − | + | "PasportByWhom": null, | |
| − | + | "Place": null, | |
| − | + | "IsAnketa": null, | |
| − | + | "PaspRuser": "", | |
| − | + | "PaspRuNum": "", | |
| − | + | "PaspRuDate": null, | |
| − | + | "PaspRuByWhom": "", | |
| − | + | "ClientId": null, | |
| − | + | "IsMain": 0, | |
| − | + | "DGKey": 54010, | |
| − | + | "RealSex": 0, | |
| − | + | "Email": "", | |
| − | + | "EnableSmsNotifications": 0, | |
| − | " | + | "CitizenId": "", |
| − | + | "Connections": [ | |
| − | + | { | |
| − | + | "$ref": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | ], | |
| − | + | "TuristServices": [ | |
| − | + | { | |
| − | + | "$id": 6, | |
| − | + | "TUKey": 120806, | |
| − | + | "DLKey": 250570, | |
| − | " | + | "NumDoc": null, |
| − | + | "NumRoom": 0, | |
| − | + | "Seat": null, | |
| − | + | "Area": null, | |
| − | + | "DocDate": null, | |
| − | + | "Key": 134191, | |
| − | + | "Connections": [ | |
| − | " | + | { |
| − | " | + | "$ref": 1 |
| − | " | + | }, |
| − | " | + | { |
| − | + | "$ref": 3 | |
| − | + | }, | |
| − | + | { | |
| − | + | "$ref": 4 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | { | |
| − | + | "$id": 7, | |
| − | + | "TUKey": 120805, | |
| − | + | "DLKey": 250570, | |
| − | + | "NumDoc": null, | |
| − | + | "NumRoom": 0, | |
| − | + | "Seat": null, | |
| − | + | "Area": null, | |
| − | + | "DocDate": null, | |
| − | + | "Key": 134190, | |
| − | + | "Connections": [ | |
| − | + | { | |
| − | + | "$ref": 1 | |
| − | + | }, | |
| − | + | { | |
| − | + | "$ref": 3 | |
| − | + | }, | |
| − | + | { | |
| − | + | "$ref": 5 | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | ], | |
| − | + | "DogovorMessages": [ | |
| − | + | { | |
| − | + | "$id": 8, | |
| − | + | "Date": "2025-01-24T17:26:18.26", | |
| − | + | "Text": "Это тестовая путевка", | |
| − | + | "Remark": "от агента", | |
| − | + | "Connections": [ | |
| − | + | { | |
| − | + | "$ref": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "UsedMailService": false, | |
| − | + | "ValidationResultSummary": { | |
| − | + | "ValidationResult": { | |
| − | + | "Errors": [], | |
| − | + | "Warnings": null, | |
| − | + | "States": null, | |
| − | + | "IsValid": true | |
| − | + | }, | |
| − | + | "ValidationResultAttributes": 0 | |
| − | + | } | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Выгрузка информации о путевке (GetReservation)=== | |
| − | + | Метод выводит информацию о бронированной путевке. | |
| − | + | ||
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/GetReservation? | |
| − | + | ||
| − | + | * Принимаемые параметры headers ( '''*''' – обязательный): | |
| − | + | ** '''Content-Type *''' – application/json | |
| − | + | ** '''Authorization *''' – token_type + access_token (полученные из метода .../TourSearchOwin/Token?) | |
| − | + | ||
| − | + | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | |
| − | + | ** '''dgCode *''' – номер путевки: | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''$id''' – внутренний идентификатор для установки связей между сущностями, | |
| − | + | ** '''Code''' – код путевки | |
| − | + | ** '''TurDate''' – дата заезда | |
| − | + | ** '''TRKey''' – ключ тура | |
| − | + | ** '''CNKey''' – ключ страны | |
| − | + | ** '''CTKey''' – ключ города | |
| − | + | ** '''NMen''' – количество туристов по путевке | |
| − | + | ** '''Price''' – стоимость путевки за вычетом скидки (комиссии) | |
| − | + | ** '''Payed''' – оплаченная сумма по путевке | |
| − | + | ** '''NDay''' – продолжительность тура в днях | |
| − | + | ** '''MainMan''' – ФИО лица, заключившего договор | |
| − | + | ** '''MainManPhone''' – номер телефона лица, заключившего договор | |
| − | + | ** '''MainManAddress''' – адрес лица, заключившего договор | |
| − | + | ** '''MainManPassport''' – паспортные данные лица, заключившего договор | |
| − | + | ** '''PartnerKey''' – ключ партнера, оформившего договор | |
| − | + | ** '''Operator''' – ФИО создателя договора | |
| − | + | ** '''Discount''' – величина скидки на одного человека | |
| − | + | ** '''DiscountSum''' – абсолютная величина скидки | |
| − | + | ** '''SORCode''' – ключ статус путевки, возможные значения: 0-в работе, 1-не определён, 2-аннулирован, 3-wait лист, 7-ок. | |
| − | + | ** '''CrDate''' – дата и время создания путевки | |
| − | + | ** '''Rate''' – код валюты путевки | |
| − | + | ** '''Advertise''' – ключ источника рекламы | |
| − | + | ** '''Locked''' – блокировка путевки: ''1'' – если заблокирована | |
| − | + | ** '''CauseDisc''' – ключ основания для скидки | |
| − | + | ** '''PPaymentDate''' – максимальная дата внесения предоплаты | |
| − | + | ** '''PaymentDate''' – максимальная дата полной оплаты | |
| − | + | ** '''Procent''' – информация о предоплате: ''1'' – предоплата в %; ''0'' – предоплата в у.е. | |
| − | + | ** '''TurDateBfrAnnul''' – значение даты заезда до аннуляции путевки (при аннуляции дата заезда заменяется на 31.12.1899) | |
| − | + | ** '''ARKey''' – ключ причины аннуляции путевки | |
| − | + | ** '''Key''' – ключ договора | |
| − | + | ** '''CodePartner''' – значение ключевого поля из таблицы партнеров | |
| − | + | ** '''FilialKey''' – ключ филиала фирмы-владельца, пользователем которого была забронирована путевка | |
| − | + | ** '''IsOutDoc''' – статус выдачи документов | |
| − | + | ** '''Notes''' – сообщение поставщику | |
| − | + | ** '''DiscSumBfrAnn''' – числовое значение скидки перед аннуляцией путевки | |
| − | + | ** '''PriceBfrAnn''' – стоимость путевки перед ее аннуляцией | |
| − | + | ** '''RazmerP''' – размер предоплаты | |
| − | + | ** '''LeadDepartment''' – ключ отдела, ведущего данный тур | |
| − | + | ** '''MainManEmail''' – адрес е-mail из данных лица, заключившего договор | |
| − | + | ** '''MainManComment''' – примечание из данных лица, заключившего договор | |
| − | + | ** '''DupUserKey''' – ключ представителя партнера, которым был оформлен договор | |
| − | + | ** '''BTKey''' – ключ системы бронирования, из которой был оформлен договор | |
| − | + | ** '''ConfirmedDate''' – дата подтверждения путевки покупателю | |
| − | + | ** '''PrtDogKey''' – договор партнера, по которому оформлена путевка | |
| − | + | ** '''CTDepartureKey''' – ключ города начала поездки | |
| − | + | ** '''PDTType''' – тип договора, по которому оформлена путевка | |
| − | + | ** '''NationalCurrencyPrice''' – стоимость путевки в национальной валюте | |
| − | + | ** '''NationalCurrencyDiscountSum''' – значение скидки в национальной валюте | |
| − | + | ** '''NationalCurrencyPayed''' – сумма платежей по путевке, зафиксированная в национальной валюте | |
| − | + | ** '''CurrencyKey''' – ключ национальной валюты путевки | |
| − | + | ** '''CurrencyRate''' – курс национальной валюты путевки | |
| − | + | ** '''ClientKey''' – ключ частника, которым был оформлен договор | |
| − | + | ** '''Partner''' – информация о партнере покупателе, привязанным к путевке | |
| − | + | *** '''$id''' – внутренний идентификатор для установки связей между сущностями | |
| − | + | *** '''Key''' – ключ партнера покумателя | |
| − | + | *** '''FullName''' – полное имя партнера | |
| − | + | *** '''Name''' – имя партнера | |
| − | + | ** '''Services''' – коллекция услуг в данной путевке | |
| − | + | *** '''$id''' – внутренний идентификатор для установки связей между сущностями | |
| − | + | *** '''DGCod''' – номер путевки | |
| − | + | *** '''TurDate''' – дата начала тура | |
| − | + | *** '''Key''' – ключ услуги | |
| − | + | *** '''PaketKey''' – ключ пакета | |
| − | + | *** '''TRKey''' – клют тура | |
| − | + | *** '''SVKey''' – ключ типа услуги | |
| − | + | *** '''Name''' – наименование услуги | |
| − | * | + | *** '''Day''' – порядковый номер дня тура, в который предоставляется услуга |
| − | ** | + | *** '''Code''' – ключ кода услуги |
| − | * | + | *** '''SubCode1''' – ключ доп.описания 1 услуги |
| − | ** ''' | + | *** '''SubCode2''' – ключ доп.описания 2 услуги |
| − | + | *** '''Men''' – количество человек, пользующихся услугой по путевке | |
| − | + | *** '''Days''' – количество дней услуги | |
| − | + | *** '''CNKey''' – ключ страны услуги | |
| − | + | *** '''CTKey''' – ключ города услуги | |
| − | + | *** '''PartnerKey''' – ключ партнера, предоставляющего услугу | |
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | + | *** '''Brutto''' – стоимость услуги брутто |
| − | <div class="mw-collapsible-content"> | + | *** '''Wait''' – признак услуги ''Снимать квоту при бронировании'' |
| − | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | + | *** '''Warning''' – неиспользуемое поле |
| + | *** '''TimeBeg''' – поле используется для сортировки услуг в путевке | ||
| + | *** '''Control''' – ключ статуса услуги (ссылка на таблицу Controls), | ||
| + | *** '''Attribute''' – атрибут услуги | ||
| + | *** '''DateBeg''' – дата начала действия услуги | ||
| + | *** '''DateEnd''' – дата окончания действия услуги | ||
| + | *** '''Discount''' – размер скидки по услуге | ||
| + | *** '''Comment''' – комментарий к услуге | ||
| + | *** '''DGKey''' – ключ договора, | ||
| + | *** '''Blocked''' – признак блокировки услуги (''0'' – не блокирована, ''1'' – блокирована) | ||
| + | *** '''NameLat''' – наименование услуги (латинский) | ||
| + | *** '''Long''' – продолжительность тура в днях | ||
| + | *** '''TRFId''' – ключ тарифа | ||
| + | *** '''CreateDate''' – дата создания услуги в путевке | ||
| + | *** '''CalculatePriceDate''' – дата расчета цены | ||
| + | *** '''ShowOrder''' – порядок при сортировке | ||
| + | *** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id'' | ||
| + | **** '''$ref''' – связь с внутренним идентификатором ''$id'' | ||
| + | ** '''Turists''' – коллекция туристов в данной путевке | ||
| + | *** '''$id''' – внутренний идентификатор для установки связей между сущностями | ||
| + | *** '''DGCod''' – номер путевки, к которому привязан турист | ||
| + | *** '''Key''' – ключ туриста | ||
| + | *** '''TurDate''' – дата начала тура | ||
| + | *** '''NameRus''' – фамилия туриста (русское) | ||
| + | *** '''NameLat''' – фамилия туриста (латинское) | ||
| + | *** '''ShortName''' – имя и отчество туриста в формате ''И.О.'' | ||
| + | *** '''Sex''' – пол туриста (признак): ''Null'' или ''0'' – Муж; ''1'' – Жен; ''2'' – Child (ребенок); ''3'' – Infant (младенец) | ||
| + | *** '''FNameRus''' – имя туриста (русское) | ||
| + | *** '''FNameLat''' – имя туриста (латинское) | ||
| + | *** '''SNameRus''' – отчество туриста (русское) | ||
| + | *** '''SNameLat''' – отчество туриста (латинское) | ||
| + | *** '''BirthDay''' – дата рождения туриста | ||
| + | *** '''BirthCountry''' – страна рождения туриста | ||
| + | *** '''BirthCity''' – город рождения туриста | ||
| + | *** '''Citizen''' – гражданство туриста | ||
| + | *** '''PostIndex''' – почтовый индекс | ||
| + | *** '''PostCity''' – адрес проживания туриста (город) | ||
| + | *** '''PostStreet''' – адрес проживания туриста (улица) | ||
| + | *** '''PostBild''' – адрес проживания туриста (номер дома) | ||
| + | *** '''PostFlat''' – адрес проживания туриста (номер квартиры) | ||
| + | *** '''Phone''' – номер телефона туриста | ||
| + | *** '''PhoneCode''' – код телефона туриста | ||
| + | *** '''PasportType''' – серия заграничного паспорта | ||
| + | *** '''PasportNum''' – номер заграничного паспорта | ||
| + | *** '''PasportDate''' – дата выдачи заграничного паспорта | ||
| + | *** '''PasportDateEnd''' – дата окончания срока действия заграничного паспорта | ||
| + | *** '''PasportByWhom''' – кем выдан заграничный паспорт | ||
| + | *** '''Place''' – место рождения | ||
| + | *** '''IsAnketa''' – выдавалась ли анкета | ||
| + | *** '''PaspRuser''' – серия общегражданского паспорта | ||
| + | *** '''PaspRuNum''' – номер общегражданского паспорта | ||
| + | *** '''PaspRuDate''' – дата выдачи общегражданского паспорта | ||
| + | *** '''PaspRuByWhom''' – кем выдан общегражданский паспорт | ||
| + | *** '''ClientId''' – ключ в таблице клиентов | ||
| + | *** '''IsMain''' – признак главного туриста по путевке | ||
| + | *** '''DGKey''' – ключ кутевки | ||
| + | *** '''RealSex''' – реальный пол туриста: ''Null'' или ''0'' – Муж; ''1'' – Жен | ||
| + | *** '''Email''' – е-mail туриста | ||
| + | *** '''EnableSmsNotifications''' – согласен получать уведомления по СМС | ||
| + | *** '''CitizenId''' – идентификатор туриста | ||
| + | *** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id'' | ||
| + | **** '''$ref''' – связь с внутренним идентификатором ''$id'' | ||
| + | ** '''TuristServices''' – коллекция связей туриста с услугой | ||
| + | *** '''$id''' – внутренний идентификатор для установки связей между сущностями | ||
| + | *** '''TUKey''' – ключ туриста | ||
| + | *** '''DLKey''' – ключ услуги | ||
| + | *** '''NumDoc''' – номер документа (авиабилета) | ||
| + | *** '''NumRoom''' – номер комнаты (каюты) | ||
| + | *** '''Seat''' – номер места (в номере отеля, каюты) или место в транспорте | ||
| + | *** '''Area''' – зона (палуба) в отеле, круизе | ||
| + | *** '''DocDate''' – дата документа (авиабелета) | ||
| + | *** '''Key''' – первичный ключ связки | ||
| + | *** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id'' | ||
| + | **** '''$ref''' – связь с внутренним идентификатором ''$id'' | ||
| + | ** '''DogovorMessages''' – сообщение по путевке покупателю | ||
| + | *** '''id''' – внутренний идентификатор для установки связей между сущностями | ||
| + | *** '''Date''' – дата создание сообщения | ||
| + | *** '''Text''' – текст сообщения | ||
| + | *** '''Remark''' – код сообщения | ||
| + | *** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id'' | ||
| + | **** '''$ref''' – связь с внутренним идентификатором ''$id'' | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
Вызов метода CostOfferDescriptions | Вызов метода CostOfferDescriptions | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | GET http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/GetReservation?dgCode=AU10101003 |
| − | + | Content-Type: application/json | |
| − | + | Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA- | |
| − | + | EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR- | |
| − | + | GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4- | |
| − | + | 9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9- | |
| − | + | CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | Возвращаемый результат метода GetReservation (в формате JSON) | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | " | + | "$id": 1, |
| − | + | "Code": "AU10101003", | |
| − | + | "TurDate": "2021-01-01T00:00:00", | |
| − | + | "TRKey": 100000038, | |
| − | + | "CNKey": 90, | |
| − | + | "CTKey": 35, | |
| − | + | "NMen": 2, | |
| − | " | + | "Price": 877, |
| − | " | + | "Payed": 0, |
| − | + | "NDay": 9, | |
| − | + | "MainMan": "", | |
| − | + | "MainManPhone": "", | |
| − | + | "MainManAddress": "", | |
| − | + | "MainManPassport": "", | |
| − | + | "PartnerKey": 10762, | |
| − | + | "Operator": "Megatec ", | |
| − | + | "Discount": 40, | |
| − | + | "DiscountSum": 80, | |
| − | + | "SORCode": 3, | |
| − | + | "CrDate": "2020-10-12T15:02:29.013", | |
| − | + | "Rate": "$", | |
| − | + | "Advertise": 0, | |
| − | + | "Locked": null, | |
| − | + | "CauseDisc": null, | |
| − | + | "PPaymentDate": null, | |
| − | + | "PaymentDate": "2020-10-14T00:00:00", | |
| − | + | "Procent": 1, | |
| − | + | "TurDateBfrAnnul": null, | |
| − | + | "ARKey": 0, | |
| − | + | "Key": 40335, | |
| − | + | "CodePartner": null, | |
| − | + | "FilialKey": 1, | |
| − | + | "IsOutDoc": 0, | |
| − | + | "Notes": null, | |
| − | + | "DiscSumBfrAnn": null, | |
| − | + | "PriceBfrAnn": null, | |
| − | + | "RazmerP": 0, | |
| − | + | "LeadDepartment": 0, | |
| − | + | "MainManEmail": "test@megatec.ru", | |
| − | + | "MainManComment": "", | |
| − | + | "DupUserKey": 6, | |
| − | + | "BTKey": 1, | |
| − | + | "ConfirmedDate": null, | |
| − | + | "PrtDogKey": 11, | |
| − | + | "CTDepartureKey": 1, | |
| − | + | "PDTType": 0, | |
| − | + | "NationalCurrencyPrice": null, | |
| − | + | "NationalCurrencyDiscountSum": null, | |
| − | + | "NationalCurrencyPayed": null, | |
| − | + | "CurrencyKey": null, | |
| − | + | "CurrencyRate": null, | |
| − | + | "ClientKey": null, | |
| − | + | "Partner": { | |
| − | + | "$id": 2, | |
| − | + | "Key": 10762, | |
| − | + | "FullName": "Агентство", | |
| − | + | "Name": "Агентство" | |
| − | + | }, | |
| − | + | "Services": [{ | |
| − | + | "$id": 3, | |
| − | + | "DGCod": "AU10101003", | |
| − | + | "TurDate": "2021-01-01T00:00:00", | |
| − | + | "Key": 202463, | |
| − | + | "PaketKey": 209, | |
| − | + | "TRKey": 100000038, | |
| − | + | "SVKey": 1, | |
| − | + | "Name": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс", | |
| − | + | "Day": 1, | |
| − | + | "Code": 570, | |
| − | + | "SubCode1": 67, | |
| − | + | "SubCode2": 1, | |
| − | + | "Men": 2, | |
| − | + | "Days": 0, | |
| − | + | "CNKey": 90, | |
| − | + | "CTKey": 35, | |
| − | + | "PartnerKey": 10760, | |
| − | + | "Brutto": 162.2, | |
| − | + | "Wait": null, | |
| − | + | "Warning": 0, | |
| − | + | "TimeBeg": "1899-01-01T14:00:00", | |
| − | + | "Control": 1, | |
| − | + | "Attribute": 65695, | |
| − | + | "DateBeg": "2021-01-01T00:00:00", | |
| − | + | "DateEnd": "2021-01-01T00:00:00", | |
| − | + | "Discount": 14.8, | |
| − | + | "Comment": null, | |
| − | + | "DGKey": 40335, | |
| − | + | "Blocked": null, | |
| − | + | "NameLat": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс", | |
| − | + | "Long": 9, | |
| − | + | "TRFId": 0, | |
| − | + | "CreateDate": "2020-10-12T15:02:29.013", | |
| − | + | "CalculatePriceDate": "2020-10-12T15:02:29.013", | |
| − | + | "ShowOrder": 1, | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "$id": 4, | |
| − | + | "DGCod": "AU10101003", | |
| − | + | "TurDate": "2021-01-01T00:00:00", | |
| − | + | "Key": 202462, | |
| − | + | "PaketKey": 209, | |
| − | + | "TRKey": 100000038, | |
| − | + | "SVKey": 3, | |
| − | + | "Name": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион", | |
| − | + | "Day": 1, | |
| − | + | "Code": 702, | |
| − | + | "SubCode1": 1113, | |
| − | + | "SubCode2": 2, | |
| − | + | "Men": 2, | |
| − | + | "Days": 8, | |
| − | + | "CNKey": 90, | |
| − | + | "CTKey": 35, | |
| − | + | "PartnerKey": 10760, | |
| − | + | "Brutto": 519.6, | |
| − | + | "Wait": null, | |
| − | + | "Warning": 0, | |
| − | + | "TimeBeg": "1899-01-01T16:30:00", | |
| − | + | "Control": 1, | |
| − | + | "Attribute": 65695, | |
| − | + | "DateBeg": "2021-01-01T00:00:00", | |
| − | + | "DateEnd": "2021-01-08T00:00:00", | |
| − | + | "Discount": 47.4, | |
| − | + | "Comment": null, | |
| − | + | "DGKey": 40335, | |
| − | + | "Blocked": null, | |
| − | + | "NameLat": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион", | |
| − | + | "Long": 9, | |
| − | + | "TRFId": 0, | |
| − | + | "CreateDate": "2020-10-12T15:02:29.013", | |
| − | + | "CalculatePriceDate": "2020-10-12T15:02:29.013", | |
| − | + | "ShowOrder": 2, | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "$id": 5, | |
| − | + | "DGCod": "AU10101003", | |
| − | + | "TurDate": "2021-01-01T00:00:00", | |
| − | + | "Key": 202461, | |
| − | + | "PaketKey": 209, | |
| − | + | "TRKey": 100000038, | |
| − | + | "SVKey": 1, | |
| − | + | "Name": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс", | |
| − | + | "Day": 9, | |
| − | + | "Code": 572, | |
| − | + | "SubCode1": 67, | |
| − | + | "SubCode2": 35, | |
| − | + | "Men": 2, | |
| − | + | "Days": 0, | |
| − | + | "CNKey": 460, | |
| − | + | "CTKey": 1, | |
| − | + | "PartnerKey": 10760, | |
| − | + | "Brutto": 195.2, | |
| − | + | "Wait": null, | |
| − | * | + | "Warning": 0, |
| − | + | "TimeBeg": "1899-01-01T14:00:00", | |
| − | + | "Control": 1, | |
| − | + | "Attribute": 65695, | |
| − | + | "DateBeg": "2021-01-09T00:00:00", | |
| − | + | "DateEnd": "2021-01-09T00:00:00", | |
| − | + | "Discount": 17.8, | |
| − | + | "Comment": null, | |
| − | + | "DGKey": 40335, | |
| − | + | "Blocked": null, | |
| − | + | "NameLat": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс", | |
| − | + | "Long": 9, | |
| − | + | "TRFId": 0, | |
| − | + | "CreateDate": "2020-10-12T15:02:29.013", | |
| − | + | "CalculatePriceDate": "2020-10-12T15:02:29.013", | |
| − | + | "ShowOrder": 3, | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | { | + | } |
| − | + | ] | |
| − | + | } | |
| − | + | ], | |
| − | + | "Turists": [{ | |
| − | + | "$id": 6, | |
| − | + | "DGCod": "AU10101003", | |
| − | + | "Key": 88653, | |
| − | + | "TurDate": "2021-01-01T00:00:00", | |
| − | + | "NameRus": "IVANOV", | |
| − | + | "NameLat": "IVANOV", | |
| − | + | "ShortName": "I.", | |
| − | + | "Sex": 0, | |
| − | + | "FNameRus": "IVAN", | |
| − | + | "FNameLat": "IVAN", | |
| − | + | "SNameRus": "", | |
| − | + | "SNameLat": "", | |
| − | + | "BirthDay": "1980-01-01T00:00:00", | |
| − | + | "BirthCountry": null, | |
| − | + | "BirthCity": "Москва", | |
| − | + | "Citizen": "", | |
| − | + | "PostIndex": null, | |
| − | + | "PostCity": null, | |
| − | + | "PostStreet": null, | |
| − | + | "PostBild": null, | |
| − | + | "PostFlat": null, | |
| − | + | "Phone": "", | |
| − | + | "PhoneCode": null, | |
| − | + | "PasportType": "", | |
| − | + | "PasportNum": "", | |
| − | + | "PasportDate": null, | |
| − | + | "PasportDateEnd": null, | |
| − | + | "PasportByWhom": "", | |
| − | + | "Place": null, | |
| − | + | "IsAnketa": null, | |
| − | + | "PaspRuser": "", | |
| − | + | "PaspRuNum": "", | |
| − | + | "PaspRuDate": null, | |
| − | + | "PaspRuByWhom": "", | |
| − | + | "ClientId": null, | |
| − | + | "IsMain": 1, | |
| − | + | "DGKey": 40335, | |
| − | + | "RealSex": 0, | |
| − | + | "Email": "", | |
| − | + | "EnableSmsNotifications": 0, | |
| − | + | "CitizenId": "", | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "$id": 7, | |
| − | + | "DGCod": "AU10101003", | |
| − | + | "Key": 88652, | |
| − | + | "TurDate": "2021-01-01T00:00:00", | |
| − | + | "NameRus": "PETROV", | |
| − | + | "NameLat": "PETROV", | |
| − | + | "ShortName": "P.", | |
| − | + | "Sex": 0, | |
| − | + | "FNameRus": "PETR", | |
| − | + | "FNameLat": "PETR", | |
| − | + | "SNameRus": "", | |
| − | + | "SNameLat": "", | |
| − | + | "BirthDay": "1981-01-01T00:00:00", | |
| − | + | "BirthCountry": null, | |
| − | + | "BirthCity": "Москва", | |
| − | + | "Citizen": "", | |
| − | + | "PostIndex": null, | |
| − | + | "PostCity": null, | |
| − | + | "PostStreet": null, | |
| − | + | "PostBild": null, | |
| − | + | "PostFlat": null, | |
| − | + | "Phone": "", | |
| − | + | "PhoneCode": null, | |
| − | + | "PasportType": "", | |
| − | + | "PasportNum": "", | |
| − | + | "PasportDate": null, | |
| − | + | "PasportDateEnd": null, | |
| − | + | "PasportByWhom": "", | |
| − | + | "Place": null, | |
| − | + | "IsAnketa": null, | |
| − | + | "PaspRuser": "", | |
| − | + | "PaspRuNum": "", | |
| − | + | "PaspRuDate": null, | |
| − | + | "PaspRuByWhom": "", | |
| − | + | "ClientId": null, | |
| − | + | "IsMain": 0, | |
| − | + | "DGKey": 40335, | |
| − | + | "RealSex": 0, | |
| − | + | "Email": "", | |
| − | + | "EnableSmsNotifications": 0, | |
| − | + | "CitizenId": "", | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | ], | |
| − | + | "TuristServices": [{ | |
| − | + | "$id": 8, | |
| − | + | "TUKey": 88653, | |
| − | + | "DLKey": 202463, | |
| − | + | "NumDoc": null, | |
| − | + | "NumRoom": 0, | |
| − | + | "Seat": null, | |
| − | + | "Area": null, | |
| − | + | "DocDate": null, | |
| − | + | "Key": 3770, | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | + | }, { | |
| − | + | "$ref": 3 | |
| − | + | }, { | |
| − | + | "$ref": 6 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "$id": 9, | |
| − | + | "TUKey": 88652, | |
| − | + | "DLKey": 202463, | |
| − | + | "NumDoc": null, | |
| − | + | "NumRoom": 0, | |
| − | + | "Seat": null, | |
| − | + | "Area": null, | |
| − | + | "DocDate": null, | |
| − | + | "Key": 3768, | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | + | }, { | |
| − | + | "$ref": 3 | |
| − | + | }, { | |
| − | + | "$ref": 7 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "$id": 10, | |
| − | + | "TUKey": 88652, | |
| − | + | "DLKey": 202462, | |
| − | + | "NumDoc": null, | |
| − | + | "NumRoom": 0, | |
| − | + | "Seat": null, | |
| − | + | "Area": null, | |
| − | + | "DocDate": null, | |
| − | + | "Key": 3767, | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | + | }, { | |
| − | + | "$ref": 4 | |
| − | + | }, { | |
| − | + | "$ref": 7 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "$id": 11, | |
| − | + | "TUKey": 88653, | |
| − | + | "DLKey": 202462, | |
| − | + | "NumDoc": null, | |
| − | + | "NumRoom": 0, | |
| − | + | "Seat": null, | |
| − | + | "Area": null, | |
| − | + | "DocDate": null, | |
| − | + | "Key": 3771, | |
| − | + | "Connections": [{ | |
| − | + | "$ref": 1 | |
| − | + | }, { | |
| − | + | "$ref": 4 | |
| − | " | + | }, { |
| − | + | "$ref": 6 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "$id": 12, | |
| + | "TUKey": 88653, | ||
| + | "DLKey": 202461, | ||
| + | "NumDoc": null, | ||
| + | "NumRoom": 0, | ||
| + | "Seat": null, | ||
| + | "Area": null, | ||
| + | "DocDate": null, | ||
| + | "Key": 3772, | ||
| + | "Connections": [{ | ||
| + | "$ref": 1 | ||
| + | }, { | ||
| + | "$ref": 5 | ||
| + | }, { | ||
| + | "$ref": 6 | ||
| + | } | ||
| + | ] | ||
| + | }, { | ||
| + | "$id": 13, | ||
| + | "TUKey": 88652, | ||
| + | "DLKey": 202461, | ||
| + | "NumDoc": null, | ||
| + | "NumRoom": 0, | ||
| + | "Seat": null, | ||
| + | "Area": null, | ||
| + | "DocDate": null, | ||
| + | "Key": 3769, | ||
| + | "Connections": [{ | ||
| + | "$ref": 1 | ||
| + | }, { | ||
| + | "$ref": 5 | ||
| + | }, { | ||
| + | "$ref": 7 | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | ], | ||
| + | "DogovorMessages": [{ | ||
| + | "$id": 14, | ||
| + | "Date": "2020-10-09T09:16:39.99", | ||
| + | "Text": "Тайм-лимит забронированного перелета: 14.10.2020 21:59", | ||
| + | "Remark": "TimeLimit", | ||
| + | "Connections": [{ | ||
| + | "$ref": 1 | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 8563: | Строка 9019: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка | + | ===Выгрузка информации о ценовых блоках (CostOfferDescriptions)=== |
| − | Метод | + | Метод принимает на вход ключи ценовых блоков и возвращает, прикреплённое к ним описание. |
* Формат запроса: | * Формат запроса: | ||
** GET .../TourSearchOwin/CostOfferDescriptions? | ** GET .../TourSearchOwin/CostOfferDescriptions? | ||
* Принимаемые параметры ( * – обязательный): | * Принимаемые параметры ( * – обязательный): | ||
| − | ** '''COKeysString | + | ** '''COKeysString''' * – ключи ценовых блоков через запятую |
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** '''IdCostOffer''' – | + | ** '''CostOfferImageInfo''' – коллекция объектов из двух полей: |
| − | ** '''InfoText''' – описание ценового блока | + | *** '''IdCostOffer''' – ключ ценового блока |
| + | *** '''InfoText''' – описание ценового блока | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 8578: | Строка 9035: | ||
Вызов метода CostOfferDescriptions | Вызов метода CostOfferDescriptions | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/CostOfferDescriptions?COKeysString= | + | GET http://localhost:9000/TourSearchOwin/CostOfferDescriptions?COKeysString=15143 |
</syntaxhighlight> | </syntaxhighlight> | ||
Возвращаемый результат метода CostOfferDescriptions (в формате JSON) | Возвращаемый результат метода CostOfferDescriptions (в формате JSON) | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | { | + | [ |
| − | + | { | |
| − | + | "CostOfferImageInfo": { | |
| − | + | "IdCostOffer": 15143, | |
| − | + | "InfoText": "СПО до 01.01.2020" | |
| − | + | }, | |
| − | + | } | |
| − | + | ] | |
| − | |||
| − | |||
| − | |||
| − | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| − | === | + | |
| − | Метод | + | ===Получение капчи (GetCaptcha)=== |
| + | Метод возвращает капчу (используется при регистрации частного лица). | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/GetCaptcha? |
* Принимаемые параметры ( * – обязательный): | * Принимаемые параметры ( * – обязательный): | ||
| − | ** ''' | + | ** '''sessionId''' * – Id сессии |
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** ''' | + | ** '''FileContents''' – файл капчи в бинарном виде |
| + | ** '''ContentType''' – расширение файла (image/jpeg) | ||
| + | ** '''FileDownloadName''' – имя файла | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| − | Вызов метода | + | Вызов метода GetCaptcha |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/GetCaptcha?sessionId=cd5yr3wftltmorphuzwx0krh |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода GetCaptcha (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | " | + | "FileContents": "iVBORw0KGgoAAAANSUhEUgAAALQAAAAyCAYAAAD1JPH3AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA |
| + | xiSURBVHhe7Z1NyE1tF8eNZMZEyUBGEikDAwNFKRSFMsCEMkDyOUG+Hgw8UkiPvHjLq1uRdBsgMVEGxERGGHGPmBkantdvd9Z51n3tdX3ts/c+5+Bfq/ucfa7Ptf5rXWtf1z | ||
| + | 7nntLpdFb8lL+qyqtXry4/f/78H+szLanlYjI+Pv6fsbGx/1qfjZJMTEz8ff369f/x1/q8LfkVdKkFQvOiEt69e9eZMmVKIQ8fPuxeLcNX7vv374WEQN3Xr18Xr58+fdpr58aNG8 | ||
| + | W1UQXzOnXqVG9ug8CLFy8KXd66dat7JR8/fvwo2kFitqTs+/fvOx8+fOheqR/JhLYGDjmFYNeuXSuuWfCVw6iID5rAKJ0xbNmypXgPGdqEdqxRg2/cd+/eLXR56dKl4n2V+UFObI | ||
| + | GEbAkuXrzYs+f9+/e7V+tFMqF9A4dokBSyhZBaToOyKPvcuXM9J+IvY/j8+XPxvg24jjVKCEVh9Cu6DZXLhc/59+7d29Pjhg0bulfrRV8px+8Cy7FGBW4U9iG1XAwh5//69Wvn6N | ||
| + | GjnbVr13Y+fvzYvVov/hC6BdSRrhBBc1Y3gY7CIaSWi2HQzt84oZnUqEW1fuDOt450hXrUhyQaKSQf5dy/ChonNArVOfevjpcvXxYiqCNiUc+9b/CRXGNQuf8gnehPytEH3GgM2n | ||
| + | Jgi+RcI08VtL3809/58+cH4kSCkSJ03Z6PkfU2ZC7aIm9q/gyBILmAOm0QWcBO2LFjxzqrV6/u7Nu3r9W+BY0R2iIeE6w6ySaWT8gIAfpxEtqAcFVv2mJISS0ERGs9F/b/NcH7wa, | ||
| + | "ContentType": "image/jpeg", | ||
| + | "FileDownloadName": "" | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 8623: | Строка 9087: | ||
</div></div><br /> | </div></div><br /> | ||
| − | === | + | ===Проверка капчи (CheckCaptcha)=== |
| − | Метод | + | Метод проверяет введенную капчу (используется при регистрации частного лица). |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/CheckCaptcha? |
* Принимаемые параметры ( * – обязательный): | * Принимаемые параметры ( * – обязательный): | ||
| − | ** ''' | + | ** '''captchaText''' * – текст капчи |
| − | + | ** '''sessionId''' * – Id сессии | |
| − | ** ''' | + | * Возвращаемый результат: |
| − | * Возвращаемый результат | + | ** '''true/false''' – результат проверки (false – капча или Id сессии неверные, true – капча верна) |
| − | ** ''' | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| − | Вызов метода | + | Вызов метода CheckCaptcha |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/CheckCaptcha?captchaText=vf8an&sessionId=cd5yr3wftltmorphuzwx0krh |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода CheckCaptcha (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | + | { | |
| − | + | true | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | + | ===Проверка e-mail (CheckMail)=== |
| + | Метод проверяет e-mail при регистрации частного лица на существование такого же e-mail в базе данных. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/CheckMail? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''mail''' * – e-mail пользователя | ||
| + | * Возвращаемый результат: | ||
| + | ** '''true/false''' – результат проверки (false – пользователь с таким e-mail уже существует, true – пользователь с таким e-mail нет в базе данных) | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| − | Вызов метода | + | Вызов метода CheckMail |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/CheckMail?mail=test@megatec.ru |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода CheckMail (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | + | true | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 8761: | Строка 9138: | ||
</div></div><br /> | </div></div><br /> | ||
| − | === | + | ===Проверка туриста (checkTourist)=== |
| − | Метод | + | Метод служит для получения информации о путевке по номеру путевки и номеру паспорта туриста. |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/checkTourist? |
* Принимаемые параметры ( * – обязательный): | * Принимаемые параметры ( * – обязательный): | ||
| − | ** ''' | + | ** '''dogovorNumber *''' – номер путевки. |
| − | + | ** '''passport *''' – номер паспорта туриста (заграничного или общегражданского). | |
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** ''' | + | ** '''isDogovor''' – '''true''', если путевка найдена по номеру путевки, '''false''', если не найдена. |
| − | *** ''' | + | ** '''isAnnulated''' – '''true''', если путевка аннулирована, '''false''', если не аннулирована. |
| − | *** ''' | + | ** '''dogovorStatus''' – статус путевки |
| − | *** ''' | + | ** '''isPay''' – '''true''', если путевка полностью оплачена, '''false''', если не оплачена или оплачена частично. |
| − | *** ''' | + | ** '''dogovorDateBegin''' – дата начала заезда. |
| − | *** ''' | + | ** '''dogovorDateEnd''' – дата окончания заезда. |
| + | ** '''dogovorDateCreate''' – дата создания путевки. | ||
| + | ** '''isTouristDogovorCreate''' – '''true''', если турист (по номеру паспорта) является главным туристом в путевке. | ||
| + | ** '''services''' – набор услуг в путевке. | ||
| + | *** '''svKey''' – код класса услуги. | ||
| + | *** '''code''' – код услуги. | ||
| + | *** '''subCode1''' – код доп. описания 1 услуги. | ||
| + | *** '''subCode2''' – код доп. описания 2 услуги. | ||
| + | *** '''name''' – название услуги. | ||
| + | ** '''touristInfo''' – информация о главном туристе. | ||
| + | *** '''lastname''' – фамилия туриста (рус). | ||
| + | *** '''firstname''' – имя туриста (рус). | ||
| + | *** '''surname''' – отчество туриста. | ||
| + | *** '''address''' – адрес (индекс, город, улица, дом, квартира). | ||
| + | *** '''postcode''' – индекс. | ||
| + | *** '''city''' – город. | ||
| + | *** '''street''' – улица. | ||
| + | *** '''home''' – дом. | ||
| + | *** '''roomNumber''' – квартира. | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| − | Вызов метода | + | Вызов метода checkTourist |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/ | + | http://localhost:9000/TourSearchOwin/checkTourist?dogovorNumber=AU25120001&passport=1234567 |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода checkTourist (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | + | "isDogovor": true, | |
| − | + | "isAnnulated": false, | |
| − | " | + | "dogovorStatus": "ОК", |
| − | + | "isPay": true, | |
| − | " | + | "dogovorDateBegin": "05.02.2018", |
| − | + | "dogovorDateEnd": "12.02.2018", | |
| − | + | "dogovorDateCreate": "01.02.2018", | |
| − | + | "isTouristDogovorCreate": true, | |
| − | + | "services": [ | |
| − | + | { | |
| − | + | "svKey": "1", | |
| − | + | "code": "1088", | |
| − | + | "subCode1": "147", | |
| − | + | "subCode2": "35", | |
| − | + | "name": "А_П::Вена/Москва/SU2353, VIE-SVO, 18:05-22:40/NSU Экономический класс" | |
| − | + | }, | |
| − | } | + | { |
| − | </syntaxhighlight> | + | "svKey": "3", |
| − | </TD></TR></TABLE> | + | "code": "698", |
| + | "subCode1": "46200", | ||
| + | "subCode2": "1", | ||
| + | "name": "HOTEL::Вена/Graben-1*,5 ночей/DBL(Standart ),2Ad/FB Полный пансион" | ||
| + | }, | ||
| + | { | ||
| + | "svKey": "1", | ||
| + | "code": "1087", | ||
| + | "subCode1": "147", | ||
| + | "subCode2": "1", | ||
| + | "name": "А_П::Москва/Вена/SU2352, SVO-VIE, 16:20-17:05/NSU Экономический класс" | ||
| + | } | ||
| + | ], | ||
| + | "touristInfo": { | ||
| + | "lastname": "Ivanov", | ||
| + | "firstname": "Ivan", | ||
| + | "surname": "Ivanovich", | ||
| + | "address": "123456, г. Москва, ул. Ленина, д. 1, кв. 15", | ||
| + | "postcode": "123456", | ||
| + | "city": "Москва", | ||
| + | "street": "Ленина", | ||
| + | "home": "1", | ||
| + | "roomNumber": "15" | ||
| + | } | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| − | === | + | ===Список значений параметра гражданства (Citizenships)=== |
| − | Метод | + | Метод служит для получения списка значений параметра гражданства. |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/Citizenships? |
* Принимаемые параметры ( * – обязательный): | * Принимаемые параметры ( * – обязательный): | ||
| − | ** ''' | + | ** '''pageSize *''' – размер выдачи |
| − | ** ''' | + | ** '''pageNumber *''' – порядковый номер страницы выдачи |
| − | ** ''' | + | ** '''term *''' – подстрочный фильтр для отбора (пустой по умолчанию) |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** ''' | + | ** '''Key''' – ключ страны |
| + | ** '''Name''' – название гражданства | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| − | Вызов метода | + | Вызов метода Citizenships |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/ | + | http://localhost:9000/TourSearchOwin/Citizenships?pageSize=50&pageNumber=1&term= |
| − | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода Citizenships (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | + | { | |
| − | } | + | "Key": 90, |
| − | </syntaxhighlight> | + | "Name": "Австрия" |
| − | </TD></TR></TABLE> | + | }, |
| − | </div></div><br /> | + | { |
| − | + | "Key": 222, | |
| − | ===Выгрузка | + | "Name": "Англия" |
| − | Метод выгружает | + | }, |
| + | { | ||
| + | "Key": 376, | ||
| + | "Name": "Андорра" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 375, | ||
| + | "Name": "Беларусь" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 3, | ||
| + | "Name": "Бельгия" | ||
| + | } | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Выгрузка постоянного клиента (Client)=== | ||
| + | Метод выгружает постоянного клиента при авторизации частного лица. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/Client? |
* Принимаемые параметры ( * – обязательный): | * Принимаемые параметры ( * – обязательный): | ||
| − | ** ''' | + | ** '''clientId *''' – Id постоянного клиента |
| − | |||
| − | |||
| − | |||
| − | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** ''' | + | ** '''$id''' – внутренний порядковый идентификатор |
| − | ** ''' | + | ** '''CL_KEY''' – ключ справочника постоянные клиенты |
| − | ** ''' | + | ** '''CL_OPERUPDATE''' – ключ менеджера, который последний обновил постоянного клиента |
| − | ** ''' | + | ** '''CL_OPERUPDATE''' – дата обновления постоянного клиента |
| − | ** ''' | + | ** '''CL_PFKEY''' – внутренний ключ |
| − | ** ''' | + | ** '''CL_NAMERUS''' – имя (на русском) |
| − | ** ''' | + | ** '''CL_NAMELAT''' – имя (на латинице) |
| − | *** ''' | + | ** '''CL_SHORTNAME''' – инициалы |
| − | *** ''' | + | ** '''CL_SEX''' – пол |
| − | *** ''' | + | ** '''CL_FNAMERUS''' – фамилия (на русском) |
| − | *** ''' | + | ** '''CL_FNAMELAT''' – фамилия (на латинице) |
| − | *** ''' | + | ** '''CL_SNAMERUS''' – отчество (на русском) |
| − | ** ''' | + | ** '''CL_SNAMELAT''' – отчество (на латинице) |
| − | ** ''' | + | ** '''CL_BIRTHDAY''' – дата рождения |
| − | + | ** '''CL_BIRTHCOUNTRY''' – страна рождения | |
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | + | ** '''CL_BIRTHCITY''' – место рождения (город) |
| − | <div class="mw-collapsible-content"> | + | ** '''CL_CITIZEN''' – гражданство |
| − | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | + | ** '''CL_ADDRESS''' – полный адрес |
| − | Вызов метода | + | ** '''CL_POSTINDEX''' – почтовый индекс |
| − | <syntaxhighlight lang="java" enclose="div"> | + | ** '''CL_POSTCITY''' – город |
| − | http://localhost:9000/TourSearchOwin/ | + | ** '''CL_POSTSTREET''' – улица |
| − | + | ** '''CL_POSTBILD''' – дом | |
| + | ** '''CL_POSTFLAT''' – квартира | ||
| + | ** '''CL_PHONE''' – телефон | ||
| + | ** '''CL_PASPORTSER''' – серия загранпаспорта | ||
| + | ** '''CL_PASPORTNUM''' – номер загранпаспорта | ||
| + | ** '''CL_PASPORTDATE''' – дата выдачи загранпаспорта | ||
| + | ** '''CL_PASPORTDATEEND''' – срок действия загранпаспорта | ||
| + | ** '''CL_PASPORTBYWHOM''' – кем выдан загранпаспорт | ||
| + | ** '''CL_PASPRUSER''' – серия общегражданского паспорта | ||
| + | ** '''CL_PASPRUNUM''' – номер общегражданского паспорта | ||
| + | ** '''CL_PASPRUDATE''' – дата выдачи общегражданского паспорта | ||
| + | ** '''CL_PASPRUBYWHOM''' – кем выдан общегражданский паспорт | ||
| + | ** '''CL_ISMARK''' – профессия | ||
| + | ** '''CL_TYPE''' – примечания | ||
| + | ** '''CL_IMPRESSNOTE''' – общие впечатления | ||
| + | ** '''CL_NOTE''' – особые отметки | ||
| + | ** '''CL_REMARK''' – примечания | ||
| + | ** '''CL_IMPRESSKEY''' – ключ выбранного впечатления | ||
| + | ** '''CL_TITLE1''' – служебные отметки, заголовок 1 | ||
| + | ** '''CL_TITLE2''' – служебные отметки, заголовок 2 | ||
| + | ** '''CL_TITLE3''' – служебные отметки, заголовок 3 | ||
| + | ** '''CL_TITLE4''' – служебные отметки, заголовок 4 | ||
| + | ** '''CL_FUTURE''' – пожелания | ||
| + | ** '''CL_LASTSTAT''' – информация о статистике | ||
| + | ** '''CL_SUMMA''' – сумма по клиенту | ||
| + | ** '''CL_NMENWITH''' – число спутников | ||
| + | ** '''CL_SUMDOGOVOR''' – сумма по путевкам | ||
| + | ** '''CL_NTRIP''' – число поездок | ||
| + | ** '''ROWID''' – внутренний идентификатор | ||
| + | ** '''cl_fax''' – факс | ||
| + | ** '''cl_mail:''' – e-mail | ||
| + | ** '''CL_MINCOST''' – минимальная стоимость поездки | ||
| + | ** '''CL_MAXCOST''' – максимальная стоимость поездки | ||
| + | ** '''CL_RealSex''' – пол | ||
| + | ** '''CL_EnableSmsNotifications''' – признак согласен получать sms-уведомление | ||
| + | ** '''CL_CHECKED''' – оповещения | ||
| + | ** '''CL_Creator''' – создатель постоянного клиента | ||
| + | ** '''CL_CreateDate''' – дата создания постоянного клиента | ||
| + | ** '''CL_Login''' – логин | ||
| + | ** '''CL_Password''' – пароль | ||
| + | ** '''CL_IsOnlineUser''' – является ли постоянный клиент онлайн пользователем | ||
| + | ** '''CL_CitizenID''' – ID гражданства | ||
| + | ** '''CARDS''' – информация о дисконтной карте | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода Client | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | http://localhost:9000/TourSearchOwin/Client?clientId=7314 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода Client (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | " | + | "$id": "1", |
| − | " | + | "CL_KEY": 7314, |
| − | " | + | "CL_OPERUPDATE": 106, |
| − | " | + | "CL_DATEUPDATE": "2021-01-21T11:56:41.287", |
| − | " | + | "CL_PFKEY": 2, |
| − | " | + | "CL_NAMERUS": "Test888", |
| − | " | + | "CL_NAMELAT": "Test888", |
| − | + | "CL_SHORTNAME": "T.", | |
| − | + | "CL_SEX": 0, | |
| − | + | "CL_FNAMERUS": "Test888", | |
| − | + | "CL_FNAMELAT": "Test888", | |
| − | + | "CL_SNAMERUS": "", | |
| − | + | "CL_SNAMELAT": "", | |
| − | + | "CL_BIRTHDAY": null, | |
| − | + | "CL_BIRTHCOUNTRY": "", | |
| − | + | "CL_BIRTHCITY": "", | |
| − | + | "CL_CITIZEN": "Spain", | |
| − | + | "CL_ADDRESS": ", г., ул., д., кв.", | |
| − | + | "CL_POSTINDEX": "", | |
| − | + | "CL_POSTCITY": "", | |
| − | + | "CL_POSTSTREET": "", | |
| − | + | "CL_POSTBILD": "", | |
| − | + | "CL_POSTFLAT": "", | |
| − | + | "CL_PHONE": "65465465", | |
| − | + | "CL_PASPORTSER": "", | |
| − | + | "CL_PASPORTNUM": "", | |
| − | + | "CL_PASPORTDATE": null, | |
| − | + | "CL_PASPORTDATEEND": null, | |
| − | + | "CL_PASPORTBYWHOM": "", | |
| − | + | "CL_PASPRUSER": "", | |
| − | + | "CL_PASPRUNUM": "", | |
| − | + | "CL_PASPRUDATE": null, | |
| − | + | "CL_PASPRUBYWHOM": "", | |
| − | + | "CL_ISMARK": 7, | |
| − | + | "CL_TYPE": 6, | |
| − | + | "CL_IMPRESSNOTE": "7", | |
| − | + | "CL_NOTE": "5", | |
| − | + | "CL_REMARK": "6", | |
| − | + | "CL_IMPRESSKEY": 3, | |
| − | + | "CL_TITLE1": "1", | |
| − | + | "CL_TITLE2": "2", | |
| − | + | "CL_TITLE3": "3", | |
| − | + | "CL_TITLE4": "4", | |
| − | + | "CL_FUTURE": "8", | |
| − | + | "CL_LASTSTAT": null, | |
| − | + | "CL_SUMMA": null, | |
| − | + | "CL_NMENWITH": null, | |
| − | + | "CL_SUMDOGOVOR": null, | |
| − | + | "CL_NTRIP": null, | |
| + | "ROWID": "AAAAAAJBNbw=", | ||
| + | "cl_fax": "", | ||
| + | "cl_mail": "test888@mail.ru", | ||
| + | "CL_MINCOST": null, | ||
| + | "CL_MAXCOST": null, | ||
| + | "CL_RealSex": 0, | ||
| + | "CL_EnableSmsNotifications": 0, | ||
| + | "CL_CHECKED": false, | ||
| + | "CL_Creator": 106, | ||
| + | "CL_CreateDate": "2018-03-06T14:10:27.687", | ||
| + | "CL_Login": "test888@mail.ru", | ||
| + | "CL_Password": "/wjpKpaXhmuTtSaG6xIUtQ==", | ||
| + | "CL_IsOnlineUser": true, | ||
| + | "CL_CitizenID": "", | ||
| + | "CARDS": [] | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Выгрузка описаний ценовых блоков (CostOfferDescriptions)=== | ||
| + | Метод выгружает описания ценовых блоков. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/CostOfferDescriptions? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''COKeysString *''' – ключи ценовых блоков | ||
| + | * Возвращаемый результат: | ||
| + | ** '''IdCostOffer''' – Id ценового блока | ||
| + | ** '''InfoText''' – описание ценового блока | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода CostOfferDescriptions | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | http://localhost:9000/TourSearchOwin/CostOfferDescriptions?COKeysString=16834,16828 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CostOfferDescriptions (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "costOffersImageInformation": [ | ||
{ | { | ||
| − | " | + | "IdCostOffer": 16834, |
| − | " | + | "InfoText": "Информация для онлайна 2" |
| − | |||
| − | |||
| − | |||
}, | }, | ||
{ | { | ||
| − | " | + | "IdCostOffer": 16828, |
| − | " | + | "InfoText": "Информация для онлайна" |
| − | |||
| − | |||
| − | |||
}, | }, | ||
| − | + | ] | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Выгрузка описания по стране (CountryInfo)=== | |
| − | + | Метод выгружает описание по стране. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/CountryInfo? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''countryKey *''' – ключ страны | |
| − | + | * Возвращаемый результат: | |
| − | + | ** '''информация по выбранной стране''' | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода CountryInfo | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/CountryInfo?countryKey=90 | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода CountryInfo (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | { | |
| − | + | "<p>Информация о стране</p>\n" | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Выгрузка картинки по отелю (HotelImages)=== | |
| − | + | Метод выгружает картинку по отелю. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/HotelImages? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''hotelKeys *''' – ключ отеля (можно передать несколько ключей отеля, каждый раз указывая параметр ''hotelKeys''), в этом случае возвращается информация о главном фото отеля | |
| − | + | * либо | |
| − | + | ** '''hotelKey *''' – либо ключ отеля, в этом случае возвращается полная информация о всех фотографиях в отеле | |
| − | + | * Возвращаемый результат (если передан ''hotelKeys''): | |
| − | + | ** '''Name''' – название файла | |
| − | + | ** '''HotelKey''' – ключ отеля | |
| − | + | ** '''InfoExists''' – есть ли информация | |
| − | + | ** '''ImagesCount''' – общее количество картинок по отелю | |
| − | + | * либо (если передан ''hotelKey'') | |
| − | + | ** '''Images''' – объект картинок | |
| − | + | *** '''Key''' – ключ картинки | |
| − | + | *** '''Description''' – описание картинки | |
| − | + | *** '''Priority''' – приоритет | |
| − | + | *** '''Name''' – название файла | |
| − | + | *** '''HotelKey''' – ключ отеля | |
| − | + | *** '''InfoExists''' – есть ли информация | |
| − | + | ** '''Country''' – страна отеля | |
| − | + | ** '''City''' – город отеля | |
| − | + | ** '''Name''' – название отеля | |
| − | + | ** '''HotelCategoryName''' – категория отеля | |
| − | + | ** '''Address''' – адрес отеля | |
| − | + | ** '''Phone''' – телефон | |
| − | + | ** '''Email''' – e-mail | |
| − | + | ** '''Http''' – адрес сайта | |
| − | + | ** '''Description''' – описание отеля | |
| − | + | ** '''InfrastructureHotel''' – инфраструктура отеля | |
| − | + | ** '''RecreationSport''' – развлечения и спорт | |
| − | + | ** '''Beach''' – информация о пляже | |
| − | + | ** '''Healing''' – лечение | |
| − | + | ** '''Excursion''' – экскурсии | |
| − | + | ** '''AdditionalService''' – дополнительные услуги | |
| − | + | ** '''ForChildren''' – для детей | |
| − | + | ** '''AddCost''' – доплаты | |
| − | + | ** '''CheckoutTimeFrom''' – заезд в отель | |
| − | + | ** '''CheckoutTimeTo''' – выезд из отеля | |
| − | + | ** '''Latitude''' – GPS координаты: географическая широта (обрабатывается с релиза 15.6) | |
| − | + | ** '''Longitude''' – GPS координаты: географическая долгота (обрабатывается с релиза 15.6) | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример краткой информации отеля | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода HotelImages | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/HotelImages?hotelKeys=8660&hotelKeys=178 | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода HotelImages (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | [ | |
| − | + | { | |
| − | + | "Name": "Dubai_Emirates_UAE_Skyscrapers_Megapolis_From_564495_2560x1599.jpg", | |
| − | + | "HotelKey": 8660, | |
| − | + | "InfoExists": true | |
| + | }, | ||
| + | { | ||
| + | "Name": "Spain_Resorts_Houses_Tenerife_Canary_Islands_Pools_527022_1280x853.jpg", | ||
| + | "HotelKey": 178, | ||
| + | "InfoExists": true | ||
| + | } | ||
| + | ] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример детальной информации отеля | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| − | Вызов метода | + | Вызов метода HotelImages |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/ | + | http://localhost:9000/TourSearchOwin/HotelImages?hotelKey=178 |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода HotelImages (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | [ | + | { |
| − | + | "Images": [ | |
| − | + | { | |
| − | + | "Key": 2619, | |
| − | + | "Description": "", | |
| − | + | "Priority": 1, | |
| − | + | "Name": "Spain_Resorts_Houses_Tenerife_Canary_Islands_Pools_527022_1280x853.jpg", | |
| − | + | "HotelKey": 178, | |
| − | + | "InfoExists": false | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 2620, | |
| − | + | "Description": "", | |
| − | + | "Priority": 2, | |
| − | + | "Name": "stock-photo-luxury-bedrooms-with-flare-light-559774297.jpg", | |
| − | + | "HotelKey": 178, | |
| − | + | "InfoExists": false | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 2621, | |
| − | + | "Description": "", | |
| − | + | "Priority": 3, | |
| − | + | "Name": "USA_Houses_Skyscrapers_Evening_Manhattan_New_York_562768_2560x1440.jpg", | |
| − | + | "HotelKey": 178, | |
| − | + | "InfoExists": false | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 2622, | |
| − | + | "Description": "", | |
| − | + | "Priority": 4, | |
| − | + | "Name": "Winter_Mountains_Forests_Slovakia_Tatra_mountains_555815_6000x4000.jpg", | |
| − | + | "HotelKey": 178, | |
| − | + | "InfoExists": false | |
| − | + | } | |
| − | + | ], | |
| − | + | "Country": "Австрия", | |
| − | + | "City": "Вена", | |
| − | + | "Name": "Ananas", | |
| − | + | "HotelCategoryName": "5+++*", | |
| − | + | "Address": "Вена, Австрия", | |
| − | + | "Phone": "(+43/1) 54620043", | |
| − | + | "Email": "", | |
| − | + | "Http": "https://www.booking.com/hotel/ru/dd1-2ddegd1-2ddegn.ru.html?aid=318615;label=New_Russian_RU_UK_21458017585-iiDMr3ISp%2AxxmWbPbGNx0QS99511367185%3Apl%3Ata%3Ap1%3Ap2%3Aac%3Aap%3Aneg%3Afi2132702086%3Atidsa-302962658775%3Alp9061012%3Ali%3Adec%3Adm;sid=fc5ecc", | |
| − | + | "Description": "<p>Расположен на улице Рихте Вензел ВВВ93-95 (р-он №5). В отеле 537 номеров, отель имеет свой гараж, сауну, тренажерный зал, кабельное телевидение. В каждом номере: телевизор, телефон, душ, туалет.</p>", | |
| − | + | "InfrastructureHotel": "<p>Ифраструктура отеля</p>", | |
| − | + | "RecreationSport": "<p>Развлечение и спорт</p>", | |
| − | + | "Beach": "<p>Ифраструктура отеля</p>", | |
| − | + | "Healing": "<p>Лечение</p>", | |
| − | + | "Excursion": "<p>Экскурсии</p>", | |
| − | + | "AdditionalService": "<p>Дополнительные услуги</p>", | |
| − | + | "ForChildren": "<p>Для детей</p>", | |
| − | + | "AddCost": "<p>Доплата</p>", | |
| − | + | "CheckoutTimeFrom": "12:00", | |
| − | + | "CheckoutTimeTo": "14:30", | |
| − | + | "Latitude": "12.788397°", | |
| − | + | "Longitude": "36.348986°" | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ====Отображение картинки в браузере (GetImage)==== | |
| − | + | Данный метод реализован не на API, а внутри самого приложения (Canary или TourSearchClient) и отображает картинку, полученную в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка картинки по отелю (HotelImages)|HotelImages]]. | |
| − | + | * Формат запроса: | |
| − | + | ** http://localhost/Canary/Image/GetImage? | |
| − | + | ||
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''code *''' – ключ отеля | |
| − | + | ** '''type *''' – размер картинки (возможные значения: ''small1'', ''small160x90'', ''medium'', ''big'') | |
| − | + | ** '''name *''' – название файла (берется из метода [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка картинки по отелю (HotelImages)|HotelImages]]) | |
| − | + | ** '''imageType *''' – тип картинки (возможные значения: ''hotels'', ''tours'') | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** изображение картинки отеля | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример картинки отеля | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода GetImage | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost/Canary/Image/GetImage?code=134049&type=small160x90&name=PalaceResort.webp&imageType=hotels | |
| − | + | ||
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода GetImage и виде картинки | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Выгрузка картинки по туру (TourImages)=== | |
| − | + | Метод выгружает картинки по туру. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/TourImages? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''tourKeys *''' – ключ тура (можно передать несколько ключей тура, каждый раз указывая параметр ''tourKeys'') | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''Images''' – объект картинок | |
| − | + | *** '''Key''' – ключ картинки | |
| − | + | *** '''Description''' – описание картинки | |
| − | + | *** '''Priority''' – приоритет | |
| − | + | *** '''Name''' – название файла | |
| − | + | *** '''TourKey''' – ключ тура | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода TourImages | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/TourImages?tourKey=100001132 | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода TourImages (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | { | |
| − | + | "Images": [ | |
| − | + | { | |
| − | + | "Key": 52, | |
| − | + | "Description": "Московский планетарий", | |
| − | + | "Priority": 1, | |
| − | + | "Name": "Планетарий.jpg", | |
| − | + | "TourKey": 100001132 | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 51, | |
| − | + | "Description": "Вид из космоса", | |
| − | + | "Priority": 2, | |
| − | + | "Name": "Вид из космоса.jpg", | |
| − | + | "TourKey": 100001132 | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ====Отображение картинки в браузере (GetImage)==== | |
| − | + | Данный метод реализован не на API, а внутри самого приложения (Canary или TourSearchClient) и отображает картинку, полученную в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка картинки по туру (TourImages)|TourImages]]. | |
| − | + | * Формат запроса: | |
| − | + | ** http://localhost/Canary/Image/GetImage? | |
| − | + | ||
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''code *''' – ключ тура | |
| − | + | ** '''type *''' – размер картинки (возможные значения: ''small1'', ''small160x90'', ''medium'', ''big'') | |
| − | + | ** '''name *''' – название файла (берется из метода [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка картинки по туру (TourImages)|TourImages]]) | |
| − | + | ** '''imageType *''' – тип картинки (возможные значения: ''hotels'', ''tours'') | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** изображение картинки отеля | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример картинки отеля | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода GetImage | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost/Canary/Image/GetImage?code=005485049&type=small160x90&name=TheBestTour.webp&imageType=tours | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода GetImage и виде картинки | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Регистрация частного лица (PersonalRegistration)=== | |
| − | + | Метод производит регистрацию частного лица. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/PersonalRegistration? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''name *''' – имя | |
| − | + | ** '''surname *''' – фамилия | |
| − | + | ** '''phone *''' – телефон | |
| − | + | ** '''login *''' – e-mail (он же является логином). Предварительно нужно вызывать метод проверки e-mail [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка e-mail (CheckMail)|CheckMail]] | |
| − | + | ** '''password *''' – пароль (при упрощенной регистрации пароль не передается, а формируется системой автоматически) | |
| − | + | ** '''citizen *''' – гражданство (возможна передача пустого значения) | |
| − | + | ** '''country *''' – страна (возможна передача пустого значения) | |
| − | + | ** '''city *''' – город (возможна передача пустого значения) | |
| − | + | ** '''address *''' – адрес (возможна передача пустого значения) | |
| − | + | ** '''comment *''' – комментарий (возможна передача пустого значения) | |
| − | + | ** '''captchaText *''' – текст капчи. Предварительно нужно вызывать метод получения капчи [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Получение капчи (GetCaptcha)|GetCaptcha]]. Полученный ''FileContents'' преобразовать с помощью json в картинку, текст из которой вставить как значение ''captchaText''. | |
| − | + | ** '''sessionId *''' – Id сессии (возможна передача произвольного значения) | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''SxotpFhg''' – сформированный (при упрощенной регистрации) или заданный пользователем пароль | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода PersonalRegistration | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/PersonalRegistration?name=Иван&surname=Иванов&phone=+79991234568&login=test1222@mail.ru | |
| − | + | &citizen=&country=&city=&address=&comment=&captchaText=v7jnj&sessionId=43angzdfbc5h2wud1lp1301j | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода PersonalRegistration (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | { | |
| − | + | "SxotpFhg" | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Отправка письма о бронировании частному лицу (PersonalSendMail)=== | |
| − | + | Метод отправляет сообщение частному лицу о создании бронирования. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/PersonalSendMail? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''mail *''' – адрес электронной почты (логин частного лица) | |
| − | + | ** '''password *''' – пароль для входа частного лица | |
| − | + | ** '''dogovorCode *''' – номер путевки | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''true''' – подтверждение об отправке письма | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода PersonalSendMail | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/PersonalSendMail?mail=test1222@mail.ru&password=123456789&dogovorCode=AU01120022 | |
| − | + | &citizen=&country=&city=&address=&comment=&captchaText=v7jnj&sessionId=43angzdfbc5h2wud1lp1301j | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода PersonalSendMail (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | { | |
| − | + | "true" | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Выгрузка плана рассадки (TransportPlan)=== | |
| − | + | Метод выгружает план рассадки транспортного средства. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/TransportPlan? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''code *''' – код услуги | |
| − | + | ** '''dateBegin *''' – дата начала услуги | |
| − | + | ** '''serviceType *''' – класс услуги | |
| − | + | ** '''transportKey *''' – ключ транспорта | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''Key''' – ключ | |
| − | + | ** '''TransportKey''' – ключ транспорта | |
| − | + | *** '''Row''' – ряд | |
| − | + | *** '''AreaNumber''' – уровень | |
| − | + | *** '''Name''' – номер места | |
| − | + | *** '''PlanOrientation''' – | |
| − | + | *** '''Column''' – колонка | |
| − | + | *** '''IsAirCraft''' – | |
| − | + | *** '''Dates''' – дата | |
| − | + | *** '''Comment''' – | |
| − | + | *** '''Type''' – тип места (1 - свободно, 5 - занято) | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ** '''Title''' – название | |
| − | + | ** '''AreasCount''' – количество зон (уровней) | |
| − | + | ** '''RowsCount''' – количество рядов | |
| − | + | ** '''ColumnsCount''' – количество колонок | |
| − | + | ** '''BusySeats''' – информация о занятых местах | |
| − | + | ** '''Cells''' – блок не заполняется | |
| − | + | ||
| − | + | ** '''UserSeats''' – блок не заполняется | |
| − | + | ** '''BlockSeat''' – блок не заполняется | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода TransportPlan | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/TransportPlan?code=1527&dateBegin=07.03.2021&serviceType=14&transportKey=31 | |
| − | + | &citizen=&country=&city=&address=&comment=&captchaText=v7jnj&sessionId=43angzdfbc5h2wud1lp1301j | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода TransportPlan (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | { | |
| − | + | "TransportKey": 31, | |
| − | + | "Title": "", | |
| − | + | "AreasCount": 1, | |
| − | + | "RowsCount": 10, | |
| − | + | "ColumnsCount": 2, | |
| − | + | "BusySeats": [], | |
| − | + | "Cells": [ | |
| − | + | { | |
| − | + | "Row": 4, | |
| − | * | + | "Column": 0, |
| − | ** | + | "Area": 0, |
| − | * | + | "Type": 1, |
| − | ** ''' | + | "Name": "9" |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 4, | |
| − | + | "Column": 1, | |
| − | + | "Area": 0, | |
| − | + | "Type": 1, | |
| − | + | "Name": "10" | |
| − | + | }, | |
| − | + | { | |
| − | Вызов метода | + | "Row": 1, |
| − | <syntaxhighlight lang="java" enclose="div"> | + | "Column": 0, |
| − | http://localhost:9000/TourSearchOwin/ | + | "Area": 0, |
| − | + | "Type": 5, | |
| − | Возвращаемый результат метода | + | "Name": "3" |
| − | <syntaxhighlight lang="java" enclose="div"> | + | }, |
| − | + | { | |
| − | + | "Row": 1, | |
| − | + | "Column": 1, | |
| − | + | "Area": 0, | |
| − | + | "Type": 5, | |
| − | + | "Name": "4" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 8, | |
| − | + | "Column": 0, | |
| − | + | "Area": 0, | |
| − | + | "Type": 1, | |
| − | + | "Name": "17" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 8, | |
| − | + | "Column": 1, | |
| − | + | "Area": 0, | |
| − | + | "Type": 1, | |
| − | + | "Name": "18" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 5, | |
| − | + | "Column": 0, | |
| − | + | "Area": 0, | |
| − | + | "Type": 1, | |
| − | + | "Name": "11" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 5, | |
| − | + | "Column": 1, | |
| − | + | "Area": 0, | |
| − | + | "Type": 1, | |
| − | + | "Name": "12" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 2, | |
| − | + | "Column": 0, | |
| − | + | "Area": 0, | |
| − | + | "Type": 1, | |
| − | + | "Name": "5" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 2, | |
| − | + | "Column": 1, | |
| − | + | "Area": 0, | |
| − | + | "Type": 1, | |
| − | + | "Name": "6" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 9, | |
| − | + | "Column": 0, | |
| − | + | "Area": 0, | |
| − | + | "Type": 1, | |
| − | + | "Name": "19" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Row": 9, | |
| − | + | "Column": 1, | |
| − | + | "Area": 0, | |
| + | "Type": 1, | ||
| + | "Name": "20" | ||
| + | }, | ||
| + | { | ||
| + | "Row": 6, | ||
| + | "Column": 0, | ||
| + | "Area": 0, | ||
| + | "Type": 1, | ||
| + | "Name": "13" | ||
| + | }, | ||
| + | { | ||
| + | "Row": 6, | ||
| + | "Column": 1, | ||
| + | "Area": 0, | ||
| + | "Type": 1, | ||
| + | "Name": "14" | ||
| + | }, | ||
| + | { | ||
| + | "Row": 3, | ||
| + | "Column": 0, | ||
| + | "Area": 0, | ||
| + | "Type": 1, | ||
| + | "Name": "7" | ||
| + | }, | ||
| + | { | ||
| + | "Row": 3, | ||
| + | "Column": 1, | ||
| + | "Area": 0, | ||
| + | "Type": 1, | ||
| + | "Name": "8" | ||
| + | }, | ||
| + | { | ||
| + | "Row": 0, | ||
| + | "Column": 0, | ||
| + | "Area": 0, | ||
| + | "Type": 1, | ||
| + | "Name": "1" | ||
| + | }, | ||
| + | { | ||
| + | "Row": 0, | ||
| + | "Column": 1, | ||
| + | "Area": 0, | ||
| + | "Type": 1, | ||
| + | "Name": "2" | ||
| + | }, | ||
| + | { | ||
| + | "Row": 7, | ||
| + | "Column": 0, | ||
| + | "Area": 0, | ||
| + | "Type": 1, | ||
| + | "Name": "15" | ||
| + | }, | ||
| + | { | ||
| + | "Row": 7, | ||
| + | "Column": 1, | ||
| + | "Area": 0, | ||
| + | "Type": 1, | ||
| + | "Name": "16" | ||
| + | } | ||
| + | ], | ||
| + | "UserSeats": {}, | ||
| + | "BlockSeat": {} | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Выгрузка плана рассадки в поезде (RailwayTransferTransportPlan)=== | ||
| + | Метод выгружает план рассадки в поезде. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/RailwayTransferTransportPlan? | ||
| + | * Принимаемые параметры ( '''*''' – обязательный): | ||
| + | ** '''code''' – код услуги | ||
| + | ** '''dateBegin''' – дата услуги | ||
| + | ** '''serviceType''' – тип услуги | ||
| + | ** '''transportKey''' – ключ справочника транспорт | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''VehiclePlans''' – массив параметров зон плана | ||
| + | *** '''Key''' – ключ зоны | ||
| + | *** '''TransportKey''' – ключ из справочника транспорт | ||
| + | *** '''Row''' – количество рядов | ||
| + | *** '''AreaNumber''' – номер уровня | ||
| + | *** '''Name''' – название уровня | ||
| + | *** '''PlanOrientation''' – ориентация плана (''false'' - горизонтальная, ''true'' - вертикальная) | ||
| + | *** '''Column''' – количество столбцов | ||
| + | *** '''IsAirCraft''' – является ли планом самолета (''false'' - нет, ''true'' - является) | ||
| + | *** '''Dates''' – дата | ||
| + | *** '''Comment''' – комментарий | ||
| + | *** '''Type''' – тип плана | ||
| + | ** '''Seats''' – массив параметров посадочного места | ||
| + | *** '''Key''' – ключ места | ||
| + | *** '''SeatType''' – тип места (None = 0, Seat = 1, Pass/comment = 2, Block = 4, Busy = 5) | ||
| + | *** '''Index''' – индекс места | ||
| + | *** '''Number''' – название ячейки с местом | ||
| + | *** '''Type''' – тип места | ||
| + | *** '''VPKey''' – ключ зоны | ||
| + | *** '''Border''' – обводка границы (комбинация цифр, где 0 - нет обводки, 1 - обводка в 1 px, 2 - обводка в 2 px) | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода RailwayTransferTransportPlan | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/RailwayTransferTransportPlan?code=1776&dateBegin=28.12.2025&serviceType=14&transportKey=35 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода RailwayTransferTransportPlan (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "VehiclePlans": [ | ||
| + | { | ||
| + | "Key": 146, | ||
| + | "TransportKey": 95, | ||
| + | "Row": 33, | ||
| + | "AreaNumber": 1, | ||
| + | "Name": "1", | ||
| + | "PlanOrientation": true, | ||
| + | "Column": 3, | ||
| + | "IsAirCraft": false, | ||
| + | "Dates": null, | ||
| + | "Comment": null, | ||
| + | "Type": "VehiclePlans" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 287, | |
| − | + | "TransportKey": 95, | |
| + | "Row": 10, | ||
| + | "AreaNumber": 2, | ||
| + | "Name": "2", | ||
| + | "PlanOrientation": true, | ||
| + | "Column": 5, | ||
| + | "IsAirCraft": false, | ||
| + | "Dates": null, | ||
| + | "Comment": null, | ||
| + | "Type": "VehiclePlans" | ||
| + | } | ||
| + | ], | ||
| + | "Seats": [ | ||
| + | { | ||
| + | "Key": 961, | ||
| + | "SeatType": 1, | ||
| + | "Index": 0, | ||
| + | "Number": "10", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 962, | |
| − | + | "SeatType": 2, | |
| + | "Index": 1, | ||
| + | "Number": "П", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 963, | |
| − | + | "SeatType": 1, | |
| + | "Index": 2, | ||
| + | "Number": "6", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 964, | |
| − | + | "SeatType": 1, | |
| + | "Index": 3, | ||
| + | "Number": "2", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 965, | |
| − | + | "SeatType": 2, | |
| + | "Index": 4, | ||
| + | "Number": "П", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 966, | |
| − | + | "SeatType": 1, | |
| + | "Index": 5, | ||
| + | "Number": "7", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 967, | |
| − | + | "SeatType": 1, | |
| + | "Index": 6, | ||
| + | "Number": "3", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 968, | |
| − | + | "SeatType": 2, | |
| + | "Index": 7, | ||
| + | "Number": "П", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 969, | |
| − | + | "SeatType": 0, | |
| + | "Index": 8, | ||
| + | "Number": "", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 970, | |
| − | + | "SeatType": 1, | |
| + | "Index": 9, | ||
| + | "Number": "4", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 971, | |
| − | + | "SeatType": 2, | |
| + | "Index": 10, | ||
| + | "Number": "П", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 972, | |
| − | + | "SeatType": 1, | |
| + | "Index": 11, | ||
| + | "Number": "8", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 973, | |
| − | + | "SeatType": 4, | |
| + | "Index": 12, | ||
| + | "Number": "5", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | + | "Key": 974, | |
| − | + | "SeatType": 2, | |
| + | "Index": 13, | ||
| + | "Number": "про", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 975, |
| − | "Name": " | + | "SeatType": 4, |
| + | "Index": 14, | ||
| + | "Number": "9", | ||
| + | "Type": "Seat", | ||
| + | "VPKey": 146, | ||
| + | "Border": "0000" | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | |||
| + | ===Выгрузка списка всех стран (Countries)=== | ||
| + | Метод производит выгрузку всех стран (используется для регистрации частного лица). | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/Countries? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''term *''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Key''' – ключ страны | ||
| + | ** '''Name''' – название | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода Countries | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | http://localhost:9000/TourSearchOwin/Countries?term= | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода Countries (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "Key": 6283, | ||
| + | "Name": " Азербайджан" | ||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 90, |
| − | "Name": " | + | "Name": "Австрия" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 222, |
| − | "Name": " | + | "Name": "Англия" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 376, |
| − | "Name": " | + | "Name": "Андорра" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 375, |
| − | "Name": " | + | "Name": "Беларусь" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6305, |
| − | "Name": " | + | "Name": "Бельгия" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 359, |
| − | "Name": " | + | "Name": "Болгария" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6235, |
| − | "Name": " | + | "Name": "Вьетнам" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 40, |
| − | "Name": " | + | "Name": "Германия" |
| + | }, | ||
| + | { | ||
| + | "Key": 1, | ||
| + | "Name": "Голландия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 852, | ||
| + | "Name": "Гонконг" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 29, | ||
| + | "Name": "Греция" | ||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6251, |
| − | "Name": " | + | "Name": "Грузия" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6224, |
| − | "Name": " | + | "Name": "Дания" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6245, |
| − | "Name": " | + | "Name": "Доминиканская Республика" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 9, |
| − | "Name": " | + | "Name": "Египет" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 729, |
| − | "Name": " | + | "Name": "Израиль" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 26, |
| − | "Name": " | + | "Name": "Индия" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6221, |
| − | "Name": " | + | "Name": "Индонезия" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6244, |
| − | "Name": " | + | "Name": "Иордания" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6288, |
| − | "Name": " | + | "Name": "Ирландия" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 84, |
| − | "Name": " | + | "Name": "Испания" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 80, |
| − | "Name": " | + | "Name": "Италия" |
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 3272, |
| − | "Name": " | + | "Name": "Казахстан" |
| − | } | + | }, |
| − | + | { | |
| − | + | "Key": 6240, | |
| − | + | "Name": "Камбоджа" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 10, | |
| − | + | "Name": "Кипр" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 6237, | |
| − | + | "Name": "Китай" | |
| − | + | }, | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{ | { | ||
| − | "Key": | + | "Key": 6254, |
| − | "Name": " | + | "Name": "Круизы" |
| − | |||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6243, |
| − | "Name": " | + | "Name": "Куба" |
| − | |||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6241, |
| − | "Name": " | + | "Name": "Лаос" |
| − | |||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6261, |
| − | "Name": " | + | "Name": "Маврикий" |
| − | |||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 603, |
| − | "Name": " | + | "Name": "Малайзия" |
| − | + | }, | |
| − | } | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{ | { | ||
| − | + | "Key": 960, | |
| − | "Key": | + | "Name": "Мальдивы" |
| − | " | ||
| − | |||
}, | }, | ||
{ | { | ||
| − | + | "Key": 535, | |
| − | "Key": | + | "Name": "Мальта" |
| − | " | ||
| − | |||
}, | }, | ||
{ | { | ||
| − | + | "Key": 77, | |
| − | "Key": | + | "Name": "Мексика" |
| − | " | + | }, |
| − | |||
| − | } | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{ | { | ||
| − | "Key": | + | "Key": 6252, |
| − | "Name": " | + | "Name": "Молдавия" |
| − | " | + | }, |
| + | { | ||
| + | "Key": 6242, | ||
| + | "Name": "Мьянма" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6249, | ||
| + | "Name": "Непал" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6222, | ||
| + | "Name": "Норвегия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 2, | ||
| + | "Name": "ОАЭ" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6275, | ||
| + | "Name": "Оман" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6246, | ||
| + | "Name": "Польша" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 22, | ||
| + | "Name": "Португалия" | ||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 460, |
| − | "Name": " | + | "Name": "Россия" |
| − | |||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 6265, |
| − | "Name": " | + | "Name": "Сейшелы" |
| − | " | + | }, |
| − | } | + | { |
| − | ] | + | "Key": 6309, |
| − | </syntaxhighlight> | + | "Name": "Сербия" |
| − | </TD></TR></TABLE> | + | }, |
| − | </div></div><br /> | + | { |
| − | + | "Key": 665, | |
| − | + | "Name": "Сингапур" | |
| − | ===Выгрузка | + | }, |
| − | Метод производит выгрузку | + | { |
| − | * Формат запроса: | + | "Key": 6274, |
| − | ** GET .../TourSearchOwin/ | + | "Name": "Словения" |
| − | * Принимаемые параметры ( * – обязательный): | + | }, |
| − | ** ''' | + | { |
| − | + | "Key": 7, | |
| − | * Возвращаемый результат: | + | "Name": "США" |
| − | ** | + | }, |
| − | + | { | |
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | + | "Key": 6253, |
| − | <div class="mw-collapsible-content"> | + | "Name": "Таджикистан" |
| − | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | + | }, |
| − | Вызов метода | + | { |
| − | <syntaxhighlight lang="java" enclose="div"> | + | "Key": 6236, |
| − | http://localhost:9000/TourSearchOwin/ | + | "Name": "Тайвань" |
| − | </syntaxhighlight> | + | }, |
| − | Возвращаемый результат метода | + | { |
| − | <syntaxhighlight lang="java" enclose="div"> | + | "Key": 53, |
| − | [ | + | "Name": "Тайланд" |
| − | " | + | }, |
| − | " | + | { |
| − | " | + | "Key": 6313, |
| − | " | + | "Name": "Танзания" |
| − | " | + | }, |
| − | " | + | { |
| − | " | + | "Key": 97, |
| − | " | + | "Name": "Тунис" |
| − | " | + | }, |
| − | " | + | { |
| − | + | "Key": 86, | |
| − | + | "Name": "Турция" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 5, | |
| − | + | "Name": "Украина" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 6250, | |
| − | + | "Name": "Филиппины" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 64, | |
| − | + | "Name": "Финляндия" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 30, | |
| − | + | "Name": "Франция" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 38, | |
| − | + | "Name": "Хорватия" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 6314, | |
| − | + | "Name": "Черногория " | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 15, | |
| − | + | "Name": "Чехия" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 76, | |
| − | + | "Name": "Швейцария" | |
| − | + | }, | |
| + | { | ||
| + | "Key": 6223, | ||
| + | "Name": "Швеция" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 941, | ||
| + | "Name": "Шри Ланка" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 372, | ||
| + | "Name": "Эстония" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6247, | ||
| + | "Name": "Южная Корея" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6248, | ||
| + | "Name": "Япония" | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | |||
| + | ===Выгрузка списка всех городов (Cities)=== | ||
| + | Метод производит выгрузку всех городов (используется для регистрации частного лица). | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/Cities? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''countryKey *''' – ключ страны, по которой выгружать города (при значении ''-1'' выгружаются все города) | ||
| + | ** '''term *''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Key''' – ключ города | ||
| + | ** '''Name''' – название | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода Cities | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | http://localhost:9000/TourSearchOwin/Cities?countryKey=460&term= | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода Cities (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "Key": 1309, | ||
| + | "Name": "Алушта" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 564, | ||
| + | "Name": "Анапа" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 299, | ||
| + | "Name": "Архангельск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 312, | ||
| + | "Name": "Астрахань" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 265, | ||
| + | "Name": "Белгород" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 329, | ||
| + | "Name": "Владивосток" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 258, | ||
| + | "Name": "Владикавказ" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 236, | ||
| + | "Name": "Владимир" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 358, | ||
| + | "Name": "Волгоград" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1089, | ||
| + | "Name": "Воркута" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1312, | ||
| + | "Name": "Воронеж" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 266, | ||
| + | "Name": "Екатеринбург" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 254, | ||
| + | "Name": "Иваново" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 350, | ||
| + | "Name": "Иркутск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 238, | ||
| + | "Name": "Казань" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 306, | ||
| + | "Name": "Калининград" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1308, | ||
| + | "Name": "Коктебель" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 313, | ||
| + | "Name": "Краснодар" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 269, | ||
| + | "Name": "Красноярск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1311, | ||
| + | "Name": "Крым" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1, | ||
| + | "Name": "Москва" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 259, | ||
| + | "Name": "Мурманск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 234, | ||
| + | "Name": "Нижний Новгород" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1097, | ||
| + | "Name": "Новая Купавна" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 324, | ||
| + | "Name": "Новосибирск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1043, | ||
| + | "Name": "Омск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 345, | ||
| + | "Name": "Оренбург" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 308, | ||
| + | "Name": "Пенза" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 263, | ||
| + | "Name": "Пермь" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 478, | ||
| + | "Name": "Петропавловск-Камчатский" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 271, | ||
| + | "Name": "Псков" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1100, | ||
| + | "Name": "Пушкино" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 260, | ||
| + | "Name": "Ростов-на-Дону" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 235, | ||
| + | "Name": "Рязань" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 232, | ||
| + | "Name": "Самара" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 295, | ||
| + | "Name": "Санкт-Петербург" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1099, | ||
| + | "Name": "Симферополь" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 244, | ||
| + | "Name": "Смоленск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1084, | ||
| + | "Name": "Снегири" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 454, | ||
| + | "Name": "Сочи" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1310, | ||
| + | "Name": "Судак" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1102, | ||
| + | "Name": "Тверь" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1198, | ||
| + | "Name": "Тестовый город" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 307, | ||
| + | "Name": "Томск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 246, | ||
| + | "Name": "Тула" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 334, | ||
| + | "Name": "Хабаровск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 336, | ||
| + | "Name": "Якутск" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1098, | ||
| + | "Name": "Ялта" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 231, | ||
| + | "Name": "Ярославль" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1082, | ||
| + | "Name": "Ясный" | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | + | ===Выгрузка городов отправления в оформлении клиентов (RegistrationClientsDepartureCities)=== |
| + | Метод производит выгрузку городов отправления в оформлении клиентов. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/RegistrationClientsDepartureCities? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''term *''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | ||
| + | ** '''withoutFlight''' – перевод для ключа ''-1'' (Без перелета) | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Key''' – ключ города | ||
| + | ** '''Name''' – название | ||
| + | ** '''IsExist''' – информация о том, есть ли в этом городе отправления актуальные программы туров (true/false) | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| − | Вызов метода | + | Вызов метода RegistrationClientsDepartureCities |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | + | http://localhost:9000/TourSearchOwin/RegistrationClientsDepartureCities?term=&withoutFlight=Без перелета | |
| − | |||
| − | |||
| − | |||
| − | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода RegistrationClientsDepartureCities (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | { | + | [ |
| − | + | { | |
| − | + | "Key": -1, | |
| − | + | "Name": "Без перелета", | |
| − | + | "IsExist": true | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 1080, | |
| − | + | "Name": "Prime travel", | |
| − | + | "IsExist": true | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 1079, | |
| − | + | "Name": "Азимут", | |
| − | + | "IsExist": true | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 1309, | |
| − | + | "Name": "Алушта", | |
| − | + | "IsExist": true | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 56, | |
| − | + | "Name": "Москва" | |
| − | + | "IsExist": true | |
| − | + | } | |
| − | + | ] | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ||
| − | + | ===Выгрузка стран в оформлении клиентов (RegistrationClientsDestination)=== | |
| − | + | Метод производит выгрузку стран в оформлении клиентов. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/RegistrationClientsDestination? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''departureCity *''' – ключ города отправления (из контроллера [[#Выгрузка городов отправления в оформлении клиентов (RegistrationClientsDepartureCities)|''.../TourSearchOwin/RegistrationClientsDepartureCities?'']]) | |
| − | + | ** '''term *''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''Name''' – название | |
| − | + | ** '''Key''' – ключ страны | |
| − | + | ** '''DestinationType''' – тип результата (внутренний параметр, не изменяемый, всегда возвращается значение = 1) | |
| − | + | ** '''IsExist''' – информация о том, есть ли в этой стране актуальные программы туров (true/false) | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода RegistrationClientsDestination | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/RegistrationClientsDestination?departureCity=1&term= | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода RegistrationClientsDestination (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | [ | |
| − | + | { | |
| − | + | "Name": "Австрия", | |
| − | + | "Key": 90, | |
| − | + | "DestinationType": 1, | |
| − | + | "IsExist": true | |
| − | + | }, | |
| − | + | { | |
| − | + | "Name": "Англия", | |
| − | + | "Key": 222, | |
| − | + | "DestinationType": 1, | |
| − | + | "IsExist": true | |
| − | + | }, | |
| − | + | { | |
| − | + | "Name": "Беларусь", | |
| − | + | "Key": 375, | |
| − | + | "DestinationType": 1, | |
| − | + | "IsExist": true | |
| − | + | } | |
| − | + | ] | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ||
| − | + | ===Выгрузка турпрограмм в оформлении клиентов (RegistrationClientsTourPrograms)=== | |
| − | + | Метод производит выгрузку турпрограмм в оформлении клиентов. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/RegistrationClientsTourPrograms? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''departureCity *''' – ключ города отправления (из контроллера [[#Выгрузка городов отправления в оформлении клиентов (RegistrationClientsDepartureCities)|''.../TourSearchOwin/RegistrationClientsDepartureCities?'']]) | |
| − | + | ** '''destination *''' – ключ страны (из контроллера [[#Выгрузка стран в оформлении клиентов (RegistrationClientsDestination)|''.../TourSearchOwin/RegistrationClientsDestination?'']]) | |
| − | + | ** '''destinationType *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) | |
| − | + | ** '''term *''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | |
| − | + | ** '''individualTitle ''' – перевод для программы тура с ключом 0 (Индивидуально) | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''Key''' – ключ программы туров | |
| − | + | ** '''Name''' – название программы туров | |
| − | + | ** '''Rate''' – валюта тура | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода RegistrationClientsTourPrograms | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/RegistrationClientsTourPrograms?departureCity=1&destination=90&destinationType=1&individualTitle=Индивидуально&term= | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода RegistrationClientsTourPrograms (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | [ | |
| − | + | { | |
| − | + | "Key": 0, | |
| − | + | "Name": "Индивидуально", | |
| − | + | "Rate": "" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 100003415, | |
| − | + | "Name": "Aviabooking", | |
| − | + | "Rate": "EU" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 100003416, | |
| − | + | "Name": "Общая проверка системы", | |
| − | + | "Rate": "EU" | |
| − | + | } | |
| − | + | ] | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ||
| − | + | ===Выгрузка дат заезда в оформлении клиентов (RegistrationClientsTourDate)=== | |
| − | + | Метод производит выгрузку дат заезда в оформлении клиентов. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/RegistrationClientsTourDate? | |
| − | + | * Принимаемые параметры ( * – обязательный): | |
| − | + | ** '''tourKey *''' – ключ программы тура | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** массив дат | |
| − | + | ||
| − | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | |
| − | + | <div class="mw-collapsible-content"> | |
| − | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | |
| − | + | Вызов метода RegistrationClientsTourDate | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | http://localhost:9000/TourSearchOwin/RegistrationClientsTourDate?tourKey=100006755 | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода RegistrationClientsTourDate (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | [ | |
| − | + | "06.05.2021", | |
| − | + | "07.05.2021", | |
| − | + | "08.05.2021", | |
| − | + | "09.05.2021", | |
| − | + | "10.05.2021", | |
| − | + | "11.05.2021", | |
| − | + | "12.05.2021", | |
| − | + | "13.05.2021", | |
| − | + | "14.05.2021", | |
| − | + | "15.05.2021" | |
| − | + | ] | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Поиск туров в оформлении клиентов (Search)=== | |
| − | + | Метод возвращает наиболее дешевое предложения по определенному туру. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/RegistrationClient/Search? | |
| − | + | * Принимаемые параметры ( '''*''' – обязательный): | |
| − | + | ** '''DepartureCityKeys *''' – ключ города отправления (из контроллера [[#Выгрузка городов отправления в оформлении клиентов (RegistrationClientsDepartureCities)|''.../TourSearchOwin/RegistrationClientsDepartureCities?'']]) | |
| − | + | ** '''Dates *''' – дата заезда (из контроллера [[#Выгрузка дат заезда в оформлении клиентов (RegistrationClientsTourDate)|''.../TourSearchOwin/RegistrationClientsTourDate?'']]) | |
| − | + | ** '''Durations *''' – продолжительность | |
| − | + | ** '''PageNumber *''' – номер возвращаемой страницы (по умолчанию возвращается 1) | |
| − | + | ** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | |
| − | + | ** '''isFromBasket *''' – всегда false | |
| − | + | ** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. | |
| − | + | ** '''DestinationType *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) | |
| − | + | ** '''DestinationKey *''' – идентификатор страны прибытия (из контроллера [[#Выгрузка стран в оформлении клиентов (RegistrationClientsDestination)|''.../TourSearchOwin/RegistrationClientsDestination?'']]) | |
| − | + | ** '''AdultCount *''' – количество взрослых | |
| − | + | ** '''ChildAges''' – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | |
| − | + | ** '''IsRegistrationClients''' – по умолчанию всегда приходит false | |
| − | + | ** '''CurrencyName *''' – код валюты | |
| − | + | ** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | |
| − | + | ** '''HotelQuota *''' – информация о квотах на отель (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | |
| − | + | ** '''BusTransferQuota''' – информация о квотах на автобусный переезд (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | |
| − | + | ** '''HotelScheme''' – пустой по умолчанию | |
| − | + | ** '''TimeDepartureFrom''' – время отправления с (по умолчанию возвращается 00:00) | |
| − | + | ** '''TimeDepartureTo''' – время отправления по (по умолчанию возвращается 23:59) | |
| − | + | ** '''TimeArrivalFrom''' – время прибытия с (по умолчанию возвращается 00:00) | |
| − | + | ** '''TimeArrivalTo''' – время прибытия по (по умолчанию возвращается 23:59) | |
| − | + | ** '''ArrivalFlightNoTransfer''' – производить поиск без пересадок в прямом направлении (true/false, по умолчанию false) | |
| − | + | ** '''DepartureFlightNoTransfer''' – производить поиск без пересадок в обратном направлении (true/false, по умолчанию false) | |
| − | + | ** '''TourDuration''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях | |
| − | + | ** '''Tour''' – ключ программы тура | |
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''CheckMessages''' – сообщения для логики проверки тура (не используется) | |
| − | + | ** '''Message''' – сообщение об ошибке | |
| − | + | *** '''Key''' – код ошибки | |
| − | + | *** '''Value''' – сообщение об ошибке | |
| − | + | ** '''Result''' – результаты поиска | |
| − | + | *** '''Key''' – идентификатов программы тура | |
| − | + | *** '''Name''' – название программы тура | |
| − | + | *** '''TourUrl''' – ссылка на программу тура | |
| − | + | *** '''BookingConditions''' – условия бронирования программы туров | |
| − | + | *** '''DefaultManagers''' – список выбранных менеджеров в туре | |
| − | + | *** '''Manager''' – ключ менеджера по умолчанию в туре | |
| − | + | *** '''Branches''' – список ключей филиалов бронирования | |
| − | + | *** '''DetermineTheBranchOnCity''' – признак, определять филиал в зависимости от города начала поездки | |
| − | + | *** '''IndividualFlightSelection''' – признак, включены ли индивидуальные настройки подбора перелетов | |
| − | + | *** '''RestrictionDateArrival''' – признак, ограничение даты прилета по базовому рейсу в индивидуальных настройках подбора перелетов | |
| − | + | *** '''PriceUpdateForView''' – признак обновления цен в индивидуальных настройках подбора перелетов (true – включен, false – выключен) | |
| − | + | *** '''SelectFlightAutomatically''' – признак выбирать рейс автоматически, если не выбран пользователем в индивидуальных настройках подбора перелетов | |
| − | + | *** '''BaggageSearchOtherFares''' – признак поиска багажа в других тарифах в индивидуальных настройках подбора перелетов | |
| − | + | *** '''Luggage''' – значение багажа в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | |
| − | + | *** '''LuggageForView''' – значение багажа в блоке настроек, влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | |
| − | + | *** '''LuggageForPrice''' – значение багажа в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | |
| − | + | *** '''FlightClass''' – класс перелета в индивидуальных настройках подбора перелетов (economy – Эконом, premiumEconomy 2 Премиум-эконом, business – Бизнес, first – Первый) | |
| − | + | *** '''Directs''' – значение пересадок в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, onlyDirectFlights – только прямые рейсы) | |
| − | + | *** '''DirectsForView''' – значение пересадок в блоке влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect) | |
| − | + | *** '''DirectsForPrice''' – значение пересадок в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect) | |
| − | + | *** '''DepartureTimeLimit''' – ограничение времени вылета: «Вылет не позже» в формате hh:mm | |
| − | + | *** '''SortingForView''' – сортировка в индивидуальных настройках подбора перелетов (cheap – сначала дешевые, fast – сначала быстрые, optimal – оптимальные) | |
| − | + | *** '''StartDate''' – дата начала тура | |
| − | + | *** '''MaxConnectionTime''' – длительность пересадок в индивидуальных настройках подбора перелетов в формате hh:mm | |
| − | + | *** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null) | |
| − | + | *** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null) | |
| − | + | *** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null) | |
| − | + | *** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null) | |
| − | + | *** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null) | |
| − | + | *** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null) | |
| − | + | *** '''Duration''' – продолжительность тура (в днях) | |
| − | + | *** '''DurationInNight''' – продолжительность проживания (в ночах) | |
| − | + | *** '''Types''' – идентификатор типа туров | |
| − | + | *** '''Price''' – цена тура с учетом скидки в валюте поиска | |
| − | + | *** '''Cost''' – цена тура | |
| − | + | *** '''Rate''' – код валюты тура | |
| − | + | *** '''Penalties''' – внутреннее поле, не используется | |
| − | + | *** '''CityDepature''' – город отправления | |
| − | + | **** '''Key''' – идентификатор города отправления | |
| − | + | **** '''Value''' – название города отправления | |
| − | + | *** '''CountryId''' – всегда возвращается ключ 0 | |
| − | + | *** '''Services''' – услуги в туре | |
| − | + | **** '''DepartureCity''' – город отправления | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''DepartureCountry''' – страна отправления | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''ArrivalCity''' – город прибытия | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''ArrivalCountry''' – страна прибытия | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''DepartureAirport''' – аэропорт отправления | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''ArrivalAirport''' – аэропорт прибытия | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''Airline''' – авиакомпания | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''Aircraft''' – воздушное судно | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''Flight''' – рейс | |
| − | + | ***** '''Key''' – идентификатор | |
| − | + | ***** '''Value''' – название | |
| − | + | **** '''DepartureTime''' – время вылета | |
| − | + | **** '''ArrivalTime''' – время прилета | |
| − | + | **** '''EndDateTime''' – дата и время прилета | |
| − | + | **** '''FlightDetails''' – информация об авиаперелете | |
| − | + | ***** '''Tariff''' – информация о тарифе перелета | |
| − | + | ****** '''Key''' – идентификатор | |
| − | + | ****** '''Code''' – код тарифа | |
| − | + | ****** '''Name''' – название тарифа | |
| − | + | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | |
| − | + | ***** '''QuotaStatus''' – информация о квоте | |
| − | + | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | |
| − | + | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | |
| − | + | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | |
| − | + | ***** '''PartnerId''' – ключ партнера | |
| − | + | ***** '''ByPax''' – цена за человека (true/false) | |
| − | + | ***** '''Partner''' – информация о партнере | |
| − | + | ****** '''Key''' – идентификатор | |
| − | + | ****** '''Value''' – название | |
| − | + | **** '''FlightSetting''' – внутренняя информация о перелете из программы туров | |
| − | + | ***** '''ServiceId''' – идентификатор класса услуги (внутренняя информация из программы туров) | |
| − | + | ***** '''PatternId''' – идентификатор паттерна услуги (внутренняя информация из программы туров) | |
| − | + | ***** '''FlightId''' – идентификатор перелета (внутренняя информация из программы туров) | |
| − | + | **** '''FlightSourceMode''' – локальный или внешний перелет (внутренняя информация из программы туров) | |
| − | + | **** '''Id''' – идентификатор базового шаблона услуги (внутренняя информация из программы туров) | |
| − | + | **** '''SvKey''' – ключ типа услуги | |
| − | + | **** '''IsSubCode1''' – признак наличия [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описания 1]] | |
| − | + | **** '''IsSubCode2''' – признак наличия [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описания 2]] | |
| − | + | **** '''IsPartnerBasedOn''' – признак услуга с приоритетным подбором поставщика | |
| − | + | **** '''Day''' – день предоставления услуги | |
| − | + | **** '''DurationInNight''' – продолжительность услуги в ночах | |
| − | + | **** '''BeginDateTime''' – дата предоставления услуги | |
| − | + | **** '''IsHooded''' – признак скрытая услуга | |
| − | + | **** '''IsDeleted''' – признак удаляемая услуга | |
| − | + | **** '''IsNotCalculate''' – признак не рассчитываемая услуга | |
| − | + | **** '''PacketId''' – ключ пакета | |
| − | + | **** '''Index''' – порядковый номер услуги | |
| − | + | *** '''NotRouteServices''' – массив коллекций немаршрутных услуг (например если две экскурсии будут являться одним элементом массива, то это будет говорить о том, что эти экскурсии можно будет выбрать в выпадающем списке) | |
| − | + | **** '''ServiceName''' – название типа услуги | |
| − | + | **** '''City''' – объект город | |
| − | + | ***** '''Key''' – ключ города | |
| − | + | ***** '''Value''' – название города | |
| − | + | **** '''Country''' – объект страна | |
| − | + | ***** '''Key''' – ключ страны | |
| − | + | ***** '''Value''' – название страны | |
| − | + | **** '''Code''' – объект код услуги | |
| − | + | ***** '''Key''' – ключ услуги | |
| − | + | ***** '''Value''' – название услуги | |
| − | + | **** '''ByScheduler''' – флаг услуга по расписанию или нет | |
| − | + | **** '''Details''' – объект детализация услуги | |
| − | + | ***** '''SubCode1''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | |
| − | + | ****** '''Key''' – ключ доп. описания 1 | |
| − | + | ****** '''Value''' – название доп. описания 1 | |
| − | + | ***** '''SubCode2''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | |
| − | + | ****** '''Key''' – ключ доп. описания 2 | |
| − | + | ****** '''Value''' – название доп. описания 2 | |
| − | + | ***** '''Date''' – дата услуги | |
| − | + | ***** '''IsShowTransportPlan''' – признак показывать ли план рассадки (для автобусов) | |
| − | + | ***** '''Cost''' – цена | |
| − | + | ***** '''QuotaStatus''' – объект информация по квотам | |
| − | + | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | |
| − | + | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | |
| − | + | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | |
| − | + | ***** '''PartnerId''' – идентификатор партнера | |
| − | + | ***** '''ByPax''' – признак цены за человека | |
| − | + | ***** '''Partner''' – объект партнер (не заполняется) | |
| − | + | ****** '''Key''' – ключ (не заполняется) | |
| − | + | ****** '''Value''' – название (не заполняется) | |
| − | + | **** '''ParentId''' – идентификатор родительской услуги (для вложенных услуг) | |
| − | + | **** '''PartnerBasedOnServiceTemplateId''' – ключ шаблона услуги, по которой приоритетно выбирается партнер текущей услуги | |
| − | + | **** '''Id''' – идентификатор услуги | |
| − | + | **** '''SvKey''' – ключ типа услуги | |
| − | + | **** '''IsSubCode1''' – наличие [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описания 1]] | |
| − | + | **** '''IsSubCode2''' – наличие [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описания 2]] | |
| − | + | **** '''IsPartnerBasedOn''' – услуга с подбором приоритетного поставщика услуги | |
| − | + | **** '''Day''' – день предоставления услуги | |
| − | + | **** '''DurationInNight''' – продолжительность услуги в ночах | |
| − | + | **** '''BeginDateTime''' – дата предоставления услуги | |
| − | + | **** '''EndDateTime''' – дата окончания услуги | |
| − | + | **** '''IsHooded''' – скрытая ли услуга | |
| − | + | **** '''IsDeleted''' – удаляемая ли услуга | |
| − | + | **** '''IsNotCalculate''' – не рассчитываемая ли услуга | |
| − | + | **** '''PacketId''' – пакет услуги | |
| − | + | **** '''Index''' – индекс услуги | |
| − | + | *** '''MinCostServicesComposition''' – массив состав услуг минимальной цены | |
| − | + | **** '''Key''' – ключ | |
| − | + | ***** '''TemplateId''' – идентификатор шаблона | |
| − | + | ***** '''PatternId''' – идентификатор вкладки | |
| − | + | ***** '''SettingId''' – идентификатор услуги | |
| − | + | **** '''Value''' – значение | |
| − | + | ***** '''ServiceType''' – тип услуги | |
| − | + | ***** '''Code''' – ключ услуги | |
| − | + | ***** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | |
| − | + | ***** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | |
| − | + | ***** '''PacketId''' – пакет услуги | |
| − | + | ***** '''PartnerId''' – партнер услуги | |
| − | + | ***** '''CountryId''' – страна услуги | |
| − | + | ***** '''CityId''' – город услуги | |
| − | + | ***** '''Day''' – день предоставления услуги | |
| − | + | ***** '''DurationInNight''' – продолжительность услуги в ночах | |
| − | + | **** '''COAndSpecialsInfo''' – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков | |
| − | + | ***** '''AppliedCostOffersKeys''' – коллекция идентификаторов всех применённых ценовых блоков к одной цене | |
| − | + | ***** '''AppliedSpeciasInfo''' – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция | |
| − | + | ****** '''SpecialKey''' – ключ акции | |
| − | + | ****** '''SpecialName''' – название акции | |
| − | + | ****** '''SpecialType''' – тип акции | |
| − | + | ****** '''NewPrice''' – цена после применения акции | |
| − | + | ****** '''OldPrice''' – цена до применения акции | |
| − | + | ****** '''ShowOnline''' – нужно ли показывать акцию в поиске | |
| − | + | ****** '''UntilDate''' – акция действует при совершении покупки до указанной даты | |
| − | + | ****** '''Condition''' – json форма условия применения акции. Данное поле включает в себя следующие значения в зависимости от типа акции: | |
| − | + | ******* ''NightsFrom'' (для типа ''PayStay'') – ночей от | |
| − | + | ******* ''NightsTo'' (для типа ''PayStay'') – ночей до | |
| − | + | ******* ''NightValue'' (для типа ''PayStay'') – значение ночи, которое соответствует заданному периоду | |
| − | + | ******* ''OperationType'' (для типа ''PayStay'') – тип действия | |
| − | + | ******* ''SpecialNightType'' (для типа ''PayStay'') – тип бесплатной ночи | |
| − | + | ******* ''DurationFrom'' (для типа ''KickBack'') – ночей от | |
| − | + | ******* ''DurationTo'' (для типа ''KickBack'') – ночей до | |
| − | + | ******* ''Value'' (для типа ''KickBack'') – значение продолжительности, равное заданному периоду | |
| − | + | ******* ''OperationType'' (для типа ''KickBack'') – тип действия | |
| − | + | ******* ''NightsFrom'' (для типа ''EarlyBird'') – ночей от | |
| − | + | ******* ''NightsTo'' (для типа ''EarlyBird'') – ночей до | |
| − | + | ******* ''Discount'' (для типа ''EarlyBird'') – размер скидки | |
| − | + | ******* ''OperationType'' (для типа ''EarlyBird'') – тип действия | |
| − | + | **** '''COBySubCode''' – список применённых идентификаторов ценовых блоков по SubCode1 и SubCode2 | |
| − | + | **** '''SpecialsBySubCode''' – список применённых акций по SubCode1 и SubCode2 | |
| − | + | ***** '''SubCode1''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | |
| − | + | ***** '''SubCode2''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | |
| − | + | *** '''FlightWeight''' – | |
| − | + | *** '''LinkingFlightsRules''' – объект правил связывания | |
| − | + | **** '''notCombineDifferentAirlineRule''' – объект не скрещивать авиакомпании | |
| − | + | ***** '''airlines''' – авиакомпании | |
| − | + | ***** '''flightSettings''' – массив ключей ServiceId, PatternId, FlightId | |
| − | + | ***** '''enabled''' – флаг включен/выключен | |
| − | + | **** '''checkPlusMinus1CharterRule''' – объект Отличие номера рейса на 1 | |
| − | + | ***** '''FlightSettingPairs''' – массив чартеров, для которых это правило будет выполняться | |
| − | + | ***** '''enabled''' – флаг включен/выключен | |
| − | + | **** '''notCombineDifferentTariffGroupRule''' – объект не комбинировать рейсы от разных классов перелетов | |
| − | + | ***** '''FlightSettings''' – массив ключей ServiceId, PatternId, FlightId | |
| − | + | ***** '''enabled''' – флаг включен/выключен | |
| − | + | **** '''notCombineDifferentPartnerRule''' – объект не комбинировать рейсы от разных партнеров | |
| − | + | ***** '''FlightSettings''' – массив ключей ServiceId, PatternId, FlightId | |
| − | + | ***** '''enabled''' – флаг включен/выключен | |
| − | + | **** '''departureCityEqualsArrivalCityRule''' – объект Город вылета = городу прилета | |
| − | + | ***** '''FlightSettingPairs''' – чартеры, для которых это будет выполняться | |
| − | + | ***** '''enabled''' – флаг включен/выключен | |
| − | + | **** '''combineOnlySpecificChartersRule''' – объект не комбинировать различные классы перелетов | |
| − | + | ***** '''settings''' – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId | |
| − | + | ***** '''enabled''' – флаг включен/выключен | |
| − | + | *** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске) | |
| − | + | ** '''SecondaryFiltersResult''' – результаты доп. фильтров | |
| − | + | *** '''TourTypes''' – типы тура | |
| − | + | **** '''Id''' – ключ типа тура | |
| − | + | **** '''Name''' – название типа тура | |
| − | + | **** '''ParentId''' – родительский элемент типа тура (если есть) | |
| − | + | **** '''Type''' – тип справочника (используется для внутренних целей) | |
| − | " | + | *** '''TourPrograms''' – информация по каждой турпрограмме |
| − | " | + | **** '''Key''' – ключ турпрограммы |
| − | + | **** '''Name''' – название турпрограммы | |
| − | + | **** '''TourUrl''' – ссылка на тур | |
| − | + | **** '''BookingConditions''' – условия бронирования | |
| − | + | **** '''IsLandOnly''' – признак только наземное обслуживание | |
| − | + | **** '''IsRestrictMultiHotels''' – ограничивать ли расчёт многоотельных туров категориями отелей | |
| − | + | **** '''IsHotelTemplates''' – есть ли вообще отели в данной турпрограмме | |
| − | + | **** '''IsRouteServices''' – есть ли маршрутные услуги | |
| − | + | **** '''MultiHotelDelta''' – Значение отклонения звездности последующих отелей от первого отеля в многоотельном туре. По умолчанию 0. Звездность определяется числом, заданном в поле порядок при печати. | |
| − | + | **** '''Rate''' – валюта тура | |
| − | + | **** '''DateStart''' – нижняя граница дат заезда по программе тура | |
| − | + | **** '''DateEnd''' – верхняя граница дат заеда по программе тура | |
| − | + | **** '''Status''' – статус турпрограммы | |
| − | + | ***** '''Key''' – ключ | |
| − | + | ***** '''Value''' – значение | |
| − | + | **** '''Templates''' – шаблоны услуг | |
| − | + | ***** '''$id''' – шаблон 1 | |
| − | + | ***** '''$id''' – шаблон 2 | |
| − | + | **** '''Types''' – типы тура | |
| − | + | ***** '''Id''' – ключ типа тура | |
| − | + | ***** '''Name''' – название типа тура | |
| − | + | ***** '''ParentId''' – родительский элемент типа тура (если есть) | |
| − | + | ***** '''Type''' – тип справочника (используется для внутренних целей) | |
| − | + | **** '''LinkingFlightsRules''' – правила связывания перелетов | |
| − | + | ***** '''notCombineDifferentAirlineRule''' – | |
| − | + | ****** '''airlines''' – | |
| + | ****** '''flightSettings''' – | ||
| + | ****** '''enabled''' – | ||
| + | ***** '''checkPlusMinus1CharterRule''' – | ||
| + | ****** '''FlightSettingPairs''' – | ||
| + | ****** '''enabled''' – | ||
| + | ***** '''notCombineDifferentTariffGroupRule''' – | ||
| + | ****** '''FlightSettings''' – | ||
| + | ****** '''enabled''' – | ||
| + | ***** '''notCombineDifferentPartnerRule''' – | ||
| + | ****** '''FlightSettings''' – | ||
| + | ****** '''enabled''' – | ||
| + | ***** '''departureCityEqualsArrivalCityRule''' – | ||
| + | ****** '''FlightSettingPairs''' – | ||
| + | ****** '''enabled''' – | ||
| + | ***** '''combineOnlySpecificChartersRule''' – | ||
| + | ****** '''settings''' – | ||
| + | ****** '''enabled''' – | ||
| + | **** '''Type''' – тип справочника (используется для внутренних целей) | ||
| + | *** '''TourDurations''' – продолжительность тура | ||
| + | *** '''TourDates''' – список дат заездов в турпрограмме | ||
| + | **** '''HotelCities''' – город в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''HotelResorts''' – курорты в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''HotelCategories''' – категории отеля в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''Hotels''' – отели в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''Pansions''' – питания в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''Airlines''' – авиакомпании в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''FlightTariffs''' – класс перелета в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''DepartureCities''' – города вылета в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''DepartureAirports''' – аэропорты вылета в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''ArrivalCities''' – города прибытия в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''ArrivalAirports''' – аэропорты прибытия в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | **** '''HotelTypes''' – признаки отелей в дополнительных фильтрах | ||
| + | ***** '''''' – | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода RegistrationClient/Search | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/RegistrationClient/Search?DepartureCityKeys=1&Dates=12.02.2021&Durations=9 | ||
| + | &PageNumber=1&PageSize=20&isFromBasket=false&isFillSecondaryFilters=true&DestinationType=1&DestinationKey=90 | ||
| + | &AdultCount=2&IsRegistrationClients=false&CurrencyName=EU&AviaQuota=7&HotelQuota=7&BusTransferQuota=7 | ||
| + | &TimeArrivalFrom=00:00&TimeArrivalTo=23:59&TimeDepartureFrom=00:00&TimeDepartureTo=23:59 | ||
| + | &ArrivalFlightNoTransfer=false&Tour=100006755&TourDuration=&DepartureFlightNoTransfer=false&HotelScheme= | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода RegistrationClient/Search (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "CheckMessages": null, | ||
| + | "Message": { | ||
| + | "Key": 0, | ||
| + | "Value": null | ||
| + | }, | ||
| + | "Result": [ | ||
| + | { | ||
| + | "Key": 100000004, | ||
| + | "Name": "Общая проверка системы", | ||
| + | "TourUrl": "www.megatec.ru", | ||
| + | "BookingConditions": "<p>Условия бронирования тура.<\/p>", | ||
| + | "DefaultManagers": [], | ||
| + | "Manager": 169, | ||
| + | "Branches": [], | ||
| + | "DetermineTheBranchOnCity": false, | ||
| + | "IndividualFlightSelection": true, | ||
| + | "RestrictionDateArrival": false, | ||
| + | "PriceUpdateForView": false, | ||
| + | "SelectFlightAutomatically": false, | ||
| + | "BaggageSearchOtherFares": false, | ||
| + | "Luggage": "withoutLuggage", | ||
| + | "LuggageForView": "all", | ||
| + | "LuggageForPrice": "all", | ||
| + | "FlightClass": "economy", | ||
| + | "Directs": "all", | ||
| + | "DirectsForView": "all", | ||
| + | "DirectsForPrice": "all", | ||
| + | "DepartureTimeLimit": "", | ||
| + | "SortingForView": "cheap", | ||
| + | "StartDate": "2018-02-25T00:00:00", | ||
| + | "MaxConnectionTime": 0, | ||
| + | "FullPaymentPeriod": 5, | ||
| + | "FullPaymentCheckin": null, | ||
| + | "PrePaymentPeriod": null, | ||
| + | "PrePaymentCheckin": 5, | ||
| + | "PrePaymentCu": null, | ||
| + | "PrePaymentPercent": 10.0, | ||
| + | "Duration": 4, | ||
| + | "DurationInNight": 3, | ||
| + | "Types": [2], | ||
| + | "Price": 260, | ||
| + | "Cost": 260, | ||
| + | "Penalties": null, | ||
| + | "Rate": "EU", | ||
| + | "CityDepature": { | ||
| + | "Key": 1, | ||
| + | "Value": "Москва" | ||
}, | }, | ||
| − | " | + | "Country": { |
| − | + | "Key": 90, | |
| − | + | "Value": "Австрия" | |
| − | + | }, | |
| − | + | "Services": [ | |
| − | + | { | |
| − | + | "DepartureCity": { | |
| − | " | + | "Key": 1, |
| − | + | "Value": "Москва" | |
| − | + | }, | |
| − | + | "DepartureCountry": { | |
| − | + | "Key": 460, | |
| − | + | "Value": "Россия" | |
| − | + | }, | |
| − | + | "ArrivalCity": { | |
| − | + | "Key": 35, | |
| − | + | "Value": "Вена" | |
| − | + | }, | |
| − | + | "ArrivalCountry": { | |
| − | + | "Key": 90, | |
| − | + | "Value": "Австрия" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | {" | ||
| − | |||
| − | |||
| − | |||
| − | { | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | " | ||
| − | " | ||
| − | |||
}, | }, | ||
| − | " | + | "DepartureAirport": { |
| − | " | + | "Key": "SVO4", |
| − | " | + | "Value": "Шереметьево-24" |
}, | }, | ||
| − | " | + | "ArrivalAirport": { |
| − | " | + | "Key": "VIE1", |
| − | " | + | "Value": "Vena1" |
}, | }, | ||
| − | " | + | "Airline": { |
| − | " | + | "Key": "BA7", |
| − | " | + | "Value": "BRITISH AIRWAYS" |
}, | }, | ||
| − | " | + | "Aircraft": { |
| − | " | + | "Key": "319", |
| − | " | + | "Value": "AIRBUS " |
}, | }, | ||
| − | " | + | "Flight": { |
| − | " | + | "Key": 882, |
| − | " | + | "Value": "4444" |
| − | + | }, | |
| − | + | "DepartureTime": "10:00:00", | |
| − | + | "ArrivalTime": "12:00:00", | |
| − | + | "EndDateTime": "2018-02-25T12:00:00", | |
| − | + | "FlightDetails": [ { | |
| − | + | "Tariff": { | |
| − | + | "Key": 89, | |
| − | + | "Code": "Y", | |
| − | + | "Name": "Экономический класс" | |
| − | + | }, | |
| − | + | "Cost": 10, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "PartnerId": 12668, | |
| − | + | "ByPax": true, | |
| − | + | "Partner": { | |
| − | + | "Key": 0, | |
| − | + | "Value": null | |
| − | + | } | |
| − | + | }], | |
| − | + | "FlightSetting": { | |
| − | + | "ServiceId": 3, | |
| − | + | "PatternId": 13, | |
| − | + | "FlightId": 13 | |
| − | + | }, | |
| − | + | "FlightSourceMode": 1, | |
| − | + | "Id": 3, | |
| − | + | "SvKey": 1, | |
| − | + | "IsSubCode1": true, | |
| − | + | "IsSubCode2": false, | |
| − | + | "IsPartnerBasedOn": false, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 0, | |
| − | + | "BeginDateTime": "2018-02-25T10:00:00", | |
| − | + | "IsHooded": false, | |
| − | + | "IsDeleted": false, | |
| − | + | "IsNotCalculate": false, | |
| − | + | "PacketId": 779, | |
| − | + | "Index": 0 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | |||
| − | |||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
}, | }, | ||
| − | + | { | |
| − | " | + | "Hotel": { |
| − | + | "Key": 709, | |
| − | " | + | "Value": "Am Brilliantengrund" |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
}, | }, | ||
| − | " | + | "City": { |
| − | + | "Key": 35, | |
| − | + | "Value": "Вена" | |
| − | + | }, | |
| − | + | "Stars": { | |
| − | + | "Key": -1, | |
| − | + | "Value": null | |
| − | + | }, | |
| − | + | "Resort": { | |
| − | + | "Key": -1, | |
| − | + | "Value": null | |
| − | + | }, | |
| − | + | "ImageURL": "", | |
| − | + | "Http": null, | |
| − | + | "Description": "", | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | " | ||
| − | |||
| − | " | ||
| − | |||
| − | |||
| − | |||
"Country": { | "Country": { | ||
| − | " | + | "Key": 90, |
| − | " | + | "Value": "Австрия" |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
}, | }, | ||
| − | " | + | "HotelDetails": [ { |
| − | " | + | "HotelRoom": 46463, |
| − | " | + | "Room": { |
| − | " | + | "Key": 129, |
| − | " | + | "Value": "DBL" |
| − | " | + | }, |
| − | " | + | "RoomCategory": { |
| + | "Key": 3493, | ||
| + | "Value": "Cosy" | ||
| + | }, | ||
| + | "AccomodationType": { | ||
| + | "Key": 1256, | ||
| + | "Value": "2+1_K", | ||
| + | "AdultCount": 2, | ||
| + | "ChildCount": 1 | ||
| + | }, | ||
| + | "Pansion": { | ||
| + | "Key": 4, | ||
| + | "Value": "Завтрак" | ||
| + | }, | ||
| + | "Cost": 19.47, | ||
| + | "QuotaStatus": { | ||
| + | "PlacesStatus": 4, | ||
| + | "FreePlaces": 0, | ||
| + | "IsFewPlaces": false | ||
| + | }, | ||
| + | "PartnerId": 12667, | ||
| + | "ByPax": false, | ||
| + | "Partner": { | ||
| + | "Key": 12667, | ||
| + | "Value": "Партнер-покупатель1" | ||
| + | } | ||
| + | }], | ||
| + | "HotelTypes": [ { | ||
| + | "Key": 5, | ||
| + | "Value": "Рекомендуемые" | ||
| + | }], | ||
| + | "Id": 1, | ||
| + | "SvKey": 3, | ||
| + | "IsSubCode1": true, | ||
| + | "IsSubCode2": true, | ||
| + | "IsPartnerBasedOn": false, | ||
| + | "Day": 1, | ||
| + | "DurationInNight": 3, | ||
| + | "BeginDateTime": "2018-02-25T12:00:00", | ||
| + | "EndDateTime": "2018-02-28T12:00:00", | ||
| + | "IsHooded": false, | ||
| + | "IsDeleted": false, | ||
| + | "IsNotCalculate": false, | ||
| + | "PacketId": 779, | ||
| + | "Index": 1 | ||
}, | }, | ||
| − | + | { | |
| − | + | "DepartureCity": { | |
| − | + | "Key": 35, | |
| − | " | + | "Value": "Вена" |
| − | + | }, | |
| − | + | "DepartureCountry": { | |
| − | + | "Key": 90, | |
| − | + | "Value": "Австрия" | |
| − | + | }, | |
| − | + | "ArrivalCity": { | |
| − | + | "Key": 1, | |
| − | + | "Value": "Москва" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | " | ||
| − | " | ||
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | |||
| − | |||
}, | }, | ||
| − | " | + | "ArrivalCountry": { |
| − | + | "Key": 460, | |
| − | + | "Value": "Россия" | |
| − | + | }, | |
| − | + | "DepartureAirport": { | |
| − | + | "Key": "VIE1", | |
| − | + | "Value": "Vena1" | |
| − | + | }, | |
| − | + | "ArrivalAirport": { | |
| − | + | "Key": "DME", | |
| − | + | "Value": "Домодедово" | |
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
}, | }, | ||
| − | " | + | "Airline": { |
| − | + | "Key": "7U", | |
| − | + | "Value": "Авиаэнерго" | |
| − | " | + | }, |
| − | + | "Aircraft": { | |
| − | + | "Key": "727", | |
| − | + | "Value": "Boeing" | |
| − | + | }, | |
| − | + | "Flight": { | |
| − | + | "Key": 774, | |
| − | + | "Value": "222" | |
| − | + | }, | |
| − | + | "DepartureTime": "00:00:00", | |
| − | + | "ArrivalTime": "00:00:00", | |
| − | + | "EndDateTime": "2018-02-28T00:00:00", | |
| − | + | "FlightDetails": [ { | |
| − | + | "Tariff": { | |
| − | + | "Key": 89, | |
| − | + | "Code": "Y", | |
| − | + | "Name": "Экономический класс" | |
| − | + | }, | |
| − | + | "Cost": 0, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | { | + | "IsFewPlaces": false |
| − | + | }, | |
| − | + | "PartnerId": 10760, | |
| − | + | "ByPax": true, | |
| − | + | "Partner": { | |
| − | + | "Key": 0, | |
| − | + | "Value": null | |
| − | + | } | |
| − | + | }], | |
| − | + | "FlightSetting": { | |
| − | + | "ServiceId": 4, | |
| − | + | "PatternId": 5, | |
| − | + | "FlightId": 4 | |
| − | + | }, | |
| − | + | "FlightSourceMode": 1, | |
| − | + | "Id": 4, | |
| − | + | "SvKey": 1, | |
| − | + | "IsSubCode1": true, | |
| − | + | "IsSubCode2": false, | |
| − | + | "IsPartnerBasedOn": false, | |
| − | + | "Day": 4, | |
| − | + | "DurationInNight": 0, | |
| − | + | "BeginDateTime": "2018-02-28T00:00:00", | |
| − | + | "IsHooded": false, | |
| − | + | "IsDeleted": false, | |
| − | + | "IsNotCalculate": false, | |
| − | + | "PacketId": 779, | |
| − | + | "Index": 4 | |
| − | + | } | |
| − | + | ], | |
| − | + | "NotRouteServices": [ | |
| − | + | [ { | |
| − | + | "ServiceName": "страховка", | |
| − | + | "City": null, | |
| − | + | "Country": 6245, | |
| − | + | "Code": { | |
| − | + | "Key": 297, | |
| − | + | "Value": "Страховка от несчастного случая" | |
| − | + | }, | |
| − | + | "ByScheduler": false, | |
| − | + | "Details": [ { | |
| − | + | "SubCode1": { | |
| − | + | "Key": 18, | |
| − | + | "Value": "2" | |
| − | + | }, | |
| − | + | "SubCode2": { | |
| − | + | "Key": null, | |
| − | + | "Value": "" | |
| − | + | }, | |
| − | + | "Date": null, | |
| − | + | "IsShowTransportPlan": true, | |
| − | + | "Cost": 16, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 1, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "PartnerId": 12668, | |
| − | + | "ByPax": true, | |
| − | + | "Partner": { | |
| − | + | "Key": 0, | |
| − | + | "Value": null | |
| − | + | } | |
| − | + | }], | |
| − | + | "ParentId": null, | |
| − | + | "PartnerBasedOnServiceTemplateId": null, | |
| − | + | "Id": 10, | |
| − | + | "SvKey": 6, | |
| − | + | "IsSubCode1": true, | |
| − | + | "IsSubCode2": true, | |
| − | + | "IsPartnerBasedOn": false, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 3, | |
| − | + | "BeginDateTime": "2018-02-25T00:00:00", | |
| − | + | "EndDateTime": "2018-02-28T00:00:00", | |
| − | + | "IsHooded": false, | |
| − | + | "IsDeleted": true, | |
| − | + | "IsNotCalculate": true, | |
| − | + | "PacketId": 882, | |
| − | + | "Index": 2 | |
| − | + | }], | |
| − | + | [ { | |
| − | + | "ServiceName": "экскурсия", | |
| − | + | "City": { | |
| − | + | "Key": 1046, | |
| − | + | "Value": "Санто-Доминго" | |
| − | + | }, | |
| − | + | "Country": { | |
| − | + | "Key": 6245, | |
| − | + | "Value": "Испания" | |
| − | + | }, | |
| − | + | "Code": { | |
| − | + | "Key": 743, | |
| − | + | "Value": "4" | |
| − | + | }, | |
| − | + | "ByScheduler": false, | |
| − | + | "Details": [ { | |
| − | + | "SubCode1": { | |
| − | + | "Key": 37, | |
| − | + | "Value": "Мини-автобус 10 чел." | |
| − | + | }, | |
| − | + | "SubCode2": { | |
| − | + | "Key": null, | |
| − | + | "Value": "" | |
| − | + | }, | |
| − | + | "Date": null, | |
| − | + | "IsShowTransportPlan": false, | |
| − | + | "Cost": 85.22, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 1, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "PartnerId": 12667, | |
| − | + | "ByPax": true, | |
| − | + | "Partner": { | |
| − | + | "Key": 0, | |
| − | + | "Value": null | |
| − | + | } | |
| − | + | }], | |
| − | + | "ParentId": null, | |
| − | + | "PartnerBasedOnServiceTemplateId": null, | |
| − | + | "Id": 7, | |
| − | + | "SvKey": 4, | |
| − | + | "IsSubCode1": true, | |
| − | + | "IsSubCode2": false, | |
| − | + | "IsPartnerBasedOn": true, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 0, | |
| − | + | "BeginDateTime": "2018-02-25T00:00:00", | |
| − | + | "EndDateTime": "2018-02-26T00:00:00", | |
| − | + | "IsHooded": false, | |
| − | + | "IsDeleted": true, | |
| − | + | "IsNotCalculate": true, | |
| − | + | "PacketId": 779, | |
| − | + | "Index": 3 | |
| − | + | }] | |
| − | + | ], | |
| − | + | "MinCostServicesComposition": [ | |
| − | + | { | |
| − | + | "Key": { | |
| − | + | "TemplateId": 3, | |
| − | + | "PatternId": 13, | |
| − | + | "SettingId": 13 | |
| − | + | }, | |
| − | + | "Value": { | |
| − | + | "ServiceType": 1, | |
| − | + | "Code": 882, | |
| − | + | "SubCode1": 89, | |
| − | + | "SubCode2": 1, | |
| − | + | "PacketId": 779, | |
| − | + | "PartnerId": 12668, | |
| − | + | "CountryId": 90, | |
| − | + | "CityId": 35, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 0 | |
| − | + | } | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": { | |
| − | + | "TemplateId": 1, | |
| − | + | "PatternId": 0, | |
| − | + | "SettingId": 0 | |
| − | + | }, | |
| − | + | "Value": { | |
| − | + | "ServiceType": 3, | |
| − | + | "Code": 709, | |
| − | + | "SubCode1": 46463, | |
| − | + | "SubCode2": 4, | |
| − | + | "PacketId": 779, | |
| − | + | "PartnerId": 12667, | |
| − | + | "CountryId": 90, | |
| − | + | "CityId": 35, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 3 | |
| − | + | } | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": { | |
| − | + | "TemplateId": 4, | |
| − | + | "PatternId": 5, | |
| − | + | "SettingId": 4 | |
| − | + | }, | |
| − | + | "Value": { | |
| − | + | "ServiceType": 1, | |
| − | + | "Code": 774, | |
| − | + | "SubCode1": 89, | |
| − | + | "SubCode2": 35, | |
| − | + | "PacketId": 779, | |
| − | + | "PartnerId": 10760, | |
| − | + | "CountryId": 460, | |
| − | + | "CityId": 1, | |
| − | + | "Day": 4, | |
| − | + | "DurationInNight": 0 | |
| − | + | } | |
| − | + | } | |
| − | + | ], | |
| − | + | "FlightWeight": 2, | |
| − | + | "LinkingFlightsRules": { | |
| − | + | "notCombineDifferentAirlineRule": { | |
| − | + | "airlines": ["AY2"], | |
| − | + | "flightSettings": [], | |
| − | + | "enabled": true | |
| − | + | }, | |
| − | + | "checkPlusMinus1CharterRule": { | |
| − | + | "FlightSettingPairs": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "notCombineDifferentTariffGroupRule": { | |
| − | + | "FlightSettings": [], | |
| − | + | "enabled": true | |
| − | + | }, | |
| − | + | "notCombineDifferentPartnerRule": { | |
| − | + | "FlightSettings": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "departureCityEqualsArrivalCityRule": { | |
| − | + | "FlightSettingPairs": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "combineOnlySpecificChartersRule": { | |
| − | + | "settings": [], | |
| − | + | "enabled": false | |
| − | + | } | |
| − | + | }, | |
| − | + | "RouteSubVariants": [] | |
| − | + | } | |
| − | + | ], | |
| − | + | "SecondaryFiltersResult": { | |
| − | + | "TourTypes": [ { | |
| − | + | "Id": 2, | |
| − | + | "Name": "Стандартный тур", | |
| − | + | "ParentId": null, | |
| − | + | "Type": "TourType" | |
| − | + | }], | |
| − | + | "TourPrograms": [ | |
| − | + | { | |
| − | + | "Key": 100000004, | |
| − | + | "Name": "Общая проверка системы", | |
| − | + | "TourUrl": "www.megatec.ru", | |
| − | + | "BookingConditions": "<p>Условия бронирования тура.<\/p>", | |
| − | + | "IsLandOnly": false, | |
| − | + | "IsRestrictMultiHotels": false, | |
| − | + | "IsHotelTemplates": true, | |
| − | + | "IsRouteServices": true, | |
| − | + | "MultiHotelDelta": 0, | |
| − | + | "Rate": "EU", | |
| − | + | "DateStart": "2018-01-30T00:00:00Z", | |
| − | + | "DateEnd": "2018-02-27T00:00:00Z", | |
| − | + | "Status": { | |
| − | + | "Key": 3, | |
| − | + | "Value": "Доступен для продажи" | |
| − | + | }, | |
| − | + | "Templates": [ | |
| − | + | {"$id": "5"}, | |
| − | + | {"$id": "6"}, | |
| − | + | {"$id": "7"}, | |
| − | + | {"$id": "8"}, | |
| − | + | {"$id": "9"} | |
| − | + | ], | |
| − | + | "Types": [ { | |
| − | + | "Id": 2, | |
| − | + | "Name": "Стандартный тур", | |
| − | + | "ParentId": null, | |
| − | + | "Type": "TourType" | |
| − | + | }], | |
| − | + | "LinkingFlightsRules": { | |
| − | + | "notCombineDifferentAirlineRule": { | |
| − | + | "airlines": ["AY2"], | |
| − | + | "flightSettings": [], | |
| − | + | "enabled": true | |
| − | + | }, | |
| − | + | "checkPlusMinus1CharterRule": { | |
| − | + | "FlightSettingPairs": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "notCombineDifferentTariffGroupRule": { | |
| − | + | "FlightSettings": [], | |
| − | + | "enabled": true | |
| − | + | }, | |
| − | + | "notCombineDifferentPartnerRule": { | |
| − | + | "FlightSettings": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "departureCityEqualsArrivalCityRule": { | |
| − | * | + | "FlightSettingPairs": [], |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "combineOnlySpecificChartersRule": { | |
| − | + | "settings": [], | |
| − | + | "enabled": false | |
| − | * | + | } |
| − | + | }, | |
| − | + | "Type": "TourProgram" | |
| − | + | } | |
| − | + | ], | |
| − | * | + | "TourDurations": [4], |
| − | + | "TourDates": ["2018-02-25T00:00:00"], | |
| − | + | "HotelCities": [ { | |
| − | + | "key": 35, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Вена", | |
| − | + | "Code": "VIE", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | + | "IsDeparture": 1, | |
| − | + | "Type": "City" | |
| − | + | }], | |
| − | + | "HotelResorts": [ { | |
| − | + | "Key": -1, | |
| − | + | "CountryKey": 0, | |
| − | + | "Name": "Не указан", | |
| − | + | "NameLat": null, | |
| − | + | "Type": "Resort" | |
| − | + | }], | |
| − | + | "HotelCategories": [ | |
| − | + | { | |
| − | + | "Key": 23, | |
| − | + | "Name": "1*", | |
| − | + | "PrintNumber": 1, | |
| − | + | "Type": "HotelCatigory" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 56, | |
| − | + | "Name": "2*", | |
| − | * | + | "PrintNumber": 2, |
| − | + | "Type": "HotelCatigory" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 66, | |
| − | * | + | "Name": "4*Boutique", |
| − | + | "PrintNumber": null, | |
| − | + | "Type": "HotelCatigory" | |
| − | + | } | |
| − | + | ], | |
| − | + | "Hotels": [ | |
| − | + | { | |
| − | + | "Key": 705, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "City": { | |
| − | + | "key": 35, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Вена", | |
| − | + | "Code": "VIE", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | * | + | "IsDeparture": 1, |
| − | + | "Type": "City" | |
| − | + | }, | |
| − | + | "Resort": null, | |
| − | + | "Name": "Continental", | |
| − | + | "Category": { | |
| − | + | "Key": 23, | |
| − | + | "Name": "1*", | |
| − | + | "PrintNumber": 1, | |
| − | * | + | "Type": "HotelCatigory" |
| − | + | }, | |
| − | + | "TimeFrom": null, | |
| − | + | "TimeTo": null, | |
| − | + | "HTTP": null, | |
| − | + | "Stars": "1*", | |
| − | + | "TimeIsEmpty": true, | |
| − | + | "NameLat": "Continental", | |
| − | + | "Address": null, | |
| − | + | "IsCruise": 0, | |
| − | + | "Phone": null, | |
| − | + | "Code": null, | |
| − | + | "Type": "Hotel" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 178, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "City": { | |
| − | + | "key": 35, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | * | + | }, |
| − | + | "name": "Вена", | |
| − | + | "Code": "VIE", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | * | + | "IsDeparture": 1, |
| − | + | "Type": "City" | |
| − | + | }, | |
| − | + | "Resort": null, | |
| − | + | "Name": "Ananas", | |
| − | + | "Category": { | |
| − | + | "Key": 56, | |
| − | + | "Name": "2*", | |
| − | + | "PrintNumber": 2, | |
| − | + | "Type": "HotelCatigory" | |
| − | + | }, | |
| − | + | "TimeFrom": "1900-01-01T11:00:00", | |
| − | + | "TimeTo": "1900-01-01T12:00:00", | |
| − | + | "HTTP": "http://booking.panteon.ru/TourPrograms/Home/Tour/?tourKey=100000007", | |
| − | + | "Stars": "2*", | |
| − | + | "TimeIsEmpty": false, | |
| − | + | "NameLat": "Ananas", | |
| − | + | "Address": null, | |
| − | + | "IsCruise": 0, | |
| − | + | "Phone": "(+43/1) 546200", | |
| − | + | "Code": null, | |
| − | + | "Type": "Hotel" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 707, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "City": { | |
| − | + | "key": 35, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Вена", | |
| − | + | "Code": "VIE", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | + | "IsDeparture": 1, | |
| − | + | "Type": "City" | |
| − | + | }, | |
| − | + | "Resort": null, | |
| − | + | "Name": "Beim Theresianum", | |
| − | + | "Category": { | |
| − | + | "Key": 66, | |
| − | + | "Name": "4*Boutique", | |
| − | + | "PrintNumber": null, | |
| − | + | "Type": "HotelCatigory" | |
| − | + | }, | |
| − | + | "TimeFrom": null, | |
| − | + | "TimeTo": null, | |
| − | + | "HTTP": null, | |
| − | + | "Stars": "4*Boutique", | |
| − | + | "TimeIsEmpty": true, | |
| − | + | "NameLat": "Beim Theresianum", | |
| − | + | "Address": null, | |
| − | + | "IsCruise": 0, | |
| − | + | "Phone": null, | |
| − | + | "Code": null, | |
| − | + | "Type": "Hotel" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 709, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "City": { | |
| − | + | "key": 35, | |
| − | + | "Country": { | |
| − | + | "key": 90, | |
| − | + | "name": "Австрия", | |
| − | + | "Code": "AUS", | |
| − | + | "CitizenName": "Австрия", | |
| − | + | "CitizenNameLat": "AUSTRIA", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 1, | |
| − | + | "WebImage": "/pics/animate/austria.gif", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Вена", | |
| − | + | "Code": "VIE", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | + | "IsDeparture": 1, | |
| − | + | "Type": "City" | |
| − | + | }, | |
| − | + | "Resort": null, | |
| − | + | "Name": "Am Brilliantengrund", | |
| − | + | "Category": null, | |
| − | + | "TimeFrom": null, | |
| − | + | "TimeTo": null, | |
| − | + | "HTTP": null, | |
| − | + | "Stars": "", | |
| − | + | "TimeIsEmpty": true, | |
| − | + | "NameLat": "Am Brilliantengrund", | |
| − | + | "Address": null, | |
| − | + | "IsCruise": 0, | |
| − | + | "Phone": null, | |
| − | + | "Code": null, | |
| − | + | "Type": "Hotel" | |
| − | + | } | |
| − | + | ], | |
| − | + | "Pansions": [ | |
| − | + | { | |
| − | + | "Key": 46, | |
| − | + | "Code": "RO", | |
| − | + | "Name": "RO", | |
| − | + | "NameLat": null, | |
| − | + | "Type": "Pansion" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 4, | |
| − | + | "Code": "BB2", | |
| − | + | "Name": "Завтрак", | |
| − | + | "NameLat": null, | |
| − | + | "Type": "Pansion" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 2, | |
| − | + | "Code": "HB", | |
| − | + | "Name": "Полупансион", | |
| − | + | "NameLat": null, | |
| − | + | "Type": "Pansion" | |
| − | + | } | |
| − | + | ], | |
| − | + | "Airlines": [ | |
| − | + | { | |
| − | + | "Key": 8, | |
| − | + | "Code": "BA7", | |
| − | + | "Name": "BRITISH AIRWAYS", | |
| − | + | "NameLat": "en_BRITISH AIRWAYS", | |
| − | + | "Type": "AirLine" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 3, | |
| − | + | "Code": "7U", | |
| − | + | "Name": "Авиаэнерго", | |
| − | + | "NameLat": "en_Авиаэнерго", | |
| − | + | "Type": "AirLine" | |
| − | + | } | |
| − | + | ], | |
| − | + | "FlightTariffs": [ { | |
| − | + | "Key": 89, | |
| − | + | "Code": "Y", | |
| − | + | "Name": "Экономический класс", | |
| − | + | "NameLat": "Coach economy", | |
| − | + | "Group": null, | |
| − | + | "Type": "AirService" | |
| − | + | }], | |
| − | + | "DepartureCities": [ { | |
| − | + | "key": 1, | |
| − | + | "Country": { | |
| − | + | "key": 460, | |
| − | + | "name": "Россия", | |
| − | + | "Code": null, | |
| − | + | "CitizenName": "Россия", | |
| − | + | "CitizenNameLat": "Russia", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": true, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 0, | |
| − | + | "WebImage": "", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Москва", | |
| − | + | "Code": "MOW", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | + | "IsDeparture": 1, | |
| − | + | "Type": "City" | |
| − | + | }], | |
| − | + | "DepartureAirports": [ { | |
| − | + | "Key": 52, | |
| − | + | "Code": "SVO4", | |
| − | + | "Name": "Шереметьево-24", | |
| − | + | "NameLat": "Шереметьево-", | |
| − | + | "CityKey": 1, | |
| − | + | "CountryKey": 460, | |
| − | + | "Letter": "S", | |
| − | + | "Site": 0, | |
| − | + | "Type": "Airport" | |
| − | + | }], | |
| − | + | "ArrivalCities": [ { | |
| − | + | "key": 1, | |
| − | + | "Country": { | |
| − | + | "key": 460, | |
| − | + | "name": "Россия", | |
| − | + | "Code": null, | |
| − | + | "CitizenName": "Россия", | |
| − | + | "CitizenNameLat": "Russia", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": true, | |
| − | + | "PassportMinDur": null, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 0, | |
| − | + | "WebImage": "", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Москва", | |
| − | + | "Code": "MOW", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | + | "IsDeparture": 1, | |
| − | + | "Type": "City" | |
| − | + | }], | |
| − | + | "ArrivalAirports": [ { | |
| − | + | "Key": 12, | |
| − | + | "Code": "DME", | |
| − | + | "Name": "Домодедово", | |
| − | + | "NameLat": "Домодедово", | |
| − | + | "CityKey": 1, | |
| − | + | "CountryKey": 460, | |
| − | + | "Letter": "D", | |
| − | + | "Site": 0, | |
| − | + | "Type": "Airport" | |
| − | + | }], | |
| − | + | "HotelTypes": [ | |
| − | + | { | |
| − | + | "key": 94, | |
| − | + | "name": "Молодежный отдых", | |
| − | + | "Type": "HotelType" | |
| − | + | }, | |
| − | + | { | |
| − | + | "key": 5, | |
| − | + | "name": "Рекомендуемые", | |
| − | + | "Type": "HotelType" | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ===Поиск туров онлайн (TourForWeb)=== | |
| − | + | Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод возвращает наиболее дешевые предложения, найденные по предоставленным параметрам и сгруппированные по отелям в порядке возрастания цены. В зависимости от параметров запроса, дополнительных фильтров формат запроса имеет отличия. Метод используется при работе веб-приложения Canary. | |
| − | + | * Обычный формат запроса GET: | |
| − | + | ** GET .../TourSearchOwin/TourForWeb/search/simple? | |
| − | + | * Принимаемые параметры ( '''*''' – обязательный): | |
| − | + | ** '''DepartureCityKeys *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | |
| − | + | ** '''Dates *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | |
| − | + | ** '''Durations *''' – массив продолжительностей (полученные из метода ''.../TourSearchOwin/Duration?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | |
| − | + | ** '''PageNumber *''' – номер возвращаемой страницы (по умолчанию возвращается 1) | |
| − | + | ** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | |
| − | + | ** '''HotelScheme''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры: | |
| − | + | *** '''TemplateId''' – идентификатор шаблона услуги (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Key->TemplateId), | |
| − | + | *** '''DurationInNight''' – продолжительность отеля в ночах (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->DurationInNight), | |
| − | + | *** '''Code''' – ключ отеля (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->Code), | |
| − | + | *** '''PacketKey''' – ключ пакета (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PacketId), | |
| − | + | *** '''PartnerKey''' – ключ партнера (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PartnerId), | |
| − | + | *** '''GDSProviderId''' – ключ провайдера из внешней системы (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->GDSProviderId), | |
| − | + | *** '''TotalTourDuration''' – общая продолжительность тура в днях (этот параметр можно взять из контроллера Tour->Result->Duration) | |
| − | + | ** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура | |
| − | + | ** '''TourDuration''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях | |
| − | + | ** '''ShowToursWithoutHotels''' – показывать ли туры без проживания | |
| − | + | ** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false). | |
| − | + | ** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. | |
| − | + | ** '''DestinationType *''' – | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
}, | }, | ||
| − | " | + | "ArrivalCity": { |
| − | + | "Key": 62, | |
| − | + | "Value": "Амстердам" | |
| − | + | }, | |
| − | + | "ArrivalCountry": { | |
| − | " | + | "Key": 1, |
| − | + | "Value": "Голландия" | |
| − | + | }, | |
| − | + | "DepartureAirport": { | |
| − | + | "Key": "ASF", | |
| − | + | "Value": "Астрахань" | |
| − | + | }, | |
| − | + | "ArrivalAirport": { | |
| − | + | "Key": "EH9", | |
| − | + | "Value": "AMST" | |
| − | " | + | }, |
| − | + | "Airline": { | |
| − | + | "Id": 43, | |
| − | + | "Value": "МАУ", | |
| − | + | "Key": "PS" | |
| − | + | }, | |
| − | + | "Aircraft": { | |
| − | + | "Key": "133", | |
| − | + | "Value": "13131313" | |
| − | + | }, | |
| − | + | "Flight": { | |
| − | + | "Key": 2111, | |
| − | + | "Value": "9117" | |
| − | + | }, | |
| − | + | "DepartureTime": "17:05:00", | |
| − | + | "ArrivalTime": "20:05:00", | |
| − | + | "TotalTimeOfFlight": 420, | |
| − | + | "FlightDetails": [ | |
| − | + | { | |
| − | + | "Tariff": { | |
| − | + | "Key": 339, | |
| − | + | "Code": "14", | |
| − | + | "Name": "14" | |
| − | + | }, | |
| − | + | "IsCommission": true, | |
| − | + | "Cost": 0, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "PartnerId": 12685, | |
| − | + | "ByPax": true, | |
| − | + | "Partner": { | |
| − | + | "Key": 0, | |
| − | + | "Value": null | |
| − | + | } | |
| − | + | } | |
| − | + | ], | |
| − | + | "FlightSetting": { | |
| − | + | "ServiceId": 1, | |
| − | + | "PatternId": 30, | |
| − | + | "FlightId": 30 | |
| − | + | }, | |
| − | + | "FlightSourceMode": 1, | |
| − | + | "Id": 1, | |
| − | + | "SvKey": 1, | |
| − | + | "IsSubCode1": true, | |
| − | + | "IsSubCode2": false, | |
| − | + | "IsPartnerBasedOn": false, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 0, | |
| − | + | "BeginDateTime": "2021-10-18T17:05:00", | |
| − | + | "EndDateTime": "2021-10-18T20:05:00", | |
| − | + | "IsHooded": false, | |
| − | + | "IsDeleted": false, | |
| − | + | "IsNotCalculate": false, | |
| − | + | "PacketId": 1462, | |
| − | + | "Index": 0 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
}, | }, | ||
| − | " | + | { |
| − | + | "DepartureCity": { | |
| − | + | "Key": 62, | |
| − | + | "Value": "Амстердам" | |
| − | + | }, | |
| − | + | "DepartureCountry": { | |
| − | + | "Key": 1, | |
| − | + | "Value": "Голландия" | |
| − | + | }, | |
| − | + | "ArrivalCity": { | |
| − | + | "Key": 312, | |
| − | + | "Value": "Астрахань" | |
| − | + | }, | |
| − | + | "ArrivalCountry": { | |
| − | + | "Key": 460, | |
| − | + | "Value": "Россия" | |
| − | + | }, | |
| − | + | "DepartureAirport": { | |
| − | + | "Key": "EH9", | |
| − | + | "Value": "AMST" | |
| − | + | }, | |
| − | + | "ArrivalAirport": { | |
| − | + | "Key": "ASF", | |
| − | + | "Value": "Астрахань" | |
| − | + | }, | |
| − | + | "Airline": { | |
| − | + | "Id": 304, | |
| − | + | "Value": "АЭРОФЛОТ", | |
| − | + | "Key": "AUF" | |
| − | " | + | }, |
| − | + | "Aircraft": { | |
| − | + | "Key": "330", | |
| − | " | + | "Value": "aerobus A-330" |
| − | + | }, | |
| − | " | + | "Flight": { |
| − | " | + | "Key": 2080, |
| − | + | "Value": "9000" | |
| − | " | + | }, |
| − | " | + | "DepartureTime": "09:59:00", |
| − | + | "ArrivalTime": "12:59:00", | |
| − | + | "TotalTimeOfFlight": -60, | |
| − | + | "FlightDetails": [ | |
| − | + | { | |
| − | + | "Tariff": { | |
| − | + | "Key": 339, | |
| − | + | "Code": "14", | |
| − | + | "Name": "14" | |
| − | + | }, | |
| − | + | "IsCommission": true, | |
| − | + | "Cost": 0, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "PartnerId": 12685, | |
| − | + | "ByPax": true, | |
| − | + | "Partner": { | |
| − | + | "Key": 0, | |
| − | + | "Value": null | |
| − | + | } | |
| − | + | } | |
| − | + | ], | |
| − | + | "FlightSetting": { | |
| − | + | "ServiceId": 2, | |
| − | + | "PatternId": 1, | |
| − | + | "FlightId": 0 | |
| − | + | }, | |
| − | + | "FlightSourceMode": 1, | |
| − | + | "Id": 2, | |
| − | + | "SvKey": 1, | |
| − | + | "IsSubCode1": true, | |
| − | + | "IsSubCode2": false, | |
| − | + | "IsPartnerBasedOn": false, | |
| − | + | "Day": 2, | |
| − | + | "DurationInNight": 0, | |
| − | + | "BeginDateTime": "2021-10-19T09:59:00", | |
| − | + | "EndDateTime": "2021-10-19T12:59:00", | |
| − | + | "IsHooded": false, | |
| − | + | "IsDeleted": false, | |
| − | + | "IsNotCalculate": false, | |
| − | + | "PacketId": 1462, | |
| − | } | + | "Index": 1 |
| − | + | }, | |
| − | + | { | |
| − | + | "Hotel": { | |
| − | + | "Key": 238, | |
| − | + | "Value": "Hotel 4" | |
| − | + | }, | |
| − | + | "City": { | |
| − | + | "Key": 62, | |
| − | + | "Value": "Амстердам" | |
| − | + | }, | |
| − | + | "Stars": { | |
| − | + | "Key": 23, | |
| − | + | "Value": "1*++" | |
| − | + | }, | |
| − | + | "StarsGlobalCode": { | |
| − | * | + | "Key": 23, |
| − | + | "Value": "1*" | |
| − | + | }, | |
| − | + | "Resort": { | |
| − | + | "Key": -1, | |
| − | + | "Value": null | |
| − | + | }, | |
| − | + | "ImageURL": "", | |
| − | + | "Http": "https://aniconrus.ru/ru/", | |
| − | + | "Description": "", | |
| − | + | "Latitude": null, | |
| − | + | "Longitude": null, | |
| − | + | "Country": { | |
| − | + | "Key": 1, | |
| − | + | "Value": "Голландия" | |
| − | + | }, | |
| − | + | "HotelDetails": [ | |
| − | + | { | |
| − | + | "HotelRoom": 1085918, | |
| − | + | "Room": { | |
| − | + | "Key": 141, | |
| − | + | "Value": "2AD" | |
| − | + | }, | |
| − | + | "RoomCategory": { | |
| − | + | "Key": 2905, | |
| − | + | "Value": "Double" | |
| − | + | }, | |
| − | + | "AccomodationType": { | |
| − | + | "Key": 1172, | |
| − | + | "Value": "2AD", | |
| − | + | "AdultCount": 2, | |
| − | + | "ChildCount": 0 | |
| − | + | }, | |
| − | + | "Pansion": { | |
| − | + | "Key": 1, | |
| − | + | "Value": "Полный пансион" | |
| − | + | }, | |
| − | + | "PansionGlobalCode": { | |
| − | + | "Key": 1, | |
| − | + | "Value": null | |
| − | + | }, | |
| − | + | "RemoteId": null, | |
| − | + | "Cost": 0, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "PartnerId": 12685, | |
| − | + | "ByPax": true, | |
| − | + | "Partner": { | |
| − | + | "Key": 12685, | |
| − | + | "Value": " ПКЦ" | |
| − | + | } | |
| − | + | } | |
| − | + | ], | |
| − | + | "HotelTypes": [ | |
| − | + | { | |
| − | + | "Key": 290, | |
| − | + | "Value": "ALEXXZ" | |
| − | + | } | |
| − | + | ], | |
| − | + | "RemoteId": null, | |
| − | + | "COAndSpecialsInfo": { | |
| − | + | "AppliedCostOffersKeys": [ | |
| − | + | 21706 | |
| − | + | ], | |
| − | + | "AppliedSpeciasInfo": null | |
| − | + | }, | |
| − | + | "Id": 3, | |
| − | + | "SvKey": 3, | |
| − | + | "IsSubCode1": true, | |
| − | + | "IsSubCode2": true, | |
| − | + | "IsPartnerBasedOn": false, | |
| − | + | "Day": 2, | |
| − | + | "DurationInNight": 4, | |
| − | + | "BeginDateTime": "2021-10-19T12:59:00", | |
| − | { | + | "EndDateTime": "2021-10-23T12:59:00", |
| − | + | "IsHooded": false, | |
| − | + | "IsDeleted": false, | |
| − | } | + | "IsNotCalculate": false, |
| − | + | "PacketId": 1462, | |
| − | + | "Index": 2 | |
| − | + | } | |
| − | + | ], | |
| − | + | "NotRouteServices": [], | |
| − | + | "MinCostServicesComposition": [ | |
| − | + | { | |
| − | + | "Key": { | |
| − | + | "TemplateId": 1, | |
| − | + | "PatternId": 30, | |
| − | + | "SettingId": 30 | |
| − | + | }, | |
| − | + | "Value": { | |
| − | + | "ServiceType": 1, | |
| − | + | "Code": 2111, | |
| − | + | "SubCode1": 339, | |
| − | + | "SubCode2": 312, | |
| − | + | "PacketId": 1462, | |
| − | + | "PartnerId": 12685, | |
| − | + | "CountryId": 1, | |
| − | + | "CityId": 62, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 0, | |
| − | + | "GDSProviderId": null, | |
| − | + | "COAndSpecialsInfo": { | |
| − | + | "AppliedCostOffersKeys": null, | |
| − | + | "AppliedSpeciasInfo": null | |
| − | + | }, | |
| − | + | "COBySubCode": [ | |
| − | + | 21756 | |
| − | + | ], | |
| − | + | "SpecialsBySubCode": null | |
| − | + | } | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": { | |
| − | + | "TemplateId": 2, | |
| − | + | "PatternId": 1, | |
| − | + | "SettingId": 0 | |
| − | + | }, | |
| − | + | "Value": { | |
| − | + | "ServiceType": 1, | |
| − | + | "Code": 2080, | |
| − | + | "SubCode1": 339, | |
| − | + | "SubCode2": 62, | |
| − | + | "PacketId": 1462, | |
| − | + | "PartnerId": 12685, | |
| − | + | "CountryId": 460, | |
| − | + | "CityId": 312, | |
| − | + | "Day": 2, | |
| − | + | "DurationInNight": 0, | |
| − | + | "GDSProviderId": null, | |
| − | + | "COAndSpecialsInfo": { | |
| − | + | "AppliedCostOffersKeys": null, | |
| − | + | "AppliedSpeciasInfo": null | |
| − | + | }, | |
| − | + | "COBySubCode": [ | |
| − | + | 21705 | |
| − | + | ], | |
| − | + | "SpecialsBySubCode": null | |
| − | + | } | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": { | |
| − | + | "TemplateId": 3, | |
| − | + | "PatternId": 0, | |
| − | + | "SettingId": 0 | |
| − | + | }, | |
| − | + | "Value": { | |
| − | + | "ServiceType": 3, | |
| − | + | "Code": 238, | |
| − | + | "SubCode1": 1085918, | |
| − | + | "SubCode2": 1, | |
| − | + | "PacketId": 1462, | |
| − | + | "PartnerId": 12685, | |
| − | + | "CountryId": 1, | |
| − | + | "CityId": 62, | |
| − | + | "Day": 2, | |
| − | + | "DurationInNight": 4, | |
| − | + | "GDSProviderId": null, | |
| − | + | "COAndSpecialsInfo": { | |
| − | + | "AppliedCostOffersKeys": null, | |
| − | + | "AppliedSpeciasInfo": null | |
| − | + | }, | |
| − | + | "COBySubCode": [ | |
| − | + | 21706 | |
| − | + | ], | |
| − | + | "SpecialsBySubCode": null | |
| − | + | } | |
| − | + | } | |
| − | + | ], | |
| − | + | "FlightWeight": 2, | |
| − | + | "LinkingFlightsRules": { | |
| − | + | "notCombineDifferentAirlineRule": { | |
| − | + | "airlines": [], | |
| − | + | "flightSettings": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "checkPlusMinus1CharterRule": { | |
| − | + | "FlightSettingPairs": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "notCombineDifferentTariffGroupRule": { | |
| − | + | "FlightSettings": [], | |
| − | + | "enabled": false | |
| − | { | + | }, |
| − | + | "notCombineDifferentPartnerRule": { | |
| − | + | "FlightSettings": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "departureCityEqualsArrivalCityRule": { | |
| − | + | "FlightSettingPairs": [], | |
| − | + | "enabled": false | |
| − | |||
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
}, | }, | ||
| − | " | + | "combineOnlySpecificChartersRule": { |
| − | + | "settings": [], | |
| − | + | "enabled": false | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
}, | }, | ||
| − | " | + | "RouteSubVariants": [], |
| − | + | "Routes": 15, | |
| − | + | "IsRemoteHotels": false | |
| − | + | ], | |
| − | + | "SecondaryFiltersResult": { | |
| − | { | + | "TourTypes": [ |
| − | + | { | |
| − | " | + | "Id": 45, |
| − | " | + | "Name": "Индивидуальный тур", |
| − | " | + | "ParentId": null, |
| − | " | + | "Type": "TourType" |
| − | " | + | } |
| − | " | + | ], |
| − | " | + | "TourPrograms": [ |
| − | " | + | { |
| − | " | + | "Key": 100011112, |
| − | " | + | "Name": "EFREHolland", |
| − | " | + | "TourUrl": null, |
| − | " | + | "BookingConditions": null, |
| − | " | + | "DefaultManagers": [], |
| − | " | + | "Manager": 106, |
| − | " | + | "Branches": [], |
| − | " | + | "DetermineTheBranchOnCity": false, |
| − | " | + | "IsLandOnly": false, |
| − | " | + | "IsApplyMarginAddCostToRemoteService": true, |
| − | " | + | "IsRestrictMultiHotels": false, |
| − | + | "IsHotelTemplates": true, | |
| − | " | + | "IsRouteServices": true, |
| − | " | + | "IsAviaBooking": false, |
| − | " | + | "MultiHotelDelta": 0, |
| − | + | "Rate": "рб", | |
| + | "RateId": 14, | ||
| + | "DateStart": "2021-08-01T00:00:00Z", | ||
| + | "DateEnd": "2021-12-31T00:00:00Z", | ||
| + | "DateList": [], | ||
| + | "UpdateDate": "2021-10-01T14:56:14.44", | ||
| + | "Status": { | ||
| + | "Key": 3, | ||
| + | "Value": "Доступен для продажи" | ||
}, | }, | ||
| − | " | + | "Templates": [ |
| − | |||
| − | |||
| − | |||
| − | |||
{ | { | ||
| − | " | + | "$id": "1" |
| − | |||
| − | |||
| − | |||
}, | }, | ||
{ | { | ||
| − | " | + | "$id": "2" |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
}, | }, | ||
{ | { | ||
| − | " | + | "$id": "3" |
| − | |||
| − | |||
| − | |||
} | } | ||
| − | ] | + | ], |
| − | + | "Types": [ | |
| − | + | { | |
| − | + | "Id": 45, | |
| − | + | "Name": "Индивидуальный тур", | |
| − | + | "ParentId": null, | |
| − | + | "Type": "TourType" | |
| − | + | } | |
| − | + | ], | |
| − | + | "LinkingFlightsRules": { | |
| − | + | "notCombineDifferentAirlineRule": { | |
| − | + | "airlines": [], | |
| − | + | "flightSettings": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "checkPlusMinus1CharterRule": { | |
| − | + | "FlightSettingPairs": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "notCombineDifferentTariffGroupRule": { | |
| − | + | "FlightSettings": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "notCombineDifferentPartnerRule": { | |
| − | + | "FlightSettings": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "departureCityEqualsArrivalCityRule": { | |
| − | + | "FlightSettingPairs": [], | |
| − | + | "enabled": false | |
| − | + | }, | |
| − | + | "combineOnlySpecificChartersRule": { | |
| − | + | "settings": [], | |
| − | " | + | "enabled": false |
| − | + | } | |
| − | " | + | }, |
| − | + | "IsMultiHotel": false, | |
| − | + | "Type": "TourProgram" | |
| − | + | } | |
| − | + | ], | |
| − | + | "TourDurations": [ | |
| − | + | 6 | |
| − | + | ], | |
| − | + | "TourDates": [ | |
| − | + | "2021-10-18T00:00:00" | |
| − | + | ], | |
| − | + | "HotelCities": [ | |
| − | + | { | |
| − | + | "key": 62, | |
| − | + | "Country": { | |
| − | + | "key": 1, | |
| − | + | "name": "Голландия", | |
| − | + | "Code": "Hol", | |
| − | + | "DigitCode": "528", | |
| − | + | "Alpha2Code": "NL", | |
| − | + | "Alpha3Code": "NLD", | |
| − | + | "CitizenName": "Голландия", | |
| − | + | "CitizenNameLat": "Holland", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": 0, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 0, | |
| − | + | "WebImage": "ыяфаыуа", | |
| − | " | + | "WebHTTP": "", |
| − | + | "AnkLang": 0, | |
| − | + | "Key": 1, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Амстердам", | |
| − | " | + | "Code": "AMS", |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | + | "IsDeparture": 1, | |
| − | + | "Key": 62, | |
| − | + | "Type": "City" | |
| − | + | } | |
| − | + | ], | |
| − | + | "HotelResorts": [ | |
| − | + | { | |
| − | + | "CountryKey": -1, | |
| − | + | "Name": "Не указан", | |
| − | + | "NameLat": null, | |
| − | + | "Key": -1, | |
| − | + | "Type": "Resort" | |
| − | + | } | |
| − | + | ], | |
| − | + | "HotelCategories": [ | |
| − | + | { | |
| − | + | "Name": "1*++", | |
| − | + | "PrintNumber": 23, | |
| − | + | "GlobalCode": "1*", | |
| − | + | "Key": 23, | |
| − | + | "Type": "HotelCategory" | |
| − | + | } | |
| − | + | ], | |
| − | + | "Hotels": [ | |
| − | + | { | |
| − | + | "Country": { | |
| − | + | "key": 1, | |
| − | + | "name": "Голландия", | |
| − | + | "Code": "Hol", | |
| − | + | "DigitCode": "528", | |
| − | + | "Alpha2Code": "NL", | |
| − | + | "Alpha3Code": "NLD", | |
| − | + | "CitizenName": "Голландия", | |
| − | + | "CitizenNameLat": "Holland", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": 0, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 0, | |
| − | + | "WebImage": "ыяфаыуа", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Key": 1, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "City": { | |
| − | + | "key": 62, | |
| − | + | "Country": { | |
| − | + | "key": 1, | |
| − | + | "name": "Голландия", | |
| − | + | "Code": "Hol", | |
| − | + | "DigitCode": "528", | |
| − | + | "Alpha2Code": "NL", | |
| − | + | "Alpha3Code": "NLD", | |
| − | + | "CitizenName": "Голландия", | |
| − | + | "CitizenNameLat": "Holland", | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": false, | |
| − | + | "PassportMinDur": 0, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 0, | |
| − | + | "WebImage": "ыяфаыуа", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Key": 1, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Амстердам", | |
| − | + | "Code": "AMS", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": 0, | |
| − | + | "WebImage": null, | |
| − | + | "IsDeparture": 1, | |
| − | + | "Key": 62, | |
| − | + | "Type": "City" | |
| − | + | }, | |
| − | + | "Resort": null, | |
| − | + | "ResortKey": 0, | |
| − | + | "Name": "Hotel 4", | |
| − | + | "Category": { | |
| − | + | "Name": "1*++", | |
| − | + | "PrintNumber": 23, | |
| − | + | "GlobalCode": "1*", | |
| − | + | "Key": 23, | |
| − | + | "Type": "HotelCategory" | |
| − | + | }, | |
| − | + | "CategoryKey": 23, | |
| − | + | "TimeFrom": null, | |
| − | + | "TimeTo": null, | |
| − | + | "HTTP": "https://aniconrus.ru/ru/", | |
| − | + | "Stars": "1*++", | |
| − | + | "TimeIsEmpty": true, | |
| − | + | "NameLat": "Hotel 4", | |
| − | + | "Address": "", | |
| − | + | "IsCruise": 0, | |
| − | + | "Phone": null, | |
| − | + | "Email": "", | |
| − | + | "Fax": null, | |
| − | + | "Code": null, | |
| − | + | "Site": 0, | |
| − | + | "Descript": "", | |
| − | + | "PayHourNote": null, | |
| − | + | "EarlyCheckInSurcharge": 0, | |
| − | + | "LateCheckOutSurcharge": 0, | |
| − | + | "Latitude": null, | |
| − | + | "Longitude": null, | |
| − | + | "DescExcur": "", | |
| − | + | "DescSport": "", | |
| − | + | "DescHealth": "", | |
| − | + | "DescService": "", | |
| − | + | "Key": 238, | |
| − | + | "Type": "Hotel" | |
| − | + | } | |
| − | + | ], | |
| − | + | "Pansions": [ | |
| − | + | { | |
| − | + | "Code": "FB", | |
| − | + | "Name": "Полный пансион", | |
| − | + | "NameLat": null, | |
| − | " | + | "GlobalCode": null, |
| − | + | "Key": 1, | |
| − | + | "Type": "Pansion" | |
| − | " | + | } |
| − | " | + | ], |
| − | + | "Airlines": [ | |
| − | { | + | { |
| − | " | + | "Key": 43, |
| − | " | + | "Code": "PS", |
| − | + | "ICAO": null, | |
| − | + | "Name": "МАУ", | |
| − | + | "NameLat": "en_Ukrainian Airlanes", | |
| − | + | "Type": "AirLine" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 304, | |
| − | + | "Code": "AUF", | |
| − | + | "ICAO": null, | |
| − | + | "Name": "АЭРОФЛОТ", | |
| − | + | "NameLat": null, | |
| − | + | "Type": "AirLine" | |
| − | + | } | |
| − | + | ], | |
| − | + | "FlightTariffs": [ | |
| − | + | { | |
| − | + | "Key": 339, | |
| − | + | "Code": "14", | |
| − | + | "Name": "14", | |
| − | + | "NameLat": null, | |
| − | + | "Group": null, | |
| − | + | "Type": "AirService" | |
| − | + | } | |
| − | + | ], | |
| − | + | "DepartureCities": [ | |
| − | + | { | |
| − | + | "key": 312, | |
| − | ] | + | "Country": { |
| − | + | "key": 460, | |
| − | + | "name": "Россия", | |
| − | + | "Code": "RU", | |
| − | + | "DigitCode": "643", | |
| − | + | "Alpha2Code": "RU", | |
| − | + | "Alpha3Code": "RUS", | |
| − | + | "CitizenName": "Россия", | |
| − | + | "CitizenNameLat": null, | |
| − | + | "PassportMinDurCheckFrom": 0, | |
| − | + | "CheckINN": true, | |
| − | + | "PassportMinDur": 0, | |
| − | + | "INNName": "ИНН", | |
| − | + | "Web": 0, | |
| − | + | "WebImage": "", | |
| − | + | "WebHTTP": "", | |
| − | + | "AnkLang": 0, | |
| − | + | "Key": 460, | |
| − | + | "Type": "Country" | |
| − | + | }, | |
| − | + | "name": "Астрахань", | |
| − | + | "Code": "", | |
| − | + | "Web": 0, | |
| − | + | "RSKey": null, | |
| − | + | "WebImage": null, | |
| − | + | "IsDeparture": 1, | |
| − | + | "Key": 312, | |
| − | + | "Type": "City" | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
], | ], | ||
| − | " | + | "DepartureAirports": [ |
| − | } | + | { |
| − | </syntaxhighlight> | + | "Key": 168, |
| − | Возвращаемый результат метода | + | "Code": "ASF", |
| − | <syntaxhighlight lang="java" enclose="div"> | + | "Name": "Астрахань", |
| − | [{ | + | "NameLat": null, |
| − | "Errors": [], | + | "CityKey": 312, |
| − | + | "CountryKey": 460, | |
| − | + | "Letter": null, | |
| − | " | + | "Site": null, |
| + | "Type": "Airport" | ||
| + | } | ||
| + | ], | ||
| + | "ArrivalCities": [ | ||
| + | { | ||
| + | "key": 312, | ||
| + | "Country": { | ||
| + | "key": 460, | ||
| + | "name": "Россия", | ||
| + | "Code": "RU", | ||
| + | "DigitCode": "643", | ||
| + | "Alpha2Code": "RU", | ||
| + | "Alpha3Code": "RUS", | ||
| + | "CitizenName": "Россия", | ||
| + | "CitizenNameLat": null, | ||
| + | "PassportMinDurCheckFrom": 0, | ||
| + | "CheckINN": true, | ||
| + | "PassportMinDur": 0, | ||
| + | "INNName": "ИНН", | ||
| + | "Web": 0, | ||
| + | "WebImage": "", | ||
| + | "WebHTTP": "", | ||
| + | "AnkLang": 0, | ||
| + | "Key": 460, | ||
| + | "Type": "Country" | ||
| + | }, | ||
| + | "name": "Астрахань", | ||
| + | "Code": "", | ||
| + | "Web": 0, | ||
| + | "RSKey": null, | ||
| + | "WebImage": null, | ||
| + | "IsDeparture": 1, | ||
| + | "Key": 312, | ||
| + | "Type": "City" | ||
| + | } | ||
| + | ], | ||
| + | "ArrivalAirports": [ | ||
| + | { | ||
| + | "Key": 168, | ||
| + | "Code": "ASF", | ||
| + | "Name": "Астрахань", | ||
| + | "NameLat": null, | ||
| + | "CityKey": 312, | ||
| + | "CountryKey": 460, | ||
| + | "Letter": null, | ||
| + | "Site": null, | ||
| + | "Type": "Airport" | ||
| + | } | ||
| + | ], | ||
| + | "HotelTypes": [ | ||
| + | { | ||
| + | "key": 290, | ||
| + | "name": "ALEXXZ", | ||
| + | "Type": "HotelType" | ||
| + | } | ||
| + | ], | ||
| + | "ComplexHotelIds": [] | ||
| + | }, | ||
| + | "Message": { | ||
| + | "Key": 0, | ||
| + | "Value": null | ||
| + | } | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | * Формат запроса GET с таблицей цен: | ||
| + | ** GET .../TourSearchOwin/TourForWeb/search/matrix? | ||
| + | * Принимаемые параметры ( '''*''' – обязательный): | ||
| + | Аналогичны стандартному запросу (simple) | ||
| + | * Возвращаемый результат: | ||
| + | ** '''CellsForMatrix''' – ячейки таблицы | ||
| + | *** '''Key''' – ключ | ||
| + | *** '''StartDate''' – дата начала | ||
| + | *** '''Duration''' – продолжительность | ||
| + | *** '''DurationInNight''' – количество ночей | ||
| + | *** '''Cost''' – цена | ||
| + | ** '''CitiesWithMinimalCosts''' – города с минимальной ценой | ||
| + | *** '''DepartureCityKey''' – ключ города отправления | ||
| + | *** '''ArrivalCityKey''' – ключ города прибытия | ||
| + | *** '''DepartureCityName''' – наименование города отправления | ||
| + | *** '''ArrivalCityName''' – наименование города прибытия | ||
| + | *** '''RouteMinimalPrice''' – минимальная цена маршрута | ||
| + | ** '''TourMinimalAndMaximalCost''' – минимальная и максимальная цены тура | ||
| + | *** '''MinimalPrice''' – минимальная цена | ||
| + | *** '''MaximalPrice''' – максимальная цена | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода TourForWeb | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/TourForWeb/search/matrix?DepartureCityKeys=1&Dates=18.10.2021 | ||
| + | &Durations=6&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&ShowToursWithoutHotels= | ||
| + | -1&isFromBasket=false&isFillSecondaryFilters=false&DestinationType=1&DestinationKey=90&AdultCount= | ||
| + | 2&CurrencyName=%D1%80%D0%B1&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&TourType=-1&CityIds=35& | ||
| + | TimeDepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00&TimeArrivalTo=23%3A59& | ||
| + | SearchId=1&MatrixAlgoritm=true&wrongLicenseFileUpperTitle=Incorrect+license+file.&RemoteHotelMode=0&_ | ||
| + | =1634028589340 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода TourForWeb (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "CellsForMatrix": [ | ||
| + | { | ||
| + | "Key": 100011079, | ||
| + | "StartDate": "2021-10-18T00:00:00", | ||
| + | "Duration": 6, | ||
| + | "DurationInNight": 5, | ||
| + | "Cost": 1218 | ||
| + | } | ||
| + | ], | ||
| + | "CitiesWithMinimalCosts": [ | ||
| + | { | ||
| + | "DepartureCityKey": 1, | ||
| + | "ArrivalCityKey": 35, | ||
| + | "DepartureCityName": "Москва", | ||
| + | "ArrivalCityName": "Вена", | ||
| + | "RouteMinimalPrice": 1218 | ||
| + | } | ||
| + | ], | ||
| + | "TourMinimalAndMaximalCost": { | ||
| + | "MinimalPrice": 1218, | ||
| + | "MaximalPrice": 53227 | ||
| + | } | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | * Формат запроса GET с минимальной и максимальной ценой: | ||
| + | ** GET .../TourSearchOwin/TourForWeb/search/minMaxPrices? | ||
| + | * Принимаемые параметры ( '''*''' – обязательный): | ||
| + | Аналогичны стандартному запросу (simple) | ||
| + | * Возвращаемый результат: | ||
| + | ** '''MinimalPrice''' – минимальная цена | ||
| + | ** '''MaximalPrice''' – максимальная цена | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода TourForWeb | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/TourForWeb/search/minMaxPrices?DepartureCityKeys=1&Dates=18.10.2021 | ||
| + | &Durations=6&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&ShowToursWithoutHotels= | ||
| + | -1&isFromBasket=false&isFillSecondaryFilters=false&DestinationType=1&DestinationKey=90&AdultCount= | ||
| + | 2&CurrencyName=%D1%80%D0%B1&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&TourType=-1&CityIds=35&Time | ||
| + | DepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00&TimeArrivalTo=23%3A59&SearchId | ||
| + | =1&SearchMaxPriceAlgoritm=false&MatrixAlgoritm=true&wrongLicenseFileUpperTitle=Incorrect+license+file. | ||
| + | &RemoteHotelMode=0&_ | ||
| + | =1634028589340 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода TourForWeb (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "MinimalPrice": 1218, | ||
| + | "MaximalPrice": 285618 | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Проверка дублирующих туристов (CheckDoubleDogovor)=== | ||
| + | Метод проверяет есть ли дублирующие туристы в существующих путевках. Проверка на дублирование регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки#Общие настройки|Предупреждать при дублировании туристов]]. | ||
| + | * Формат запроса POST: | ||
| + | ** POST .../TourSearchOwin/CheckDoubleDogovor | ||
| + | * Принимаемые параметры ( '''*''' – обязательный): | ||
| + | ** '''TourProgramId *''' – ключ турпрограммы | ||
| + | ** '''BeginDate *''' – дата начала тура | ||
| + | ** '''Duration *''' – продолжительность тура | ||
| + | ** '''Currency *''' – код валюты | ||
| + | ** '''Services *''' – массив услуг авиаперелетов для получения доплат | ||
| + | *** '''Service *''' – объект услуга авиаперелет | ||
| + | **** '''ServiceType *''' – тип услуги | ||
| + | **** '''Code *''' – код услуги | ||
| + | **** '''SubCode1 *''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги | ||
| + | **** '''SubCode2 *''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги | ||
| + | **** '''Packet *''' – ключ пакета услуги | ||
| + | **** '''Partner *''' – ключ партнера услуги | ||
| + | **** '''Day *''' – день предоставления услуги | ||
| + | **** '''DurationInNight *''' – продолжительность услуги в ночах | ||
| + | **** '''City *''' – ключ города | ||
| + | **** '''Country *''' – страна услуги | ||
| + | **** '''Attributes *''' – битовая маска атрибутов услуг | ||
| + | **** '''IsRemovable *''' – (не обрабатывается) | ||
| + | **** '''Type *''' – тип услуги в путевке (базовая дополнительная) | ||
| + | **** '''IsHooded *''' – признак скрытая услуга | ||
| + | **** '''IsNotCalculated *''' – признак не рассчитываемая услуга | ||
| + | **** '''BeginDateTimeString *''' – дата и время начала услуги | ||
| + | **** '''EndDateTimeString *''' – дата и время окончания услуги | ||
| + | **** '''TemplateId *''' – шаблон услуги | ||
| + | **** '''Cost *''' – цена услуги | ||
| + | **** '''ByPax *''' – цена за человека | ||
| + | **** '''QuotaStatus *''' – объект статус квотирования | ||
| + | ***** '''PlacesStatus *''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
| + | ***** '''FreePlaces *''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
| + | ***** '''IsFewPlaces *''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| + | **** '''Index *''' – индекс услуги | ||
| + | **** '''IsRoute *''' – признак маршрутная услуга | ||
| + | **** '''ServiceTemplateIndex *''' – индекс шаблона услуги | ||
| + | **** '''RemoteId *''' – информация об услуге во внешней системе | ||
| + | **** '''IsCommission *''' – признак, комиссионная ли услуга | ||
| + | **** '''BaseFlightsParams *''' – параметры рассчитанных авиаперелетов | ||
| + | ***** '''CityArrival *''' – ключ города прибытия прямого перелета | ||
| + | ***** '''FlightCode *''' – ключ прямого авиаперелета | ||
| + | ***** '''TariffKey *''' – ключ тарифа прямого авиаперелета | ||
| + | ***** '''PartnerId *''' – ключ партнера прямого авиаперелета | ||
| + | *** '''TouristNumbersList *''' – массив туристов, привязанных к услуге | ||
| + | ** '''Tourists *''' – массив туристов | ||
| + | *** '''IsMain *''' – главный турист | ||
| + | *** '''Number *''' – порядковый номер туриста | ||
| + | *** '''AgeType *''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант) | ||
| + | *** '''MaleFemaleSex *''' – пол (0 – мужской, 1 – женский) | ||
| + | *** '''FirstName *''' – имя (лат) | ||
| + | *** '''LastName *''' – фамилия (лат) | ||
| + | *** '''Patronymic *''' – отчество (лат) | ||
| + | *** '''FirstNameRus *''' – имя (рус) | ||
| + | *** '''LastNameRus *''' – фамилия (рус) | ||
| + | *** '''PatronymicRus *''' – отчество (рус) | ||
| + | *** '''InternationalPassportSeries *''' – серия загранпаспорта | ||
| + | *** '''InternationalPassportNumber *''' – номер загранпаспорта | ||
| + | *** '''InternationalPassportDateOfIssue *''' – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz) | ||
| + | *** '''InternationalPassportDateOfIssueString *''' – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY) | ||
| + | *** '''InternationalPassportDateOfExpiry *''' – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz) | ||
| + | *** '''InternationalPassportDateOfExpiryString *''' – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY) | ||
| + | *** '''internationalPassportByWhom *''' – кем выдан загранпаспорт | ||
| + | *** '''PassportSeries *''' – серия паспорта | ||
| + | *** '''PassportNumber *''' – номер паспорта | ||
| + | *** '''PassportDateOfIssue *''' – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz) | ||
| + | *** '''PassportDateOfIssueString *''' – дата выдачи паспорта в строковом формате (DD.MM.YYYY) | ||
| + | *** '''PassportByWhom *''' – кем выдан паспорт | ||
| + | *** '''Citizenship *''' – название страны | ||
| + | *** '''Phone *''' – телефон | ||
| + | *** '''Email *''' – e-mail | ||
| + | *** '''BirthDay *''' – дата рождения (YYYY-MM-DDThh:mm:ssz) | ||
| + | *** '''BirthDayString *''' – дата рождения в строковом формате (DD.MM.YYYY) | ||
| + | *** '''BirthPlace *''' – место рождения | ||
| + | *** '''CitizenID *''' – ID туриста (задается в карточке постоянного клиента) | ||
| + | *** '''Age *''' – количество полных лет на момент окончания тура | ||
| + | ** '''TechnicalProblemsDuringUpdateFlights *''' – технические проблемы при обновлении рейсов | ||
| + | ** '''TimeLimit *''' – лимит времени | ||
| + | ** '''CountryKey *''' – ключ страны | ||
| + | ** '''OwnerId *''' – ключ ведущего менеджера (начиная с релиза 15.3). Если 0, то берется по умолчанию. Если по умолчанию не указан, то берется создатель тура. | ||
| + | ** '''Day *''' – день ''Может быть с пустым значением'' | ||
| + | ** '''Day2 *''' – дня ''Может быть с пустым значением'' | ||
| + | ** '''Days *''' – дней ''Может быть с пустым значением'' | ||
| + | ** '''Night *''' – ночь ''Может быть с пустым значением'' | ||
| + | ** '''Night2 *''' – ночи ''Может быть с пустым значением'' | ||
| + | ** '''Nights *''' – ночей ''Может быть с пустым значением'' | ||
| + | ** '''adultsCountOverServiceLimit *''' – Количество взрослых туристов превышает лимит услуги ''Может быть с пустым значением'' | ||
| + | ** '''at *''' – на (перевод) ''Может быть с пустым значением'' | ||
| + | ** '''incorrectChildrenInf *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) ''Может быть с пустым значением'' | ||
| + | * Возвращаемый результат: | ||
| + | ** '''Errors''' – описание ошибки | ||
| + | ** '''Warnings''' – предупреждение | ||
| + | ** '''States''' – статус | ||
| + | ** '''IsValid''' – результат проверки подключения (true/false) | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода CheckDoubleDogovor | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | POST http://localhost:9000/TourSearchOwin/CheckDoubleDogovor | ||
| + | { | ||
| + | "TourProgramId": 100011112, | ||
| + | "BeginDate": "2021-10-18T17:05:00", | ||
| + | "Duration": 6, | ||
| + | "Currency": "рб", | ||
| + | "Services": [ | ||
| + | { | ||
| + | "Service": { | ||
| + | "ServiceType": 3, | ||
| + | "Code": 238, | ||
| + | "SubCode1": 1085918, | ||
| + | "SubCode2": 1, | ||
| + | "Packet": 1462, | ||
| + | "Partner": 12685, | ||
| + | "Day": 2, | ||
| + | "DurationInNight": 4, | ||
| + | "City": 62, | ||
| + | "Country": 1, | ||
| + | "Attributes": 0, | ||
| + | "IsRemovable": false, | ||
| + | "Type": 1, | ||
| + | "IsHooded": false, | ||
| + | "IsNotCalculated": false, | ||
| + | "BeginDateTimeString": "2021-10-19T14:59:00", | ||
| + | "EndDateTimeString": "2021-10-23T14:59:00", | ||
| + | "TemplateId": 3, | ||
| + | "Cost": 0, | ||
| + | "ByPax": true, | ||
| + | "QuotaStatus": { | ||
| + | "PlacesStatus": 4, | ||
| + | "FreePlaces": 0, | ||
| + | "IsFewPlaces": false | ||
| + | }, | ||
| + | "Index": 2, | ||
| + | "IsRoute": true, | ||
| + | "ServiceTemplateIndex": 2, | ||
| + | "RemoteId": null, | ||
| + | "IsCommission": true, | ||
| + | "BaseFlightsParams": [ | ||
| + | { | ||
| + | "CityArrival": 62, | ||
| + | "FlightCode": 2111, | ||
| + | "TariffKey": 339, | ||
| + | "PartnerId": 12685 | ||
| + | }, | ||
| + | { | ||
| + | "CityArrival": 312, | ||
| + | "FlightCode": 2080, | ||
| + | "TariffKey": 339, | ||
| + | "PartnerId": 12685 | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | "TouristNumbersList": [ | ||
| + | 1, | ||
| + | 2 | ||
| + | ] | ||
| + | }, | ||
| + | { | ||
| + | "Service": { | ||
| + | "ServiceType": 1, | ||
| + | "Code": 2111, | ||
| + | "SubCode1": 339, | ||
| + | "SubCode2": 312, | ||
| + | "Packet": 1462, | ||
| + | "Partner": 12685, | ||
| + | "Day": 1, | ||
| + | "DurationInNight": 0, | ||
| + | "City": 62, | ||
| + | "Country": 1, | ||
| + | "Attributes": 0, | ||
| + | "IsRemovable": false, | ||
| + | "Type": 1, | ||
| + | "IsHooded": false, | ||
| + | "IsNotCalculated": false, | ||
| + | "BeginDateTimeString": "2021-10-18T17:10:00", | ||
| + | "EndDateTimeString": "2021-10-18T20:20:00", | ||
| + | "TemplateId": 1, | ||
| + | "Cost": 0, | ||
| + | "ByPax": true, | ||
| + | "QuotaStatus": { | ||
| + | "PlacesStatus": 4, | ||
| + | "FreePlaces": 0, | ||
| + | "IsFewPlaces": false | ||
| + | }, | ||
| + | "Index": 0, | ||
| + | "IsRoute": true, | ||
| + | "ServiceTemplateIndex": 0, | ||
| + | "IsCommission": true, | ||
| + | "BaseFlightsParams": [ | ||
| + | { | ||
| + | "CityArrival": 62, | ||
| + | "FlightCode": 2111, | ||
| + | "TariffKey": 339, | ||
| + | "PartnerId": 12685 | ||
| + | }, | ||
| + | { | ||
| + | "CityArrival": 312, | ||
| + | "FlightCode": 2080, | ||
| + | "TariffKey": 339, | ||
| + | "PartnerId": 12685 | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | "TouristNumbersList": [ | ||
| + | 1, | ||
| + | 2 | ||
| + | ] | ||
| + | }, | ||
| + | { | ||
| + | "Service": { | ||
| + | "ServiceType": 1, | ||
| + | "Code": 2080, | ||
| + | "SubCode1": 339, | ||
| + | "SubCode2": 62, | ||
| + | "Packet": 1462, | ||
| + | "Partner": 12685, | ||
| + | "Day": 2, | ||
| + | "DurationInNight": 0, | ||
| + | "City": 312, | ||
| + | "Country": 460, | ||
| + | "Attributes": 0, | ||
| + | "IsRemovable": false, | ||
| + | "Type": 1, | ||
| + | "IsHooded": false, | ||
| + | "IsNotCalculated": false, | ||
| + | "BeginDateTimeString": "2021-10-19T09:59:00", | ||
| + | "EndDateTimeString": "2021-10-19T12:59:00", | ||
| + | "TemplateId": 2, | ||
| + | "Cost": 0, | ||
| + | "ByPax": true, | ||
| + | "QuotaStatus": { | ||
| + | "PlacesStatus": 4, | ||
| + | "FreePlaces": 0, | ||
| + | "IsFewPlaces": false | ||
| + | }, | ||
| + | "Index": 1, | ||
| + | "IsRoute": true, | ||
| + | "ServiceTemplateIndex": 1, | ||
| + | "IsCommission": true, | ||
| + | "BaseFlightsParams": [ | ||
| + | { | ||
| + | "CityArrival": 62, | ||
| + | "FlightCode": 2111, | ||
| + | "TariffKey": 339, | ||
| + | "PartnerId": 12685 | ||
| + | }, | ||
| + | { | ||
| + | "CityArrival": 312, | ||
| + | "FlightCode": 2080, | ||
| + | "TariffKey": 339, | ||
| + | "PartnerId": 12685 | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | "TouristNumbersList": [ | ||
| + | 1, | ||
| + | 2 | ||
| + | ] | ||
| + | } | ||
| + | ], | ||
| + | "Tourists": [ | ||
| + | { | ||
| + | "IsMain": true, | ||
| + | "Number": 1, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "ETYETY", | ||
| + | "LastName": "REYERYETY", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "ETYETY", | ||
| + | "LastNameRus": "REYERYETY", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": "1987-04-09T19:00:00.000Z", | ||
| + | "BirthDayString": "10.04.1987", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": 34 | ||
| + | }, | ||
| + | { | ||
| + | "IsMain": false, | ||
| + | "Number": 2, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "ETYETY", | ||
| + | "LastName": "ETYTY", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "ETYETY", | ||
| + | "LastNameRus": "ETYTY", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": "1987-04-09T19:00:00.000Z", | ||
| + | "BirthDayString": "10.04.1987", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": 34 | ||
| + | } | ||
| + | ], | ||
| + | "TechnicalProblemsDuringUpdateFlights": false, | ||
| + | "TimeLimit": null, | ||
| + | "CountryKey": 1, | ||
| + | "OwnerId": 106, | ||
| + | "Day": "день", | ||
| + | "Day2": "дня", | ||
| + | "Days": "дней", | ||
| + | "Night": "ночь", | ||
| + | "Night2": "ночи", | ||
| + | "Nights": "ночей", | ||
| + | "adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги", | ||
| + | "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)" | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CheckDoubleDogovor (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "Errors": [], | ||
| + | "Warnings": null, | ||
| + | "States": null, | ||
| + | "IsValid": true | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Получение активных оснований для скидки (GetActiveCauseDiscounts)=== | ||
| + | Метод возвращает список активных оснований для скидок (дисконтных карт) на указанную дату. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/PromocodesAndDiscounts/GetActiveCauseDiscounts? | ||
| + | * Принимаемые параметры headers ('''*''' – обязательный): | ||
| + | ** '''Accept *''' – application/json, text/plain, */* | ||
| + | ** '''Authorization *''' – Bearer токен авторизации который получается в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Авторизация (Token)|Token]] | ||
| + | |||
| + | |||
| + | * Принимаемые параметры GET запроса ('''*''' – обязательный): | ||
| + | ** '''dateIn *''' – дата заезда, формат: "дд.мм.гггг" (например, "01.06.2025") | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | Массив объектов, содержащих активные основания для скидки. | ||
| + | ** '''Key''' – ключ основания для скидки | ||
| + | ** '''Name''' – наименование скидки | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода GetActiveCauseDiscounts | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | Get http://localhost:9000/TourSearchOwin/PromocodesAndDiscounts/GetActiveCauseDiscounts?dateIn=%2201.06.2025%22 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода GetActiveCauseDiscounts (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "Key": 95, | ||
| + | "Name": "РЖД бонус" | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | ===Проверка основания для скидки (CheckCauseDiscount)=== | ||
| + | Метод проверяет корректность и применимость основания для скидки (дисконтной карты) с учётом параметров. | ||
| + | |||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/PromocodesAndDiscounts/CheckCauseDiscount? | ||
| + | |||
| + | * Принимаемые параметры headers ('''*''' – обязательный): | ||
| + | ** '''Accept *''' – application/json, text/plain, */* | ||
| + | ** '''Authorization *''' – Bearer токен авторизации который получается в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Авторизация (Token)|Token]] | ||
| + | |||
| + | * Принимаемые параметры GET запроса ('''*''' – обязательный): | ||
| + | ** '''key *''' – ключ основания для скидки | ||
| + | ** '''symbolsNumber *''' – количество символов номера дисконтной карты | ||
| + | ** '''dateIn *''' – дата заезда, формат: "дд.мм.гггг" (например, "01.06.2025") | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Key''' – ключ ID основания для скидки, если скидочная карта была введена верно | ||
| + | ** '''null''' – если скидочная карта была введена неверно | ||
| + | |||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода CheckCauseDiscount | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | Get http://localhost:9000/TourSearchOwin/PromocodesAndDiscounts/CheckCauseDiscount?key=95&symbolsNumber=6&dateIn=^%^2201.06.2025^%^22 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CheckCauseDiscount (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | "95" | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Проверка промокода (CheckPromocode)=== | ||
| + | Метод проверяет валидность промокода в контексте определённой страны и программы тура. | ||
| + | |||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/PromocodesAndDiscounts/CheckPromocode? | ||
| + | |||
| + | * Принимаемые параметры headers ('''*''' – обязательный): | ||
| + | ** '''Accept *''' – application/json, text/plain, */* | ||
| + | ** '''Authorization *''' – Bearer токен авторизации который получается в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Авторизация (Token)|Token]] | ||
| + | |||
| + | |||
| + | * Принимаемые параметры GET запроса ('''*''' – обязательный): | ||
| + | ** '''promocode *''' – строка промокода в зашифрованном виде | ||
| + | ** '''TPKey *''' – ключ программы тура | ||
| + | ** '''countryKey *''' – ключ страны (используется для определения доступности промокода) | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Key''' – ключ ID промокода, если промокод найден и применим | ||
| + | ** '''null''' – если промокод не найден или не подходит по условиям | ||
| + | |||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода CheckPromocode | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | Get http://localhost:9000/TourSearchOwin/PromocodesAndDiscounts/CheckPromocode?promocode=%D0%A0%D0%96%D0%94%D0%9F%D0%A0%D0%9E%D0%9C%D0%9E&TPKey=100011745&countryKey=460 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CheckPromocode (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | "295" | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | |||
| + | ===Проверка загрузки кеша службы поиска (CacheReady)=== | ||
| + | Метод проверяет загрузку кэша службы поиска. | ||
| + | |||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/CacheReady | ||
| + | |||
| + | * Принимаемые параметры ('''*''' – обязательный): | ||
| + | ** нет принимаемых параметров | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''false''' – инициализация кешей не завершена, '''true''' – инициализация кешей завершена | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода CacheReady | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | Get http://localhost:9000/TourSearchOwin/CacheReady | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CacheReady (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | true | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Получение предупреждений по партнеру (GetWarnings)=== | ||
| + | Метод позволяет получить список предупреждений по ключу партнера. | ||
| + | * Формат запроса: | ||
| + | ** POST .../TourSearchOwin/GetWarnings? | ||
| + | |||
| + | * Принимаемые параметры ('''*''' – обязательный): | ||
| + | ** '''partnerKey*''' – ключ партнера | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''First''' – ключ предупреждения | ||
| + | ** '''Second''' – описание предупреждения | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода GetWarnings | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | POST http://localhost:9000/TourSearchOwin/GetWarnings?partnerKey=10762 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода GetWarnings (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "First": 2, | ||
| + | "Second": "ВНИМАНИЕ!!!!" | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Получение всех типов заказчика (DogovorCustomers)=== | ||
| + | Метод позволяет получить список всех типов заказчика. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/DogovorCustomers | ||
| + | |||
| + | * Принимаемые параметры ('''*''' – обязательный): | ||
| + | ** нет принимаемых параметров | ||
| + | * Возвращаемый результат: | ||
| + | ** '''key''' – наименование типа заказчика | ||
| + | ** '''value''' – идентификатор типа заказчика | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода DogovorCustomers | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | Get http://localhost:9000/TourSearchOwin/DogovorCustomers | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода DogovorCustomers (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "key": "TravelAgent", | ||
| + | "value": 1 | ||
| + | }, | ||
| + | { | ||
| + | "key": "ReservationTourist", | ||
| + | "value": 2 | ||
| + | }, | ||
| + | { | ||
| + | "key": "PhysicalPerson", | ||
| + | "value": 3 | ||
| + | }, | ||
| + | { | ||
| + | "key": "IndividualEntrepreneur", | ||
| + | "value": 4 | ||
| + | }, | ||
| + | { | ||
| + | "key": "LegalPerson", | ||
| + | "value": 5 | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Получение описания полей для заказчика (GetDogovorCustomerFields)=== | ||
| + | Метод позволяет получить список описания полей для заказчика. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/GetDogovorCustomerFields? | ||
| + | * Принимаемые параметры ('''*''' – обязательный): | ||
| + | ** '''customerType*''' – числовое значение типа заказчика из метода DogovorCustomers | ||
| + | ** '''userName''' – логин пользователя | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''PropertyName''' – наименование типа | ||
| + | ** '''Value''' – идентификатор типа | ||
| + | ** '''IsRequired''' – признак обязательности заполнения поля | ||
| + | ** '''Priority''' – приоритет | ||
| + | ** '''MaxLength''' – максимальное количество символов | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода GetDogovorCustomerFields | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | Get http://localhost:9000/TourSearchOwin/GetDogovorCustomerFields?customerType=1&userName=test | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода GetDogovorCustomerFields (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "PropertyName": "LegalName", | ||
| + | "Value": "Партнер18", | ||
| + | "IsRequired": false, | ||
| + | "Priority": 1, | ||
| + | "MaxLength": 100 | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "Address", | ||
| + | "Value": "sdf", | ||
| + | "IsRequired": false, | ||
| + | "Priority": 2, | ||
| + | "MaxLength": 200 | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "Phone", | ||
| + | "Value": "(888)3015062598", | ||
| + | "IsRequired": false, | ||
| + | "Priority": 3, | ||
| + | "MaxLength": 60 | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "FullNameDirector", | ||
| + | "Value": "Иванов И.И.", | ||
| + | "IsRequired": false, | ||
| + | "Priority": 4, | ||
| + | "MaxLength": 110 | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "Email", | ||
| + | "Value": "test@test.ru", | ||
| + | "IsRequired": false, | ||
| + | "Priority": 8, | ||
| + | "MaxLength": 50 | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "CountryKey", | ||
| + | "Value": 90, | ||
| + | "IsRequired": false, | ||
| + | "Priority": 9, | ||
| + | "MaxLength": null | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "INN", | ||
| + | "Value": "0336032328", | ||
| + | "IsRequired": false, | ||
| + | "Priority": 10, | ||
| + | "MaxLength": 20 | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "ContractDate", | ||
| + | "Value": null, | ||
| + | "IsRequired": false, | ||
| + | "Priority": 11, | ||
| + | "MaxLength": null | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "ContractNumber", | ||
| + | "Value": null, | ||
| + | "IsRequired": false, | ||
| + | "Priority": 12, | ||
| + | "MaxLength": 100 | ||
| + | }, | ||
| + | { | ||
| + | "PropertyName": "ContractPrice", | ||
| + | "Value": null, | ||
| + | "IsRequired": false, | ||
| + | "Priority": 13, | ||
| + | "MaxLength": null | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Получение всех типов возможных договоров (GetCustomerDocumentTypes)=== | ||
| + | Метод позволяет получить список всех типов возможных договоров. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/GetCustomerDocumentTypes | ||
| + | * Принимаемые параметры ('''*''' – обязательный): | ||
| + | ** нет принимаемых параметров | ||
| + | * Возвращаемый результат: | ||
| + | ** '''key''' – наименование типа договора | ||
| + | ** '''value''' – идентификатор типа договора | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода GetCustomerDocumentTypes | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | Get http://localhost:9000/TourSearchOwin/GetCustomerDocumentTypes | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода GetCustomerDocumentTypes (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "key": "Other", | ||
| + | "value": 0 | ||
| + | }, | ||
| + | { | ||
| + | "key": "Passport", | ||
| + | "value": 1 | ||
| + | }, | ||
| + | { | ||
| + | "key": "ForeignPassport", | ||
| + | "value": 2 | ||
| + | }, | ||
| + | { | ||
| + | "key": "BirthCertificate", | ||
| + | "value": 3 | ||
| + | }, | ||
| + | { | ||
| + | "key": "ServicePassport", | ||
| + | "value": 4 | ||
| + | }, | ||
| + | { | ||
| + | "key": "DiplomaticPassport", | ||
| + | "value": 5 | ||
| + | }, | ||
| + | { | ||
| + | "key": "IdCard", | ||
| + | "value": 6 | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ==Дополнительные методы== | ||
| + | |||
| + | ===Выгрузка измененных турпрограмм (TourProgram) начиная с релиза 15.3=== | ||
| + | Метод производит выгрузку измененных турпрограмм, в которых были сделаны изменения с указанной даты и времени и повлияли на маршруты в турпрограмме. К таким изменениям относятся изменения страны и города начала поездки, страны и города по туру, типа тура. Изменения цен по услугам не приводят к обновлению турпрограмме, такие турпрограммы в ответе не будут указаны. Турпрограммы, по которым статус ''Доступен для продажи'' сменился на другой за период, указанный в запросе, в ответе тоже не будут указаны. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/TourProgram? | ||
| + | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
| + | ** '''fromDateTime''' – дата (в формате ''dd.MM.yyyy HH:mm:ss''), начиная с которой будут выгружаться изменения, | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Key''' – ключ программы туров | ||
| + | ** '''Name''' – название программы туров | ||
| + | ** '''UpdateDate''' – дата последнего изменения программы туров (или связанных с ней компонентов) | ||
| + | ** '''routes''' – массив возможных маршрутов в данной программе туров | ||
| + | *** '''departureCountryKey''' – страна начала поездки (для каждой страны начала поездки в одной программе тура будет отдельный маршрут) | ||
| + | *** '''departureCityKey''' – город начала поездки (для каждого города начала поездки в одной программе тура будет отдельный маршрут) | ||
| + | *** '''destinationCountryKeys''' – страны по туру (если в туре несколько услуг класса отель и они в разных странах, то будут возвращаться все страны отелей) | ||
| + | *** '''destinationCityKeys''' – города по туру (если в туре отели в нескольких городах, то будут возвращаться все города отелей) | ||
| + | *** '''tourTypeKeys''' – типы туров для данной программы туров | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода TourProgram | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/TourProgram?fromDateTime=20.08.2022 00:00:00 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода TourProgram (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [{ | ||
| + | "key": 100002353, | ||
| + | "name": "Турпрограмма в Австрию", | ||
| + | "updateDate": "2018-09-25T13:48:13.847", | ||
| + | "routes": [{ | ||
| + | "departureCountryKey": 5, | ||
| + | "departureCityKey": 218, | ||
| + | "destinationCountryKeys": [80], | ||
| + | "destinationCityKeys": [19, | ||
| + | 1051, | ||
| + | 113], | ||
| + | "tourTypeKeys": [52] | ||
| + | }, | ||
| + | { | ||
| + | "departureCountryKey": 5, | ||
| + | "departureCityKey": 766, | ||
| + | "destinationCountryKeys": [80], | ||
| + | "destinationCityKeys": [19, | ||
| + | 1051, | ||
| + | 113], | ||
| + | "tourTypeKeys": [52] | ||
| + | }] | ||
| + | }, | ||
| + | { | ||
| + | "Key": 100004452, | ||
| + | "Name": "Турпрограмма в Англию" | ||
| + | "UpdateDate": "2018-06-30T10:09:35.22" | ||
| + | "routes": [{ | ||
| + | "departureCountryKey": -1, | ||
| + | "departureCityKey": -1, | ||
| + | "destinationCountryKeys": [80], | ||
| + | "destinationCityKeys": [19], | ||
| + | "tourTypeKeys": [52, | ||
| + | 35] | ||
| + | }] | ||
}] | }] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Проверка построения маршрутов турпрограммы (CheckTourProgram)=== | ||
| + | Метод производит построение маршрутов турпрограмм (вызывается из проверки тура). Метод проверяет маршруты по турпрограммам с любым статусом (не только по статусу Доступен для подажи). | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/CheckTourProgram? | ||
| + | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
| + | ** '''tourKey''' – ключ турпрограммы | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Message''' – сообщение ''Начинаем строить маршрут.'' | ||
| + | ** '''Message''' – сообщение ''Маршрутов по данной программе тура построилось'' – количество | ||
| + | ** '''Message''' – сообщение ''Построено каркасов маршрутов (без конкретных отелей)'' – количество | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода CheckTourProgram | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/CheckTourProgram?tourKey=100007837 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CheckTourProgram (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "Message": "[startingMakingRouteUpper]", | ||
| + | "MessageType": 0 | ||
| + | }, | ||
| + | { | ||
| + | "Message": "[routeCarcassesBuildWithoutSpecificHotelsUpper] - 10", | ||
| + | "MessageType": 1 | ||
| + | }, | ||
| + | { | ||
| + | "Message": "[routesMadeByThisTourProgrammUpper] - 10", | ||
| + | "MessageType": 1 | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Получение разметки формы для новой формы быстрого поиска (GetJavascriptFile)=== | ||
| + | Метод получает разметку формы для новой формы быстрого поиска. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/GetJavascriptFile/Get? | ||
| + | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
| + | ** '''name''' – имя файла | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''полученный файл''' | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода GetJavascriptFile/Get | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/GetJavascriptFile/Get?name=demoSearch.js | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода GetJavascriptFile/Get (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | полученный файл demoSearch.js | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Проверка подключения к внешним системам (GDSCheckConnection)=== | ||
| + | Метод производит проверку подключения к внешней системе. | ||
| + | * Формат запроса: | ||
| + | ** POST .../TourSearchOwin/GDSCheckConnection? | ||
| + | |||
| + | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| + | ** '''Content-Type *''' – application/json | ||
| + | |||
| + | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
| + | ** '''adapterTypeName''' – адаптер | ||
| + | ** '''id''' – ключ адаптера | ||
| + | ** '''apiAddress''' – api-адрес | ||
| + | ** '''settings''' – набор настроек (у каждого адаптера индивидуальный) | ||
| + | *** '''Key''' – _Login | ||
| + | *** '''Value''' – логин | ||
| + | *** '''Key''' – _Password | ||
| + | *** '''Value''' – пароль | ||
| + | *** '''Key''' – _UserID | ||
| + | *** '''Value''' – ID пользователя | ||
| + | ** '''licenseDateExpiry''' – дата окончания лицензии | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''Errors''' – описание ошибки | ||
| + | ** '''Warnings''' – предупреждение | ||
| + | ** '''States''' – статус | ||
| + | ** '''IsValid''' – результат проверки подключения (true/false) | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода GDSCheckConnection | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | POST http://localhost:9000/TourSearchOwin/GDSCheckConnection? HTTP/1.1 | ||
| + | Content-Type: application/json | ||
| + | { | ||
| + | "adapterTypeName": "TravelBoxAdapter", | ||
| + | "id": 5565, | ||
| + | "apiAddress": "http://dev24.desertadventur.com/", | ||
| + | "settings": [{ | ||
| + | "Key": "TravelBox_Login", | ||
| + | "Value": "Login" | ||
| + | }, { | ||
| + | "Key": "TravelBox_Password", | ||
| + | "Value": "Password" | ||
| + | }, { | ||
| + | "Key": "TravelBox_UserID", | ||
| + | "Value": "12345" | ||
| + | }, { | ||
| + | "Key": "TravelBox_CompanyCode", | ||
| + | "Value": "DA_UAE" | ||
| + | }, { | ||
| + | "Key": "TravelBox_Division", | ||
| + | "Value": "FIT_UAE" | ||
| + | }, { | ||
| + | "Key": "TravelBox_Department", | ||
| + | "Value": "FIT- Local" | ||
| + | }, { | ||
| + | "Key": "TravelBox_TouroperatorCode", | ||
| + | "Value": "54321" | ||
| + | }, { | ||
| + | "Key": "TravelBox_MaxResponses", | ||
| + | "Value": "200" | ||
| + | }, { | ||
| + | "Key": "TravelBox_AvailRatesOnly", | ||
| + | "Value": "AvailRatesOnly" | ||
| + | }, { | ||
| + | "Key": "TravelBox_CacheTimelife", | ||
| + | "Value": "10" | ||
| + | } | ||
| + | ], | ||
| + | "licenseDateExpiry": "01.01.2022" | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода GDSCheckConnection (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [{ | ||
| + | "Errors": [], | ||
| + | "Warnings": null, | ||
| + | "States": null, | ||
| + | "IsValid": true | ||
| + | }] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Подтверждения оплаты полиса в ЕВРОИНС=== | ||
| + | Для подтверждения оплаты метод будет обращаться к внешним службам для подтверждения платежа.<br /> | ||
| + | [[Мастер-Тур(15):Программа туров. Внешние системы. Страховая компания ЕВРОИНС|Страховая компания ЕВРОИНС]] | ||
| + | |||
| + | * Формат запроса: | ||
| + | ** POST .../TourSearchOwin/EuroinsConfirmPay | ||
| + | |||
| + | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| + | ** '''Content-Type *''' – application/json | ||
| + | |||
| + | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
| + | ** '''policyId *''' – ID полиса | ||
| + | ** '''code *''' – код партнера | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''success: true''' – подтверждено (''код 200'') | ||
| + | ** '''error''' – описание ошибки (''код 400'') | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода EuroinsConfirmPay | ||
| + | |||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | POST localhost:9000/TourSearchOwin/EuroinsConfirmPay | ||
| + | </syntaxhighlight> | ||
| + | Content-Type: application/json | ||
| + | |||
| + | { | ||
| + | "policyId": "134574", | ||
| + | "code": "oqxKQXlOInSJqLl" | ||
| + | } | ||
| + | |||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода EuroinsConfirmPay (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | Код 200: | ||
| + | { | ||
| + | "success": true | ||
| + | } | ||
| + | |||
| + | Код 400: | ||
| + | { | ||
| + | "error": "Не удалось выполнить действие" | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | ===Получение информации о наличии квот на перелёты по датам (GetQuotedPlaces)=== | ||
| + | Метод возвращает статусы наличия квот на перелёты по дням. Регулируется настройкой [[Мастер-Тур(15):Canary#Остальные общие настройки Canary|getQuotaDates]] в settings.js | ||
| + | |||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/GetQuotedPlaces? | ||
| + | |||
| + | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| + | ** '''Authorization*''' – Bearer <token> | ||
| + | ** '''Accept''' – application/json | ||
| + | ** '''TourSearchClient2''' – TourSearchClient2 (для клиентских приложений Canary) | ||
| + | |||
| + | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
| + | ** '''departureCity *''' – ключ города вылета | ||
| + | ** '''destinationCity *''' – ключ города прилёта (допускается ''-1'' – все города) | ||
| + | ** '''Key *''' – ключ выбранного объекта фильтра «Куда» (страна/курорт/город) | ||
| + | ** '''Type *''' – тип объекта ''Key'' (например, ''1'' – страна; остальные значения см. документацию по фильтру «Куда») | ||
| + | ** '''tourTypes *''' – список ключей типов туров через запятую; ''-1'' – все типы туров | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** Массив объектов с датами и статусами квот: | ||
| + | *** '''Key''' – дата в формате ''dd.MM.yyyy'' | ||
| + | *** '''Value''' – код статуса: | ||
| + | **** '''1''' – есть много квот (больше минимального порога услуги) | ||
| + | **** '''2''' – есть мало квот (меньше минимального порога услуги) | ||
| + | **** '''3''' – внешний перелёт (GDS) и отсутствие квот | ||
| + | **** '''4''' – на дату не найдено туров с перелётами | ||
| + | |||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода GetQuotedPlaces | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/GetQuotedPlaces?departureCity=187&destinationCity=448&Key=375&Type=1&tourTypes=-1 | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | Возвращаемый результат (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { "Key": "15.12.2025", "Value": 1 }, | ||
| + | { "Key": "16.12.2025", "Value": 2 }, | ||
| + | { "Key": "17.12.2025", "Value": 3 }, | ||
| + | { "Key": "18.12.2025", "Value": 4 } | ||
| + | ] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
Текущая версия на 12:08, 19 февраля 2026
Версия статьи от 19-02-2026.
|
Поддерживаемые версии ПК «Мастер-Тур»: |
Содержание
- 1 Введение
- 2 Установка
- 3 Swagger
- 4 Список методов
- 4.1 Информация о состоянии службы поиска (statusCache)
- 4.2 Авторизация (Token)
- 4.3 Выгрузка настроек службы поиска (Settings)
- 4.4 Выгрузка списка валют в онлайне (Currency)
- 4.5 Выгрузка курсов валют (CurrencyRates) начиная с 15.7
- 4.6 Выгрузка списка всех валют (getAllCurrencies)
- 4.7 Получение сконвертированных цен (convertFilterPrice)
- 4.8 Выгрузка квотируемых услуг системы (QuotedServices)
- 4.9 Выгрузка актуальных городов отправления (departureCities)
- 4.10 Выгрузка актуальных стран (Destination)
- 4.11 Выгрузка актуальных городов (ActualizeCities)
- 4.12 Выгрузка актуальных типов туров (ActualizeTourType)
- 4.13 Выгрузка актуальных дат заездов (TourDate)
- 4.14 Выгрузка актуальных продолжительностей (Duration)
- 4.15 Поиск туров (Tour)
- 4.16 Выгрузка транспортного плана (TransportPlan) до релиза 15.7 включительно
- 4.17 Выгрузка транспортного плана (TransportPlan) начиная с релиза 15.8
- 4.18 Получение дат заезда по турпрограмме
- 4.19 Получение плана транспортного средства (TransportPlan) по ключу турпрограммы и дате услуги
- 4.20 Выгрузка первоначального варианта в корзину для бронирования (Tour)
- 4.21 Выгрузка настройки отображения полей по туристам (TouristDataSettings)
- 4.22 Выгрузка услуг доплат к авиаперелетам (GetFlightsAdditionalServices)
- 4.23 Выгрузка услуг доплат к отелям (GetHotelsAdditionalServices)
- 4.24 Расчет индивидуальных услуг (CalculateIndividualServiceCosts)
- 4.25 Поиск рейсов из внешней системы (GetGDSFlights)
- 4.26 Выгрузка информации от внешнего поставщика по перелету (RebuildFlights)
- 4.27 Получение семейств тарифов авиаперелетов из внешней системы (GetGDSFlightFareFamilies)
- 4.28 Загрузка филиалов (Branches) начиная с релиза 15.3
- 4.29 Загрузка ведущих менеджеров (Users) начиная с релиза 15.3
- 4.30 Расчет путевки (CalculateReservation)
- 4.31 Бронирование путевки (CreateReservation)
- 4.32 Бронирование путевки с упрощенными входными параметрами (CreateReservationExternalSystem)
- 4.33 Выгрузка информации о путевке (GetReservation)
- 4.34 Выгрузка информации о ценовых блоках (CostOfferDescriptions)
- 4.35 Получение капчи (GetCaptcha)
- 4.36 Проверка капчи (CheckCaptcha)
- 4.37 Проверка e-mail (CheckMail)
- 4.38 Проверка туриста (checkTourist)
- 4.39 Список значений параметра гражданства (Citizenships)
- 4.40 Выгрузка постоянного клиента (Client)
- 4.41 Выгрузка описаний ценовых блоков (CostOfferDescriptions)
- 4.42 Выгрузка описания по стране (CountryInfo)
- 4.43 Выгрузка картинки по отелю (HotelImages)
- 4.44 Выгрузка картинки по туру (TourImages)
- 4.45 Регистрация частного лица (PersonalRegistration)
- 4.46 Отправка письма о бронировании частному лицу (PersonalSendMail)
- 4.47 Выгрузка плана рассадки (TransportPlan)
- 4.48 Выгрузка плана рассадки в поезде (RailwayTransferTransportPlan)
- 4.49 Выгрузка списка всех стран (Countries)
- 4.50 Выгрузка списка всех городов (Cities)
- 4.51 Выгрузка городов отправления в оформлении клиентов (RegistrationClientsDepartureCities)
- 4.52 Выгрузка стран в оформлении клиентов (RegistrationClientsDestination)
- 4.53 Выгрузка турпрограмм в оформлении клиентов (RegistrationClientsTourPrograms)
- 4.54 Выгрузка дат заезда в оформлении клиентов (RegistrationClientsTourDate)
- 4.55 Поиск туров в оформлении клиентов (Search)
- 4.56 Поиск туров онлайн (TourForWeb)
- 4.57 Проверка дублирующих туристов (CheckDoubleDogovor)
- 4.58 Получение активных оснований для скидки (GetActiveCauseDiscounts)
- 4.59 Проверка основания для скидки (CheckCauseDiscount)
- 4.60 Проверка промокода (CheckPromocode)
- 4.61 Проверка загрузки кеша службы поиска (CacheReady)
- 4.62 Получение предупреждений по партнеру (GetWarnings)
- 4.63 Получение всех типов заказчика (DogovorCustomers)
- 4.64 Получение описания полей для заказчика (GetDogovorCustomerFields)
- 4.65 Получение всех типов возможных договоров (GetCustomerDocumentTypes)
- 5 Дополнительные методы
- 5.1 Выгрузка измененных турпрограмм (TourProgram) начиная с релиза 15.3
- 5.2 Проверка построения маршрутов турпрограммы (CheckTourProgram)
- 5.3 Получение разметки формы для новой формы быстрого поиска (GetJavascriptFile)
- 5.4 Проверка подключения к внешним системам (GDSCheckConnection)
- 5.5 Подтверждения оплаты полиса в ЕВРОИНС
- 5.6 Получение информации о наличии квот на перелёты по датам (GetQuotedPlaces)
- 6 Приложения
Введение
Данный web-сервис служит для разработки собственного сайта туроператору на основе API.
Установка
Для работы с web-сервисом необходимо на отдающей стороне установить службу поиска.
После установки web-сервис будет доступен по адресу http://значение настройки "serviceAddress" в TourSearchOwin/"название метода" (пример: http://localhost:9000/TourSearchOwin/Settings)
Swagger
Работу методов можно проверить с помощью Swagger по пути: http://localhost:9000/TourSearchOwin/SwaggerUI
Список методов
Последовательность вызова методов сервиса
Информация о состоянии службы поиска (statusCache)
Метод выводит информацию о состоянии службы поиска при ее загрузке.
- Формат запроса:
- GET .../TourSearchOwin/statusCache?
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Initialized – информация о том, загружена ли служба или нет (false – инициализация кешей не завершена, true – инициализация кешей завершена)
- Status – состояние службы. Возможные значения: Запущена инициализация кэшей, Инициализация кэшей завершена
- CacheName – информация о том, какой именно кеш сейчас считается (название)
- Iteration – порядковый номер считаемого справочника кеша
- CacheCount – общее количество кешей
- ProcessMessage – детализация. Информацию можно разделить на 3 блока:
- Загрузка всех справочных данных, кроме расчета маршрутов и актуальных фильтров. В этом случае сообщение будет Загрузка кэшей из БД
- Расчет маршрутов. CacheName – HotelScheme, сообщение будет tours load: 956 / 1234
- Расчет актуальных фильтров. CacheName – ActualFilters, сообщение будет Actual filter processed: 783012 / 3865687"
|
Вызов метода Settings GET http://localhost:9000/TourSearchOwin/statusCache
Возвращаемый результат метода statusCache (в формате JSON) {
"Initialized": false,
"Status": "Запущена инициализация кэшей",
"CacheName": "ToursSearchView",
"Iteration": 10,
"CacheCount": 112,
"ProcessMessage": "Загрузка кэшей из БД"
}
{
"Initialized": false,
"Status": "Запущена инициализация кэшей",
"CacheName": "HotelScheme",
"Iteration": 109,
"CacheCount": 112,
"ProcessMessage": "tours load: 956 / 1234"
}
{
"Initialized": false,
"Status": "Запущена инициализация кэшей",
"CacheName": "ActualFilters",
"Iteration": 112,
"CacheCount": 112,
"ProcessMessage": "Actual filter processed: 783012 / 3865687"
}
{
"Initialized": true,
"Status": "Инициализация кэшей завершена",
"CacheName": null,
"Iteration": 0,
"CacheCount": 0,
"ProcessMessage": null
}
|
Авторизация (Token)
Метод производит получение авторизационного токена (описание стандарта).
- Формат запроса:
- POST .../TourSearchOwin/Token?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/x-www-form-urlencoded
- Принимаемые параметры POST запроса ( * – обязательный):
- grant_type * – текст password
- username * – логин представителя партнера или частного лица
- password * – пароль представителя партнера или частного лица
- Возвращаемый результат:
- access_token – токен
- token_type – тип токена
- expires_in – код
- userKey – ключ пользователя
- userType – тип пользователя (0 – представитель партнера, 1 – частное лицо)
- .issued – дата получения
- .expires – дата действия до
|
Вызов метода Token POST http://localhost:9000/TourSearchOwin/Token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=test&password=1
Возвращаемый результат метода Token (в формате JSON) {
"access_token": "AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR-
GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4-
9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9-
CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA",",
"token_type": "bearer",
"expires_in": 1209599,
"userKey": "333",
"userType": "0",
".issued": "Thu, 05 Apr 2018 12:05:31 GMT",
".expires": "Thu, 19 Apr 2018 12:05:31 GMT"
}
|
Выгрузка настроек службы поиска (Settings)
Метод производит выгрузку настроек службы поиска.
- Формат запроса:
- GET .../TourSearchOwin/Settings?
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- ChildAgesSetting – регулируется настройкой максимальный возраст ребенка (массив возрастов, при которых турист будет считаться ребенком
- DurationSetting – регулируется настройкой максимальная продолжительность тура (массив продолжительностей, доступных в фильтрах для поиска)
- RoundServiceSetting – признак округления цены (количество знаков после запятой)
- CacheReady – статус готовности службы поиска к работе (true/false)
- EnableFiterTree – устаревшая настройка, будет убрана (по умолчанию всегда false)
- EnableActualFilters – включены ли актуальные фильтры (true/false)
- CorrectLicense – проверка лицензии (true/false)
- CorrectLicenseMessage – сообщение, если проверка лицензии не прошла
- IsCorrectUser – проверка наличия пользователя в таблице Userlist, под которым запущена служба поиска (true/false)
- IsShowCitizenAuthTourist – настройка запрашивать гражданство при регистрации частного лица (true/false)
- IsShowFewCountPlaces – настройка отображения числового значения оставшихся мест, когда достигнуто значение «Мало» (true/false)
- IsShowBusTransferPlaces – использовать фильтр наличие мест на автобусный переезд в поиске (true/false)
- UseBusSeatChecks – план рассадки автобусного переезда (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой)
- UseTransferSeatChecks – план рассадки трансфера (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой)
- IsShowFiltersByCity – отображать фильтр по городам на главной странице поиска (true/false)
- CheckRealCourses – включена ли проверка курсов реальных валют при поиске (true/false)
- CommonImagesFolderPath – путь к папке для хранения изображений
- UseApplyFiltersButton – отображать кнопку «Применить фильтры» (true/false)
- AutoSearchFiltersTimeout – задержка между выбором дополнительных фильтров и выводом результатов (в секундах)
- UseFastSearchAlgoritm – использовать быстрый алгоритм поиска (true/false)
- MaxSearchDatesCountClient – максимальное количество дат, которое будет обрабатываться в клиенте поиска
- MaxDurationsCountClient – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
- UseHotelCategoryGlobalCodeInDopFilter – использовать глобальные коды категорий отелей в поиске
- UsePansionGlobalCodeInDopFilter – использовать глобальные коды питаний в поиске
- CheckTouristDataInBasket – проверять корректность данных туристов
- SimpleRegistration – упрощенная регистрация частного лица
- ShowHotelImagesInSearch – показывать описание и изображения отелей в поиске
- CacheReadyMessage – сообщение о готовности службы поиска или службы расчета актуальных фильтров. Варианты возвращаемых значений:
- <add key="enableActualFilters" value="true" /> - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован"
- <add key="enableActualFilters" value="false" /> - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован".
- nodeId – уникальный идентификатор узла в кластере балансировки нагрузки HaProxy
- FullPaymentPeriod – полная оплата с даты бронирования (может быть null)
- FullPaymentCheckin – полная оплата до даты заезда (может быть null)
- PrePaymentPeriod – предоплата с даты бронирования (может быть null)
- PrePaymentCheckin – предоплата до даты заезда (может быть null)
- PrePaymentCu" – значение предоплаты в y.e. (может быть null)
- PrePaymentPercent – значение предоплаты в процентах (может быть null)
|
Вызов метода Settings GET http://localhost:9000/TourSearchOwin/Settings
Возвращаемый результат метода Settings (в формате JSON) {
"ChildAgesSetting": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16
],
"DurationSetting": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20
],
"RoundServiceSetting": 2,
"CacheReady": true,
"EnableFiterTree": false,
"EnableActualFilters": true,
"CorrectLicense": true,
"CorrectLicenseMessage": "0deb1f882da1ec6301c961780507a180",
"IsCorrectUser": true,
"IsShowCitizenAuthTourist": true,
"IsShowFewCountPlaces": true,
"IsShowBusTransferPlaces": true,
"UseBusSeatChecks": 1,
"UseTransferSeatChecks": 2,
"IsShowFiltersByCity": true,
"CheckRealCourses": true,
"CommonImagesFolderPath": "\\\\server\\Icons",
"UseApplyFiltersButton": false,
"AutoSearchFiltersTimeout": 1,
"UseFastSearchAlgoritm": true,
"MaxSearchDatesCountClient": 10,
"MaxDurationsCountClient": 14
"UseHotelCategoryGlobalCodeInDopFilter": false
"UsePansionGlobalCodeInDopFilter": false
"CheckTouristDataInBasket": true
"SimpleRegistration": false
"ShowHotelImagesInSearch": true
"CacheReadyMessage": "Кеш инициализирован"
"nodeId": 2147483647,
"FullPaymentPeriod": null,
"FullPaymentCheckin": 5,
"PrePaymentPeriod": null,
"PrePaymentCheckin": 10,
"PrePaymentPercent": 50.0,
"PrePaymentCu": null
}
|
Выгрузка списка валют в онлайне (Currency)
Метод возвращает список используемых валют.
- Формат запроса:
- GET .../TourSearchOwin/Currency
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Code – код валюты
- Name – наименование валюты
- IsMain – признак валюты «Главная»
- IsNational – признак валюты «Национальная»
- IsoCode – ISO код валюты
- IsShowInSearch – признак показывать ли валюту в поиске
- Symbol – символ валюты (обрабатывается с 15.7)
- Key – идентификатор валюты
|
Вызов метода Currency GET http://localhost:9000/TourSearchOwin/Currency
Возвращаемый результат метода Currency (в формате JSON) [
{
"Code": "EU",
"Name": "Euro",
"IsMain": false,
"IsNational": false,
"IsoCode": "EUR",
"IsShowInSearch": true,
"Symbol": "€",
"Key": 2
},
{
"Code": "рб",
"Name": "Рубль",
"IsMain": false,
"IsNational": true,
"IsoCode": "RUR",
"IsShowInSearch": true,
"Symbol": "₽",
"Key": 14
},
{
"Code": "$",
"Name": "US Dollar",
"IsMain": true,
"IsNational": false,
"IsoCode": "USD",
"IsShowInSearch": true,
"Symbol": "$",
"Key": 1
}
]
|
Выгрузка курсов валют (CurrencyRates) начиная с 15.7
Полный аналог метода Выгрузка курсов валют (GetCurrencyRates)
Метод возвращает список курсов валют, актуальных на дату запроса. Курсы отображаются только для тех валют, которые отмечены в справочнике признаком Отображать в онлайне
- Формат запроса:
- GET .../TourSearchOwin/CurrencyRates
- Принимаемые параметры:
- dateFrom – начальная дата, от которой вывести список курсов валют, в формате DD.MM.YYYY, необязательный параметр (если не указан, берется за текущий день)
- dateTo – конечная дата, до которой вывести список курсов валют, в формате DD.MM.YYYY, необязательный параметр (если не указан, берется за текущий день)
- otherBaseCurrencyId – идентификатор любой валюты, эмулирующей работу национальной валюты, необязательный параметр. Если заполнен, то в результатах выдачи параметр baseCurrencyId будет заменяться на валюту из параметра otherBaseCurrencyId (обрабатывается с релиза 15.9).
- Возвращаемый результат:
- baseCurrencyId – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке basketCurrency в конфигурационном файле (обрабатывается с релиза 15.6)
- currencyId – идентификатор валюты, курс которой приводится
- rate – курс валюты (отношение currencyId к baseCurrencyId)
- date – дата, на которую был зарегистрирован выводимый курс валюты
|
Вызов метода CurrencyRates http://localhost:9000/TourSearchOwin/CurrencyRates?dateFrom=18.09.2024&dateTo=19.09.2024
Возвращаемый результат метода CurrencyRates (в формате JSON) [
{
"BaseCurrencyId": 14,
"CurrencyId": 1,
"Rate": 91.429200,
"Date": "18.09.2024"
},
{
"BaseCurrencyId": 14,
"CurrencyId": 2,
"Rate": 101.505700,
"Date": "18.09.2024"
},
{
"BaseCurrencyId": 14,
"CurrencyId": 1,
"Rate": 91.671200,
"Date": "19.09.2024"
},
{
"BaseCurrencyId": 14,
"CurrencyId": 2,
"Rate": 102.039000,
"Date": "19.09.2024"
}
]
|
Выгрузка списка всех валют (getAllCurrencies)
Метод возвращает список всех валют.
- Формат запроса:
- GET .../TourSearchOwin/AllCurencies/getAllCurrencies
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Code – код валюты
- Name – наименование валюты
- IsMain – признак валюты «Главная»
- IsNational – признак валюты «Национальная»
- IsoCode – ISO код валюты
- IsShowInSearch – признак показывать ли валюту в поиске
- Symbol – символ валюты (обрабатывается с 15.7)
- Key – идентификатор валюты
|
Вызов метода getAllCurrencies GET http://localhost:9000/TourSearchOwin/AllCurencies/getAllCurrencies
Возвращаемый результат метода getAllCurrencies (в формате JSON) [
{
"Code": "EU",
"Name": "Euro",
"IsMain": false,
"IsNational": false,
"IsoCode": "EUR",
"IsShowInSearch": true,
"Symbol": "€",
"Key": 2
},
{
"Code": "рб",
"Name": "Рубль",
"IsMain": false,
"IsNational": true,
"IsoCode": "RUR",
"IsShowInSearch": true,
"Symbol": "₽",
"Key": 14
},
{
"Code": "$",
"Name": "US Dollar",
"IsMain": true,
"IsNational": false,
"IsoCode": "USD",
"IsShowInSearch": true,
"Symbol": "$",
"Key": 1
},
{
"Code": "гр",
"Name": "Гривна",
"IsMain": false,
"IsNational": false,
"IsoCode": "UAH",
"IsShowInSearch": true,
"Symbol": "₴",
"Key": 6
}
]
|
Получение сконвертированных цен (convertFilterPrice)
Метод возвращает сконвертированные цен для допфильтра Цена (используется в canary)
- Формат запроса:
- GET .../TourSearchOwin/AllCurencies/convertFilterPrice
- Принимаемые параметры ( * – обязательный):
- SourceRateKey * – ключ исходной валюты конвертации
- TargetRateKey * – ключ валюты, в которую будет произведена конвертация
- MinPrice * – значение минимальной цены, которое будет участвовать в конвертации
- MaxPrice * – значение максимальной цены, которое будет участвовать в конвертации
- Возвращаемый результат:
- m_Item1 – сконвертированная минимальная цена
- m_Item12 – сконвертированная максимальная цена
|
Вызов метода convertFilterPrice GET http://localhost:9000/TourSearchOwin/AllCurencies/convertFilterPrice?SourceRateKey=2&TargetRateKey=1&MinPrice=10&MaxPrice=200
Возвращаемый результат метода convertFilterPrice (в формате JSON) {
"m_Item1": 12.035142616440004814057046576,
"m_Item2": 240.70285232880009628114093152
}
|
Выгрузка квотируемых услуг системы (QuotedServices)
Метод производит выгрузку услуг с признаком «Квотируемая»
- Формат запроса:
- GET .../TourSearchOwin/QuotedServices
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Key – идентификатор услуги
- Code – код услуги
- Name – наименование услуги (русский)
- NameLat – наименование услуги (английский)
- IsDuration – наличие продолжительности у услуги
- IsCity – наличие города у услуги
- IsSubCode1 – признак наличия SubCode1 у услуги
- IsSubCode2 – признак наличия SubCode2 у услуги
- Quoted – признак квотируемости услуги
- CheckGeoPoint – наличие геоточек у услуги
- IsRoute – признак маршрутной услуги
- IsPartnerBasedOn – признак сопоставления партнера услуги в зависимости от отеля
- Control – идентификатор статуса услуги
|
Вызов метода QuotedServices GET http://localhost:9000/TourSearchOwin/QuotedServices
Возвращаемый результат метода QuotedServices (в формате JSON) [
{
"Key": 1,
"Code": "А_П",
"Name": "Авиаперелет",
"NameLat": "Flight",
"IsDuration": false,
"IsCity": true,
"IsSubCode1": true,
"IsSubCode2": false,
"Quoted": true,
"CheckGeoPoint": true,
"IsRoute": true,
"IsPartnerBasedOn": false,
"Control": 1
},
{
"Key": 3,
"Code": "HOTEL",
"Name": "Отель/Круиз",
"NameLat": "Hotel/Cruise",
"IsDuration": true,
"IsCity": true,
"IsSubCode1": true,
"IsSubCode2": true,
"Quoted": true,
"CheckGeoPoint": true,
"IsRoute": true,
"IsPartnerBasedOn": false,
"Control": 1
}
]
|
Выгрузка актуальных городов отправления (departureCities)
Метод производит выгрузку всех доступных городов отправления для поискового запроса.
- Формат запроса:
- GET .../TourSearchOwin/departureCities?
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Key – идентификатор города
- Name – название города
|
Вызов метода departureCities GET http://localhost:9000/TourSearchOwin/departureCities
Возвращаемый результат метода departureCities (в формате JSON) [
{
"Key": -1,
"Name": "Без перелета"
},
{
"Key": 312,
"Name": "Астрахань"
},
{
"Key": 1,
"Name": "Москва"
}
]
|
Выгрузка актуальных стран (Destination)
Метод производит выгрузку всех доступных направлений туроператора.
- Формат запроса:
- GET .../TourSearchOwin/Destination?
- Принимаемые параметры ( * – обязательный):
- departureCities * – идентификатор города(ов) отправления (из контроллера .../TourSearchOwin/departureCities?)
- type – настройка easySearchFilter (0/не указано - настройка выключена, 1 - настройка включена)
- term – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Name – название страны
- Key – идентификатор страны
- DestinationType – тип результата (внутренний параметр, не изменяемый, всегда возвращается значение = 1)
- IsExist – не используется
- Data – массив данных для контекстного поиска
- CityKey – код города
- CityName – Название
- HotelKey – код отеля
- HotelName – название отеля
- ResortKey – код курорта
- ResortName – название курорта
|
Вызов метода Destination GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1
Возвращаемый результат метода Destination (в формате JSON) [
{
"Data": null,
"DestinationType": 1,
"IsExist": false,
"Key": 90,
"Name": "Австрия"
},
{
"Data": null,
"DestinationType": 1,
"IsExist": false,
"Key": 53,
"Name": "Тайланд"
},
{
"Data": null,
"DestinationType": 1,
"IsExist": false,
"Key": 460,
"Name": "Россия"
}
]
GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1&type=1
Возвращаемый результат метода Destination (в формате JSON) с включенной настройкой easySearchFilter [
{
"Name": "Австрия",
"Key": 90,
"DestinationType": 1,
"IsExist": false,
"Data":
[
{
"CityKey": 35,
"CityName": "Вена",
"HotelKey": 178,
"HotelName": "Ananas, 5+++*",
"ResortKey": 232,
"ResortName": "Малина"
},
{
"CityKey": 35,
"CityName": "Вена",
"HotelKey": 20748,
"HotelName": "Dev, 1-4*Boutique",
"ResortKey": 0,
"ResortName": ""
},
],
}
{
"Name": "Тайланд",
"Key": 53,
"DestinationType": 1,
"IsExist": false,
"Data":
[
{
"CityKey": 415,
"CityName": "Пхукет",
"HotelKey": 5263,
"HotelName": "7Q Hotel, HV",
"ResortKey": 123,
"ResortName": "Пхукет"
}
],
},
{
"Name": "Россия",
"Key": 460,
"DestinationType": 1,
"IsExist": false,
"Data":
[
{
"CityKey": 295,
"CityName": "Санкт-Петербург",
"HotelKey": 20365,
"HotelName": "Бристоль, 3*",
"ResortKey": 0,
"ResortName": ""
}
],
},
{
"Name": "ОАЭ",
"Key": 2,
"DestinationType": 1,
"IsExist": false,
"Data":
[
{
"CityKey": 12,
"CityName": "ДУБАЙ",
"HotelKey": 1257,
"HotelName": "Avari, APTH3",
"ResortKey": 0,
"ResortName": ""
},
],
}
]
|
Выгрузка актуальных городов (ActualizeCities)
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.
- Формат запроса:
- GET .../TourSearchOwin/ActualizeCities?
- Принимаемые параметры ( * – обязательный):
- cityKeys * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- term – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Key – идентификатор города
- Name – название города
|
Вызов метода ActualizeCities GET http://localhost:9000/TourSearchOwin/ActualizeCities?cityKeys=1&Key=90
Возвращаемый результат метода ActualizeCities (в формате JSON) [
{
"Key": -1,
"Name": "Все"
},
{
"Key": 35,
"Name": "Вена"
},
{
"Key": 440,
"Name": "Зельден"
}
]
|
Выгрузка актуальных типов туров (ActualizeTourType)
Метод возвращает список типов туров по определенному городу отправления, стране и городу прибытия.
- Формат запроса:
- GET .../TourSearchOwin/ActualizeTourType?
- Принимаемые параметры ( * – обязательный):
- departureCityKeys * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- Type * – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
- destinationCity * – идентификатор города(ов) прибытия (полученный из метода .../TourSearchOwin/ActualizeCities?), по умолчанию передается -1, то есть все города в рамках данной страны
- terms – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Key – идентификатор типа тура
- Name – название типа тура
- ParentId – идентификатор группы, к которой относится данный тип тура (если тип тура не относится к группе, то возвращается null)
|
Вызов метода ActualizeTourType GET http://localhost:9000/TourSearchOwin/ActualizeTourType?departureCityKeys=1&Key=90&Type=1&destinationCity=-1
Возвращаемый результат метода ActualizeTourType (в формате JSON) [
{
"Key": -1,
"Name": "Все",
"ParentId": null
},
{
"Key": 2,
"Name": "Стандартный тур",
"ParentId": null
},
{
"Key": 16,
"Name": "Экскурсионный тур",
"ParentId": 35
}
]
|
Выгрузка актуальных дат заездов (TourDate)
Метод производит выгрузку доступных дат заездов для поискового запроса.
- Формат запроса:
- GET .../TourSearchOwin/TourDate?
- Принимаемые параметры ( * – обязательный):
- departureCity * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- destinationCity * – идентификатор города(ов) прибытия (полученный из метода .../TourSearchOwin/ActualizeCities?), по умолчанию передается -1, то есть все города в рамках данной страны
- Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- Type * – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
- tourTypes * – идентификатор типа тура (полученный из метода .../TourSearchOwin/ActualizeTourType?), по умолчанию передается -1, то есть все типы тура в рамках данной страны
- Возвращаемый результат:
- массив дат
|
Вызов метода TourDate GET http://localhost:9000/TourSearchOwin/TourDate?departureCity=1&destinationCity=-1&Key=90&Type=1&tourTypes=-1
Возвращаемый результат метода TourDate (в формате JSON) [
"21.02.2018",
"22.02.2018",
"23.02.2018",
"24.02.2018",
"25.02.2018",
"26.02.2018",
"27.02.2018",
"28.02.2018"
]
|
Выгрузка актуальных продолжительностей (Duration)
Метод производит выгрузку доступных продолжительностей для поискового запроса.
- Формат запроса:
- GET .../TourSearchOwin/Duration?
- Принимаемые параметры ( * – обязательный):
- departureCity * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- destinationCity * – идентификатор города(ов) прибытия (полученный из метода .../TourSearchOwin/ActualizeCities?), по умолчанию передается -1, то есть все города в рамках данной страны
- Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- Type * – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
- tourDate * – массив дат заезда (полученные из метода .../TourSearchOwin/TourDate?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- tourTypes * – идентификатор типа(ов) тура (полученный из метода .../TourSearchOwin/ActualizeTourType?), по умолчанию передается -1, то есть все типы тура в рамках данной страны
- Возвращаемый результат:
- массив продолжительностей (в днях)
|
Вызов метода Duration GET http://localhost:9000/TourSearchOwin/Duration?departureCity=1&destinationCity=-1
&Key=90&Type=1&tourDate=25.02.2018&tourDate=26.02.2018&tourTypes=-1
Возвращаемый результат метода Duration (в формате JSON) [
7,
8,
10,
12,
15,
18
]
|
Поиск туров (Tour)
Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод возвращает наиболее дешевые предложения, найденные по предоставленным параметрам и сгруппированные по отелям в порядке возрастания цены.
- Формат запроса:
- GET .../TourSearchOwin/Tour?
- Принимаемые параметры ( * – обязательный):
- DepartureCityKeys * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- Dates * – массив дат заезда (полученные из метода .../TourSearchOwin/TourDate?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- Durations * – массив продолжительностей (полученные из метода .../TourSearchOwin/Duration?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
- PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
- isFromBasket * – происходит ли обращение из корзины или из поиска туров (true/false)
- isFillSecondaryFilters – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
- DestinationType * – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
- DestinationKey * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- AdultCount * – количество взрослых
- ChildAges – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- CurrencyName * – код валюты
- AviaQuota * – информация о квотах на авиаперелет (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- HotelQuota * – информация о квотах на отель (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- BusTransferQuota – информация о квотах на автобусный переезд (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- MinPrice * – минимальная цена (по умолчанию не задана, передается NaN)
- MaxPrice – максимальная цена (по умолчанию не передается)
- Groups – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля)
- HotelScheme – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры:
- TemplateId – идентификатор шаблона услуги (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Key->TemplateId),
- DurationInNight – продолжительность отеля в ночах (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->DurationInNight),
- Code – ключ отеля (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->Code),
- PacketKey – ключ пакета (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PacketId),
- PartnerKey – ключ партнера (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PartnerId),
- GDSProviderId – ключ провайдера из внешней системы (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->GDSProviderId),
- TotalTourDuration – общая продолжительность тура в днях (этот параметр можно взять из контроллера Tour->Result->Duration)
- BusTransferPointKeys – данный признак проставляется в true в том случае, когда происходит запрос вариантов проживания (кнопка Варианты) в автобусных переездах
- TourKey – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура
- TourDuration – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях
- TourType – идентификатор типа(ов) тура (полученный из метода .../TourSearchOwin/ActualizeTourType?), по умолчанию передается -1, то есть все типы тура в рамках данной страны. Возможна множественная передача параметров.
- Tour – ключ программы тура (дополнительный фильтр)
- Duration – продолжительность тура (дополнительный фильтр)
- DateTour – дата тура (дополнительный фильтр)
- HotelResort – ключ курорта отеля (дополнительный фильтр)
- HotelCity – ключ города отеля (дополнительный фильтр)
- HotelType – ключ признака отеля (дополнительный фильтр)
- HotelStars – ключ категории отеля (дополнительный фильтр)
- Hotel – ключ отеля (дополнительный фильтр)
- Pansions – ключ питания (дополнительный фильтр)
- Airline – ключ авиакомпании (дополнительный фильтр)
- AirportDeparture – ключ аэропорта вылета (дополнительный фильтр)
- AirportArrival – ключ аэропорта прилета (дополнительный фильтр)
- CityIds – идентификатор города(ов) прибытия (полученный из метода .../TourSearchOwin/ActualizeCities?), по умолчанию передается -1, то есть все города в рамках данной страны. Возможна множественная передача параметров.
- TimeDepartureFrom – время отправления с (по умолчанию возвращается 00:00)
- TimeDepartureTo – время отправления по (по умолчанию возвращается 23:59)
- TimeArrivalFrom – время прибытия с (по умолчанию возвращается 00:00)
- TimeArrivalTo – время прибытия по (по умолчанию возвращается 23:59)
- ArrivalFlightNoTransfer – производить поиск без пересадок в прямом направлении (true/false, по умолчанию false)
- DepartureFlightNoTransfer – производить поиск без пересадок в обратном направлении (true/false, по умолчанию false)
- DepartureFlightNumberTransfer – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3.
- ArrivalFlightNumberTransfer – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3.
- Tariff – ключ класса авиаперелета (дополнительный фильтр)
- CombineAirlines — разрешить комбинировать авиаперелеты (дополнительный фильтр). Параметр применяется только при наличии параметра airline. Обрабатывается начиная с релиза 15.3.
- CombineTariffs — разрешить комбинировать классы перелета (дополнительный фильтр). Параметр применяется только при наличии параметра tariff. Обрабатывается начиная с релиза 15.3.
- FlightCityDeparture – ключ город вылета в параметрах авиаперелета (дополнительный фильтр)
- CityDeparture – ключ города начала поездки (дополнительный фильтр)
- RemoteHotelMode – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4.
- GroupGuid – используется для получения турпрограмм по уникальному ключу из кэша при использовании группировки. Примеры использования. GroupGuid=00000000-0000-0000-0000-000000000000 – при первом запросе от локальной системы. GroupGuid=936DA01F-9ABD-4d9d-80C7-02AF85C822A8 (уникальный ключ) – передается на клиент от первого запроса из внешней системы. С данным уникальным ключом осуществляется второй запрос от внешней системы. Далее происходит получение значений по данному уникальному ключу. Обрабатывается начиная с релиза 15.4.
- IsGroupingTourAlreadyMerge – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. IsGroupingTourAlreadyMerge=false – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. IsGroupingTourAlreadyMerge=true – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4.
- SearchId – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5.
- nodeId – уникальный идентификатор узла в кластере балансировки нагрузки HaProxy
- Возвращаемый результат:
- CheckMessages – сообщения для логики проверки тура (не используется)
- Message – сообщение об ошибке
- Key – код ошибки
- Value – сообщение об ошибке
- Result – результаты поиска
- Key – идентификатов программы тура
- Name – название программы тура
- TourUrl – ссылка на программу тура
- BookingConditions – условия бронирования программы туров
- DefaultManagers – список выбранных менеджеров в туре
- Manager – ключ менеджера по умолчанию в туре
- Branches – список ключей филиалов бронирования
- DetermineTheBranchOnCity – признак, определять филиал в зависимости от города начала поездки
- IndividualFlightSelection – признак, включены ли индивидуальные настройки подбора перелетов
- RestrictionDateArrival – признак, ограничение даты прилета по базовому рейсу в индивидуальных настройках подбора перелетов
- PriceUpdateForView – признак обновления цен в индивидуальных настройках подбора перелетов (true – включен, false – выключен)
- SelectFlightAutomatically – признак выбирать рейс автоматически, если не выбран пользователем в индивидуальных настройках подбора перелетов
- BaggageSearchOtherFares – признак поиска багажа в других тарифах в индивидуальных настройках подбора перелетов
- Luggage – значение багажа в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
- LuggageForView – значение багажа в блоке настроек, влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
- LuggageForPrice – значение багажа в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
- FlightClass – класс перелета в индивидуальных настройках подбора перелетов (economy – Эконом, premiumEconomy 2 Премиум-эконом, business – Бизнес, first – Первый)
- Directs – значение пересадок в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, onlyDirectFlights – только прямые рейсы)
- DirectsForView – значение пересадок в блоке влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect)
- DirectsForPrice – значение пересадок в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect)
- DepartureTimeLimit – ограничение времени вылета: «Вылет не позже» в формате hh:mm
- SortingForView – сортировка в индивидуальных настройках подбора перелетов (cheap – сначала дешевые, fast – сначала быстрые, optimal – оптимальные)
- StartDate – дата начала тура
- MaxConnectionTime – длительность пересадок в индивидуальных настройках подбора перелетов в формате hh:mm
- FullPaymentPeriod – полная оплата с даты бронирования (может быть null)
- FullPaymentCheckin – полная оплата до даты заезда (может быть null)
- PrePaymentPeriod – предоплата с даты бронирования (может быть null)
- PrePaymentCheckin – предоплата до даты заезда (может быть null)
- PrePaymentCu" – значение предоплаты в y.e. (может быть null)
- PrePaymentPercent – значение предоплаты в процентах (может быть null)
- Duration – продолжительность тура (в днях)
- DurationInNight – продолжительность проживания (в ночах)
- Types – идентификатор типа туров
- Price – цена тура с учетом скидки в валюте поиска
- Cost – цена тура в валюте поиска
- Rate – код валюты тура
- Penalties – внутреннее поле, не используется
- CityDepature – город отправления
- Key – идентификатор города отправления
- Value – название города отправления
- CountryId – всегда возвращается ключ 0
- Services – услуги в туре
- DepartureCity – город отправления
- Key – идентификатор
- Value – название
- DepartureCountry – страна отправления
- Key – идентификатор
- Value – название
- ArrivalCity – город прибытия
- Key – идентификатор
- Value – название
- ArrivalCountry – страна прибытия
- Key – идентификатор
- Value – название
- DepartureAirport – аэропорт отправления
- Key – идентификатор
- Value – название
- ArrivalAirport – аэропорт прибытия
- Key – идентификатор
- Value – название
- Airline – авиакомпания
- Key – идентификатор
- Value – название
- Aircraft – воздушное судно
- Key – идентификатор
- Value – название
- Flight – рейс
- Key – идентификатор
- Value – название
- DepartureTime – время вылета
- ArrivalTime – время прилета
- EndDateTime – дата и время прилета
- FlightDetails – информация об авиаперелете
- Tariff – информация о тарифе перелета
- Key – идентификатор
- Code – код тарифа
- Name – название тарифа
- Cost – разница в стоимости с самым дешевым вариантом
- QuotaStatus – информация о квоте
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – ключ партнера
- ByPax – цена за человека (true/false)
- Partner – информация о партнере
- Key – идентификатор
- Value – название
- Tariff – информация о тарифе перелета
- FlightSetting – внутренняя информация о перелете из программы туров
- ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
- PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- FlightId – идентификатор перелета (внутренняя информация из программы туров)
- FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- DepartureCity – город отправления
- NotRouteServices – массив коллекций немаршрутных услуг (например если две экскурсии будут являться одним элементом массива, то это будет говорить о том, что эти экскурсии можно будет выбрать в выпадающем списке)
- ServiceName – название типа услуги
- City – объект город
- Key – ключ города
- Value – название города
- Country – объект страна
- Key – ключ страны
- Value – название страны
- Code – объект код услуги
- Key – ключ услуги
- Value – название услуги
- ByScheduler – флаг услуга по расписанию или нет
- Details – объект детализация услуги
- SubCode1 – объект доп. описание 1
- Key – ключ доп. описания 1
- Value – название доп. описания 1
- SubCode2 – объект доп. описание 2
- Key – ключ доп. описания 2
- Value – название доп. описания 2
- Date – дата услуги
- IsShowTransportPlan – признак показывать ли план рассадки (для автобусов)
- Cost – цена
- QuotaStatus – объект информация по квотам
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – идентификатор партнера
- ByPax – признак цены за человека
- Partner – объект партнер (не заполняется)
- Key – ключ (не заполняется)
- Value – название (не заполняется)
- SubCode1 – объект доп. описание 1
- ParentId – идентификатор родительской услуги (для вложенных услуг)
- PartnerBasedOnServiceTemplateId – ключ шаблона услуги, по которой приоритетно выбирается партнер текущей услуги
- Id – идентификатор услуги
- SvKey – ключ типа услуги
- IsSubCode1 – наличие доп. описания 1
- IsSubCode2 – наличие доп. описания 2
- IsPartnerBasedOn – услуга с подбором приоритетного поставщика услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- EndDateTime – дата окончания услуги
- IsHooded – скрытая ли услуга
- IsDeleted – удаляемая ли услуга
- IsNotCalculate – не рассчитываемая ли услуга
- PacketId – пакет услуги
- Index – индекс услуги
- MinCostServicesComposition – массив состав услуг минимальной цены
- Key – ключ
- TemplateId – идентификатор шаблона
- PatternId – идентификатор вкладки
- SettingId – идентификатор услуги
- Value – значение
- ServiceType – тип услуги
- Code – ключ услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- PacketId – пакет услуги
- PartnerId – партнер услуги
- CountryId – страна услуги
- CityId – город услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- COAndSpecialsInfo – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков
- AppliedCostOffersKeys – коллекция идентификаторов всех применённых ценовых блоков к одной цене
- AppliedSpeciasInfo – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция
- SpecialKey – ключ акции
- SpecialName – название акции
- SpecialType – тип акции
- NewPrice – цена после применения акции
- OldPrice – цена до применения акции
- ShowOnline – нужно ли показывать акцию в поиске
- UntilDate – акция действует при совершении покупки до указанной даты
- Condition – json форма условия применения акции. Данное поле включает в себя следующие значения в зависимости от типа акции:
- NightsFrom (для типа PayStay) – ночей от
- NightsTo (для типа PayStay) – ночей до
- NightValue (для типа PayStay) – значение ночи, которое соответствует заданному периоду
- OperationType (для типа PayStay) – тип действия
- SpecialNightType (для типа PayStay) – тип бесплатной ночи
- DurationFrom (для типа KickBack) – ночей от
- DurationTo (для типа KickBack) – ночей до
- Value (для типа KickBack) – значение продолжительности, равное заданному периоду
- OperationType (для типа KickBack) – тип действия
- NightsFrom (для типа EarlyBird) – ночей от
- NightsTo (для типа EarlyBird) – ночей до
- Discount (для типа EarlyBird) – размер скидки
- OperationType (для типа EarlyBird) – тип действия
- COBySubCode – список применённых идентификаторов ценовых блоков по SubCode1 и SubCode2
- SpecialsBySubCode – список применённых акций по SubCode1 и SubCode2
- SubCode1 – объект доп. описание 1
- SubCode2 – объект доп. описание 2
- Key – ключ
- FlightWeight –
- LinkingFlightsRules – объект правил связывания
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- airlines – авиакомпании
- flightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- checkPlusMinus1CharterRule – объект Отличие номера рейса на 1
- FlightSettingPairs – массив чартеров, для которых это правило будет выполняться
- enabled – флаг включен/выключен
- notCombineDifferentTariffGroupRule – объект не комбинировать рейсы от разных классов перелетов
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentPartnerRule – объект не комбинировать рейсы от разных партнеров
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- departureCityEqualsArrivalCityRule – объект Город вылета = городу прилета
- FlightSettingPairs – чартеры, для которых это будет выполняться
- enabled – флаг включен/выключен
- combineOnlySpecificChartersRule – объект не комбинировать различные классы перелетов
- settings – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- RouteSubVariants – подварианты услуг (используется в основном поиске)
- Routes – количество маршрутов для данного варианта поиска (к примеру, если будет несколько вариантов
- IsRemoteHotels – признак, есть ли внешние отели в данном варианте
- IsTourImages – признак, есть ли картинки тура
- MaskKeys – маска фильтра категории номеров
- SecondaryFiltersResult – результаты доп. фильтров
- TourTypes – типы тура
- Id – ключ типа тура
- Name – название типа тура
- ParentId – родительский элемент типа тура (если есть)
- Type – тип справочника (используется для внутренних целей)
- TourPrograms – информация по каждой турпрограмме
- Key – ключ турпрограммы
- Name – название турпрограммы
- TourUrl – ссылка на тур
- BookingConditions – условия бронирования
- IsLandOnly – признак только наземное обслуживание
- IsRestrictMultiHotels – ограничивать ли расчёт многоотельных туров категориями отелей
- IsHotelTemplates – есть ли вообще отели в данной турпрограмме
- IsRouteServices – есть ли маршрутные услуги
- MultiHotelDelta – Значение отклонения звездности последующих отелей от первого отеля в многоотельном туре. По умолчанию 0. Звездность определяется числом, заданном в поле порядок при печати.
- Rate – валюта тура
- DateStart – нижняя граница дат заезда по программе тура
- DateEnd – верхняя граница дат заеда по программе тура
- Status – статус турпрограммы
- Key – ключ
- Value – значение
- Templates – шаблоны услуг
- $id – шаблон 1
- $id – шаблон 2
- Types – типы тура
- Id – ключ типа тура
- Name – название типа тура
- ParentId – родительский элемент типа тура (если есть)
- Type – тип справочника (используется для внутренних целей)
- LinkingFlightsRules – правила связывания перелетов
- notCombineDifferentAirlineRule –
- airlines –
- flightSettings –
- enabled –
- checkPlusMinus1CharterRule –
- FlightSettingPairs –
- enabled –
- notCombineDifferentTariffGroupRule –
- FlightSettings –
- enabled –
- notCombineDifferentPartnerRule –
- FlightSettings –
- enabled –
- departureCityEqualsArrivalCityRule –
- FlightSettingPairs –
- enabled –
- combineOnlySpecificChartersRule –
- settings –
- enabled –
- notCombineDifferentAirlineRule –
- Type – тип справочника (используется для внутренних целей)
- TourDurations – продолжительность тура
- TourDates – список дат заездов в турпрограмме
- HotelCities – город в дополнительных фильтрах
- ' –
- HotelResorts – курорты в дополнительных фильтрах
- ' –
- HotelCategories – категории отеля в дополнительных фильтрах
- ' –
- Hotels – отели в дополнительных фильтрах
- ' –
- Pansions – питания в дополнительных фильтрах
- ' –
- Airlines – авиакомпании в дополнительных фильтрах
- ' –
- FlightTariffs – класс перелета в дополнительных фильтрах
- ' –
- DepartureCities – города вылета в дополнительных фильтрах
- ' –
- DepartureAirports – аэропорты вылета в дополнительных фильтрах
- ' –
- ArrivalCities – города прибытия в дополнительных фильтрах
- ' –
- ArrivalAirports – аэропорты прибытия в дополнительных фильтрах
- ' –
- HotelTypes – признаки отелей в дополнительных фильтрах
- ' –
- HotelCities – город в дополнительных фильтрах
- TourTypes – типы тура
- nodeId – уникальный идентификатор узла в кластере балансировки нагрузки HaProxy
|
Вызов метода Tour GET http://localhost:9000/TourSearchOwin/Tour?DepartureCityKeys=1&Dates=25.02.2018&Durations=4
&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&isFromBasket=false
&isFillSecondaryFilters=true&DestinationType=1&DestinationKey=90&AdultCount=2&ChildAges=2
&ChildAges=2&CurrencyName=EU&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&MinPrice=NaN&TourType=-1
&CityIds=-1&TimeDepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00
&TimeArrivalTo=23%3A59&ArrivalFlightNoTransfer=false&DepartureFlightNoTransfer=false
Возвращаемый результат метода Tour (в формате JSON) {
"CheckMessages": null,
"Message": {
"Key": 0,
"Value": null
},
"Result": [
{
"Key": 100000004,
"Name": "Общая проверка системы",
"TourUrl": "www.megatec.ru",
"BookingConditions": "<p>Условия бронирования тура.<\/p>",
"DefaultManagers": [],
"Manager": 169,
"Branches": [],
"DetermineTheBranchOnCity": false,
"IndividualFlightSelection": true,
"RestrictionDateArrival": false,
"PriceUpdateForView": false,
"SelectFlightAutomatically": false,
"BaggageSearchOtherFares": false,
"Luggage": "withoutLuggage",
"LuggageForView": "all",
"LuggageForPrice": "all",
"FlightClass": "economy",
"Directs": "all",
"DirectsForView": "all",
"DirectsForPrice": "all",
"DepartureTimeLimit": "",
"SortingForView": "cheap",
"StartDate": "2018-02-25T00:00:00",
"MaxConnectionTime": 0
"FullPaymentPeriod": 5,
"FullPaymentCheckin": null,
"PrePaymentPeriod": null,
"PrePaymentCheckin": 5,
"PrePaymentCu": null,
"PrePaymentPercent": 10.0,
"Duration": 4,
"DurationInNight": 3,
"Types": [2],
"Price": 260,
"Cost": 260,
"Penalties": null,
"Rate": "EU",
"CityDepature": {
"Key": 1,
"Value": "Москва"
},
"CountryId": 0,
"Services": [
{
"DepartureCity": {
"Key": 1,
"Value": "Москва"
},
"DepartureCountry": {
"Key": 460,
"Value": "Россия"
},
"ArrivalCity": {
"Key": 35,
"Value": "Вена"
},
"ArrivalCountry": {
"Key": 90,
"Value": "Австрия"
},
"DepartureAirport": {
"Key": "SVO4",
"Value": "Шереметьево-24"
},
"ArrivalAirport": {
"Key": "VIE1",
"Value": "Vena1"
},
"Airline": {
"Key": "BA7",
"Value": "BRITISH AIRWAYS"
},
"Aircraft": {
"Key": "319",
"Value": "AIRBUS "
},
"Flight": {
"Key": 882,
"Value": "4444"
},
"DepartureTime": "10:00:00",
"ArrivalTime": "12:00:00",
"EndDateTime": "2018-02-25T12:00:00",
"FlightDetails": [ {
"Tariff": {
"Key": 89,
"Code": "Y",
"Name": "Экономический класс"
},
"Cost": 10,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12668,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"FlightSetting": {
"ServiceId": 3,
"PatternId": 13,
"FlightId": 13
},
"FlightSourceMode": 1,
"Id": 3,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-02-25T10:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 0
},
{
"Hotel": {
"Key": 709,
"Value": "Am Brilliantengrund"
},
"City": {
"Key": 35,
"Value": "Вена"
},
"Stars": {
"Key": -1,
"Value": null
},
"Resort": {
"Key": -1,
"Value": null
},
"ImageURL": "",
"Http": null,
"Description": "",
"Country": {
"Key": 90,
"Value": "Австрия"
},
"HotelDetails": [ {
"HotelRoom": 46463,
"Room": {
"Key": 129,
"Value": "DBL"
},
"RoomCategory": {
"Key": 3493,
"Value": "Cosy"
},
"AccomodationType": {
"Key": 1256,
"Value": "2+1_K",
"AdultCount": 2,
"ChildCount": 1
},
"Pansion": {
"Key": 4,
"Value": "Завтрак"
},
"AbsolutePenalties": null,
"Cost": 19.47,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12667,
"ByPax": false,
"Partner": {
"Key": 12667,
"Value": "Партнер-покупатель1"
}
}],
"HotelTypes": [ {
"Key": 5,
"Value": "Рекомендуемые"
}],
"Id": 1,
"SvKey": 3,
"IsSubCode1": true,
"IsSubCode2": true,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 3,
"BeginDateTime": "2018-02-25T12:00:00",
"EndDateTime": "2018-02-28T12:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 1
},
{
"DepartureCity": {
"Key": 35,
"Value": "Вена"
},
"DepartureCountry": {
"Key": 90,
"Value": "Австрия"
},
"ArrivalCity": {
"Key": 1,
"Value": "Москва"
},
"ArrivalCountry": {
"Key": 460,
"Value": "Россия"
},
"DepartureAirport": {
"Key": "VIE1",
"Value": "Vena1"
},
"ArrivalAirport": {
"Key": "DME",
"Value": "Домодедово"
},
"Airline": {
"Key": "7U",
"Value": "Авиаэнерго"
},
"Aircraft": {
"Key": "727",
"Value": "Boeing"
},
"Flight": {
"Key": 774,
"Value": "222"
},
"DepartureTime": "00:00:00",
"ArrivalTime": "00:00:00",
"EndDateTime": "2018-02-28T00:00:00",
"FlightDetails": [ {
"Tariff": {
"Key": 89,
"Code": "Y",
"Name": "Экономический класс"
},
"Cost": 0,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 10760,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"FlightSetting": {
"ServiceId": 4,
"PatternId": 5,
"FlightId": 4
},
"FlightSourceMode": 1,
"Id": 4,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 4,
"DurationInNight": 0,
"BeginDateTime": "2018-02-28T00:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 4
}
],
"NotRouteServices": [
[ {
"ServiceName": "страховка",
"City": null,
"Country": {
"Key": 90,
"Value": "Австрия"
},
"Code": {
"Key": 297,
"Value": "Страховка от несчастного случая"
},
"ByScheduler": false,
"Details": [ {
"SubCode1": {
"Key": 18,
"Value": "2"
},
"SubCode2": {
"Key": null,
"Value": ""
},
"Date": null,
"IsShowTransportPlan": true,
"Cost": 16,
"QuotaStatus": {
"PlacesStatus": 1,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12668,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"ParentId": null,
"PartnerBasedOnServiceTemplateId": null,
"Id": 10,
"SvKey": 6,
"IsSubCode1": true,
"IsSubCode2": true,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 3,
"BeginDateTime": "2018-02-25T00:00:00",
"EndDateTime": "2018-02-28T00:00:00",
"IsHooded": false,
"IsDeleted": true,
"IsNotCalculate": true,
"PacketId": 882,
"Index": 2
}],
[ {
"ServiceName": "экскурсия",
"City": {
"Key": 1046,
"Value": "Санто-Доминго"
},
"Country": {
"Key": 90,
"Value": "Австрия"
},
"Code": {
"Key": 743,
"Value": "4"
},
"ByScheduler": false,
"Details": [ {
"SubCode1": {
"Key": 37,
"Value": "Мини-автобус 10 чел."
},
"SubCode2": {
"Key": null,
"Value": ""
},
"Date": null,
"IsShowTransportPlan": false,
"Cost": 85.22,
"QuotaStatus": {
"PlacesStatus": 1,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12667,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"ParentId": null,
"PartnerBasedOnServiceTemplateId": null,
"Id": 7,
"SvKey": 4,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": true,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-02-25T00:00:00",
"EndDateTime": "2018-02-26T00:00:00",
"IsHooded": false,
"IsDeleted": true,
"IsNotCalculate": true,
"PacketId": 779,
"Index": 3
}]
],
"MinCostServicesComposition": [
{
"Key": {
"TemplateId": 3,
"PatternId": 13,
"SettingId": 13
},
"Value": {
"ServiceType": 1,
"Code": 882,
"SubCode1": 89,
"SubCode2": 1,
"PacketId": 779,
"PartnerId": 12668,
"CountryId": 90,
"CityId": 35,
"Day": 1,
"DurationInNight": 0
}
},
{
"Key": {
"TemplateId": 1,
"PatternId": 0,
"SettingId": 0
},
"Value": {
"ServiceType": 3,
"Code": 709,
"SubCode1": 46463,
"SubCode2": 4,
"PacketId": 779,
"PartnerId": 12667,
"CountryId": 90,
"CityId": 35,
"Day": 1,
"DurationInNight": 3
}
},
{
"Key": {
"TemplateId": 4,
"PatternId": 5,
"SettingId": 4
},
"Value": {
"ServiceType": 1,
"Code": 774,
"SubCode1": 89,
"SubCode2": 35,
"PacketId": 779,
"PartnerId": 10760,
"CountryId": 460,
"CityId": 1,
|