Мастер-Тур(15):API для разработки онлайн поиска и бронирования — различия между версиями
| [досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) (→Выгрузка первоначального варианта в корзину для бронирования (Tour)) |
Biryukov (обсуждение | вклад) (→Установка) |
||
| (не показано 198 промежуточных версий 8 участников) | |||
| Строка 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)=== | ||
| Строка 75: | Строка 140: | ||
** нет принимаемых параметров | ** нет принимаемых параметров | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** '''ChildAgesSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. | + | ** '''ChildAgesSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|максимальный возраст ребенка]] (массив возрастов, при которых турист будет считаться ребенком |
| − | ** '''DurationSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. | + | ** '''DurationSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|максимальная продолжительность тура]] (массив продолжительностей, доступных в фильтрах для поиска) |
** '''RoundServiceSetting''' – признак округления цены (количество знаков после запятой) | ** '''RoundServiceSetting''' – признак округления цены (количество знаков после запятой) | ||
** '''CacheReady''' – статус готовности службы поиска к работе (true/false) | ** '''CacheReady''' – статус готовности службы поиска к работе (true/false) | ||
| Строка 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> | ||
| Строка 187: | Строка 265: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка списка валют (Currency)=== | + | ===Выгрузка списка валют в онлайне (Currency)=== |
Метод возвращает список используемых валют. | Метод возвращает список используемых валют. | ||
* Формат запроса: | * Формат запроса: | ||
| Строка 199: | Строка 277: | ||
** '''IsNational''' – признак валюты «Национальная» | ** '''IsNational''' – признак валюты «Национальная» | ||
** '''IsoCode''' – ISO код валюты | ** '''IsoCode''' – ISO код валюты | ||
| + | ** '''IsShowInSearch''' – признак показывать ли валюту в поиске | ||
| + | ** '''Symbol''' – символ валюты (обрабатывается с 15.7) | ||
** '''Key''' – идентификатор валюты | ** '''Key''' – идентификатор валюты | ||
| − | + | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 218: | Строка 298: | ||
"IsNational": false, | "IsNational": false, | ||
"IsoCode": "EUR", | "IsoCode": "EUR", | ||
| − | " | + | "IsShowInSearch": true, |
| − | " | + | "Symbol": "€", |
| + | "Key": 2 | ||
}, | }, | ||
{ | { | ||
| Строка 227: | Строка 308: | ||
"IsNational": true, | "IsNational": true, | ||
"IsoCode": "RUR", | "IsoCode": "RUR", | ||
| − | " | + | "IsShowInSearch": true, |
| − | " | + | "Symbol": "₽", |
| + | "Key": 14 | ||
}, | }, | ||
{ | { | ||
| Строка 236: | Строка 318: | ||
"IsNational": false, | "IsNational": false, | ||
"IsoCode": "USD", | "IsoCode": "USD", | ||
| − | " | + | "IsShowInSearch": true, |
| − | " | + | "Symbol": "$", |
| + | "Key": 1 | ||
} | } | ||
] | ] | ||
| Строка 244: | Строка 327: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка | + | |
| − | Метод | + | ===Выгрузка курсов валют (CurrencyRates) начиная с 15.7=== |
| + | Полный аналог метода [[Мастер-Тур(15):API для отдачи цен в поисковые системы#Выгрузка курсов валют (GetCurrencyRates)|Выгрузка курсов валют (GetCurrencyRates)]]<br /> | ||
| + | Метод возвращает список курсов валют, актуальных на дату запроса. Курсы отображаются только для тех валют, которые отмечены в справочнике признаком ''Отображать в онлайне'' | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** 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''' – дата, на которую был зарегистрирован выводимый курс валюты |
| − | ** ''' | ||
| − | |||
| − | |||
| − | ** ''' | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<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> | ||
| − | Вызов метода | + | Вызов метода CurrencyRates |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | + | http://localhost:9000/TourSearchOwin/CurrencyRates?dateFrom=18.09.2024&dateTo=19.09.2024 | |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода 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> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка | + | ===Выгрузка списка всех валют (getAllCurrencies)=== |
| − | Метод | + | Метод возвращает список всех валют. |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/AllCurencies/getAllCurrencies |
* Принимаемые параметры: | * Принимаемые параметры: | ||
** нет принимаемых параметров | ** нет принимаемых параметров | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** ''' | + | ** '''Code''' – код валюты |
| − | ** '''Name''' – | + | ** '''Name''' – наименование валюты |
| + | ** '''IsMain''' – признак валюты «Главная» | ||
| + | ** '''IsNational''' – признак валюты «Национальная» | ||
| + | ** '''IsoCode''' – ISO код валюты | ||
| + | ** '''IsShowInSearch''' – признак показывать ли валюту в поиске | ||
| + | ** '''Symbol''' – символ валюты (обрабатывается с 15.7) | ||
| + | ** '''Key''' – идентификатор валюты | ||
<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> | ||
| − | Вызов метода | + | Вызов метода getAllCurrencies |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | GET http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/AllCurencies/getAllCurrencies |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода getAllCurrencies (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
[ | [ | ||
{ | { | ||
| − | " | + | "Code": "EU", |
| − | "Name": " | + | "Name": "Euro", |
| + | "IsMain": false, | ||
| + | "IsNational": false, | ||
| + | "IsoCode": "EUR", | ||
| + | "IsShowInSearch": true, | ||
| + | "Symbol": "€", | ||
| + | "Key": 2 | ||
}, | }, | ||
{ | { | ||
| − | " | + | "Code": "рб", |
| − | "Name": " | + | "Name": "Рубль", |
| + | "IsMain": false, | ||
| + | "IsNational": true, | ||
| + | "IsoCode": "RUR", | ||
| + | "IsShowInSearch": true, | ||
| + | "Symbol": "₽", | ||
| + | "Key": 14 | ||
}, | }, | ||
{ | { | ||
| − | "Key": 1, | + | "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 | ||
} | } | ||
] | ] | ||
| Строка 347: | Строка 455: | ||
</div></div><br /> | </div></div><br /> | ||
| − | === | + | |
| − | Метод | + | ===Получение сконвертированных цен (convertFilterPrice)=== |
| + | Метод возвращает сконвертированные цен для допфильтра ''Цена'' (используется в canary) | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/AllCurencies/convertFilterPrice |
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
| − | ** ''' | + | ** '''SourceRateKey *''' – ключ исходной валюты конвертации |
| − | ** ''' | + | ** '''TargetRateKey *''' – ключ валюты, в которую будет произведена конвертация |
| + | ** '''MinPrice *''' – значение минимальной цены, которое будет участвовать в конвертации | ||
| + | ** '''MaxPrice *''' – значение максимальной цены, которое будет участвовать в конвертации | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** ''' | + | ** '''m_Item1''' – сконвертированная минимальная цена |
| − | ** ''' | + | ** '''m_Item12''' – сконвертированная максимальная цена |
| − | |||
<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> | ||
| − | Вызов метода | + | Вызов метода convertFilterPrice |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | GET http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/AllCurencies/convertFilterPrice?SourceRateKey=2&TargetRateKey=1&MinPrice=10&MaxPrice=200 |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода convertFilterPrice (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | + | { | |
| − | + | "m_Item1": 12.035142616440004814057046576, | |
| − | + | "m_Item2": 240.70285232880009628114093152 | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка | + | ===Выгрузка квотируемых услуг системы (QuotedServices)=== |
| − | Метод | + | Метод производит выгрузку услуг с признаком «Квотируемая» |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/QuotedServices |
| − | * Принимаемые параметры | + | * Принимаемые параметры: |
| − | ** | + | ** нет принимаемых параметров |
| − | |||
| − | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** '''Key''' – идентификатор | + | ** '''Key''' – идентификатор услуги |
| − | ** '''Name''' – | + | ** '''Code''' – код услуги |
| + | ** '''Name''' – наименование услуги (русский) | ||
| + | ** '''NameLat''' – наименование услуги (английский) | ||
| + | ** '''IsDuration''' – наличие продолжительности у услуги | ||
| + | ** '''IsCity''' – наличие города у услуги | ||
| + | ** '''IsSubCode1''' – признак наличия [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|SubCode1]] у услуги | ||
| + | ** '''IsSubCode2''' – признак наличия [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|SubCode2]] у услуги | ||
| + | ** '''Quoted''' – признак квотируемости услуги | ||
| + | ** '''CheckGeoPoint''' – наличие геоточек у услуги | ||
| + | ** '''IsRoute''' – признак маршрутной услуги | ||
| + | ** '''IsPartnerBasedOn''' – признак сопоставления партнера услуги в зависимости от отеля | ||
| + | ** '''Control''' – идентификатор статуса услуги | ||
<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> | ||
| − | Вызов метода | + | Вызов метода QuotedServices |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | GET http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/QuotedServices |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода QuotedServices (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
[ | [ | ||
{ | { | ||
| − | "Key": | + | "Key": 1, |
| − | "Name": " | + | "Code": "А_П", |
| + | "Name": "Авиаперелет", | ||
| + | "NameLat": "Flight", | ||
| + | "IsDuration": false, | ||
| + | "IsCity": true, | ||
| + | "IsSubCode1": true, | ||
| + | "IsSubCode2": false, | ||
| + | "Quoted": true, | ||
| + | "CheckGeoPoint": true, | ||
| + | "IsRoute": true, | ||
| + | "IsPartnerBasedOn": false, | ||
| + | "Control": 1 | ||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 3, |
| − | "Name": " | + | "Code": "HOTEL", |
| − | + | "Name": "Отель/Круиз", | |
| − | + | "NameLat": "Hotel/Cruise", | |
| − | " | + | "IsDuration": true, |
| − | " | + | "IsCity": true, |
| + | "IsSubCode1": true, | ||
| + | "IsSubCode2": true, | ||
| + | "Quoted": true, | ||
| + | "CheckGeoPoint": true, | ||
| + | "IsRoute": true, | ||
| + | "IsPartnerBasedOn": false, | ||
| + | "Control": 1 | ||
} | } | ||
] | ] | ||
| Строка 428: | Строка 552: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка | + | ===Выгрузка актуальных городов отправления (departureCities)=== |
| − | Метод | + | Метод производит выгрузку всех доступных городов отправления для поискового запроса. |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/departureCities? |
| − | * Принимаемые параметры | + | * Принимаемые параметры: |
| − | ** | + | ** нет принимаемых параметров |
| − | |||
| − | |||
| − | |||
| − | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** '''Key''' – идентификатор | + | ** '''Key''' – идентификатор города |
| − | ** '''Name''' – название | + | ** '''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> | ||
| − | Вызов метода | + | Вызов метода departureCities |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | GET http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/departureCities |
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода departureCities (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
[ | [ | ||
{ | { | ||
"Key": -1, | "Key": -1, | ||
| − | "Name": " | + | "Name": "Без перелета" |
| − | |||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 312, |
| − | "Name": " | + | "Name": "Астрахань" |
| − | |||
}, | }, | ||
{ | { | ||
| − | "Key": | + | "Key": 1, |
| − | "Name": " | + | "Name": "Москва" |
| − | |||
} | } | ||
] | ] | ||
| Строка 473: | Строка 589: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка актуальных | + | ===Выгрузка актуальных стран (Destination)=== |
| − | Метод производит выгрузку доступных | + | Метод производит выгрузку всех доступных направлений туроператора. |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/Destination? |
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
| − | ** ''' | + | ** '''departureCities *''' – идентификатор города(ов) отправления (из контроллера [[#Выгрузка актуальных городов отправления (departureCities)|''.../TourSearchOwin/departureCities?'']]) |
| − | ** ''' | + | ** '''type''' – настройка easySearchFilter (0/не указано - настройка выключена, 1 - настройка включена) |
| − | + | ** '''term''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | |
| − | |||
| − | ** ''' | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** массив | + | ** '''Name''' – название страны |
| + | ** '''Key''' – идентификатор страны | ||
| + | ** '''DestinationType''' – тип результата (внутренний параметр, не изменяемый, всегда возвращается значение = 1) | ||
| + | ** '''IsExist''' – не используется | ||
| + | ** '''Data''' – массив данных для контекстного поиска | ||
| + | *** '''CityKey''' – код города | ||
| + | *** '''CityName''' – Название | ||
| + | *** '''HotelKey''' – код отеля | ||
| + | *** '''HotelName''' – название отеля | ||
| + | *** '''ResortKey''' – код курорта | ||
| + | *** '''ResortName''' – название курорта | ||
| + | |||
<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> | ||
| − | Вызов метода | + | Вызов метода Destination |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | GET http://localhost:9000/TourSearchOwin/ | + | |
| + | GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода Destination (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
[ | [ | ||
| − | " | + | { |
| − | " | + | "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 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода Destination (в формате JSON) с включенной настройкой easySearchFilter | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "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": "" | ||
| + | }, | ||
| + | ], | ||
| + | } | ||
] | ] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 509: | Строка 736: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка актуальных | + | ===Выгрузка актуальных городов (ActualizeCities)=== |
| − | Метод | + | Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия. |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/ActualizeCities? |
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
| − | ** ''' | + | ** '''cityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') |
| − | |||
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
| − | ** ''' | + | ** '''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> | ||
| − | Вызов метода | + | Вызов метода ActualizeCities |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | GET http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/ActualizeCities?cityKeys=1&Key=90 |
| − | &Key=90 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода ActualizeCities (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
[ | [ | ||
| − | + | { | |
| − | + | "Key": -1, | |
| − | + | "Name": "Все" | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 35, | |
| + | "Name": "Вена" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 440, | ||
| + | "Name": "Зельден" | ||
| + | } | ||
] | ] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 545: | Строка 775: | ||
</div></div><br /> | </div></div><br /> | ||
| − | === | + | ===Выгрузка актуальных типов туров (ActualizeTourType)=== |
| − | Метод | + | Метод возвращает список типов туров по определенному городу отправления, стране и городу прибытия. |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/ActualizeTourType? |
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
| − | ** ''' | + | ** '''departureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') |
| − | ** ''' | + | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') |
| − | + | ** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) | |
| − | + | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | |
| − | + | ** '''terms''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | |
| − | + | * Возвращаемый результат: | |
| − | + | ** '''Key''' – идентификатор типа тура | |
| − | + | ** '''Name''' – название типа тура | |
| − | + | ** '''ParentId''' – идентификатор группы, к которой относится данный тип тура (если тип тура не относится к группе, то возвращается ''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> | |
| − | + | Вызов метода ActualizeTourType | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | GET http://localhost:9000/TourSearchOwin/ActualizeTourType?departureCityKeys=1&Key=90&Type=1&destinationCity=-1 | |
| − | ** ''' | + | </syntaxhighlight> |
| − | * | + | Возвращаемый результат метода ActualizeTourType (в формате JSON) |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | [ | |
| − | + | { | |
| − | + | "Key": -1, | |
| − | + | "Name": "Все", | |
| − | + | "ParentId": null | |
| − | + | }, | |
| − | + | { | |
| − | + | "Key": 2, | |
| − | + | "Name": "Стандартный тур", | |
| − | + | "ParentId": null | |
| − | + | }, | |
| − | ** ''' | + | { |
| − | * | + | "Key": 16, |
| − | ** ''' | + | "Name": "Экскурсионный тур", |
| − | ** ''' | + | "ParentId": 35 |
| − | ** ''' | + | } |
| − | + | ] | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | ===Выгрузка актуальных дат заездов (TourDate)=== | |
| − | + | Метод производит выгрузку доступных дат заездов для поискового запроса. | |
| − | + | * Формат запроса: | |
| − | + | ** GET .../TourSearchOwin/TourDate? | |
| − | + | * Принимаемые параметры ( '''*''' – обязательный): | |
| − | + | ** '''departureCity *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | |
| − | + | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | |
| − | + | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | |
| − | + | ** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) | |
| − | + | ** '''tourTypes *''' – идентификатор типа тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | |
| − | + | * Возвращаемый результат: | |
| − | + | ** массив дат | |
| − | + | ||
| − | + | <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> | |
| − | + | Вызов метода TourDate | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | GET http://localhost:9000/TourSearchOwin/TourDate?departureCity=1&destinationCity=-1&Key=90&Type=1&tourTypes=-1 | |
| − | + | </syntaxhighlight> | |
| − | + | Возвращаемый результат метода TourDate (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | [ | |
| − | + | "21.02.2018", | |
| − | + | "22.02.2018", | |
| − | + | "23.02.2018", | |
| − | + | "24.02.2018", | |
| + | "25.02.2018", | ||
| + | "26.02.2018", | ||
| + | "27.02.2018", | ||
| + | "28.02.2018" | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR>< | ||
}, | }, | ||
| − | " | + | "ArrivalCity": { |
| − | "Key": | + | "Key": 35, |
| − | "Value": | + | "Value": "Вена" |
}, | }, | ||
| − | " | + | "ArrivalCountry": { |
| − | |||
| − | |||
| − | |||
"Key": 90, | "Key": 90, | ||
"Value": "Австрия" | "Value": "Австрия" | ||
}, | }, | ||
| − | " | + | "DepartureAirport": { |
| − | " | + | "Key": "SVO4", |
| − | " | + | "Value": "Шереметьево-24" |
| − | + | }, | |
| − | + | "ArrivalAirport": { | |
| − | }, | + | "Key": "VIE1", |
| − | " | + | "Value": "Vena1" |
| − | "Key": | + | }, |
| − | " | + | "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, | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | "Cost": | ||
"QuotaStatus": { | "QuotaStatus": { | ||
"PlacesStatus": 4, | "PlacesStatus": 4, | ||
| Строка 1053: | Строка 1384: | ||
"IsFewPlaces": false | "IsFewPlaces": false | ||
}, | }, | ||
| − | "PartnerId": | + | "PartnerId": 12668, |
| − | "ByPax": | + | "ByPax": true, |
"Partner": { | "Partner": { | ||
| − | "Key": | + | "Key": 0, |
| − | "Value": | + | "Value": null |
} | } | ||
}], | }], | ||
| − | " | + | "FlightSetting": { |
| − | " | + | "ServiceId": 3, |
| − | " | + | "PatternId": 13, |
| − | } | + | "FlightId": 13 |
| − | "Id": | + | }, |
| − | "SvKey": | + | "FlightSourceMode": 1, |
| + | "Id": 3, | ||
| + | "SvKey": 1, | ||
"IsSubCode1": true, | "IsSubCode1": true, | ||
| − | "IsSubCode2": | + | "IsSubCode2": false, |
"IsPartnerBasedOn": false, | "IsPartnerBasedOn": false, | ||
"Day": 1, | "Day": 1, | ||
| − | "DurationInNight": | + | "DurationInNight": 0, |
| − | "BeginDateTime": "2018-02- | + | "BeginDateTime": "2018-02-25T10:00:00", |
| − | |||
"IsHooded": false, | "IsHooded": false, | ||
"IsDeleted": false, | "IsDeleted": false, | ||
"IsNotCalculate": false, | "IsNotCalculate": false, | ||
"PacketId": 779, | "PacketId": 779, | ||
| − | "Index": | + | "Index": 0 |
}, | }, | ||
{ | { | ||
| − | " | + | "Hotel": { |
| + | "Key": 709, | ||
| + | "Value": "Am Brilliantengrund" | ||
| + | }, | ||
| + | "City": { | ||
"Key": 35, | "Key": 35, | ||
"Value": "Вена" | "Value": "Вена" | ||
}, | }, | ||
| − | " | + | "Stars": { |
| + | "Key": -1, | ||
| + | "Value": null | ||
| + | }, | ||
| + | "Resort": { | ||
| + | "Key": -1, | ||
| + | "Value": null | ||
| + | }, | ||
| + | "ImageURL": "", | ||
| + | "Http": null, | ||
| + | "Description": "", | ||
| + | "Country": { | ||
"Key": 90, | "Key": 90, | ||
"Value": "Австрия" | "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": "Завтрак" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | "Key": | ||
| − | " | ||
| − | |||
}, | }, | ||
| − | "Cost": | + | "AbsolutePenalties": null, |
| + | "Cost": 19.47, | ||
"QuotaStatus": { | "QuotaStatus": { | ||
"PlacesStatus": 4, | "PlacesStatus": 4, | ||
| Строка 1131: | Строка 1462: | ||
"IsFewPlaces": false | "IsFewPlaces": false | ||
}, | }, | ||
| − | "PartnerId": | + | "PartnerId": 12667, |
| − | "ByPax": | + | "ByPax": false, |
"Partner": { | "Partner": { | ||
| − | "Key": | + | "Key": 12667, |
| − | "Value": | + | "Value": "Партнер-покупатель1" |
} | } | ||
}], | }], | ||
| − | " | + | "HotelTypes": [ { |
| − | " | + | "Key": 5, |
| − | " | + | "Value": "Рекомендуемые" |
| − | + | }], | |
| − | }, | + | "Id": 1, |
| − | " | + | "SvKey": 3, |
| − | |||
| − | "SvKey": | ||
"IsSubCode1": true, | "IsSubCode1": true, | ||
| − | "IsSubCode2": | + | "IsSubCode2": true, |
"IsPartnerBasedOn": false, | "IsPartnerBasedOn": false, | ||
| − | "Day": | + | "Day": 1, |
| − | "DurationInNight": | + | "DurationInNight": 3, |
| − | "BeginDateTime": "2018-02- | + | "BeginDateTime": "2018-02-25T12:00:00", |
| + | "EndDateTime": "2018-02-28T12:00:00", | ||
"IsHooded": false, | "IsHooded": false, | ||
"IsDeleted": false, | "IsDeleted": false, | ||
"IsNotCalculate": false, | "IsNotCalculate": false, | ||
"PacketId": 779, | "PacketId": 779, | ||
| − | "Index": | + | "Index": 1 |
| − | } | + | }, |
| − | + | { | |
| − | + | "DepartureCity": { | |
| − | + | "Key": 35, | |
| − | + | "Value": "Вена" | |
| − | " | + | }, |
| − | + | "DepartureCountry": { | |
| − | " | + | "Key": 90, |
| − | "Key": | + | "Value": "Австрия" |
| − | "Value": " | + | }, |
| + | "ArrivalCity": { | ||
| + | "Key": 1, | ||
| + | "Value": "Москва" | ||
}, | }, | ||
| − | " | + | "ArrivalCountry": { |
| − | " | + | "Key": 460, |
| − | " | + | "Value": "Россия" |
| − | + | }, | |
| − | + | "DepartureAirport": { | |
| − | }, | + | "Key": "VIE1", |
| − | " | + | "Value": "Vena1" |
| − | + | }, | |
| − | + | "ArrivalAirport": { | |
| − | + | "Key": "DME", | |
| − | " | + | "Value": "Домодедово" |
| − | + | }, | |
| − | "Cost": | + | "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": { | "QuotaStatus": { | ||
| − | "PlacesStatus": | + | "PlacesStatus": 4, |
"FreePlaces": 0, | "FreePlaces": 0, | ||
"IsFewPlaces": false | "IsFewPlaces": false | ||
}, | }, | ||
| − | "PartnerId": | + | "PartnerId": 10760, |
"ByPax": true, | "ByPax": true, | ||
"Partner": { | "Partner": { | ||
| Строка 1193: | Строка 1547: | ||
} | } | ||
}], | }], | ||
| − | " | + | "FlightSetting": { |
| − | " | + | "ServiceId": 4, |
| − | "Id": | + | "PatternId": 5, |
| − | "SvKey": | + | "FlightId": 4 |
| + | }, | ||
| + | "FlightSourceMode": 1, | ||
| + | "Id": 4, | ||
| + | "SvKey": 1, | ||
"IsSubCode1": true, | "IsSubCode1": true, | ||
| − | "IsSubCode2": | + | "IsSubCode2": false, |
"IsPartnerBasedOn": false, | "IsPartnerBasedOn": false, | ||
| − | "Day": | + | "Day": 4, |
| − | "DurationInNight": | + | "DurationInNight": 0, |
| − | "BeginDateTime | + | "BeginDateTime": "2018-02-28T00:00:00", |
| − | |||
"IsHooded": false, | "IsHooded": false, | ||
| − | "IsDeleted": | + | "IsDeleted": false, |
| − | "IsNotCalculate": | + | "IsNotCalculate": false, |
| − | "PacketId": | + | "PacketId": 779, |
| − | "Index": | + | "Index": 4 |
| − | }], | + | } |
| + | ], | ||
| + | "NotRouteServices": [ | ||
[ { | [ { | ||
| − | "ServiceName": " | + | "ServiceName": "страховка", |
| − | "City": { | + | "City": null, |
| − | "Key": | + | "Country": { |
| − | "Value": " | + | "Key": 90, |
| + | "Value": "Австрия" | ||
}, | }, | ||
| − | |||
"Code": { | "Code": { | ||
| − | "Key": | + | "Key": 297, |
| − | "Value": " | + | "Value": "Страховка от несчастного случая" |
}, | }, | ||
"ByScheduler": false, | "ByScheduler": false, | ||
"Details": [ { | "Details": [ { | ||
"SubCode1": { | "SubCode1": { | ||
| − | "Key": | + | "Key": 18, |
| − | "Value": " | + | "Value": "2" |
}, | }, | ||
"SubCode2": { | "SubCode2": { | ||
| Строка 1232: | Строка 1591: | ||
}, | }, | ||
"Date": null, | "Date": null, | ||
| − | "IsShowTransportPlan": | + | "IsShowTransportPlan": true, |
| − | "Cost": | + | "Cost": 16, |
"QuotaStatus": { | "QuotaStatus": { | ||
"PlacesStatus": 1, | "PlacesStatus": 1, | ||
| Строка 1239: | Строка 1598: | ||
"IsFewPlaces": false | "IsFewPlaces": false | ||
}, | }, | ||
| − | "PartnerId": | + | "PartnerId": 12668, |
"ByPax": true, | "ByPax": true, | ||
"Partner": { | "Partner": { | ||
| Строка 1248: | Строка 1607: | ||
"ParentId": null, | "ParentId": null, | ||
"PartnerBasedOnServiceTemplateId": null, | "PartnerBasedOnServiceTemplateId": null, | ||
| − | "Id": | + | "Id": 10, |
| − | "SvKey": | + | "SvKey": 6, |
"IsSubCode1": true, | "IsSubCode1": true, | ||
| − | "IsSubCode2": | + | "IsSubCode2": true, |
| − | "IsPartnerBasedOn": | + | "IsPartnerBasedOn": false, |
"Day": 1, | "Day": 1, | ||
| − | "DurationInNight": | + | "DurationInNight": 3, |
"BeginDateTime": "2018-02-25T00:00:00", | "BeginDateTime": "2018-02-25T00:00:00", | ||
| − | "EndDateTime": "2018-02- | + | "EndDateTime": "2018-02-28T00:00:00", |
"IsHooded": false, | "IsHooded": false, | ||
"IsDeleted": true, | "IsDeleted": true, | ||
"IsNotCalculate": true, | "IsNotCalculate": true, | ||
| − | "PacketId": | + | "PacketId": 882, |
| − | "Index": | + | "Index": 2 |
| − | }] | + | }], |
| − | + | [ { | |
| − | + | "ServiceName": "экскурсия", | |
| − | + | "City": { | |
| − | + | "Key": 1046, | |
| − | " | + | "Value": "Санто-Доминго" |
| − | " | + | }, |
| − | " | + | "Country": { |
| + | "Key": 90, | ||
| + | "Value": "Австрия" | ||
}, | }, | ||
| − | " | + | "Code": { |
| − | + | "Key": 743, | |
| − | + | "Value": "4" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
}, | }, | ||
| − | " | + | "ByScheduler": false, |
| − | " | + | "Details": [ { |
| − | " | + | "SubCode1": { |
| − | " | + | "Key": 37, |
| − | " | + | "Value": "Мини-автобус 10 чел." |
| − | " | + | }, |
| − | "PartnerId": 12667, | + | "SubCode2": { |
| − | " | + | "Key": null, |
| − | " | + | "Value": "" |
| − | "Day": 1, | + | }, |
| − | + | "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": { | "Key": { | ||
| − | "TemplateId": 4, | + | "TemplateId": 3, |
| − | "PatternId": 5, | + | "PatternId": 13, |
| − | "SettingId": 4 | + | "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": { | "Value": { | ||
| Строка 1351: | Строка 1766: | ||
} | } | ||
}, | }, | ||
| − | "RouteSubVariants": [] | + | "RouteSubVariants": [], |
| + | "Routes": 1, | ||
| + | "IsRemoteHotels": false, | ||
| + | "IsTourImages": false, | ||
| + | "MaskKeys": null | ||
} | } | ||
], | ], | ||
| Строка 1419: | Строка 1838: | ||
} | } | ||
}, | }, | ||
| − | |||
"Type": "TourProgram" | "Type": "TourProgram" | ||
} | } | ||
| Строка 1870: | Строка 2288: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка транспортного плана (TransportPlan)=== | + | * Детализация параметра 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 включительно=== | ||
Метод производит выгрузку транспортного плана. | Метод производит выгрузку транспортного плана. | ||
* Формат запроса: | * Формат запроса: | ||
| Строка 1958: | Строка 2393: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка | + | ===Выгрузка транспортного плана (TransportPlan) начиная с релиза 15.8=== |
| − | Метод | + | Метод производит выгрузку транспортного плана. |
* Формат запроса: | * Формат запроса: | ||
| − | ** GET .../TourSearchOwin/ | + | ** GET .../TourSearchOwin/TransportPlan? |
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
| − | ** ''' | + | ** '''code''' – код услуги |
| − | + | ** '''dateBegin''' – дата услуги | |
| − | + | ** '''serviceType''' – тип услуги | |
| − | + | ** '''transportKey''' – ключ справочника транспорт | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | ** ''' | ||
| − | ** ''' | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | ** ''' | ||
| − | |||
| − | |||
| − | |||
| − | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | + | ** '''VehiclePlans''' – массив параметров зон плана | |
| − | + | *** '''Key''' – ключ зоны | |
| − | + | *** '''TransportKey''' – ключ из справочника транспорт | |
| − | + | *** '''Row''' – количество рядов | |
| − | + | *** '''AreaNumber''' – номер уровня | |
| − | + | *** '''Name''' – название уровня | |
| − | + | *** '''PlanOrientation''' – ориентация плана (''false'' - горизонтальная, ''true'' - вертикальная) | |
| − | + | *** '''Column''' – количество столбцов | |
| − | + | *** '''IsAirCraft''' – является ли планом самолета (''false'' - нет, ''true'' - является) | |
| − | + | *** '''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> | ||
| + | Вызов метода TransportPlan | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/TransportPlan?code=1776&dateBegin=28.03.2022&serviceType=14&transportKey=35 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода TransportPlan (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "VehiclePlans": | ||
| + | [ | ||
| + | { | ||
| + | "Key": 291, | ||
| + | "TransportKey": 35, | ||
| + | "Row": 2, | ||
| + | "AreaNumber": 1, | ||
| + | "Name": "Зона 1", | ||
| + | "PlanOrientation": false, | ||
| + | "Column": 3, | ||
| + | "IsAirCraft": false, | ||
| + | "Type": "VehiclePlans" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 292, | ||
| + | "TransportKey": 35, | ||
| + | "Row": 3, | ||
| + | "AreaNumber": 2, | ||
| + | "Name": "Зона 2", | ||
| + | "PlanOrientation": true, | ||
| + | "Column": 2, | ||
| + | "IsAirCraft": false, | ||
| + | "Type | ||
{ | { | ||
| − | " | + | "DepartureCity": { |
| − | "Key": | + | "Key": 1, |
| − | "Value": " | + | "Value": "Москва" |
| + | }, | ||
| + | "DepartureCountry": { | ||
| + | "Key": 460, | ||
| + | "Value": "Россия" | ||
}, | }, | ||
| − | " | + | "ArrivalCity": { |
"Key": 35, | "Key": 35, | ||
"Value": "Вена" | "Value": "Вена" | ||
}, | }, | ||
| − | " | + | "ArrivalCountry": { |
| − | "Key": | + | "Key": 90, |
| − | "Value": " | + | "Value": "Австрия" |
}, | }, | ||
| − | " | + | "DepartureAirport": { |
| − | "Key": | + | "Key": "DME", |
| − | "Value": | + | "Value": "Домодедово" |
| + | }, | ||
| + | "ArrivalAirport": { | ||
| + | "Key": "VIE1", | ||
| + | "Value": "Vena1" | ||
| + | }, | ||
| + | "Airline": { | ||
| + | "Key": "3G", | ||
| + | "Value": "Атлант Союз_d;kgmdlfkgnfdlkhndlfkhnlkfnh" | ||
| + | }, | ||
| + | "Aircraft": { | ||
| + | "Key": "319", | ||
| + | "Value": "AIRBUS " | ||
}, | }, | ||
| − | " | + | "Flight": { |
| − | + | "Key": 858, | |
| − | + | "Value": "1111" | |
| − | |||
| − | "Key": | ||
| − | "Value": " | ||
}, | }, | ||
| − | " | + | "DepartureTime": "10:00:00", |
| − | + | "ArrivalTime": "11:59:00", | |
| − | + | "EndDateTime": "2018-03-31T11:59:00", | |
| − | + | "FlightDetails": [ { | |
| − | + | "Tariff": { | |
| − | + | "Key": 67, | |
| − | + | "Code": "C", | |
| − | + | "Name": "Бизнес класс" | |
| − | + | }, | |
| − | + | "Cost": 6.45, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
}, | }, | ||
| − | + | "PartnerId": 10760, | |
| − | + | "ByPax": true, | |
| − | + | "Partner": { | |
| − | + | "Key": 0, | |
| − | + | "Value": null | |
| − | + | } | |
| − | + | }], | |
| − | + | "FlightSetting": { | |
| − | + | "ServiceId": 3, | |
| − | + | "PatternId": 14, | |
| − | + | "FlightId": 14 | |
| − | + | }, | |
| − | + | "FlightSourceMode": 1, | |
| − | + | "Id": 3, | |
| − | + | "SvKey": 1, | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | "Id": | ||
| − | "SvKey": | ||
"IsSubCode1": true, | "IsSubCode1": true, | ||
| − | "IsSubCode2": | + | "IsSubCode2": false, |
"IsPartnerBasedOn": false, | "IsPartnerBasedOn": false, | ||
"Day": 1, | "Day": 1, | ||
| − | "DurationInNight": | + | "DurationInNight": 0, |
| − | "BeginDateTime": "2018-03- | + | "BeginDateTime": "2018-03-31T10:00:00", |
| − | |||
"IsHooded": false, | "IsHooded": false, | ||
"IsDeleted": false, | "IsDeleted": false, | ||
"IsNotCalculate": false, | "IsNotCalculate": false, | ||
"PacketId": 779, | "PacketId": 779, | ||
| − | "Index": | + | "Index": 0 |
}, | }, | ||
{ | { | ||
| − | " | + | "Hotel": { |
| + | "Key": 707, | ||
| + | "Value": "Beim Theresianum" | ||
| + | }, | ||
| + | "City": { | ||
"Key": 35, | "Key": 35, | ||
"Value": "Вена" | "Value": "Вена" | ||
}, | }, | ||
| − | " | + | "Stars": { |
| + | "Key": 66, | ||
| + | "Value": "4*Boutique" | ||
| + | }, | ||
| + | "Resort": { | ||
| + | "Key": -1, | ||
| + | "Value": null | ||
| + | }, | ||
| + | "ImageURL": "", | ||
| + | "Http": null, | ||
| + | "Description": "", | ||
| + | "Country": { | ||
"Key": 90, | "Key": 90, | ||
"Value": "Австрия" | "Value": "Австрия" | ||
}, | }, | ||
| − | " | + | "HotelDetails": [ |
| − | + | { | |
| − | + | "HotelRoom": 10468, | |
| − | + | "Room": { | |
| − | + | "Key": 2, | |
| − | + | "Value": "Double" | |
| − | + | }, | |
| − | + | "RoomCategory": { | |
| − | + | "Key": 776, | |
| − | + | "Value": "Standart133" | |
| − | + | }, | |
| − | + | "AccomodationType": { | |
| − | + | "Key": 328, | |
| − | + | "Value": "2Ad", | |
| − | + | "AdultCount": 2, | |
| − | + | "ChildCount": 0 | |
| − | + | }, | |
| − | + | "Pansion": { | |
| − | + | "Key": 4, | |
| − | + | "Value": "Завтрак" | |
| − | + | }, | |
| − | + | "Cost": 112.96, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "PartnerId": 12667, | |
| − | + | "ByPax": false, | |
| − | + | "Partner": { | |
| − | + | "Key": 12667, | |
| − | + | "Value": "Партнер-покупатель1" | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
}, | }, | ||
| − | + | { | |
| − | + | "HotelRoom": 38636, | |
| − | + | "Room": { | |
| − | + | "Key": 2, | |
| − | + | "Value": "Double" | |
| − | + | }, | |
| − | + | "RoomCategory": { | |
| − | + | "Key": 3764, | |
| − | + | "Value": "Standart Without window" | |
| − | + | }, | |
| − | + | "AccomodationType": { | |
| + | "Key": 328, | ||
| + | "Value": "2Ad", | ||
| + | "AdultCount": 2, | ||
| + | "ChildCount": 0 | ||
| + | }, | ||
| + | "Pansion": { | ||
| + | "Key": 4, | ||
| + | "Value": "Завтрак" | ||
| + | }, | ||
| + | "Cost": 338.9, | ||
| + | "QuotaStatus": { | ||
| + | "PlacesStatus": 4, | ||
| + | "FreePlaces": 0, | ||
| + | "IsFewPlaces": false | ||
| + | }, | ||
| + | "PartnerId": 12667, | ||
| + | "ByPax": false, | ||
| + | "Partner": { | ||
| + | "Key": 12667, | ||
| + | "Value": "Партнер-покупатель1" | ||
| + | } | ||
} | } | ||
| − | + | ], | |
| − | " | + | "HotelTypes": [], |
| − | + | "Id": 1, | |
| − | + | "SvKey": 3, | |
| − | |||
| − | |||
| − | " | ||
| − | |||
| − | "SvKey": | ||
"IsSubCode1": true, | "IsSubCode1": true, | ||
| − | "IsSubCode2": | + | "IsSubCode2": true, |
"IsPartnerBasedOn": false, | "IsPartnerBasedOn": false, | ||
| − | "Day": | + | "Day": 1, |
| − | "DurationInNight": | + | "DurationInNight": 7, |
| − | "BeginDateTime": "2018-04- | + | "BeginDateTime": "2018-03-31T11:59:00", |
| + | "EndDateTime": "2018-04-07T11:59:00", | ||
"IsHooded": false, | "IsHooded": false, | ||
"IsDeleted": false, | "IsDeleted": false, | ||
"IsNotCalculate": false, | "IsNotCalculate": false, | ||
"PacketId": 779, | "PacketId": 779, | ||
| − | "Index": | + | "Index": 1 |
| − | } | + | }, |
| − | |||
| − | |||
{ | { | ||
| − | " | + | "DepartureCity": { |
| − | " | + | "Key": 35, |
| − | "Key": | + | "Value": "Вена" |
| − | "Value": " | + | }, |
| + | "DepartureCountry": { | ||
| + | "Key": 90, | ||
| + | "Value": "Австрия" | ||
}, | }, | ||
| − | " | + | "ArrivalCity": { |
| − | + | "Key": 1, | |
| − | "Key": | + | "Value": "Москва" |
| − | "Value": " | ||
}, | }, | ||
| − | " | + | "ArrivalCountry": { |
| − | " | + | "Key": 460, |
| − | " | + | "Value": "Россия" |
| − | "Key": | + | }, |
| − | " | + | "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-04-07T00:00:00", | ||
| + | "FlightDetails": [ { | ||
| + | "Tariff": { | ||
| + | "Key": 67, | ||
| + | "Code": "C", | ||
| + | "Name": "Бизнес класс" | ||
}, | }, | ||
| − | + | "Cost": 1.61, | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | "Cost": | ||
"QuotaStatus": { | "QuotaStatus": { | ||
| − | "PlacesStatus": | + | "PlacesStatus": 4, |
"FreePlaces": 0, | "FreePlaces": 0, | ||
"IsFewPlaces": false | "IsFewPlaces": false | ||
}, | }, | ||
| − | "PartnerId": | + | "PartnerId": 10760, |
"ByPax": true, | "ByPax": true, | ||
"Partner": { | "Partner": { | ||
| Строка 2529: | Строка 3312: | ||
} | } | ||
}], | }], | ||
| − | " | + | "FlightSetting": { |
| − | " | + | "ServiceId": 4, |
| − | "Id": | + | "PatternId": 5, |
| − | "SvKey": | + | "FlightId": 4 |
| − | "IsSubCode1": true, | + | }, |
| + | "FlightSourceMode": 1, | ||
| + | "Id": 4, | ||
| + | "SvKey": 1, | ||
| + | "IsSubCode1": true, | ||
"IsSubCode2": false, | "IsSubCode2": false, | ||
| − | "IsPartnerBasedOn": | + | "IsPartnerBasedOn": false, |
| − | "Day": | + | "Day": 8, |
"DurationInNight": 0, | "DurationInNight": 0, | ||
| − | "BeginDateTime | + | "BeginDateTime": "2018-04-07T00:00:00", |
| − | |||
"IsHooded": false, | "IsHooded": false, | ||
| − | "IsDeleted": | + | "IsDeleted": false, |
| − | "IsNotCalculate": | + | "IsNotCalculate": false, |
"PacketId": 779, | "PacketId": 779, | ||
| − | "Index": | + | "Index": 3 |
} | } | ||
| − | + | ], | |
| − | " | + | "NotRouteServices": [ [ |
{ | { | ||
| − | " | + | "ServiceName": "экскурсия", |
| − | " | + | "City": { |
| − | " | + | "Key": 1046, |
| − | + | "Value": "Санто-Доминго" | |
}, | }, | ||
| − | " | + | "Country": 6245, |
| − | + | "Code": { | |
| − | + | "Key": 743, | |
| − | + | "Value": "4" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | |||
}, | }, | ||
| − | " | + | "ByScheduler": false, |
| − | " | + | "Details": [ { |
| − | " | + | "SubCode1": { |
| − | " | + | "Key": 37, |
| − | " | + | "Value": "Мини-автобус 10 чел." |
| − | " | + | }, |
| + | "SubCode2": { | ||
| + | "Key": null, | ||
| + | "Value": "" | ||
| + | }, | ||
| + | "Date": null, | ||
| + | "IsShowTransportPlan": false, | ||
| + | "Cost": 56.48, | ||
| + | "QuotaStatus": { | ||
| + | "PlacesStatus": 1, | ||
| + | "FreePlaces": 0, | ||
| + | "IsFewPlaces": false | ||
| + | }, | ||
"PartnerId": 12667, | "PartnerId": 12667, | ||
| − | "CountryId": 90, | + | "ByPax": true, |
| − | "CityId": 35, | + | "Partner": { |
| − | "Day": 1, | + | "Key": 0, |
| − | "DurationInNight": 7 | + | "Value": null |
| − | } | + | } |
| − | }, | + | }], |
| + | "ParentId": null, | ||
| + | "PartnerBasedOnServiceTemplateId": null, | ||
| + | "Id": 7, | ||
| + | "SvKey": 4, | ||
| + | "IsSubCode1": true, | ||
| + | "IsSubCode2": false, | ||
| + | "IsPartnerBasedOn": true, | ||
| + | "Day": 1, | ||
| + | "DurationInNight": 0, | ||
| + | "BeginDateTime": "2018-03-31T00:00:00", | ||
| + | "EndDateTime": "2018-04-01T00:00:00", | ||
| + | "IsHooded": false, | ||
| + | "IsDeleted": true, | ||
| + | "IsNotCalculate": true, | ||
| + | "PacketId": 779, | ||
| + | "Index": 2 | ||
| + | } | ||
| + | ]], | ||
| + | "MinCostServicesComposition": [ | ||
| + | { | ||
| + | "Key": { | ||
| + | "TemplateId": 3, | ||
| + | "PatternId": 14, | ||
| + | "SettingId": 14 | ||
| + | }, | ||
| + | "Value": { | ||
| + | "ServiceType": 1, | ||
| + | "Code": 858, | ||
| + | "SubCode1": 67, | ||
| + | "SubCode2": 1, | ||
| + | "PacketId": 779, | ||
| + | "PartnerId": 10760, | ||
| + | "CountryId": 90, | ||
| + | "CityId": 35, | ||
| + | "Day": 1, | ||
| + | "DurationInNight": 0 | ||
| + | } | ||
| + | }, | ||
| + | { | ||
| + | "Key": { | ||
| + | "TemplateId": 1, | ||
| + | "PatternId": 0, | ||
| + | "SettingId": 0 | ||
| + | }, | ||
| + | "Value": { | ||
| + | "ServiceType": 3, | ||
| + | "Code": 707, | ||
| + | "SubCode1": 10468, | ||
| + | "SubCode2": 4, | ||
| + | "PacketId": 779, | ||
| + | "PartnerId": 12667, | ||
| + | "CountryId": 90, | ||
| + | "CityId": 35, | ||
| + | "Day": 1, | ||
| + | "DurationInNight": 7 | ||
| + | } | ||
| + | }, | ||
{ | { | ||
"Key": { | "Key": { | ||
| Строка 2649: | Строка 3490: | ||
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
** '''countryId *''' – ключ страны, для которой будут выгружаться настройки | ** '''countryId *''' – ключ страны, для которой будут выгружаться настройки | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
| + | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
** '''TouristFieldsSettings''' – массив полей с информацией о туристах (из админки Мастер-Web) | ** '''TouristFieldsSettings''' – массив полей с информацией о туристах (из админки Мастер-Web) | ||
*** '''lastname''' – объект фамилия туриста (лат) | *** '''lastname''' – объект фамилия туриста (лат) | ||
| + | **** '''Index''' – порядковый индекс элемента | ||
**** '''Code''' – код поля | **** '''Code''' – код поля | ||
| + | **** '''ApiCode''' – имя поля, которое будет использоваться при бронировании (например при вызове метода CreateReservation) | ||
**** '''HeaderText''' – название поля | **** '''HeaderText''' – название поля | ||
| − | **** ''' | + | **** '''IsEdit''' – признак редактируемости поля |
**** '''IsRequired''' – признак обязательности заполнения поля | **** '''IsRequired''' – признак обязательности заполнения поля | ||
| − | **** ''' | + | **** '''IsVisible''' – видимость поля (видимое) |
| + | **** '''IsDisabled''' – служебный внутренний параметр. При работе с API не используется | ||
**** '''Translit''' – настройки транслитерации (0 – нет, 1 – транслитерация, 2 – латиница) | **** '''Translit''' – настройки транслитерации (0 – нет, 1 – транслитерация, 2 – латиница) | ||
**** '''LetterCase''' – настройки регистра (0 – по умолчанию, 1 – с заглавной, 2 – большие, 3 – маленькие) | **** '''LetterCase''' – настройки регистра (0 – по умолчанию, 1 – с заглавной, 2 – большие, 3 – маленькие) | ||
| Строка 2685: | Строка 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">Пример | ||
| Строка 2696: | Строка 3543: | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | + | "TouristFieldsSettings": { | |
| − | + | "number": { | |
| − | + | "Index": 0, | |
| − | + | "Code": "number", | |
| − | + | "ApiCode": "Number", | |
| − | + | "HeaderText": "№", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "ismain": { | |
| − | + | "Index": 1, | |
| − | + | "Code": "ismain", | |
| − | + | "ApiCode": "IsMain", | |
| − | + | "HeaderText": "<img src=\"images/mw_main_tourist.gif\" border=\"0\" alt=\"Главный турист\" />", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": true, | |
| − | + | "IsVisible": true, | |
| − | + | "IsDisabled": true, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "sex": { | |
| − | + | "Index": 2, | |
| − | + | "Code": "sex", | |
| − | + | "ApiCode": "Sex", | |
| − | + | "HeaderText": "Пол<font color=\"red\">*</font>", | |
| − | + | "IsEdit": true, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": true, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "birthdate": { | |
| − | + | "Index": 3, | |
| − | + | "Code": "birthdate", | |
| − | + | "ApiCode": "BirthDay", | |
| − | + | "HeaderText": "Дата рождения<br />(dd.MM.yyyy)", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": true, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "birthplace": { | |
| − | + | "Index": 4, | |
| − | + | "Code": "birthplace", | |
| − | + | "ApiCode": "BirthPlace", | |
| − | + | "HeaderText": "Место рождения", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "citizenship": { | |
| − | + | "Index": 5, | |
| − | + | "Code": "citizenship", | |
| − | + | "ApiCode": "Citizenship", | |
| − | + | "HeaderText": "Гражданство", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": true, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "lastname": { | |
| − | + | "Index": 6, | |
| − | + | "Code": "lastname", | |
| − | + | "ApiCode": "LastName", | |
| − | + | "HeaderText": "Фамилия<font color=\"red\">*</font>", | |
| − | + | "IsEdit": true, | |
| − | + | "IsRequired": true, | |
| − | + | "IsVisible": true, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 1, | |
| − | + | "LetterCase": 2 | |
| − | + | }, | |
| − | + | "firstname": { | |
| − | + | "Index": 7, | |
| − | + | "Code": "firstname", | |
| − | + | "ApiCode": "FirstName", | |
| − | + | "HeaderText": "Имя<font color=\"red\">*</font>", | |
| − | + | "IsEdit": true, | |
| − | + | "IsRequired": true, | |
| − | + | "IsVisible": true, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 1, | |
| − | + | "LetterCase": 2 | |
| − | + | }, | |
| − | + | "patronymic": { | |
| − | + | "Index": 8, | |
| − | + | "Code": "patronymic", | |
| − | + | "ApiCode": "Patronymic", | |
| − | + | "HeaderText": "Отчество", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 1, | |
| − | + | "LetterCase": 2 | |
| − | + | }, | |
| − | + | "passport": { | |
| − | + | "Index": 9, | |
| − | + | "Code": "passport", | |
| − | + | "ApiCode": "InternationalPassportSeries/InternationalPassportNumber", | |
| − | + | "HeaderText": "Загран-паспорт: Паспорт<br />(серия/номер)", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": true, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 1, | |
| − | + | "LetterCase": 2 | |
| − | + | }, | |
| − | + | "passportdate": { | |
| − | + | "Index": 10, | |
| − | + | "Code": "passportdate", | |
| − | + | "ApiCode": "InternationalPassportDateOfIssue", | |
| − | + | "HeaderText": "Загран-паспорт: дата выдачи", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "passportdateend": { | |
| − | + | "Index": 11, | |
| − | + | "Code": "passportdateend", | |
| − | + | "ApiCode": "InternationalPassportDateOfExpiry", | |
| − | + | "HeaderText": "Действителен до<br />(dd.MM.yyyy)", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": true, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "passportbywhom": { | |
| − | + | "Index": 12, | |
| − | + | "Code": "passportbywhom", | |
| − | + | "ApiCode": "internationalPassportByWhom", | |
| − | + | "HeaderText": "Кем выдан", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "lastnamerus": { | |
| − | + | "Index": 13, | |
| − | + | "Code": "lastnamerus", | |
| − | + | "ApiCode": "LastNameRus", | |
| − | + | "HeaderText": "Нац. паспорт: Фамилия", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 2 | |
| − | + | }, | |
| − | + | "firstnamerus": { | |
| − | + | "Index": 14, | |
| − | + | "Code": "firstnamerus", | |
| − | + | "ApiCode": "FirstNameRus", | |
| − | + | "HeaderText": "Нац. паспорт: Имя", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 2 | |
| − | + | }, | |
| − | + | "patronymicrus": { | |
| − | + | "Index": 15, | |
| − | + | "Code": "patronymicrus", | |
| − | + | "ApiCode": "PatronymicRus", | |
| − | + | "HeaderText": "Нац. Отчество", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 2 | |
| − | + | }, | |
| − | + | "passportrus": { | |
| − | + | "Index": 16, | |
| − | + | "Code": "passportrus", | |
| − | + | "ApiCode": "PassportSeries/PassportNumber", | |
| − | + | "HeaderText": "серия/номер", | |
| − | + | "IsEdit": false, | |
| − | + | "IsRequired": false, | |
| − | + | "IsVisible": false, | |
| − | + | "IsDisabled": false, | |
| − | + | "Translit": 0, | |
| − | + | "LetterCase": 0 | |
| − | + | }, | |
| − | + | "passportdaterus": { | |
| + | "Index": 17, | ||
| + | "Code": "passportdaterus", | ||
| + | "ApiCode": "PassportDateOfIssue", | ||
| + | "HeaderText": "Нац. паспорт:дата выдачи", | ||
| + | "IsEdit": false, | ||
| + | "IsRequired": false, | ||
| + | "IsVisible": false, | ||
| + | "IsDisabled": false, | ||
| + | "Translit": 0, | ||
| + | "LetterCase": 0 | ||
| + | }, | ||
| + | "passportbywhomrus": { | ||
| + | "Index": 18, | ||
| + | "Code": "passportbywhomrus", | ||
| + | "ApiCode": "PassportByWhom", | ||
| + | "HeaderText": "Паспорт: кем выдан", | ||
| + | "IsEdit": false, | ||
| + | "IsRequired": false, | ||
| + | "IsVisible": false, | ||
| + | "IsDisabled": false, | ||
| + | "Translit": 0, | ||
| + | "LetterCase": 0 | ||
| + | }, | ||
| + | "phone": { | ||
| + | "Index": 19, | ||
| + | "Code": "phone", | ||
| + | "ApiCode": "Phone", | ||
| + | "HeaderText": "Телефон", | ||
| + | "IsEdit": false, | ||
| + | "IsRequired": false, | ||
| + | "IsVisible": true, | ||
| + | "IsDisabled": false, | ||
| + | "Translit": 0, | ||
| + | "LetterCase": 0 | ||
| + | }, | ||
| + | "email": { | ||
| + | "Index": 20, | ||
| + | "Code": "email", | ||
| + | "ApiCode": "Email", | ||
| + | "HeaderText": "Email", | ||
| + | "IsEdit": false, | ||
| + | "IsRequired": false, | ||
| + | "IsVisible": true, | ||
| + | "IsDisabled": false, | ||
| + | "Translit": 0, | ||
| + | "LetterCase": 0 | ||
| + | }, | ||
| + | "citizenid": { | ||
| + | "Index": 21, | ||
| + | "Code": "citizenid", | ||
| + | "ApiCode": "CitizenID", | ||
| + | "HeaderText": "ID туриста1", | ||
| + | "IsEdit": false, | ||
| + | "IsRequired": false, | ||
| + | "IsVisible": false, | ||
| + | "IsDisabled": false, | ||
| + | "Translit": 2, | ||
| + | "LetterCase": 2 | ||
| + | } | ||
| + | }, | ||
| + | "PassportDurationOfExpiry": { | ||
| + | "StartPoint": 0, | ||
| + | "Duration": 0 | ||
| + | }, | ||
| + | "ChildAgeSetting": 16, | ||
| + | "InfantAgeSetting": 24 | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 2910: | Строка 3823: | ||
Метод производит выгрузку услуг доплат к авиаперелетам. | Метод производит выгрузку услуг доплат к авиаперелетам. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** POST .../TourSearchOwin/GetFlightsAdditionalServices? | + | ** POST .../TourSearchOwin/GetFlightsAdditionalServices?nodeId=2147483647 |
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| Строка 2943: | Строка 3857: | ||
**** '''ByPax''' – цена за человека | **** '''ByPax''' – цена за человека | ||
**** '''QuotaStatus''' – объект статус квотирования | **** '''QuotaStatus''' – объект статус квотирования | ||
| − | ***** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 2963: | Строка 3877: | ||
*** '''InternationalPassportSeries''' – серия загранпаспорта | *** '''InternationalPassportSeries''' – серия загранпаспорта | ||
*** '''InternationalPassportNumber''' – номер загранпаспорта | *** '''InternationalPassportNumber''' – номер загранпаспорта | ||
| − | *** '''InternationalPassportDateOfIssue''' – дата выдачи загранпаспорта | + | *** '''InternationalPassportDateOfIssue''' – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''InternationalPassportDateOfIssueString''' – дата выдачи загранпаспорта в | + | *** '''InternationalPassportDateOfIssueString''' – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY) |
| − | *** '''InternationalPassportDateOfExpiry''' – дата окончания действия загранпаспорта | + | *** '''InternationalPassportDateOfExpiry''' – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''InternationalPassportDateOfExpiryString''' – дата окончания действия загранпаспорта в | + | *** '''InternationalPassportDateOfExpiryString''' – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY) |
*** '''internationalPassportByWhom''' – кем выдан загранпаспорт | *** '''internationalPassportByWhom''' – кем выдан загранпаспорт | ||
*** '''PassportSeries''' – серия паспорта | *** '''PassportSeries''' – серия паспорта | ||
*** '''PassportNumber''' – номер паспорта | *** '''PassportNumber''' – номер паспорта | ||
| − | *** '''PassportDateOfIssue''' – дата выдачи паспорта | + | *** '''PassportDateOfIssue''' – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''PassportDateOfIssueString''' – дата выдачи паспорта в | + | *** '''PassportDateOfIssueString''' – дата выдачи паспорта в строковом формате (DD.MM.YYYY) |
*** '''PassportByWhom''' – кем выдан паспорт | *** '''PassportByWhom''' – кем выдан паспорт | ||
*** '''Citizenship''' – название страны | *** '''Citizenship''' – название страны | ||
| Строка 2986: | Строка 3900: | ||
*** '''ServiceName''' – название услуги | *** '''ServiceName''' – название услуги | ||
*** '''City''' – объект город | *** '''City''' – объект город | ||
| − | *** '''Country''' – ключ страны | + | *** '''Country''' – объект страна |
| + | **** '''Key''' – ключ страны | ||
| + | **** '''Value''' – название страны | ||
*** '''Code''' – объект код услуги | *** '''Code''' – объект код услуги | ||
**** '''Key''' – ключ услуги | **** '''Key''' – ключ услуги | ||
| Строка 3002: | Строка 3918: | ||
**** '''Cost''' – цена | **** '''Cost''' – цена | ||
**** '''QuotaStatus''' – объект статус квотирования | **** '''QuotaStatus''' – объект статус квотирования | ||
| − | ***** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 3035: | Строка 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 | ||
{ | { | ||
| Строка 3176: | Строка 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, | ||
| Строка 3238: | Строка 4157: | ||
Метод производит выгрузку услуг доплат к отелям. | Метод производит выгрузку услуг доплат к отелям. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** POST .../TourSearchOwin/GetHotelsAdditionalServices? | + | ** POST .../TourSearchOwin/GetHotelsAdditionalServices?nodeId=2147483647 |
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| Строка 3265: | Строка 4185: | ||
**** '''IsHooded''' – признак скрытая услуга | **** '''IsHooded''' – признак скрытая услуга | ||
**** '''IsNotCalculated''' – признак не рассчитываемая услуга | **** '''IsNotCalculated''' – признак не рассчитываемая услуга | ||
| − | **** '''BeginDateTimeString''' – дата и время начала услуги | + | **** '''BeginDateTimeString''' – дата и время начала услуги (YYYY-MM-DDThh:mm:ss) |
| − | **** '''EndDateTimeString''' – дата и время окончания услуги | + | **** '''EndDateTimeString''' – дата и время окончания услуги (YYYY-MM-DDThh:mm:ss) |
**** '''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''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 3292: | Строка 4212: | ||
*** '''InternationalPassportSeries''' – серия загранпаспорта | *** '''InternationalPassportSeries''' – серия загранпаспорта | ||
*** '''InternationalPassportNumber''' – номер загранпаспорта | *** '''InternationalPassportNumber''' – номер загранпаспорта | ||
| − | *** '''InternationalPassportDateOfIssue''' – дата выдачи загранпаспорта | + | *** '''InternationalPassportDateOfIssue''' – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''InternationalPassportDateOfIssueString''' – дата выдачи загранпаспорта в | + | *** '''InternationalPassportDateOfIssueString''' – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY) |
| − | *** '''InternationalPassportDateOfExpiry''' – дата окончания действия загранпаспорта | + | *** '''InternationalPassportDateOfExpiry''' – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''InternationalPassportDateOfExpiryString''' – дата окончания действия загранпаспорта в | + | *** '''InternationalPassportDateOfExpiryString''' – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY) |
*** '''internationalPassportByWhom''' – кем выдан загранпаспорт | *** '''internationalPassportByWhom''' – кем выдан загранпаспорт | ||
*** '''PassportSeries''' – серия паспорта | *** '''PassportSeries''' – серия паспорта | ||
*** '''PassportNumber''' – номер паспорта | *** '''PassportNumber''' – номер паспорта | ||
| − | *** '''PassportDateOfIssue''' – дата выдачи паспорта | + | *** '''PassportDateOfIssue''' – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''PassportDateOfIssueString''' – дата выдачи паспорта в строке | + | *** '''PassportDateOfIssueString''' – дата выдачи паспорта в строке (DD.MM.YYYY) |
*** '''PassportByWhom''' – кем выдан паспорт | *** '''PassportByWhom''' – кем выдан паспорт | ||
*** '''Citizenship''' – название страны | *** '''Citizenship''' – название страны | ||
*** '''Phone''' – телефон | *** '''Phone''' – телефон | ||
*** '''Email''' – e-mail | *** '''Email''' – e-mail | ||
| − | *** '''BirthDay''' – дата рождения | + | *** '''BirthDay''' – дата рождения (YYYY-MM-DDThh:mm:ssz) |
| − | *** '''BirthDayString''' – дата рождения в строковом формате | + | *** '''BirthDayString''' – дата рождения в строковом формате (DD.MM.YYYY) |
*** '''BirthPlace''' – место рождения | *** '''BirthPlace''' – место рождения | ||
*** '''CitizenID''' – гражданство | *** '''CitizenID''' – гражданство | ||
| Строка 3353: | Строка 4273: | ||
**** '''Cost''' – цена | **** '''Cost''' – цена | ||
**** '''QuotaStatus''' – объект статус квотирования | **** '''QuotaStatus''' – объект статус квотирования | ||
| − | ***** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | + | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) |
***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| Строка 3386: | Строка 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 | ||
| Строка 3522: | Строка 4442: | ||
"ServiceName": "Доплаты к отелям", | "ServiceName": "Доплаты к отелям", | ||
"City": null, | "City": null, | ||
| − | + | "Country": { | |
| + | "Key": 90, | ||
| + | "Value": "Австрия" | ||
| + | }, | ||
"Code": { | "Code": { | ||
"Key": 364, | "Key": 364, | ||
| Строка 3580: | Строка 4503: | ||
Метод производит расчет услуг с индивидуальным выбором у туристов. | Метод производит расчет услуг с индивидуальным выбором у туристов. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** POST .../TourSearchOwin/CalculateIndividualServiceCosts? | + | ** POST .../TourSearchOwin/CalculateIndividualServiceCosts?nodeId=2147483647 |
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| Строка 3642: | Строка 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">Пример | ||
| Строка 3648: | Строка 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 | ||
| Строка 3719: | Строка 4644: | ||
</div></div><br /> | </div></div><br /> | ||
| − | === | + | ===Поиск рейсов из внешней системы (GetGDSFlights)=== |
| − | Метод производит | + | Метод производит поиск рейсов из внешней системы. |
* Формат запроса: | * Формат запроса: | ||
| − | ** | + | ** POST .../TourSearchOwin/GetGDSFlights? |
| − | * Принимаемые параметры | + | |
| − | ** ''' | + | * Принимаемые параметры headers ( '''*''' – обязательный): |
| − | ** ''' | + | ** '''Content-Type *''' – application/json |
| + | |||
| + | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
| + | <font style="color:red">''Внимание!''</font> Если в туре используется перелет из GDS, то в параметр '''flightSettings''' передается ответ из секции '''flightGDSRequest''' метода API [[Мастер-Тур(15):API для отдачи цен в поисковые системы#Актуализация тура (ActualizeTour)|ActualizeTour]]. Далее для получения цены выполняем методы [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка информации от внешнего поставщика по перелету (RebuildFlights)|RebuidFlights]] и [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Расчет путевки (CalculateReservation)|CalculateReservation]]. <br /> | ||
| + | ** '''flightSettings''' – информация о шаблоне услуги авиаперелета | ||
| + | *** '''templateId''' – идентификатор шаблона услуги | ||
| + | *** '''patternId''' – идентификатор паттерна услуги (внутренняя информация из программы туров) | ||
| + | *** '''serviceId''' – идентификатор класса услуги (внутренняя информация из программы туров) | ||
| + | ** '''service''' – информация об услуге авиаперелета | ||
| + | *** '''ServiceType''' – тип услуги | ||
| + | *** '''Code''' – ключ услуги | ||
| + | *** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
| + | *** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
| + | *** '''CountryId''' – страна услуги | ||
| + | *** '''CityId''' – город услуги | ||
| + | *** '''PacketId''' – пакет услуги | ||
| + | *** '''PartnerId''' – партнер услуги | ||
| + | *** '''Day''' – день предоставления услуги | ||
| + | *** '''DurationInNight''' – продолжительность услуги в ночах | ||
| + | ** '''price''' – стоимость перелета | ||
| + | ** '''quotaInfo''' – объект информация по квотам | ||
| + | *** '''status''' – статус по квотам (есть места / нет мест / под запрос) | ||
| + | *** '''freePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
| + | *** '''isFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| + | ** '''flightDateTimeLimitationInterval''' – | ||
| + | *** '''startLimitation''' – начало тайм-лимита | ||
| + | *** '''finishLimitation''' – объект тайм-лимита | ||
| + | **** '''dateTimeString''' – дата окончания тайм-лимита | ||
| + | **** '''serviceType''' – тип услуги | ||
| + | **** '''serviceCode''' – код услуги | ||
| + | ** '''flightSourceMode''' – тип перелета (1 – локальный, 2 – из внешний системы) | ||
| + | ** '''passengers''' – информация о пассажирах | ||
| + | *** '''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''' – гражданство | ||
| + | *** '''Age''' – количество полных лет на момент окончания тура | ||
| + | ** '''tourDate''' – дата тура | ||
| + | ** '''tourCurrency''' – валюта тура | ||
| + | ** '''tourId''' – ключ программы тура | ||
| + | ** '''filterTariff''' – информация о тарифах | ||
| + | ** '''filterDeptime''' – информация о времени вылета | ||
| + | ** '''isCommission''' – признак комиссионной цены | ||
| + | ** '''baseFlightsParams''' – параметра авиаперелета | ||
| + | *** '''CityArrival''' – город прибытия | ||
| + | *** '''FlightCode''' – код авиаперелета | ||
| + | *** '''TariffKey''' – ключ тарифа | ||
| + | *** '''PartnerId''' – ключ партнера | ||
| + | ** '''isUpdated''' – информация об обновлении перелета | ||
| + | ** '''key''' – ключ запроса | ||
| + | ** '''tourDurationByDays''' – продолжительность перелета | ||
| + | ** '''langueCode''' – локализация | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| − | ** ''' | + | ** '''validationResult''' – информация о валидации |
| − | ** ''' | + | *** '''Errors''' – ошибки |
| + | *** '''Warnings''' – предупреждения | ||
| + | *** '''States''' – статус | ||
| + | *** '''IsValid''' – информация о результате | ||
| + | ** '''flightsStartEndPointPatterns''' – информация о начале и окончании перелета | ||
| + | *** '''fromPoint''' – информация о перелете отправления | ||
| + | **** '''country''' – страна вылета | ||
| + | ***** '''id''' – ключ | ||
| + | ***** '''description''' – описание | ||
| + | ***** '''code''' – код | ||
| + | **** '''city''' – город вылета | ||
| + | ***** '''id''' – ключ | ||
| + | ***** '''description''' – описание | ||
| + | ***** '''code''' – код | ||
| + | **** '''airport''' – аэропорт вылета | ||
| + | ***** '''id''' – ключ | ||
| + | ***** '''description''' – описание | ||
| + | ***** '''code''' – код | ||
| + | *** '''toPoint''' – информация о перелете прибытия | ||
| + | **** '''country''' – страна прилета | ||
| + | ***** '''id''' – ключ | ||
| + | ***** '''description''' – описание | ||
| + | ***** '''code''' – код | ||
| + | **** '''city''' – город прилета | ||
| + | ***** '''id''' – ключ | ||
| + | ***** '''description''' – описание | ||
| + | ***** '''code''' – код | ||
| + | **** '''airport''' – аэропорт прилета | ||
| + | ***** '''id''' – ключ | ||
| + | ***** '''description''' – описание | ||
| + | ***** '''code''' – код | ||
| + | ** '''passengersAgeInfos''' – информация о возрасте пассажиров | ||
| + | *** '''ageType''' – тип пассажира | ||
| + | *** '''count''' – количество человек | ||
| + | ** '''flightsSequencies''' – информация о перелете | ||
| + | *** '''flights''' – массив данных о перелете из внешнего поставщика | ||
| + | **** – ... | ||
| + | *** '''deltaPrice''' – разница в цене | ||
| + | **** '''amount''' – стоимость | ||
| + | **** '''currency''' – валюта | ||
| + | *** '''timeForward''' – время вперед | ||
| + | *** '''timeBackward''' – время обратно | ||
| + | *** '''hasTariffFamily''' – имеется ли семейство тарифов | ||
| + | *** '''rating''' – рейтинг | ||
| + | ** '''airTravelAdapterFilterValues''' – дополнительная информация | ||
| + | *** '''LuggageFilterValue''' – багаж | ||
| + | *** '''ClassAirTravelFilterValue''' – класс перелета | ||
| + | *** '''ConnectionsFilterValue''' – пересадки | ||
| + | *** '''SortFilterValue''' – сортировка | ||
| + | *** '''AutomaticFlightSelection''' – подбор перелета | ||
| + | ** '''tariff''' – тариф | ||
| + | ** '''minFlightTimeForward''' – минимальное время в пути туда | ||
| + | ** '''maxFlightTimeForward''' – максимальное время в пути туда | ||
| + | ** '''minFlightTimeBackward''' – минимальное время в пути обратно | ||
| + | ** '''maxFlightTimeBackward''' – максимальное время в пути обратно | ||
<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> | ||
| − | Вызов метода | + | Вызов метода GetGDSFlights |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | + | POST http://localhost:9000/TourSearchOwin/GetGDSFlights? HTTP/1.1 | |
| − | + | Content-Type: application/json | |
| − | + | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{ | { | ||
| − | + | "flightsSource": [{ | |
| − | + | "flightSettings": { | |
| − | }, | + | "templateId": 1, |
| − | { | + | "patternId": 0, |
| − | + | "serviceId": 0 | |
| − | + | }, | |
| − | }] | + | "service": { |
| − | + | "serviceType": 1, | |
| − | + | "code": 1084, | |
| − | + | "subCode1": 67, | |
| − | + | "subCode2": 1, | |
| − | + | "countryId": 90, | |
| − | + | "cityId": 35, | |
| − | + | "packetId": 1037, | |
| − | + | "partnerId": 12792, | |
| − | + | "day": 1, | |
| − | + | "durationInNight": 0 | |
| − | + | }, | |
| − | + | "price": 142.84, | |
| − | + | "quotaInfo": { | |
| − | + | "status": 4, | |
| − | + | "freePlaces": 0, | |
| − | + | "isFewPlaces": false | |
| − | + | }, | |
| − | + | "flightDateTimeLimitationInterval": { | |
| − | + | "startLimitation": null, | |
| − | + | "finishLimitation": { | |
| − | + | "dateTimeString": "2021-01-30T21:40:00", | |
| − | + | "serviceType": 3, | |
| − | + | "serviceCode": 178 | |
| + | } | ||
| + | }, | ||
| + | "flightSourceMode": 2 | ||
| + | } | ||
| + | ], | ||
| + | "passengers": [{ | ||
| + | "IsMain": true, | ||
| + | "Number": 1, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "", | ||
| + | "LastName": "", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "", | ||
| + | "LastNameRus": "", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": "", | ||
| + | "BirthDayString": "", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": 17 | ||
| + | }, { | ||
| + | "IsMain": false, | ||
| + | "Number": 2, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "", | ||
| + | "LastName": "", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "", | ||
| + | "LastNameRus": "", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": "", | ||
| + | "BirthDayString": "", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": 17 | ||
| + | } | ||
| + | ], | ||
| + | "tourDate": "2021-01-30T00:00:00", | ||
| + | "tourCurrency": "$", | ||
| + | "tourId": 100008958, | ||
| + | "filterTariff": {}, | ||
| + | "filterDeptime": ["all"], | ||
| + | "isCommission": true, | ||
| + | "baseFlightsParams": [{ | ||
| + | "CityArrival": 35, | ||
| + | "FlightCode": 1084, | ||
| + | "TariffKey": 67, | ||
| + | "PartnerId": 12792 | ||
| + | } | ||
| + | ], | ||
| + | "isUpdated": false, | ||
| + | "key": 0, | ||
| + | "tourDurationByDays": "11", | ||
| + | "langueCode": "ru", | ||
| + | "isCanary": "false" | ||
| + | } | ||
| + | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода GetGDSFlights (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | [ | + | [ |
| − | |||
| − | |||
| − | |||
{ | { | ||
| − | + | "validationResult": { | |
| − | + | "Errors": [], | |
| − | }] | + | "Warnings": null, |
| − | </syntaxhighlight> | + | "States": null, |
| − | </TD></TR></TABLE> | + | "IsValid": true |
| − | </div></div><br /> | + | }, |
| − | + | "flightsStartEndPointPatterns": [{ | |
| − | + | "fromPoint": { | |
| − | ===Расчет путевки (CalculateReservation) | + | "country": { |
| − | Метод | + | "id": 460, |
| + | "description": "Россия", | ||
| + | "code": "RU" | ||
| + | }, | ||
| + | "city": { | ||
| + | "id": 1, | ||
| + | "description": "Москва", | ||
| + | "code": "MOW" | ||
| + | }, | ||
| + | "airport": { | ||
| + | "id": 52, | ||
| + | "description": "SVO4(Шереметьево-24)", | ||
| + | "code": "SVO4" | ||
| + | } | ||
| + | }, | ||
| + | "toPoint": { | ||
| + | "country": { | ||
| + | "id": 90, | ||
| + | "description": "Австрия", | ||
| + | "code": "AUS" | ||
| + | }, | ||
| + | "city": { | ||
| + | "id": 35, | ||
| + | "description": "Вена", | ||
| + | "code": "VIE" | ||
| + | }, | ||
| + | "airport": { | ||
| + | "id": 58, | ||
| + | "description": "VIE1(Vena1)", | ||
| + | "code": "VIE1" | ||
| + | } | ||
| + | }, | ||
| + | "departureDate": "2021-01-30T00:00:00", | ||
| + | "arrivalDate": "2021-01-30T23:59:59" | ||
| + | } | ||
| + | ], | ||
| + | "passengersAgeInfos": [{ | ||
| + | "ageType": 0, | ||
| + | "count": 2 | ||
| + | } | ||
| + | ], | ||
| + | "flightsSequencies": [{ | ||
| + | "flights": [{ | ||
| + | "direction": 1, | ||
| + | "commonPrice": 147, | ||
| + | "remotePriceSource": { | ||
| + | "providerId": 82, | ||
| + | "flightId": "17554452020000" | ||
| + | }, | ||
| + | "localPriceSource": { | ||
| + | "packetId": 1037, | ||
| + | "partnerId": 12792 | ||
| + | }, | ||
| + | "flightsSequenceSettings": [{ | ||
| + | "templateId": 1, | ||
| + | "patternId": 0, | ||
| + | "serviceId": 0 | ||
| + | } | ||
| + | ], | ||
| + | "segments": [{ | ||
| + | "segmentNumber": 1, | ||
| + | "depratureCity": { | ||
| + | "gdsItem": { | ||
| + | "serviceId": 4, | ||
| + | "languageId": 38, | ||
| + | "id": "524901", | ||
| + | "code": "MOW", | ||
| + | "name": "Moscow", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "Moscow" | ||
| + | ], | ||
| + | "requestValue": "MOW", | ||
| + | "displayedValue": "Moscow", | ||
| + | "dependencies": [{ | ||
| + | "dictionaryId": 1, | ||
| + | "itemId": "643" | ||
| + | } | ||
| + | ], | ||
| + | "columnValues": [ | ||
| + | "Moscow", | ||
| + | "Russia" | ||
| + | ] | ||
| + | }, | ||
| + | "mtItem": { | ||
| + | "id": "1", | ||
| + | "code": "MOW", | ||
| + | "name": "Москва", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "Москва", | ||
| + | "Moscow" | ||
| + | ], | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "Москва", | ||
| + | "dependencies": [{ | ||
| + | "dictionaryId": 1, | ||
| + | "itemId": "460" | ||
| + | } | ||
| + | ], | ||
| + | "columnValues": [ | ||
| + | "MOW", | ||
| + | "Москва", | ||
| + | "Россия" | ||
| + | ] | ||
| + | }, | ||
| + | "mapping": { | ||
| + | "id": 5517, | ||
| + | "providerId": 82, | ||
| + | "dictionaryId": 2, | ||
| + | "providerDictionaryItemId": "524901", | ||
| + | "providerDictionaryItemName": null, | ||
| + | "mtDictionaryItemId": 1, | ||
| + | "mtDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "arrivalCity": { | ||
| + | "gdsItem": { | ||
| + | "serviceId": 4, | ||
| + | "languageId": 38, | ||
| + | "id": "2761369", | ||
| + | "code": "VIE", | ||
| + | "name": "Vienna", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "Vienna" | ||
| + | ], | ||
| + | "requestValue": "VIE", | ||
| + | "displayedValue": "Vienna", | ||
| + | "dependencies": [{ | ||
| + | "dictionaryId": 1, | ||
| + | "itemId": "40" | ||
| + | } | ||
| + | ], | ||
| + | "columnValues": [ | ||
| + | "Vienna", | ||
| + | "Austria" | ||
| + | ] | ||
| + | }, | ||
| + | "mtItem": { | ||
| + | "id": "35", | ||
| + | "code": "VIE", | ||
| + | "name": "Вена", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "Вена", | ||
| + | "Vienna" | ||
| + | ], | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "Вена", | ||
| + | "dependencies": [{ | ||
| + | "dictionaryId": 1, | ||
| + | "itemId": "90" | ||
| + | } | ||
| + | ], | ||
| + | "columnValues": [ | ||
| + | "VIE", | ||
| + | "Вена", | ||
| + | "Австрия" | ||
| + | ] | ||
| + | }, | ||
| + | "mapping": { | ||
| + | "id": 5361, | ||
| + | "providerId": 82, | ||
| + | "dictionaryId": 2, | ||
| + | "providerDictionaryItemId": "2761369", | ||
| + | "providerDictionaryItemName": null, | ||
| + | "mtDictionaryItemId": 35, | ||
| + | "mtDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "departureAirport": { | ||
| + | "gdsItem": { | ||
| + | "serviceId": 4, | ||
| + | "languageId": 38, | ||
| + | "id": "5930", | ||
| + | "code": "VKO", | ||
| + | "name": "Moscow, Vnukovo", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "VKO" | ||
| + | ], | ||
| + | "requestValue": "VKO", | ||
| + | "displayedValue": "VKO Moscow, Vnukovo", | ||
| + | "dependencies": [{ | ||
| + | "dictionaryId": 1, | ||
| + | "itemId": "643" | ||
| + | }, { | ||
| + | "dictionaryId": 2, | ||
| + | "itemId": "524901" | ||
| + | } | ||
| + | ], | ||
| + | "columnValues": [ | ||
| + | "VKO Moscow, Vnukovo", | ||
| + | "Russia, Москва" | ||
| + | ] | ||
| + | }, | ||
| + | "mtItem": { | ||
| + | "id": "59", | ||
| + | "code": "VKO", | ||
| + | "name": "Внуково", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "VKO" | ||
| + | ], | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "VKO Внуково", | ||
| + | "dependencies": [{ | ||
| + | "dictionaryId": 1, | ||
| + | "itemId": "460" | ||
| + | }, { | ||
| + | "dictionaryId": 2, | ||
| + | "itemId": "1" | ||
| + | } | ||
| + | ], | ||
| + | "columnValues": [ | ||
| + | "VKO", | ||
| + | "VKO Внуково", | ||
| + | "Россия, Москва" | ||
| + | ] | ||
| + | }, | ||
| + | "mapping": { | ||
| + | "id": 5734, | ||
| + | "providerId": 82, | ||
| + | "dictionaryId": 5, | ||
| + | "providerDictionaryItemId": "5930", | ||
| + | "providerDictionaryItemName": null, | ||
| + | "mtDictionaryItemId": 59, | ||
| + | "mtDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "arrivalAirport": { | ||
| + | "gdsItem": { | ||
| + | "serviceId": 4, | ||
| + | "languageId": 38, | ||
| + | "id": "6625", | ||
| + | "code": "VIE", | ||
| + | "name": "Vienna International Airport", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "VIE" | ||
| + | ], | ||
| + | "requestValue": "VIE", | ||
| + | "displayedValue": "VIE Vienna International Airport", | ||
| + | "dependencies": [{ | ||
| + | "dictionaryId": 1, | ||
| + | "itemId": "40" | ||
| + | }, { | ||
| + | "dictionaryId": 2, | ||
| + | "itemId": "2761369" | ||
| + | } | ||
| + | ], | ||
| + | "columnValues": [ | ||
| + | "VIE Vienna International Airport", | ||
| + | "Austria, Вена" | ||
| + | ] | ||
| + | }, | ||
| + | "mtItem": { | ||
| + | "id": "58", | ||
| + | "code": "VIE1", | ||
| + | "name": "Vena1", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "VIE1" | ||
| + | ], | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "VIE1 Vena1", | ||
| + | "dependencies": [{ | ||
| + | "dictionaryId": 1, | ||
| + | "itemId": "90" | ||
| + | }, { | ||
| + | "dictionaryId": 2, | ||
| + | "itemId": "35" | ||
| + | } | ||
| + | ], | ||
| + | "columnValues": [ | ||
| + | "VIE1", | ||
| + | "VIE1 Vena1", | ||
| + | "Австрия, Вена" | ||
| + | ] | ||
| + | }, | ||
| + | "mapping": { | ||
| + | "id": 5755, | ||
| + | "providerId": 82, | ||
| + | "dictionaryId": 5, | ||
| + | "providerDictionaryItemId": "6625", | ||
| + | "providerDictionaryItemName": null, | ||
| + | "mtDictionaryItemId": 58, | ||
| + | "mtDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "airline": { | ||
| + | "gdsItem": { | ||
| + | "serviceId": 4, | ||
| + | "languageId": 38, | ||
| + | "id": "223", | ||
| + | "code": "UT", | ||
| + | "name": "UTair", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "UT" | ||
| + | ], | ||
| + | "requestValue": "UT", | ||
| + | "displayedValue": "UT UTair", | ||
| + | "dependencies": [], | ||
| + | "columnValues": [ | ||
| + | "UT UTair", | ||
| + | "" | ||
| + | ] | ||
| + | }, | ||
| + | "mtItem": { | ||
| + | "id": "12", | ||
| + | "code": "E9", | ||
| + | "name": "AJT", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "E9" | ||
| + | ], | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "E9 AJT", | ||
| + | "dependencies": [], | ||
| + | "columnValues": [ | ||
| + | "E9", | ||
| + | "E9 AJT", | ||
| + | "" | ||
| + | ] | ||
| + | }, | ||
| + | "mapping": { | ||
| + | "id": 5831, | ||
| + | "providerId": 82, | ||
| + | "dictionaryId": 5, | ||
| + | "providerDictionaryItemId": "223", | ||
| + | "providerDictionaryItemName": null, | ||
| + | "mtDictionaryItemId": 12, | ||
| + | "mtDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "aircraft": { | ||
| + | "gdsItem": { | ||
| + | "serviceId": 4, | ||
| + | "languageId": 38, | ||
| + | "id": "42", | ||
| + | "code": "738", | ||
| + | "name": "Boeing 737", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "738" | ||
| + | ], | ||
| + | "requestValue": "738", | ||
| + | "displayedValue": "738 Boeing 737", | ||
| + | "dependencies": [], | ||
| + | "columnValues": [ | ||
| + | "738 Boeing 737", | ||
| + | "" | ||
| + | ] | ||
| + | }, | ||
| + | "mtItem": { | ||
| + | "id": "24", | ||
| + | "code": "738", | ||
| + | "name": "Boeing", | ||
| + | "automaticallyMappingValue": [ | ||
| + | "738" | ||
| + | ], | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "738 Boeing", | ||
| + | "dependencies": [], | ||
| + | "columnValues": [ | ||
| + | "738", | ||
| + | "738 Boeing", | ||
| + | "" | ||
| + | ] | ||
| + | }, | ||
| + | "mapping": { | ||
| + | "id": 5809, | ||
| + | "providerId": 82, | ||
| + | "dictionaryId": 5, | ||
| + | "providerDictionaryItemId": "42", | ||
| + | "providerDictionaryItemName": null, | ||
| + | "mtDictionaryItemId": 24, | ||
| + | "mtDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "tariff": { | ||
| + | "gdsItem": { | ||
| + | "id": "0", | ||
| + | "code": "P", | ||
| + | "name": "Экономический класс", | ||
| + | "automaticallyMappingValue": [], | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "", | ||
| + | "dependencies": [], | ||
| + | "columnValues": [] | ||
| + | }, | ||
| + | "mtItem": null, | ||
| + | "mapping": null | ||
| + | }, | ||
| + | "flightNumber": "821", | ||
| + | "baggageRestriction": [ | ||
| + | "Взрослые - 0 мест багажа" | ||
| + | ], | ||
| + | "caryyOn": [ | ||
| + | "5 кг (40x30x20 см)" | ||
| + | ], | ||
| + | "departureDate": "2021-01-30T16:00:00", | ||
| + | "arrivalDate": "2021-01-30T17:55:00", | ||
| + | "quotaInfo": { | ||
| + | "status": 1, | ||
| + | "freePlaces": 0, | ||
| + | "isFewPlaces": false | ||
| + | }, | ||
| + | "filterLuggageValue": [ | ||
| + | "withoutLuggage" | ||
| + | ], | ||
| + | "transferValue": "withoutDirect", | ||
| + | "isLocalFlight": false, | ||
| + | "fligthTime": 235, | ||
| + | "timeLimit": "22.01.2021 18:59:00" | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | ], | ||
| + | "deltaPrice": { | ||
| + | "amount": 4.16, | ||
| + | "currency": "$" | ||
| + | }, | ||
| + | "timeForward": 235, | ||
| + | "timeBackward": 0, | ||
| + | "hasTariffFamily": true, | ||
| + | "rating": 9.3467 | ||
| + | } | ||
| + | ], | ||
| + | "airTravelAdapterFilterValues": { | ||
| + | "LuggageFilterValue": "all", | ||
| + | "ClassAirTravelFilterValue": "economy", | ||
| + | "ConnectionsFilterValue": "all", | ||
| + | "SortFilterValue": "cheap", | ||
| + | "AutomaticFlightSelection": false | ||
| + | }, | ||
| + | "tariff": "economy", | ||
| + | "minFlightTimeForward": 170, | ||
| + | "maxFlightTimeForward": 1675, | ||
| + | "minFlightTimeBackward": 0, | ||
| + | "maxFlightTimeBackward": 0 | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Выгрузка информации от внешнего поставщика по перелету (RebuildFlights)=== | ||
| + | <font style="color:red">''Внимание!''</font> Если в туре используется перелет из GDS, то перед этим методом вызывается [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Поиск рейсов из внешней системы (GetGDSFlights)|GetGDSFlights]] в принимаемые параметры которого передается ответ из секции flightGDSRequest метода API [[Мастер-Тур(15):API для отдачи цен в поисковые системы#Актуализация тура (ActualizeTour)|ActualizeTour]]. Далее текущий метод [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка информации от внешнего поставщика по перелету (RebuildFlights)|RebuidFlights]] и далее [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Расчет путевки (CalculateReservation)|CalculateReservation]]. <br /> | ||
| + | Метод возвращает информацию по выбранному перелету от внешнего поставщика. | ||
* Формат запроса: | * Формат запроса: | ||
| − | ** POST .../TourSearchOwin/ | + | ** POST .../TourSearchOwin/RebuildFlights |
| − | |||
* Принимаемые параметры headers ( '''*''' – обязательный): | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
** '''Content-Type *''' – application/json | ** '''Content-Type *''' – application/json | ||
| − | * Принимаемые параметры POST запроса: | + | * Принимаемые параметры POST запроса ( '''*''' – обязательный): |
| − | ** ''' | + | ** '''flights''' – перелеты |
| − | ** ''' | + | *** '''direction''' – |
| − | ** ''' | + | *** '''commonPrice''' – общая стоимость перелета |
| − | ** ''' | + | *** '''remotePriceSource''' – данные расчета локального перелета |
| − | ** ''' | + | **** '''providerId''' – ID внешнего поставщика |
| − | *** ''' | + | **** '''flightId''' – идентификатор внешнего перелета |
| − | *** ''' | + | *** '''localPriceSource''' – данные расчета локального перелета |
| − | ** ''' | + | **** '''packetId''' – ключ пакета |
| − | *** ''' | + | **** '''partnerId''' – идентификатор партнера |
| − | **** ''' | + | *** '''flightsSequenceSettings''' – описание параметров последовательности перелетов для которых действуют замены |
| − | **** ''' | + | **** '''templateId''' – идентификатор шаблона услуги |
| − | **** ''' | + | **** '''patternId''' – идентификатор паттерна услуги |
| − | **** ''' | + | **** '''serviceId''' – идентификатор класса услуги |
| − | + | *** '''segments''' – сегменты авиаперелета | |
| − | **** ''' | + | **** '''segmentNumber''' – номер сегмента |
| + | **** '''depratureCity''' – город отправления | ||
| + | ***** '''gdsItem''' – справочная информация внешней системы | ||
| + | ****** '''serviceId''' – идентификатор системы | ||
| + | ****** '''languageId''' – идентификатор языка | ||
| + | ****** '''id''' – идентификатор в системе внешнего поставщика | ||
| + | ****** '''code''' – код в системе внешнего поставщика | ||
| + | ****** '''name''' – имя в системе внешнего поставщика | ||
| + | ******* '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ******* '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ******* '''dictionaryId''' – идентификатор справочника | ||
| + | ******* '''itemId''' – | ||
| + | ****** '''columnValues''' – наименование города и страны | ||
| + | ***** '''mtItem''' – справочная информации локальной системы | ||
| + | ****** '''id''' – идентификатор в локальной системе | ||
| + | ****** '''code''' – код в локальной системе | ||
| + | ****** '''name''' – имя в локальной системе | ||
| + | ****** '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ****** '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ******* '''dictionaryId''' – идентификатор справочника | ||
| + | ******* '''itemId''' – | ||
| + | ****** '''columnValues''' – наименование страны и города | ||
| + | ***** '''mapping''' – связка | ||
| + | ****** '''id''' – Id маппинга | ||
| + | ****** '''providerId''' – Id провайдера | ||
| + | ****** '''dictionaryId''' – Id справочника | ||
| + | ****** '''providerDictionaryItemId''' – Id справочника внешнего поставщика | ||
| + | ****** '''providerDictionaryItemName''' – обозначение справочника внешнего поставщика | ||
| + | ****** '''mtDictionaryItemId''' – Id справочника МТ | ||
| + | ****** '''mtDictionaryItemName''' – обозначение справочника MT | ||
| + | **** '''arrivalCity''' – город прибытия | ||
| + | ***** '''gdsItem''' – справочная информация внешней системы | ||
| + | ****** '''serviceId''' – идентификатор системы | ||
| + | ****** '''languageId''' – идентификатор языка | ||
| + | ****** '''id''' – идентификатор в системе внешнего поставщика | ||
| + | ****** '''code''' – код в системе внешнего поставщика | ||
| + | ****** '''name''' – имя в системе внешнего поставщика | ||
| + | ******* '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ******* '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ******* '''dictionaryId''' – идентификатор справочника | ||
| + | ******* '''itemId''' – | ||
| + | ****** '''columnValues''' – наименование города и страны | ||
| + | ***** '''mtItem''' – справочная информации локальной системы | ||
| + | ****** '''id''' – идентификатор в локальной системе | ||
| + | ****** '''code''' – код в локальной системе | ||
| + | ****** '''name''' – имя в локальной системе | ||
| + | ****** '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ****** '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ******* '''dictionaryId''' – идентификатор справочника | ||
| + | ******* '''itemId''' – | ||
| + | ****** '''columnValues''' – наименование страны и города | ||
| + | ***** '''mapping''' – связка | ||
| + | ****** '''id''' – Id маппинга | ||
| + | ****** '''providerId''' – Id провайдера | ||
| + | ****** '''dictionaryId''' – Id справочника | ||
| + | ****** '''providerDictionaryItemId''' – Id справочника внешнего поставщика | ||
| + | ****** '''providerDictionaryItemName''' – обозначение справочника внешнего поставщика | ||
| + | ****** '''mtDictionaryItemId''' – Id справочника МТ | ||
| + | ****** '''mtDictionaryItemName''' – обозначение справочника MT | ||
| + | **** '''departureAirport''' – аэропорт вылета | ||
| + | **** '''arrivalAirport''' – аэропорт прилета | ||
| + | ***** '''gdsItem''' –справочная информация внешней системы | ||
| + | ****** '''serviceId''' – идентификатор системы | ||
| + | ****** '''languageId''' – идентификатор языка | ||
| + | ****** '''id''' – идентификатор аэропорта вылета | ||
| + | ****** '''code''' – код аэропорта вылета | ||
| + | ****** '''name''' – наименование аэропорта | ||
| + | ******* '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ******* '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ******* '''dictionaryId''' – идентификатор справочника | ||
| + | ******* '''itemId''' – | ||
| + | ****** '''columnValues''' – наименование аэропорта города страны | ||
| + | ***** '''mtItem''' – справочная информации из локальной системы | ||
| + | ****** '''id''' – идентификатор аэропорта в локальной системе | ||
| + | ****** '''code''' – код аэропорта в локальной системе | ||
| + | ****** '''name''' – имя аэропорта в локальной системе | ||
| + | ****** '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ****** '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ******* '''dictionaryId''' – идентификатор справочника | ||
| + | ******* '''itemId''' – | ||
| + | ****** '''columnValues''' – наименование страны и города | ||
| + | ***** '''mapping''' – связка | ||
| + | ****** '''id''' – Id маппинга аэропорта | ||
| + | ****** '''providerId''' – Id провайдера аэропорта | ||
| + | ****** '''dictionaryId''' – Id справочника аэропорта | ||
| + | ****** '''providerDictionaryItemId''' – Id справочника аэропорта внешнего поставщика | ||
| + | ****** '''providerDictionaryItemName''' – обозначение справочника аэропорта внешнего поставщика | ||
| + | ****** '''mtDictionaryItemId''' – Id справочника аэропорта МТ | ||
| + | ****** '''mtDictionaryItemName''' – обозначение справочника аэропорта MT | ||
| + | **** '''airline''' – авиакомпания | ||
| + | ***** '''gdsItem''' – справочная информация внешней системы | ||
| + | ****** '''serviceId''' – идентификатор авиакомпании внешней системы | ||
| + | ****** '''languageId''' – идентификатор языка | ||
| + | ****** '''id''' – идентификатор авиакомпании | ||
| + | ****** '''code''' – код авиакомпании | ||
| + | ****** '''name''' – наименование авиакомпании | ||
| + | ******* '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ******* '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ****** '''columnValues''' – наименование авиакомпании | ||
| + | ***** '''mtItem''' – справочная информация из локальной системы | ||
| + | ****** '''id''' – идентификатор авиакомпании в локальной системе | ||
| + | ****** '''code''' – код авиакомпании в локальной системе | ||
| + | ****** '''name''' – наименование авиакомпании в локальной системе | ||
| + | ****** '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ****** '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ****** '''columnValues''' – наименование авиакомпании | ||
| + | ***** '''mapping''' – связка | ||
| + | ****** '''id''' – Id маппинга авиакомпании | ||
| + | ****** '''providerId''' – Id провайдера авиакомпании | ||
| + | ****** '''dictionaryId''' – Id справочника авиакомпании | ||
| + | ****** '''providerDictionaryItemId''' – Id справочника авиакомпании внешнего поставщика | ||
| + | ****** '''providerDictionaryItemName''' – обозначение справочника авиакомпании внешнего поставщика | ||
| + | ****** '''mtDictionaryItemId''' – Id справочника авиакомпании МТ | ||
| + | ****** '''mtDictionaryItemName''' – обозначение справочника авиакомпании MT | ||
| + | **** '''aircraft''' – воздушное судно | ||
| + | ***** '''gdsItem''' – справочная информация внешней системы | ||
| + | ****** '''serviceId''' – идентификатор воздушного судна внешней системы | ||
| + | ****** '''languageId''' – идентификатор языка | ||
| + | ****** '''id''' – идентификатор воздушного судна | ||
| + | ****** '''code''' – код воздушного судна | ||
| + | ****** '''name''' – наименование воздушного судна | ||
| + | ******* '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ******* '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ****** '''columnValues''' – наименование воздушного судна | ||
| + | ***** '''mtItem''' – справочная информация из локальной системы | ||
| + | ****** '''id''' – идентификатор воздушного судна в локальной системе | ||
| + | ****** '''code''' – код воздушного судна в локальной системе | ||
| + | ****** '''name''' – наименование воздушного судна в локальной системе | ||
| + | ****** '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ****** '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ****** '''columnValues''' – наименование воздушного судна | ||
| + | ***** '''mapping''' – связка | ||
| + | ****** '''id''' – Id маппинга воздушного судна | ||
| + | ****** '''providerId''' – Id провайдера воздушного судна | ||
| + | ****** '''dictionaryId''' – Id справочника воздушного судна | ||
| + | ****** '''providerDictionaryItemId''' – Id справочника воздушного судна внешнего поставщика | ||
| + | ****** '''providerDictionaryItemName''' – обозначение справочника воздушного судна внешнего поставщика | ||
| + | ****** '''mtDictionaryItemId''' – Id справочника воздушного судна МТ | ||
| + | ****** '''mtDictionaryItemName''' – обозначение справочника воздушного судна MT | ||
| + | **** '''tariff''' – тариф | ||
| + | ***** '''gdsItem''' – справочная информация внешней системы | ||
| + | ****** '''id''' – идентификатор тарифа | ||
| + | ****** '''code''' – код тарифа | ||
| + | ****** '''name''' – наименование тарифа | ||
| + | ******* '''automaticallyMappingValue''' – выражение используемое для автоматического маппинга | ||
| + | ******* '''requestValue''' – значение поля справочника которое используется в запросе к внешнему поставщику | ||
| + | ****** '''displayedValue''' – значение поля справочника который используется для отображения | ||
| + | ****** '''dependencies''' – список зависимых сущностей | ||
| + | ****** '''columnValues''' – наименование тарифа | ||
| + | ***** '''mtItem''' – справочная информация из локальной системы | ||
| + | ***** '''mapping''' – связка | ||
| + | **** '''flightNumber''' – номер перелета | ||
| + | **** '''baggageRestriction''' – ограничение провоза багажа | ||
| + | **** '''caryyOncarry''' – ограничение ручной клади | ||
| + | **** '''departureDate''' – дата вылета | ||
| + | **** '''arrivalDate''' – дата прилета | ||
| + | **** '''quotaInfo''' – объект информация по квотам | ||
| + | ***** '''status''' – статус по квотам (есть места / нет мест / под запрос) | ||
| + | ***** '''freePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus. | ||
| + | ***** '''isFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| + | ** '''tourDate''' – дата тура | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''flights''' – информация о рейсах | ||
| + | *** '''remoteFlightId''' – идентификатор внешнего перелета | ||
| + | *** '''flightsSettings''' – внутренняя информация о перелете | ||
| + | **** '''templateId''' – идентификатор шаблона услуги | ||
| + | **** '''patternId''' – идентификатор паттерна услуги | ||
| + | **** '''serviceId''' – идентификатор класса услуги | ||
| + | *** '''flightsPlains''' – планы полетов | ||
| + | **** '''DepartureCity''' – город вылета | ||
| + | ***** '''Key''' – ключ города | ||
| + | ***** '''Value''' – наименование города | ||
| + | **** '''DepartureCountry''' – страна вылета | ||
| + | ***** '''Key''' – ключ страны | ||
| + | ***** '''Value''' – наименование страны | ||
| + | **** '''ArrivalCity''' – город прибытия | ||
| + | ***** '''Key''' – ключ города | ||
| + | ***** '''Value''' – наименование города | ||
| + | **** '''ArrivalCountry''' – страна прибытия | ||
| + | ***** '''Key''' – ключ страны | ||
| + | ***** '''Value''' – наименование страны | ||
| + | **** '''DepartureAirport''' – аэропорт вылета | ||
| + | ***** '''Key''' – ключ аэропорта | ||
| + | ***** '''Value''' – наименование аэропорта | ||
| + | **** '''ArrivalAirport''' – аэропорт прилета | ||
| + | ***** '''Key''' – ключ аэропорта | ||
| + | ***** '''Value''' – наименование аэропорта | ||
| + | **** '''Airline''' – авиакомпания | ||
| + | ***** '''Id''' – идентификатор авиакомпании | ||
| + | ***** '''"Value''' – наименование авиакомпании | ||
| + | ***** '''"Key''' – ключ авиакомпании | ||
| + | **** '''Aircraft''' – воздушное судно | ||
| + | ***** '''Key''' – ключ воздушного судна | ||
| + | ***** '''Value''' – наименование воздушного судна | ||
| + | **** '''Flight''' – рейс | ||
| + | ***** '''Key''' – ключ рейса | ||
| + | ***** '''Value''' – наименование рейса | ||
| + | **** '''DepartureTime''' – время отправления | ||
| + | **** '''ArrivalTime''' – время прибытия | ||
| + | **** '''TotalTimeOfFlight''' – полное время перелета | ||
| + | **** '''FlightDetails''' – детали авиаперелета | ||
| + | ***** '''Tariff''' – информация о тарифе перелета | ||
| + | ****** '''Key''' – идентификатор | ||
| + | ****** '''Code''' – код тарифа | ||
| + | ****** '''Name''' – наименование тарифа | ||
| + | ***** '''IsCommission''' – признак, комиссионная ли услуга | ||
| + | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ||
| + | ***** '''QuotaStatus''' – информация о квоте | ||
| + | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
| + | ****** '''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''' – день предоставления услуги | **** '''Day''' – день предоставления услуги | ||
**** '''DurationInNight''' – продолжительность услуги в ночах | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
| − | **** ''' | + | **** '''BeginDateTime''' – дата предоставления услуги |
| − | + | **** '''EndDateTime''' – дата окончания услуги | |
| − | **** ''' | ||
| − | |||
| − | |||
**** '''IsHooded''' – признак скрытая услуга | **** '''IsHooded''' – признак скрытая услуга | ||
| − | **** ''' | + | **** '''IsDeleted''' – признак удаляемая услуга |
| − | **** ''' | + | **** '''IsNotCalculate''' – признак не рассчитываемая услуга |
| − | + | **** '''PacketId''' – ключ пакета | |
| − | + | **** '''Index''' – порядковый номер услуги | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | **** ''' | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | <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> | |
| − | + | Вызов метода RebuildFlights | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | <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> | ||
| − | Вызов метода | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | POST http://localhost:9000/TourSearchOwin/ | + | POST http://localhost:9000/TourSearchOwin/RebuildFlights HTTP/1.1 |
Content-Type: application/json | Content-Type: application/json | ||
| − | |||
{ | { | ||
| − | + | "flights": [ | |
| − | + | { | |
| − | + | "remotePriceSource": { | |
| − | + | "providerId": 1, | |
| − | + | "flightId": "111397601080000" | |
| − | + | }, | |
| − | + | "localPriceSource": { | |
| − | + | "packetId": 197, | |
| − | + | "partnerId": 10767 | |
| − | + | }, | |
| − | + | "flightsSequenceSettings": [ | |
| − | + | { | |
| − | + | "templateId": 1, | |
| − | + | "patternId": 0, | |
| − | + | "serviceId": 0 | |
| − | + | } | |
| − | + | ], | |
| − | + | "segments": [ | |
| − | + | { | |
| − | + | "segmentNumber": 1, | |
| − | + | "depratureCity": { | |
| − | + | "gdsItem": { | |
| − | + | "id": "524901", | |
| − | + | "code": "MOW", | |
| − | + | "name": "Moscow", | |
| − | + | "requestValue": "MOW", | |
| − | + | "displayedValue": "Moscow", | |
| − | + | "dependencies": [ | |
| − | + | { | |
| − | + | "dictionaryId": 1, | |
| − | + | "itemId": "643" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "mtItem": { | |
| − | + | "id": "1", | |
| − | + | "code": "MOW", | |
| − | + | "name": "Москва", | |
| − | + | "requestValue": "", | |
| − | + | "displayedValue": "Москва", | |
| − | + | "dependencies": [ | |
| − | + | { | |
| − | + | "dictionaryId": 1, | |
| − | + | "itemId": "460" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "mapping": { | |
| − | + | "id": 143, | |
| − | + | "providerId": 1, | |
| − | + | "dictionaryId": 2, | |
| − | + | "providerDictionaryItemId": "524901", | |
| − | + | "providerDictionaryItemName": null | |
| − | + | } | |
| − | + | }, | |
| − | + | "arrivalCity": { | |
| − | + | "gdsItem": { | |
| − | + | "id": "2761369", | |
| − | + | "code": "VIE", | |
| − | + | "name": "Vienna", | |
| − | + | "requestValue": "VIE", | |
| − | + | "displayedValue": "Vienna", | |
| − | + | "dependencies": [ | |
| − | + | { | |
| − | + | "dictionaryId": 1, | |
| − | + | "itemId": "40" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "mtItem": { | |
| − | + | "id": "35", | |
| − | + | "code": "VIE", | |
| − | + | "name": "Вена", | |
| − | + | "requestValue": "", | |
| − | + | "displayedValue": "Вена", | |
| − | + | "dependencies": [ | |
| − | + | { | |
| − | + | "dictionaryId": 1, | |
| − | + | "itemId": "90" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "mapping": { | |
| − | + | "id": 41, | |
| − | + | "providerId": 1, | |
| − | + | "dictionaryId": 2, | |
| − | + | "providerDictionaryItemId": "2761369", | |
| − | + | "providerDictionaryItemName": null | |
| − | + | } | |
| − | + | }, | |
| − | + | "departureAirport": { | |
| − | + | "gdsItem": { | |
| − | + | "id": "5135", | |
| − | + | "code": "SVO", | |
| − | + | "name": "Moscow, Sheremetyevo", | |
| − | + | "requestValue": "SVO", | |
| − | + | "displayedValue": "SVO Moscow, Sheremetyevo", | |
| − | + | "dependencies": [ | |
| − | + | { | |
| − | + | "dictionaryId": 1, | |
| − | + | "itemId": "643" | |
| − | + | }, | |
| − | + | { | |
| − | + | "dictionaryId": 2, | |
| − | + | "itemId": "524901" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "mtItem": { | |
| − | + | "id": "52", | |
| − | + | "code": "SVO", | |
| − | + | "name": "Шереметьево-2", | |
| − | + | "requestValue": "", | |
| − | + | "displayedValue": "SVO Шереметьево-2", | |
| − | + | "dependencies": [ | |
| − | + | { | |
| − | + | "dictionaryId": 1, | |
| − | + | "itemId": "460" | |
| − | + | }, | |
| − | + | { | |
| − | + | "dictionaryId": 2, | |
| − | + | "itemId": "1" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "mapping": { | |
| − | + | "id": 1619, | |
| − | + | "providerId": 1, | |
| − | + | "dictionaryId": 5, | |
| − | + | "providerDictionaryItemId": "5135", | |
| − | + | "providerDictionaryItemName": null | |
| − | + | } | |
| − | + | }, | |
| − | + | "arrivalAirport": { | |
| − | + | "gdsItem": { | |
| − | + | "id": "6625", | |
| − | + | "code": "VIE", | |
| − | + | "name": "Vienna International Airport", | |
| − | + | "requestValue": "VIE", | |
| − | + | "displayedValue": "VIE Vienna International Airport", | |
| − | + | "dependencies": [ | |
| − | + | { | |
| − | + | "dictionaryId": 1, | |
| − | + | "itemId": "40" | |
| − | + | }, | |
| − | + | { | |
| − | + | "dictionaryId": 2, | |
| − | + | "itemId": "2761369" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "mtItem": { | |
| − | + | "id": "58", | |
| − | + | "code": "VIE", | |
| − | + | "name": "Vena", | |
| − | + | "requestValue": "", | |
| − | + | "displayedValue": "VIE Vena", | |
| − | + | "dependencies": [ | |
| − | + | { | |
| − | + | "dictionaryId": 1, | |
| − | + | "itemId": "90" | |
| − | + | }, | |
| − | + | { | |
| − | + | "dictionaryId": 2, | |
| − | + | "itemId": "35" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "mapping": { | |
| − | + | "id": 259, | |
| + | "providerId": 1, | ||
| + | "dictionaryId": 5, | ||
| + | "providerDictionaryItemId": "6625", | ||
| + | "providerDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "airline": { | ||
| + | "gdsItem": { | ||
| + | "id": "5", | ||
| + | "code": "SU", | ||
| + | "name": "Aeroflot", | ||
| + | "requestValue": "SU", | ||
| + | "displayedValue": "SU Aeroflot", | ||
| + | "dependencies": [] | ||
| + | }, | ||
| + | "mtItem": { | ||
| + | "id": "31", | ||
| + | "code": "SU", | ||
| + | "name": "Aeroflot-Russian International AirLines", | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "SU Aeroflot-Russian International AirLines", | ||
| + | "dependencies": [] | ||
| + | }, | ||
| + | "mapping": { | ||
| + | "id": 265, | ||
| + | "providerId": 1, | ||
| + | "dictionaryId": 5, | ||
| + | "providerDictionaryItemId": "5", | ||
| + | "providerDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "aircraft": { | ||
| + | "gdsItem": { | ||
| + | "id": "97", | ||
| + | "code": "73H", | ||
| + | "name": "Boeing 737", | ||
| + | "requestValue": "73H", | ||
| + | "displayedValue": "73H Boeing 737", | ||
| + | "dependencies": [] | ||
| + | }, | ||
| + | "mtItem": { | ||
| + | "id": "27", | ||
| + | "code": "73H", | ||
| + | "name": "73H", | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "73H 73H", | ||
| + | "dependencies": [] | ||
| + | }, | ||
| + | "mapping": { | ||
| + | "id": 323, | ||
| + | "providerId": 1, | ||
| + | "dictionaryId": 5,tour | ||
| + | "providerDictionaryItemId": "97", | ||
| + | "providerDictionaryItemName": null | ||
| + | } | ||
| + | }, | ||
| + | "tariff": { | ||
| + | "gdsItem": { | ||
| + | "id": "0", | ||
| + | "code": "N", | ||
| + | "name": "Экономический класс", | ||
| + | "requestValue": "", | ||
| + | "displayedValue": "", | ||
| + | "dependencies": [] | ||
| + | }, | ||
| + | "mtItem": null, | ||
| + | "mapping": null | ||
| + | }, | ||
| + | "flightNumber": "2184", | ||
| + | "baggageRestriction": [], | ||
| + | "departureDate": "2021-10-25T09:00:00", | ||
| + | "arrivalDate": "2021-10-25T11:00:00", | ||
| + | "quotaInfo": { | ||
| + | "status": 1, | ||
| + | "freePlaces": 0, | ||
| + | "isFewPlaces": false | ||
| + | } | ||
| + | } | ||
| + | ], | ||
| + | "commonPrice": 313 | ||
| + | } | ||
| + | ], | ||
| + | "tourDate": "2021-10-25T00:00:00" | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода RebuildFlights (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "flights": [ | ||
| + | { | ||
| + | "remoteFlightId": "111397601080000", | ||
| + | "flightsSettings": [ | ||
| + | { | ||
| + | "templateId": 1, | ||
| + | "patternId": 0, | ||
| + | "serviceId": 0 | ||
| + | } | ||
| + | ], | ||
| + | "flightsPlains": [ | ||
| + | { | ||
| + | "DepartureCity": { | ||
| + | "Key": 1, | ||
| + | "Value": "Москва" | ||
| + | }, | ||
| + | "DepartureCountry": { | ||
| + | "Key": 460, | ||
| + | "Value": "Россия" | ||
| + | }, | ||
| + | "ArrivalCity": { | ||
| + | "Key": 35, | ||
| + | "Value": "Вена" | ||
| + | }, | ||
| + | "ArrivalCountry": { | ||
| + | "Key": 90, | ||
| + | "Value": "Австрия" | ||
| + | }, | ||
| + | "DepartureAirport": { | ||
| + | "Key": "SVO", | ||
| + | "Value": "Шереметьево-2" | ||
| + | }, | ||
| + | "ArrivalAirport": { | ||
| + | "Key": "VIE", | ||
| + | "Value": "Vena" | ||
| + | }, | ||
| + | "Airline": { | ||
| + | "Id": 31, | ||
| + | "Value": "Aeroflot-Russian International AirLines", | ||
| + | "Key": "SU" | ||
| + | }, | ||
| + | "Aircraft": { | ||
| + | "Key": "73H", | ||
| + | "Value": "73H" | ||
| + | }, | ||
| + | "Flight": { | ||
| + | "Key": 621, | ||
| + | "Value": "2184" | ||
| + | }, | ||
| + | "DepartureTime": "09:00:00", | ||
| + | "ArrivalTime": "11:00:00", | ||
| + | "TotalTimeOfFlight": null, | ||
| + | "FlightDetails": [ | ||
| + | { | ||
| + | "Tariff": { | ||
| + | "Key": 113, | ||
| + | "Code": "NSU", | ||
| + | "Name": "Экономический класс(внешняя система)" | ||
| + | }, | ||
| + | "IsCommission": false, | ||
| + | "Cost": 313, | ||
| + | "QuotaStatus": { | ||
| + | "PlacesStatus": 1, | ||
| + | "FreePlaces": 0, | ||
| + | "IsFewPlaces": false | ||
| + | }, | ||
| + | "PartnerId": 10767, | ||
| + | "ByPax": false, | ||
| + | "Partner": { | ||
| + | "Key": 0, | ||
| + | "Value": null | ||
| + | } | ||
| + | } | ||
| + | ], | ||
| + | "FlightSetting": { | ||
| + | "ServiceId": 1, | ||
| + | "PatternId": 0, | ||
| + | "FlightId": 0 | ||
| + | }, | ||
| + | "FlightSourceMode": 0, | ||
| + | "Id": 0, | ||
| + | "SvKey": 1, | ||
| + | "IsSubCode1": true, | ||
| + | "IsSubCode2": false, | ||
| + | "IsPartnerBasedOn": false, | ||
| + | "Day": 1, | ||
| + | "DurationInNight": 0, | ||
| + | "BeginDateTime": "2021-10-25T09:00:00", | ||
| + | "EndDateTime": "2021-10-25T11:00:00", | ||
| + | "IsHooded": false, | ||
| + | "IsDeleted": false, | ||
| + | "IsNotCalculate": false, | ||
| + | "PacketId": 197, | ||
| + | "Index": 0 | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Получение семейств тарифов авиаперелетов из внешней системы (GetGDSFlightFareFamilies)=== | ||
| + | Метод получает семейства тарифов для авиаперелетов из внешней системы. | ||
| + | * Формат запроса: | ||
| + | ** POST .../TourSearchOwin/GetGDSFlightFareFamilies? | ||
| + | |||
| + | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| + | ** '''Content-Type *''' – application/json | ||
| + | |||
| + | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
| + | ** '''flightId''' – ID внешнего перелета | ||
| + | ** '''providerId''' – ID внешнего провайдера | ||
| + | ** '''languageCode''' – код локализации | ||
| + | ** '''passengers''' – информация о пассажирах | ||
| + | *** '''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''' – гражданство | ||
| + | *** '''Age''' – количество полных лет на момент окончания тура | ||
| + | ** '''currency''' – валюта | ||
| + | ** '''price''' – стоимость | ||
| + | ** '''param''' – параметры перелета | ||
| + | *** '''flightsSource''' – параметры перелета | ||
| + | **** '''flightSettings''' – информация о шаблоне услуги авиаперелета | ||
| + | ***** '''templateId''' – идентификатор шаблона услуги | ||
| + | ***** '''patternId''' – идентификатор паттерна услуги (внутренняя информация из программы туров) | ||
| + | ***** '''serviceId''' – идентификатор класса услуги (внутренняя информация из программы туров) | ||
| + | **** '''service''' – информация об услуге авиаперелета | ||
| + | ***** '''ServiceType''' – тип услуги | ||
| + | ***** '''Code''' – ключ услуги | ||
| + | ***** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
| + | ***** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
| + | ***** '''CountryId''' – страна услуги | ||
| + | ***** '''CityId''' – город услуги | ||
| + | ***** '''PacketId''' – пакет услуги | ||
| + | ***** '''PartnerId''' – партнер услуги | ||
| + | ***** '''Day''' – день предоставления услуги | ||
| + | ***** '''DurationInNight''' – продолжительность услуги в ночах | ||
| + | **** '''price''' – стоимость перелета | ||
| + | **** '''quotaInfo''' – объект информация по квотам | ||
| + | ***** '''status''' – статус по квотам (есть места / нет мест / под запрос) | ||
| + | ***** '''freePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
| + | ***** '''isFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
| + | **** '''flightDateTimeLimitationInterval''' – | ||
| + | ***** '''startLimitation''' – начало тайм-лимита | ||
| + | ***** '''finishLimitation''' – объект тайм-лимита | ||
| + | ****** '''dateTimeString''' – дата окончания тайм-лимита | ||
| + | ****** '''serviceType''' – тип услуги | ||
| + | ****** '''serviceCode''' – код услуги | ||
| + | **** '''flightSourceMode''' – тип перелета (1 – локальный, 2 – из внешний системы) | ||
| + | *** '''passengers''' – информация о пассажирах | ||
| + | **** '''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''' – гражданство | ||
| + | **** '''Age''' – количество полных лет на момент окончания тура | ||
| + | *** '''tourDate''' – дата тура | ||
| + | *** '''tourCurrency''' – валюта тура | ||
| + | *** '''tourId''' – ключ программы тура | ||
| + | *** '''filterTariff''' – информация о тарифах | ||
| + | *** '''filterDeptime''' – информация о времени вылета | ||
| + | *** '''isCommission''' – признак комиссионной цены | ||
| + | *** '''baseFlightsParams''' – параметра авиаперелета | ||
| + | **** '''CityArrival''' – город прибытия | ||
| + | **** '''FlightCode''' – код авиаперелета | ||
| + | **** '''TariffKey''' – ключ тарифа | ||
| + | **** '''PartnerId''' – ключ партнера | ||
| + | *** '''isUpdated''' – информация об обновлении перелета | ||
| + | *** '''key''' – ключ запроса | ||
| + | *** '''tourDurationByDays''' – продолжительность перелета | ||
| + | *** '''langueCode''' – локализация | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''validationResult''' – информация о валидации | ||
| + | *** '''Errors''' – ошибки | ||
| + | *** '''Warnings''' – предупреждения | ||
| + | *** '''States''' – статус | ||
| + | *** '''IsValid''' – информация о результате | ||
| + | ** '''tariffSequencies''' – информация тарифах | ||
| + | *** '''flightId''' – идентификатор перелета | ||
| + | *** '''universalParametrsSequence''' – параметры тарифов | ||
| + | **** '''universalParametrs''' – массив параметров | ||
| + | ***** '''code''' – описание параметра тарифа | ||
| + | ***** '''priority''' – приоритет показа | ||
| + | ***** '''needToPay''' – нужна ли доплата | ||
| + | ***** '''shortDescriptions''' – краткое описание | ||
| + | ****** '''code''' – код | ||
| + | ****** '''value''' – значение | ||
| + | *** '''price''' – стоимость | ||
| + | *** '''deltaPrice''' – разница в цене | ||
| + | *** '''timeLimit''' – тайм-лимит | ||
| + | *** '''segments''' – сегменты | ||
| + | *** '''depAirportCode''' – код аэропорта отправления | ||
| + | *** '''depCityCode''' – код города отправления | ||
| + | *** '''arrAirportCode''' – код аэропорта прибытия | ||
| + | *** '''arrCityCode''' – код города прибытия | ||
| + | |||
| + | |||
| + | <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> | ||
| + | Вызов метода GetGDSFlightFareFamilies | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | POST http://localhost:9000/TourSearchOwin/GetGDSFlightFareFamilies? HTTP/1.1 | ||
| + | Content-Type: application/json | ||
| + | |||
| + | { | ||
| + | "flightId": "17554943020000", | ||
| + | "providerId": 82, | ||
| + | "languageCode": "ru", | ||
| + | "passengers": [{ | ||
| + | "IsMain": true, | ||
| + | "Number": 1, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "", | ||
| + | "LastName": "", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "", | ||
| + | "LastNameRus": "", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": "", | ||
| + | "BirthDayString": "", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": 17 | ||
| + | }, { | ||
| + | "IsMain": false, | ||
| + | "Number": 2, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "", | ||
| + | "LastName": "", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "", | ||
| + | "LastNameRus": "", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": "", | ||
| + | "BirthDayString": "", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": 17 | ||
| + | } | ||
| + | ], | ||
| + | "currency": "$", | ||
| + | "price": 147, | ||
| + | "param": { | ||
| + | "flightsSource": [{ | ||
| + | "flightSettings": { | ||
| + | "templateId": 1, | ||
| + | "patternId": 0, | ||
| + | "serviceId": 0 | ||
| + | }, | ||
| + | "service": { | ||
| + | "serviceType": 1, | ||
| + | "code": 1084, | ||
| + | "subCode1": 67, | ||
| + | "subCode2": 1, | ||
| + | "countryId": 90, | ||
| + | "cityId": 35, | ||
| + | "packetId": 1037, | ||
| + | "partnerId": 12792, | ||
| + | "day": 1, | ||
| + | "durationInNight": 0 | ||
| + | }, | ||
| + | "price": 146.44, | ||
| + | "quotaInfo": { | ||
| + | "status": 4, | ||
| + | "freePlaces": 0, | ||
| + | "isFewPlaces": false | ||
| + | }, | ||
| + | "flightDateTimeLimitationInterval": { | ||
| + | "startLimitation": null, | ||
| + | "finishLimitation": { | ||
| + | "dateTimeString": "2021-01-30T21:40:00", | ||
| + | "serviceType": 3, | ||
| + | "serviceCode": 178 | ||
| + | } | ||
| + | }, | ||
| + | "flightSourceMode": 2 | ||
| + | } | ||
| + | ], | ||
| + | "passengers": [{ | ||
| + | "IsMain": true, | ||
| + | "Number": 1, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "", | ||
| + | "LastName": "", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "", | ||
| + | "LastNameRus": "", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": "", | ||
| + | "BirthDayString": "", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": 17 | ||
| + | }, { | ||
| + | "IsMain": false, | ||
| + | "Number": 2, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "", | ||
| + | "LastName": "", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "", | ||
| + | "LastNameRus": "", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": "", | ||
| + | "BirthDayString": "", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": 17 | ||
| + | } | ||
| + | ], | ||
| + | "tourDate": "2021-01-30T00:00:00", | ||
| + | "tourCurrency": "$", | ||
| + | "tourId": 100008958, | ||
| + | "filterTariff": {}, | ||
| + | "filterDeptime": ["all"], | ||
| + | "isCommission": true, | ||
| + | "baseFlightsParams": [{ | ||
| + | "CityArrival": 35, | ||
| + | "FlightCode": 1084, | ||
| + | "TariffKey": 67, | ||
| + | "PartnerId": 12792 | ||
| + | } | ||
| + | ], | ||
| + | "isUpdated": false, | ||
| + | "key": 0, | ||
| + | "tourDurationByDays": "11", | ||
| + | "langueCode": "ru" | ||
| + | } | ||
} | } | ||
| + | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Возвращаемый результат метода | + | Возвращаемый результат метода GetGDSFlightFareFamilies (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
{ | { | ||
| − | + | "validationResult": { | |
| − | + | "Errors": [], | |
| − | + | "Warnings": null, | |
| − | + | "States": null, | |
| − | + | "IsValid": true | |
| − | + | }, | |
| − | + | "tariffSequencies": [{ | |
| − | + | "flightId": "17554961000000", | |
| − | + | "universalParametrsSequence": [{ | |
| − | + | "universalParametrs": [{ | |
| − | + | "code": "description", | |
| − | + | "priority": 0, | |
| − | + | "needToPay": "Free", | |
| − | + | "shortDescriptions": [{ | |
| − | + | "code": "RU", | |
| − | + | "value": "Минимум" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "code": "carry_on", | |
| − | + | "priority": 1, | |
| − | + | "needToPay": "Free", | |
| − | + | "shortDescriptions": [{ | |
| − | + | "code": "RU", | |
| − | + | "value": "5 кг (40x30x20 см)" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "code": "carry_on", | |
| − | + | "priority": 2, | |
| − | + | "needToPay": "Charge", | |
| − | + | "shortDescriptions": [{ | |
| − | + | "code": "RU", | |
| − | + | "value": "10 кг (55x40x25 см)" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "code": "baggage", | |
| − | + | "priority": 3, | |
| − | + | "needToPay": "Charge", | |
| − | + | "shortDescriptions": [{ | |
| − | + | "code": "RU", | |
| − | + | "value": "платный" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "code": "exchangeable", | |
| − | + | "priority": 4, | |
| − | + | "needToPay": "Charge", | |
| − | + | "shortDescriptions": [{ | |
| − | + | "code": "RU", | |
| − | + | "value": "Обмен разрешен со сбором" | |
| − | + | } | |
| − | + | ] | |
| − | + | }, { | |
| − | + | "code": "refundable", | |
| − | + | "priority": 5, | |
| − | + | "needToPay": "NotAvailable", | |
| − | + | "shortDescriptions": [{ | |
| − | + | "code": "RU", | |
| − | + | "value": "Возврат запрещен" | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | } | + | ] |
| − | </syntaxhighlight> | + | } |
| − | </TD></TR></TABLE> | + | ], |
| − | </div></div><br /> | + | "price": 147, |
| + | "deltaPrice": 0, | ||
| + | "timeLimit": "22.01.2021 4:08:00", | ||
| + | "segments": [{ | ||
| + | "depAirportCode": "VKO", | ||
| + | "depCityCode": "MOW", | ||
| + | "arrAirportCode": "VIE", | ||
| + | "arrCityCode": "VIE" | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | ], | ||
| + | "isDone": true | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Загрузка филиалов (Branches) начиная с релиза 15.3=== | ||
| + | Метод производит выгрузку филиалов бронирования. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/Branches? | ||
| + | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
| + | ** '''ids''' – массив ключей филиалов | ||
| + | ** '''cityKey''' – фильтр по городу филиала (если 0 или не задан, то выбираются все филиалы) | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''Key''' – ключ филиала (ключ партнера) | |
| − | * | + | ** '''Value''' – название филиала (название партнера) |
| − | * | ||
| − | * Принимаемые параметры headers ( '''*''' – обязательный): | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример |
| − | ** '''Content-Type *''' – application/json | + | <div class="mw-collapsible-content"> |
| − | ** ''' | + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> |
| + | Вызов метода Branches | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/Branches? | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода Branches (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [{ | ||
| + | "Key": 12848, | ||
| + | "Value": "Филиал 1" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 12849, | ||
| + | "Value": "Филиал 2" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 12850, | ||
| + | "Value": "Филиал 3" | ||
| + | }] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | |||
| + | ===Загрузка ведущих менеджеров (Users) начиная с релиза 15.3=== | ||
| + | Метод производит выгрузку ведущих менеджеров. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/Users? | ||
| + | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
| + | ** '''ids''' – массив ключей ведущих менеджеров | ||
| + | ** '''branchKey''' – ключ филиала бронирования, к которому они привязаны | ||
| + | |||
| + | * Возвращаемый результат: | ||
| + | ** '''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> | ||
| + | Вызов метода Users | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/Users? | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода Users (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [{ | ||
| + | "Key": 1532, | ||
| + | "Value": "Иванов И." | ||
| + | }, | ||
| + | { | ||
| + | "Key": 12849, | ||
| + | "Value": "Петров П." | ||
| + | }] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | |||
| + | ===Расчет путевки (CalculateReservation)=== | ||
| + | Метод производит расчет стоимости путевки. | ||
| + | * Формат запроса: | ||
| + | ** POST .../TourSearchOwin/CalculateReservation?nodeId=2147483647 | ||
| + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
| + | |||
| + | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
| + | ** '''Content-Type *''' – application/json | ||
| + | |||
| + | * Принимаемые параметры POST запроса: | ||
| + | ** '''TourProgramId *''' – ключ турпрограммы | ||
| + | ** '''BeginDate *''' – дата начала тура | ||
| + | ** '''Duration *''' – продолжительность тура | ||
| + | ** '''Currency *''' – код валюты | ||
| + | ** '''initialPrice *''' – объект изначальная цена | ||
| + | *** '''price *''' – цена | ||
| + | *** '''currency *''' – код валюты | ||
| + | ** '''Services *''' – массив услуг | ||
| + | *** '''Service *''' – объект услуги (отель/круиз, авиаперелет, трансфер или др.) | ||
| + | **** '''ServiceType *''' – тип услуги (поле ''sv_key'' из таблицы ''service'') | ||
| + | **** '''Code *''' – код услуги | ||
| + | **** '''SubCode1 *''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги | ||
| + | **** '''SubCode2 *''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги | ||
| + | **** '''Packet *''' – ключ пакета услуги | ||
| + | **** '''Partner *''' – ключ партнера услуги | ||
| + | **** '''Day *''' – день предоставления услуги | ||
| + | **** '''DurationInNight *''' – продолжительность услуги в ночах | ||
| + | **** '''City *''' – ключ города | ||
| + | **** '''Country *''' – страна услуги | ||
| + | **** '''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 – инфант) | ||
| + | *** '''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 *''' – гражданство | ||
| + | *** '''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''' – количество туристов на услуге |
| − | *** ''' | + | **** '''Attributes''' – битовая маска атрибутов |
| − | *** ''' | + | **** '''Type''' – тип услуги (основная/дополнительная) |
| − | *** ''' | + | **** '''Brutto''' – цена брутто |
| − | *** ''' | + | **** '''NationalBrutto''' – цена брутто в национальной валюте |
| − | *** ''' | + | **** '''TotalBrutto''' – итоговое брутто |
| − | *** ''' | + | ** '''TourName''' – название тура |
| − | *** ''' | + | ** '''BookingConditions''' – разметка условия бронирования |
| − | *** ''' | + | ** '''EndDate''' – дата окончания тура |
| − | + | ** '''DurationInNights''' – продолжительность тура в ночах | |
| − | + | ** '''NationalCurrency''' – код национальной валюты | |
| − | + | ** '''PromoDiscount''' – числовое значение скидки полученное после ввода промокода, либо дисконтной карты | |
| − | + | ** '''PromoTotalDiscount''' – значение скидки в валюте тура | |
| − | + | ** '''PromoNationalDiscount''' – значение скидки в национальной валюте | |
| − | + | ** '''PromoIsDiscountPercent''' – обозначение типа скидки в процентах. Значение может быть: | |
| − | + | ***'''true''' – скидка по промокоду, либо дисконтной карты предоставляется в процентах | |
| − | + | *** '''false''' – скидка по промокоду, либо дисконтной карты предоставляется в фиксированном значении, согласно валюте тура | |
| − | + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | |
| − | *** ''' | + | |
| − | *** ''' | + | |
| − | + | <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> | |
| − | + | Вызов метода CalculateReservation | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | POST http://localhost:9000/TourSearchOwin/CalculateReservation?nodeId=2147483647 HTTP/1.1 | |
| − | + | Content-Type: application/json | |
| − | + | ||
| − | + | { | |
| − | + | "tourProgramId": 100003404, | |
| − | + | "beginDate": "2018-04-16T00:00:00", | |
| − | + | "duration": 8, | |
| − | + | "currency": "EU", | |
| − | + | "initialPrice": { | |
| − | + | "price": 122, | |
| − | + | "currency": "EU" | |
| − | + | }, | |
| − | + | "services": [{ | |
| − | + | "Service": { | |
| − | + | "ServiceType": 3, | |
| − | + | "Code": 707, | |
| − | + | "SubCode1": 10468, | |
| − | + | "SubCode2": 4, | |
| − | + | "Packet": 779, | |
| − | + | "Partner": 12667, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 7, | |
| − | + | "City": 35, | |
| − | + | "Country": 90, | |
| − | + | "Attributes": 0, | |
| − | + | "IsRemovable": false, | |
| − | + | "Type": 1, | |
| − | + | "IsHooded": false, | |
| − | + | "IsNotCalculated": false, | |
| − | + | "BeginDateTimeString": "2018-04-16T11:59:00", | |
| − | + | "EndDateTimeString": "2018-04-23T11:59:00", | |
| − | + | "TemplateId": 1, | |
| − | + | "Cost": 114, | |
| − | + | "ByPax": false, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "Index": 1, | |
| − | + | "IsRoute": true, | |
| − | + | "ServiceTemplateIndex": 1, | |
| − | + | "RemoteId": null, | |
| − | + | "IsCommission": true, | |
| − | + | "BaseFlightsParams": [{ | |
| − | + | "CityArrival": 35, | |
| − | + | "FlightCode": 882, | |
| − | + | "TariffKey": 67, | |
| − | + | "PartnerId": 12668 | |
| − | + | }, | |
| − | + | { | |
| − | + | "CityArrival": 1, | |
| − | + | "FlightCode": 774, | |
| − | + | "TariffKey": 67, | |
| − | + | "PartnerId": 10760 | |
| − | + | }] | |
| − | + | }, | |
| − | + | "TouristNumbersList": [1, | |
| − | + | 2] | |
| − | + | }, | |
| − | + | { | |
| − | + | "Service": { | |
| − | + | "ServiceType": 12, | |
| − | + | "Code": 347, | |
| − | + | "SubCode1": 42, | |
| − | + | "SubCode2": null, | |
| − | + | "Packet": 777, | |
| − | + | "Partner": 10760, | |
| − | + | "Day": 8, | |
| − | + | "DurationInNight": 0, | |
| − | + | "City": null, | |
| − | + | "Country": 460, | |
| − | + | "Attributes": 32768, | |
| − | + | "Type": 2, | |
| − | + | "IsHooded": false, | |
| − | + | "IsNotCalculated": true, | |
| − | + | "EndDateTimeString": false, | |
| − | + | "Cost": 10, | |
| − | + | "ByPax": false, | |
| − | + | "QuotaStatus": 0, | |
| − | + | "Index": 3, | |
| − | + | "IsRoute": false, | |
| − | + | "ServiceTemplateIndex": 3, | |
| − | + | "RemoteId": null, | |
| − | + | "IsCommission": true, | |
| − | + | "BaseFlightsParams": [{ | |
| − | + | "CityArrival": 35, | |
| − | + | "FlightCode": 882, | |
| − | + | "TariffKey": 67, | |
| − | + | "PartnerId": 12668 | |
| − | + | }, | |
| − | + | { | |
| − | + | "CityArrival": 1, | |
| − | + | "FlightCode": 774, | |
| − | + | "TariffKey": 67, | |
| − | + | "PartnerId": 10760 | |
| − | + | }] | |
| − | + | }, | |
| − | + | "TouristNumbersList": [1, | |
| − | + | 2] | |
| − | + | }], | |
| − | + | "tourists": [{ | |
| − | + | "IsMain": true, | |
| − | + | "Number": 1, | |
| − | + | "AgeType": 0, | |
| − | + | "MaleFemaleSex": 0, | |
| − | + | "FirstName": "", | |
| − | + | "LastName": "", | |
| − | + | "Patronymic": "", | |
| − | + | "FirstNameRus": "", | |
| − | + | "LastNameRus": "", | |
| − | + | "PatronymicRus": "", | |
| − | + | "InternationalPassportSeries": "", | |
| − | + | "InternationalPassportNumber": "", | |
| − | + | "InternationalPassportDateOfIssue": "", | |
| − | + | "InternationalPassportDateOfIssueString": "", | |
| − | + | "InternationalPassportDateOfExpiry": "", | |
| − | + | "InternationalPassportDateOfExpiryString": "", | |
| − | + | "internationalPassportByWhom": "", | |
| − | + | "PassportSeries": "", | |
| − | + | "PassportNumber": "", | |
| − | + | "PassportDateOfIssue": "", | |
| − | + | "PassportDateOfIssueString": "", | |
| − | + | "PassportByWhom": "", | |
| − | + | "Citizenship": "", | |
| − | + | "Phone": "", | |
| − | + | "Email": "", | |
| + | "BirthDay": null, | ||
| + | "BirthDayString": "", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": null | ||
| + | }, | ||
| + | { | ||
| + | "IsMain": false, | ||
| + | "Number": 2, | ||
| + | "AgeType": 0, | ||
| + | "MaleFemaleSex": 0, | ||
| + | "FirstName": "", | ||
| + | "LastName": "", | ||
| + | "Patronymic": "", | ||
| + | "FirstNameRus": "", | ||
| + | "LastNameRus": "", | ||
| + | "PatronymicRus": "", | ||
| + | "InternationalPassportSeries": "", | ||
| + | "InternationalPassportNumber": "", | ||
| + | "InternationalPassportDateOfIssue": "", | ||
| + | "InternationalPassportDateOfIssueString": "", | ||
| + | "InternationalPassportDateOfExpiry": "", | ||
| + | "InternationalPassportDateOfExpiryString": "", | ||
| + | "internationalPassportByWhom": "", | ||
| + | "PassportSeries": "", | ||
| + | "PassportNumber": "", | ||
| + | "PassportDateOfIssue": "", | ||
| + | "PassportDateOfIssueString": "", | ||
| + | "PassportByWhom": "", | ||
| + | "Citizenship": "", | ||
| + | "Phone": "", | ||
| + | "Email": "", | ||
| + | "BirthDay": null, | ||
| + | "BirthDayString": "", | ||
| + | "BirthPlace": "", | ||
| + | "CitizenID": "", | ||
| + | "Age": null | ||
| + | }], | ||
| + | "Day": "день", | ||
| + | "Day2": "дня", | ||
| + | "Days": "дней", | ||
| + | "Night": "ночь", | ||
| + | "Night2": "ночи", | ||
| + | "Nights": "ночей", | ||
| + | "adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги", | ||
| + | "at": "на", | ||
| + | "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)" | ||
| + | "PromocodeId":"", | ||
| + | "DiscountCardId":"95" | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CalculateReservation (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | + | "IsValid": true, | |
| − | + | "ErrorMessage": "", | |
| − | + | "CalculatedReservation": { | |
| − | + | "TourKey": 100003404, | |
| − | + | "BeginDate": "2018-04-16T00:00:00", | |
| − | + | "Duration": 8, | |
| − | + | "Currency": "EU", | |
| − | + | "CalculatedServicesPrice": 122.0, | |
| − | + | "ChangedPrice": 34.0, | |
| − | + | "Price": 156.0, | |
| − | + | "TotalPrice": 156.0, | |
| − | + | "IsDiscountIsPercent": true, | |
| − | + | "NationalChangedPrice": 2411.3038000000000000000000023, | |
| − | + | "NationalTotalDiscount": 0.0, | |
| − | + | "NationalTotalPrice": 11063.629200000000000000000011, | |
| − | + | "NatinoalCalculatedServicesPrice": 8652.325400000000000000000008, | |
| − | " | + | "NationalPrice": 11063.629200000000000000000011, |
| − | " | + | "Discount": 0.0, |
| − | " | + | "TotalDiscount": 0.0, |
| − | " | + | "PromoDiscount": 50.0, |
| − | + | "PromoTotalDiscount": 10.0, | |
| − | + | "PromoNationalDiscount": 10.0, | |
| − | + | "PromoIsDiscountPercent": true, | |
| − | + | "ServiceTourists": [{ | |
| − | + | "ServiceType": 1, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 0, | |
| − | + | "Time": "10:00:00", | |
| − | + | "Name": "А_П::Москва/Вена/3G1111, DME-VIE1, 10:00-11:59/C Бизнес класс", | |
| − | + | "TouristCount": 2, | |
| − | + | "Attributes": 0, | |
| − | + | "Type": 1, | |
| − | + | "Brutto": 6.0, | |
| − | + | "NationalBrutto": 425.52420000000000000000000041, | |
| − | + | "TotalBrutto": 6.0 | |
| − | + | }, | |
| − | + | { | |
| − | + | "ServiceType": 3, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 7, | |
| − | + | "Time": "11:59:00", | |
| − | + | "Name": "HOTEL::Вена/Beim Theresianum-4*Boutique,7 ночей/Double(Standart133),2Ad/BB2 Завтрак", | |
| − | + | "TouristCount": 2, | |
| − | + | "Attributes": 0, | |
| − | + | "Type": 1, | |
| − | + | "Brutto": 114.0, | |
| − | + | "NationalBrutto": 8084.959800000000000000000008, | |
| − | + | "TotalBrutto": 114.0 | |
| − | + | }, | |
| − | + | { | |
| − | + | "ServiceType": 1, | |
| − | + | "Day": 8, | |
| − | + | "DurationInNight": 0, | |
| − | + | "Time": "00:00:00", | |
| − | + | "Name": "А_П::Вена/Москва/7U222, VIE1-DME, 00:00-00:00/C Бизнес класс", | |
| − | + | "TouristCount": 2, | |
| − | + | "Attributes": 0, | |
| − | + | "Type": 1, | |
| − | + | "Brutto": 2.0, | |
| − | + | "NationalBrutto": 141.84140000000000000000000014, | |
| − | + | "TotalBrutto": 2.0 | |
| − | + | }] | |
| − | + | }, | |
| − | + | "TourName": "Удалить этот тур", | |
| − | + | "BookingConditions": "Условия бронирования тура.</p>", | |
| − | + | "EndDate": "2018-04-23T00:00:00", | |
| − | + | "DurationInNights": 7, | |
| − | + | "NationalCurrency": "рб" | |
| − | + | } | |
| − | + | </syntaxhighlight> | |
| − | + | </TD></TR></TABLE> | |
| − | + | </div></div><br /> | |
| − | + | ||
| − | + | ===Бронирование путевки (CreateReservation)=== | |
| − | + | Метод производит бронирование путевки.<br /> | |
| − | + | При бронировании проверяется корректность заполнения обязательных полей туристов (регулируется общими [[Мастер-Тур(15):Программа туров. Настройки#Настройки отображения информации о туристах|настройками]], либо в справочнике [[Мастер-Тур(15):Страны#Настроить информацию о туристах|Страны]]). В случае, если обязательные поля не заполнены, возвращается ошибка с сообщением, бронь не создается. | |
| − | + | ||
| − | + | * Формат запроса: | |
| − | + | ** PUT .../TourSearchOwin/CreateReservation/1?nodeId=2147483647 | |
| − | + | , где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | |
| − | + | ||
| − | + | * Принимаемые параметры headers ( '''*''' – обязательный): | |
| − | + | ** '''Content-Type *''' – application/json | |
| − | + | ** '''Authorization *''' – token_type + access_token (полученные из метода .../TourSearchOwin/Token?) | |
| − | + | ||
| − | + | * Принимаемые параметры PUT запроса: | |
| − | + | ** '''TourProgramId *''' – ключ турпрограммы | |
| − | + | ** '''BeginDate *''' – дата начала тура (YYYY-MM-DDThh:mm:ss) | |
| − | + | ** '''Duration *''' – продолжительность тура | |
| − | + | ** '''Currency *''' – код валюты | |
| − | + | ** '''Services *''' – массив услуг | |
| − | + | *** '''Service *''' – объект услуги (отель/круиз, авиаперелет, трансфер или др.) | |
| − | + | **** '''ServiceType *''' – тип услуги (поле ''sv_key'' из таблицы ''service'') | |
| − | + | **** '''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 *''' – ключ партнера прямого авиаперелета | |
| − | + | ***** '''CityArrival *''' – ключ города прибытия обратного перелета | |
| − | + | ***** '''FlightCode *''' – ключ обратного авиаперелета | |
| − | + | ***** '''TariffKey *''' – ключ тарифа обратного авиаперелета | |
| − | + | ***** '''PartnerId *''' – ключ партнера обратного авиаперелета | |
| − | + | *** '''TouristNumbersList *''' – массив туристов, привязанных к услуге | |
| − | + | ** '''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''' – Комментарий к путевке (сохраняется как сообщения в истории путевки) ''Может быть с пустым значением'' | |
| − | + | ** '''DiscountCardId ''' – ID основания для скидки (дисконтной карты) полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка основания для скидки (CheckCauseDiscount)|CheckCauseDiscount]] ''Может быть с пустым значением'' | |
| − | + | ** '''PromocodeId ''' – ID промокода полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка промокода (CheckPromocode)|CheckPromocode]] ''Может быть с пустым значением'' | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | * Возвращаемый результат: | |
| − | + | ** '''Reservation''' – объект путевки | |
| − | + | *** '''$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''' – количество дней услуги (для услуги Отель ("SVKey": 3) количество ночей услуги) | ||
| + | **** '''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:1200px">Пример | + | <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> | ||
| − | + | Вызов метода CreateReservation | |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| + | PUT http://localhost:9000/TourSearchOwin/CreateReservation/1?nodeId=2147483647 HTTP/1.1 | ||
| + | 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 | ||
{ | { | ||
| − | " | + | "TourProgramId": 100000038, |
| − | + | "BeginDate": "2021-01-01T00:00:00", | |
| − | + | "Duration": 9, | |
| − | + | "Currency": "$", | |
| − | + | "Services": [{ | |
| − | + | "Service": { | |
| − | + | "ServiceType": 3, | |
| − | + | "Code": 702, | |
| − | + | "SubCode1": 1113, | |
| − | + | "SubCode2": 2, | |
| − | + | "Packet": 209, | |
| − | + | "Partner": 10760, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 8, | |
| − | + | "City": 35, | |
| − | + | "Country": 90, | |
| − | + | "Attributes": 0, | |
| − | + | "IsRemovable": false, | |
| − | + | "Type": 1, | |
| − | + | "IsHooded": false, | |
| − | + | "IsNotCalculated": false, | |
| − | + | "BeginDateTimeString": "2021-01-01T16:30:00", | |
| − | + | "EndDateTimeString": "2021-01-09T16:30:00", | |
| − | + | "TemplateId": 2, | |
| − | + | "Cost": 0, | |
| − | + | "ByPax": true, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | + | "FreePlaces": 0, | |
| − | + | "IsFewPlaces": false | |
| − | + | }, | |
| − | + | "Index": 1, | |
| − | + | "IsRoute": true, | |
| − | + | "ServiceTemplateIndex": 1, | |
| − | + | "RemoteId": null, | |
| − | + | "IsCommission": true, | |
| − | + | "BaseFlightsParams": [{ | |
| − | " | + | "CityArrival": 35, |
| − | + | "FlightCode": 570, | |
| − | + | "TariffKey": 67, | |
| − | + | "PartnerId": 10760 | |
| − | + | }, { | |
| − | + | "CityArrival": 1, | |
| − | + | "FlightCode": 572, | |
| − | + | "TariffKey": 67, | |
| − | + | "PartnerId": 10760 | |
| − | + | } | |
| − | + | ] | |
| − | + | }, | |
| − | + | "TouristNumbersList": [1, 2] | |
| − | + | }, { | |
| − | + | "Service": { | |
| − | + | "ServiceType": 1, | |
| − | + | "Code": 570, | |
| − | + | "SubCode1": 67, | |
| − | + | "SubCode2": 1, | |
| − | + | "Packet": 209, | |
| − | + | "Partner": 10760, | |
| − | + | "Day": 1, | |
| − | + | "DurationInNight": 0, | |
| − | " | + | "City": 35, |
| − | " | + | "Country": 90, |
| − | " | + | "Attributes": 0, |
| − | + | "IsRemovable": false, | |
| − | + | "Type": 1, | |
| − | + | "IsHooded": false, | |
| − | + | "IsNotCalculated": false, | |
| − | + | "BeginDateTimeString": "2021-01-01T14:00:00", | |
| − | " | + | "EndDateTimeString": "2021-01-01T16:30:00", |
| − | "Code": | + | "TemplateId": 1, |
| + | "Cost": 0, | ||
| + | "ByPax": true, | ||
| + | "QuotaStatus": { | ||
| + | "PlacesStatus": 4, | ||
| + | "FreePlaces": 0, | ||
| + | "IsFewPlaces": false | ||
| + | }, | ||
| + | "Index": 0, | ||
| + | "IsRoute": true, | ||
| + | "ServiceTemplateIndex": 0, | ||
| + | "IsCommission": true, | ||
| + | "BaseFlightsParams": [{ | ||
| + | "CityArrival": 35, | ||
| + | "FlightCode": 570, | ||
| + | "TariffKey": 67, | ||
| + | "PartnerId": 10760 | ||
| + | }, { | ||
| + | "CityArrival": 1, | ||
| + | "FlightCode": 572, | ||
| + | "TariffKey": 67, | ||
| + | "PartnerId": 10760 | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | "TouristNumbersList": [1, 2] | ||
| + | }, { | ||
| + | "Service": { | ||
| + | "ServiceType": 1, | ||
| + | "Code": 572, | ||
"SubCode1": 67, | "SubCode1": 67, | ||
| − | "SubCode2": | + | "SubCode2": 35, |
| − | " | + | "Packet": 209, |
| − | " | + | "Partner": 10760, |
| − | " | + | "Day": 9, |
| − | " | + | "DurationInNight": 0, |
| − | " | + | "City": 1, |
| − | " | + | "Country": 460, |
| − | " | + | "Attributes": 0, |
| − | " | + | "IsRemovable": false, |
| − | " | + | "Type": 1, |
| − | " | + | "IsHooded": false, |
| − | " | + | "IsNotCalculated": false, |
| − | " | + | "BeginDateTimeString": "2021-01-09T14:00:00", |
| − | " | + | "EndDateTimeString": "2021-01-09T16:45:00", |
| − | " | + | "TemplateId": 3, |
| − | + | "Cost": 0, | |
| − | + | "ByPax": true, | |
| − | + | "QuotaStatus": { | |
| − | + | "PlacesStatus": 4, | |
| − | " | + | "FreePlaces": 0, |
| − | + | "IsFewPlaces": false | |
| − | " | + | }, |
| − | + | "Index": 2, | |
| − | + | "IsRoute": true, | |
| − | " | + | "ServiceTemplateIndex": 2, |
| − | + | "IsCommission": true, | |
| − | + | "BaseFlightsParams": [{ | |
| − | + | "CityArrival": 35, | |
| − | + | "FlightCode": 570, | |
| − | + | "TariffKey": 67, | |
| − | + | "PartnerId": 10760 | |
| − | + | }, { | |
| − | + | "CityArrival": 1, | |
| − | + | "FlightCode": 572, | |
| − | + | "TariffKey": 67, | |
| − | " | + | "PartnerId": 10760 |
| − | |||
| − | |||
| − | |||
| − | " | ||
| − | " | ||
| − | " | ||
| − | " | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | " | ||
} | } | ||
] | ] | ||
| − | }, { | + | }, |
| − | + | "TouristNumbersList": [1, 2] | |
| − | + | } | |
| − | + | ], | |
| − | + | "Tourists": [{ | |
| − | + | "IsMain": true, | |
| − | + | "Number": 1, | |
| − | + | "AgeType": 0, | |
| − | + | "MaleFemaleSex": 0, | |
| − | + | "FirstName": "IVAN", | |
| − | + | "LastName": "IVANOV", | |
| − | + | "Patronymic": "", | |
| − | + | "FirstNameRus": "IVAN", | |
| − | + | "LastNameRus": "IVANOV", | |
| − | + | "PatronymicRus": "", | |
| − | + | "InternationalPassportSeries": "", | |
| − | + | "InternationalPassportNumber": "", | |
| − | + | "InternationalPassportDateOfIssue": "", | |
| − | + | "InternationalPassportDateOfIssueString": "", | |
| − | + | "InternationalPassportDateOfExpiry": "", | |
| − | + | "InternationalPassportDateOfExpiryString": "", | |
| − | + | "internationalPassportByWhom": "", | |
| − | + | "PassportSeries": "", | |
| − | + | "PassportNumber": "", | |
| − | + | "PassportDateOfIssue": "", | |
| − | + | "PassportDateOfIssueString": "", | |
| − | + | "PassportByWhom": "", | |
| − | + | "Citizenship": "", | |
| − | + | "Phone": "", | |
| − | + | "Email": "", | |
| − | + | "BirthDay": "1980-01-01T00:00:00.000Z", | |
| − | + | "BirthDayString": "01.01.1980", | |
| − | + | "BirthPlace": "Москва", | |
| − | + | "CitizenID": "", | |
| − | + | "Age": 41 | |
| − | + | }, { | |
| − | + | "IsMain": false, | |
| − | + | "Number": 2, | |
| − | + | "AgeType": 0, | |
| − | + | "MaleFemaleSex": 0, | |
| − | + | "FirstName": "PETR", | |
| − | + | "LastName": "PETROV", | |
| − | + | "Patronymic": "", | |
| − | + | "FirstNameRus": "PETR", | |
| − | + | "LastNameRus": "PETROV", | |
| − | + | "PatronymicRus": "", | |
| − | + | "InternationalPassportSeries": "", | |
| − | + | "InternationalPassportNumber": "", | |
| − | + | "InternationalPassportDateOfIssue": "", | |
| − | + | "InternationalPassportDateOfIssueString": "", | |
| − | + | "InternationalPassportDateOfExpiry": "", | |
| − | + | "InternationalPassportDateOfExpiryString": "", | |
| − | + | "internationalPassportByWhom": "", | |
| − | + | "PassportSeries": "", | |
| − | + | "PassportNumber": "", | |
| − | + | "PassportDateOfIssue": "", | |
| − | + | "PassportDateOfIssueString": "", | |
| − | + | "PassportByWhom": "", | |
| − | + | "Citizenship": "", | |
| − | + | "Phone": "", | |
| − | + | "Email": "", | |
| − | + | "BirthDay": "1981-01-01T00:00:00.000Z", | |
| − | + | "BirthDayString": "01.01.1981", | |
| − | + | "BirthPlace": "Москва", | |
| − | + | "CitizenID": "", | |
| − | + | "Age": 40 | |
| − | + | } | |
| − | + | ], | |
| − | + | "TechnicalProblemsDuringUpdateFlights": false, | |
| − | + | "TimeLimit": null, | |
| − | + | "OwnerId": 95, | |
| − | + | "Day": "день", | |
| − | + | "Day2": "дня", | |
| − | + | "Days": "дней", | |
| − | + | "Night": "ночь", | |
| − | + | "Night2": "ночи", | |
| − | + | "Nights": "ночей", | |
| − | + | "adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги", | |
| − | + | "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)", | |
| − | + | "OrderInfoUrl": "http://localhost/MasterWeb/OrderInfo.aspx", | |
| − | + | "DogovorComment": "" | |
| − | + | "PromocodeId":"301", | |
| − | + | "DiscountCardId":"" | |
| − | + | ||
| − | + | } | |
| − | + | </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> | |
| − | + | Возвращаемый результат метода CreateReservation (в формате JSON) | |
| − | + | <syntaxhighlight lang="java" enclose="div"> | |
| − | + | { | |
| − | + | "Reservation": { | |
| − | + | "$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": 0, |
| − | " | + | "CrDate": "2020-10-12T15:02:29.013", |
| − | " | + | "Rate": "$", |
| − | " | + | "Advertise": 0, |
| − | " | + | "Locked": null, |
| − | " | + | "CauseDisc": null, |
| − | " | + | "PPaymentDate": null, |
| − | " | + | "PaymentDate": "2020-10-14T00:00:00+03:00", |
| − | " | + | "Procent": 1, |
| − | " | + | "TurDateBfrAnnul": null, |
| − | " | + | "ARKey": 0, |
| − | " | + | "Key": 40335, |
| − | " | + | "CodePartner": null, |
| − | " | + | "FilialKey": 1, |
| − | " | + | "IsOutDoc": 0, |
| − | " | + | "Notes": null, |
| − | "Connections": [{ | + | "DiscSumBfrAnn": null, |
| − | "$ref": 1 | + | "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": [{ | "Connections": [{ | ||
"$ref": 1 | "$ref": 1 | ||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
] | ] | ||
}, { | }, { | ||
| − | "$id": 9, | + | "$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": [{ | "Connections": [{ | ||
"$ref": 1 | "$ref": 1 | ||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
] | ] | ||
| − | }, { | + | } |
| − | "$id": | + | ], |
| − | " | + | "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": [{ | "Connections": [{ | ||
"$ref": 1 | "$ref": 1 | ||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
] | ] | ||
}, { | }, { | ||
| − | "$id": | + | "$id": 7, |
| − | "TUKey": | + | "DGCod": "AU10101003", |
| − | "DLKey": | + | "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, | "NumDoc": null, | ||
"NumRoom": 0, | "NumRoom": 0, | ||
| Строка 5022: | Строка 7770: | ||
"Area": null, | "Area": null, | ||
"DocDate": null, | "DocDate": null, | ||
| − | "Key": | + | "Key": 3770, |
"Connections": [{ | "Connections": [{ | ||
"$ref": 1 | "$ref": 1 | ||
}, { | }, { | ||
| − | "$ref": | + | "$ref": 3 |
}, { | }, { | ||
| − | "$ref": | + | "$ref": 6 |
} | } | ||
] | ] | ||
}, { | }, { | ||
| − | "$id": | + | "$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": 88653, | "TUKey": 88653, | ||
| − | "DLKey": | + | "DLKey": 202462, |
"NumDoc": null, | "NumDoc": null, | ||
"NumRoom": 0, | "NumRoom": 0, | ||
| Строка 5040: | Строка 7806: | ||
"Area": null, | "Area": null, | ||
"DocDate": null, | "DocDate": null, | ||
| − | "Key": | + | "Key": 3771, |
"Connections": [{ | "Connections": [{ | ||
"$ref": 1 | "$ref": 1 | ||
}, { | }, { | ||
| − | "$ref": | + | "$ref": 4 |
}, { | }, { | ||
"$ref": 6 | "$ref": 6 | ||
| Строка 5050: | Строка 7816: | ||
] | ] | ||
}, { | }, { | ||
| − | "$id": | + | "$id": 11, |
"TUKey": 88652, | "TUKey": 88652, | ||
| + | "DLKey": 202462, | ||
| + | "NumDoc": null, | ||
| + | "NumRoom": 0, | ||
| + | "Seat": null, | ||
| + | "Area": null, | ||
| + | "DocDate": null, | ||
| + | "Key": 3767, | ||
| + | "Connections": [{ | ||
| + | "$ref": 1 | ||
| + | }, { | ||
| + | "$ref": 4 | ||
| + | }, { | ||
| + | "$ref": 7 | ||
| + | } | ||
| + | ] | ||
| + | }, { | ||
| + | "$id": 12, | ||
| + | "TUKey": 88653, | ||
"DLKey": 202461, | "DLKey": 202461, | ||
"NumDoc": null, | "NumDoc": null, | ||
| Строка 5058: | Строка 7842: | ||
"Area": null, | "Area": null, | ||
"DocDate": null, | "DocDate": null, | ||
| − | "Key": | + | "Key": 3772, |
"Connections": [{ | "Connections": [{ | ||
"$ref": 1 | "$ref": 1 | ||
| Строка 5064: | Строка 7848: | ||
"$ref": 5 | "$ref": 5 | ||
}, { | }, { | ||
| − | "$ref": | + | "$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": [] | "DogovorMessages": [] | ||
| Строка 5092: | Строка 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''' – код путевки | |
| − | + | *** '''TurDate''' – дата начала тура | |
| − | + | *** '''TRKey''' – идентификатор тура | |
| − | + | *** '''CNKey''' – идентификатор страны | |
| − | + | *** '''CTKey''' – идентификатор города | |
| − | + | *** '''NMen''' – количество туристов | |
| − | + | *** '''Price''' – стоимость путевки | |
| − | + | *** '''Payed''' – оплаченная сумма | |
| − | + | *** '''NDay''' – продолжительность тура в днях | |
| + | *** '''MainMan''' – контактное лицо | ||
| + | *** '''MainManPhone''' – телефон контактного лица | ||
| + | *** '''MainManAddress''' – адрес лица, заключившего договор | ||
| + | *** '''MainManPassport''' – паспортные данные контактного лица | ||
| + | *** | ||
"$ref": 1 | "$ref": 1 | ||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
] | ] | ||
}, { | }, { | ||
| − | "$id": | + | "$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": [{ | "Connections": [{ | ||
"$ref": 1 | "$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", |
| − | ** '''Key''' – ключ программы туров | + | "ShortName": "I.", |
| − | ** '''Name''' – название программы туров | + | "Sex": 0, |
| − | ** '''UpdateDate''' – дата последнего изменения программы туров (или связанных с ней компонентов) | + | "FNameRus": "IVAN", |
| − | ** '''routes''' – массив возможных маршрутов в данной программе туров | + | "FNameLat": "IVAN", |
| − | *** '''departureCountryKey''' – страна начала поездки (для каждой страны начала поездки в одной программе тура будет отдельный маршрут) | + | "SNameRus": "", |
| − | *** '''departureCityKey''' – город начала поездки (для каждого города начала поездки в одной программе тура будет отдельный маршрут) | + | "SNameLat": "", |
| − | *** '''destinationCountryKeys''' – страны по туру (если в туре несколько услуг класса отель и они в разных странах, то будут возвращаться все страны отелей) | + | "BirthDay": "1980-01-01T00:00:00", |
| − | *** '''destinationCityKeys''' – города по туру (если в туре отели в нескольких городах, то будут возвращаться все города отелей) | + | "BirthCountry": null, |
| − | *** '''tourTypeKeys''' – типы туров для данной программы туров | + | "BirthCity": "Москва", |
| − | + | "Citizen": "", | |
| − | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | + | "PostIndex": null, |
| − | <div class="mw-collapsible-content"> | + | "PostCity": null, |
| − | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | + | "PostStreet": null, |
| − | Вызов метода TourProgram | + | "PostBild": null, |
| − | <syntaxhighlight lang="java" enclose="div"> | + | "PostFlat": null, |
| − | GET http://localhost:9000/TourSearchOwin/TourProgram? | + | "Phone": "", |
| − | </syntaxhighlight> | + | "PhoneCode": null, |
| − | Возвращаемый результат метода TourProgram (в формате JSON) | + | "PasportType": "", |
| − | <syntaxhighlight lang="java" enclose="div"> | + | "PasportNum": "", |
| − | [{ | + | "PasportDate": null, |
| − | "key": 100002353, | + | "PasportDateEnd": null, |
| − | "name": "Турпрограмма в Австрию", | + | "PasportByWhom": "", |
| − | "updateDate": "2018-09-25T13:48:13.847", | + | "Place": null, |
| − | "routes": [{ | + | "IsAnketa": null, |
| − | "departureCountryKey": 5, | + | "PaspRuser": "", |
| − | "departureCityKey": 218, | + | "PaspRuNum": "", |
| − | "destinationCountryKeys": [80], | + | "PaspRuDate": null, |
| − | "destinationCityKeys": [19, | + | "PaspRuByWhom": "", |
| − | 1051, | + | "ClientId": null, |
| − | 113], | + | "IsMain": 1, |
| − | "tourTypeKeys": [52] | + | "DGKey": 40335, |
| − | }, | + | "RealSex": 0, |
| − | { | + | "Email": "", |
| − | "departureCountryKey": 5, | + | "EnableSmsNotifications": 0, |
| − | "departureCityKey": 766, | + | "CitizenId": "", |
| − | "destinationCountryKeys": [80], | + | "Connections": [{ |
| − | "destinationCityKeys": [19, | + | "$ref": 1 |
| − | 1051, | + | } |
| − | 113], | + | ] |
| − | "tourTypeKeys": [52] | + | }, { |
| − | }] | + | "$id": 7, |
| − | }, | + | "DGCod": "AU10101003", |
| − | { | + | "Key": 88652, |
| − | "Key": 100004452, | + | "TurDate": "2021-01-01T00:00:00", |
| − | "Name": "Турпрограмма в Англию" | + | "NameRus": "PETROV", |
| − | "UpdateDate": "2018-06-30T10:09:35.22" | + | "NameLat": "PETROV", |
| − | "routes": [{ | + | "ShortName": "P.", |
| − | "departureCountryKey": -1, | + | "Sex": 0, |
| − | "departureCityKey": -1, | + | "FNameRus": "PETR", |
| − | "destinationCountryKeys": [80], | + | "FNameLat": "PETR", |
| − | "destinationCityKeys": [19], | + | "SNameRus": "", |
| − | "tourTypeKeys": [52, | + | "SNameLat": "", |
| − | 35] | + | "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> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Выгрузка информации о ценовых блоках (CostOfferDescriptions)=== | ||
| + | Метод принимает на вход ключи ценовых блоков и возвращает, прикреплённое к ним описание. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/CostOfferDescriptions? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''COKeysString''' * – ключи ценовых блоков через запятую | ||
| + | * Возвращаемый результат: | ||
| + | ** '''CostOfferImageInfo''' – коллекция объектов из двух полей: | ||
| + | *** '''IdCostOffer''' – ключ ценового блока | ||
| + | *** '''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"> | ||
| + | GET http://localhost:9000/TourSearchOwin/CostOfferDescriptions?COKeysString=15143 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CostOfferDescriptions (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | [ | ||
| + | { | ||
| + | "CostOfferImageInfo": { | ||
| + | "IdCostOffer": 15143, | ||
| + | "InfoText": "СПО до 01.01.2020" | ||
| + | }, | ||
| + | } | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | |||
| + | ===Получение капчи (GetCaptcha)=== | ||
| + | Метод возвращает капчу (используется при регистрации частного лица). | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/GetCaptcha? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''sessionId''' * – Id сессии | ||
| + | * Возвращаемый результат: | ||
| + | ** '''FileContents''' – файл капчи в бинарном виде | ||
| + | ** '''ContentType''' – расширение файла (image/jpeg) | ||
| + | ** '''FileDownloadName''' – имя файла | ||
| + | |||
| + | <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> | ||
| + | Вызов метода GetCaptcha | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/GetCaptcha?sessionId=cd5yr3wftltmorphuzwx0krh | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода GetCaptcha (в формате JSON) | ||
| + | <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> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Проверка капчи (CheckCaptcha)=== | ||
| + | Метод проверяет введенную капчу (используется при регистрации частного лица). | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/CheckCaptcha? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''captchaText''' * – текст капчи | ||
| + | ** '''sessionId''' * – Id сессии | ||
| + | * Возвращаемый результат: | ||
| + | ** '''true/false''' – результат проверки (false – капча или Id сессии неверные, 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> | ||
| + | Вызов метода CheckCaptcha | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/CheckCaptcha?captchaText=vf8an&sessionId=cd5yr3wftltmorphuzwx0krh | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CheckCaptcha (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | true | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Проверка 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"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода CheckMail | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/CheckMail?mail=test@megatec.ru | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода CheckMail (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | true | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Проверка туриста (checkTourist)=== | ||
| + | Метод служит для получения информации о путевке по номеру путевки и номеру паспорта туриста. | ||
| + | * Формат запроса: | ||
| + | ** 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="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода checkTourist | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | http://localhost:9000/TourSearchOwin/checkTourist?dogovorNumber=AU25120001&passport=1234567 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода checkTourist (в формате JSON) | ||
| + | <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 Экономический класс" | ||
| + | }, | ||
| + | { | ||
| + | "svKey": "3", | ||
| + | "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 /> | ||
| + | |||
| + | ===Список значений параметра гражданства (Citizenships)=== | ||
| + | Метод служит для получения списка значений параметра гражданства. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/Citizenships? | ||
| + | * Принимаемые параметры ( * – обязательный): | ||
| + | ** '''pageSize *''' – размер выдачи | ||
| + | ** '''pageNumber *''' – порядковый номер страницы выдачи | ||
| + | ** '''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> | ||
| + | Вызов метода Citizenships | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | http://localhost:9000/TourSearchOwin/Citizenships?pageSize=50&pageNumber=1&term= | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода Citizenships (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | { | ||
| + | "Key": 90, | ||
| + | "Name": "Австрия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 222, | ||
| + | "Name": "Англия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 376, | ||
| + | "Name": "Андорра" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 375, | ||
| + | "Name": "Беларусь" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 3, | ||
| + | "Name": "Бельгия" | ||
| + | } | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | ===Выгрузка постоянного клиента (Client)=== | ||
| + | Метод выгружает постоянного клиента при авторизации частного лица. | ||
| + | * Формат запроса: | ||
| + | ** 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''' – страна рождения | ||
| + | ** '''CL_BIRTHCITY''' – место рождения (город) | ||
| + | ** '''CL_CITIZEN''' – гражданство | ||
| + | ** '''CL_ADDRESS''' – полный адрес | ||
| + | ** '''CL_POSTINDEX''' – почтовый индекс | ||
| + | ** '''CL_POSTCITY''' – город | ||
| + | ** '''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> | ||
| + | Возвращаемый результат метода Client (в формате JSON) | ||
| + | <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> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
| + | |||
| + | <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?hotelKey=178 | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода HotelImages (в формате JSON) | ||
| + | <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, | ||
| + | "Column": 0, | ||
| + | "Area": 0, | ||
| + | "Type": 5, | ||
| + | "Name": "3" | ||
| + | }, | ||
| + | { | ||
| + | "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": 975, | ||
| + | "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": 90, | ||
| + | "Name": "Австрия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 222, | ||
| + | "Name": "Англия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 376, | ||
| + | "Name": "Андорра" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 375, | ||
| + | "Name": "Беларусь" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6305, | ||
| + | "Name": "Бельгия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 359, | ||
| + | "Name": "Болгария" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6235, | ||
| + | "Name": "Вьетнам" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 40, | ||
| + | "Name": "Германия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 1, | ||
| + | "Name": "Голландия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 852, | ||
| + | "Name": "Гонконг" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 29, | ||
| + | "Name": "Греция" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6251, | ||
| + | "Name": "Грузия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6224, | ||
| + | "Name": "Дания" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6245, | ||
| + | "Name": "Доминиканская Республика" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 9, | ||
| + | "Name": "Египет" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 729, | ||
| + | "Name": "Израиль" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 26, | ||
| + | "Name": "Индия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6221, | ||
| + | "Name": "Индонезия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6244, | ||
| + | "Name": "Иордания" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6288, | ||
| + | "Name": "Ирландия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 84, | ||
| + | "Name": "Испания" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 80, | ||
| + | "Name": "Италия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 3272, | ||
| + | "Name": "Казахстан" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6240, | ||
| + | "Name": "Камбоджа" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 10, | ||
| + | "Name": "Кипр" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6237, | ||
| + | "Name": "Китай" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6254, | ||
| + | "Name": "Круизы" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6243, | ||
| + | "Name": "Куба" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6241, | ||
| + | "Name": "Лаос" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6261, | ||
| + | "Name": "Маврикий" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 603, | ||
| + | "Name": "Малайзия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 960, | ||
| + | "Name": "Мальдивы" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 535, | ||
| + | "Name": "Мальта" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 77, | ||
| + | "Name": "Мексика" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6252, | ||
| + | "Name": "Молдавия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6242, | ||
| + | "Name": "Мьянма" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6249, | ||
| + | "Name": "Непал" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6222, | ||
| + | "Name": "Норвегия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 2, | ||
| + | "Name": "ОАЭ" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6275, | ||
| + | "Name": "Оман" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6246, | ||
| + | "Name": "Польша" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 22, | ||
| + | "Name": "Португалия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 460, | ||
| + | "Name": "Россия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6265, | ||
| + | "Name": "Сейшелы" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6309, | ||
| + | "Name": "Сербия" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 665, | ||
| + | "Name": "Сингапур" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6274, | ||
| + | "Name": "Словения" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 7, | ||
| + | "Name": "США" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6253, | ||
| + | "Name": "Таджикистан" | ||
| + | }, | ||
| + | { | ||
| + | "Key": 6236, | ||
| + | "Name": "Тайвань" | ||
| + | }, | ||
| + | { | ||
| + | "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 /> | ||
| + | |||
| + | |||
| + | ===Выгрузка городов отправления в оформлении клиентов (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"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода RegistrationClientsDepartureCities | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | http://localhost:9000/TourSearchOwin/RegistrationClientsDepartureCities?term=&withoutFlight=Без перелета | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода RegistrationClientsDepartureCities (в формате JSON) | ||
| + | <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": [ | ||
| + | { | ||
| + | |||