Мастер-Тур(15):API для разработки онлайн поиска и бронирования — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) (Новая страница: «<span style="color:red;font-size:120%">Статья находится на стадии разработки.</span><br /> Версия статьи от {{REVI…») |
Biryukov (обсуждение | вклад) |
||
(не показано 300 промежуточных версий 10 участников) | |||
Строка 1: | Строка 1: | ||
− | |||
− | |||
Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}. | Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}. | ||
Строка 9: | Строка 7: | ||
==Введение== | ==Введение== | ||
− | Данный web-сервис | + | Данный web-сервис служит для разработки собственного сайта туроператору на основе API. |
==Установка== | ==Установка== | ||
− | Для работы с 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'') | ||
− | ===Выгрузка настроек службы поиска=== | + | ==Список методов== |
+ | |||
+ | Последовательность вызова методов сервиса<br /> | ||
+ | [[Файл:mb_273.png|1000px|Последовательность вызова методов сервиса]] | ||
+ | |||
+ | ===Авторизация (Token)=== | ||
+ | Метод производит получение авторизационного токена ([https://tools.ietf.org/html/rfc6749#section-1.3.3 описание стандарта]). | ||
+ | * Формат запроса: | ||
+ | ** POST .../TourSearchOwin/Token? | ||
+ | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
+ | ** '''Content-Type *''' – application/x-www-form-urlencoded | ||
+ | |||
+ | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
+ | ** '''grant_type *''' – текст ''password'' | ||
+ | ** '''username *''' – логин представителя партнера или частного лица | ||
+ | ** '''password *''' – пароль представителя партнера или частного лица | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''access_token''' – токен | ||
+ | ** '''token_type''' – тип токена | ||
+ | ** '''expires_in''' – код | ||
+ | ** '''userKey''' – ключ пользователя | ||
+ | ** '''userType''' – тип пользователя (0 – представитель партнера, 1 – частное лицо) | ||
+ | ** '''.issued''' – дата получения | ||
+ | ** '''.expires''' – дата действия до | ||
+ | |||
+ | <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> | ||
+ | Вызов метода Token | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:9000/TourSearchOwin/Token HTTP/1.1 | ||
+ | Content-Type: application/x-www-form-urlencoded | ||
+ | |||
+ | grant_type=password&username=test&password=1 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода Token (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "access_token": "AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA- | ||
+ | EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR- | ||
+ | GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4- | ||
+ | 9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9- | ||
+ | CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA",", | ||
+ | "token_type": "bearer", | ||
+ | "expires_in": 1209599, | ||
+ | "userKey": "333", | ||
+ | "userType": "0", | ||
+ | ".issued": "Thu, 05 Apr 2018 12:05:31 GMT", | ||
+ | ".expires": "Thu, 19 Apr 2018 12:05:31 GMT" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка настроек службы поиска (Settings)=== | ||
Метод производит выгрузку настроек службы поиска. | Метод производит выгрузку настроек службы поиска. | ||
* Формат запроса: | * Формат запроса: | ||
− | ** TourSearchOwin/Settings? | + | ** GET .../TourSearchOwin/Settings? |
* Принимаемые параметры: | * Принимаемые параметры: | ||
** нет принимаемых параметров | ** нет принимаемых параметров | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
− | + | ** '''ChildAgesSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|максимальный возраст ребенка]] (массив возрастов, при которых турист будет считаться ребенком | |
− | + | ** '''DurationSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|максимальная продолжительность тура]] (массив продолжительностей, доступных в фильтрах для поиска) | |
− | |||
− | |||
− | ** '''ChildAgesSetting''' – | ||
− | ** '''DurationSetting''' – | ||
** '''RoundServiceSetting''' – признак округления цены (количество знаков после запятой) | ** '''RoundServiceSetting''' – признак округления цены (количество знаков после запятой) | ||
** '''CacheReady''' – статус готовности службы поиска к работе (true/false) | ** '''CacheReady''' – статус готовности службы поиска к работе (true/false) | ||
− | ** '''EnableFiterTree''' – | + | ** '''EnableFiterTree''' – устаревшая настройка, будет убрана (по умолчанию всегда false) |
** '''EnableActualFilters''' – включены ли актуальные фильтры (true/false) | ** '''EnableActualFilters''' – включены ли актуальные фильтры (true/false) | ||
− | ** '''CorrectLicense''' – | + | ** '''CorrectLicense''' – проверка лицензии (true/false) |
− | ** '''CorrectLicenseMessage''' – | + | ** '''CorrectLicenseMessage''' – сообщение, если проверка лицензии не прошла |
− | ** '''IsCorrectUser''' – | + | ** '''IsCorrectUser''' – проверка наличия пользователя в таблице ''Userlist'', под которым запущена служба поиска (true/false) |
− | ** '''IsShowCitizenAuthTourist''' – | + | ** '''IsShowCitizenAuthTourist''' – настройка запрашивать гражданство при регистрации частного лица (true/false) |
− | ** '''IsShowFewCountPlaces''' – | + | ** '''IsShowFewCountPlaces''' – настройка отображения числового значения оставшихся мест, когда достигнуто значение «Мало» (true/false) |
** '''IsShowBusTransferPlaces''' – использовать фильтр наличие мест на автобусный переезд в поиске (true/false) | ** '''IsShowBusTransferPlaces''' – использовать фильтр наличие мест на автобусный переезд в поиске (true/false) | ||
** '''UseBusSeatChecks''' – план рассадки автобусного переезда (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой) | ** '''UseBusSeatChecks''' – план рассадки автобусного переезда (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой) | ||
Строка 43: | Строка 92: | ||
** '''CheckRealCourses''' – включена ли проверка курсов реальных валют при поиске (true/false) | ** '''CheckRealCourses''' – включена ли проверка курсов реальных валют при поиске (true/false) | ||
** '''CommonImagesFolderPath''' – путь к папке для хранения изображений | ** '''CommonImagesFolderPath''' – путь к папке для хранения изображений | ||
− | ** '''UseApplyFiltersButton''' – | + | ** '''UseApplyFiltersButton''' – отображать кнопку «Применить фильтры» (true/false) |
− | ** '''AutoSearchFiltersTimeout''' – задержка между выбором дополнительных фильтров и выводом результатов | + | ** '''AutoSearchFiltersTimeout''' – задержка между выбором дополнительных фильтров и выводом результатов (в секундах) |
− | ** '''UseFastSearchAlgoritm''' – использовать быстрый алгоритм поиска | + | ** '''UseFastSearchAlgoritm''' – использовать быстрый алгоритм поиска (true/false) |
** '''MaxSearchDatesCountClient''' – максимальное количество дат, которое будет обрабатываться в клиенте поиска | ** '''MaxSearchDatesCountClient''' – максимальное количество дат, которое будет обрабатываться в клиенте поиска | ||
− | ** '''MaxDurationsCountClient''' – | + | ** '''MaxDurationsCountClient''' – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска |
+ | ** '''UseHotelCategoryGlobalCodeInDopFilter''' – использовать глобальные коды категорий отелей в поиске | ||
+ | ** '''UsePansionGlobalCodeInDopFilter''' – использовать глобальные коды питаний в поиске | ||
+ | ** '''CheckTouristDataInBasket''' – проверять корректность данных туристов | ||
+ | ** '''SimpleRegistration''' – упрощенная регистрация частного лица | ||
+ | ** '''ShowHotelImagesInSearch''' – показывать описание и изображения отелей в поиске | ||
+ | ** '''CacheReadyMessage''' – сообщение о готовности службы поиска или службы расчета актуальных фильтров. Варианты возвращаемых значений: | ||
+ | *** ''<add key="enableActualFilters" value="true" />'' - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован" | ||
+ | *** ''<add key="enableActualFilters" value="false" />'' - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован". | ||
+ | <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/Settings | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода Settings (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "ChildAgesSetting": [ | ||
+ | 1, | ||
+ | 2, | ||
+ | 3, | ||
+ | 4, | ||
+ | 5, | ||
+ | 6, | ||
+ | 7, | ||
+ | 8, | ||
+ | 9, | ||
+ | 10, | ||
+ | 11, | ||
+ | 12, | ||
+ | 13, | ||
+ | 14, | ||
+ | 15, | ||
+ | 16 | ||
+ | ], | ||
+ | "DurationSetting": [ | ||
+ | 1, | ||
+ | 2, | ||
+ | 3, | ||
+ | 4, | ||
+ | 5, | ||
+ | 6, | ||
+ | 7, | ||
+ | 8, | ||
+ | 9, | ||
+ | 10, | ||
+ | 11, | ||
+ | 12, | ||
+ | 13, | ||
+ | 14, | ||
+ | 15, | ||
+ | 16, | ||
+ | 17, | ||
+ | 18, | ||
+ | 19, | ||
+ | 20 | ||
+ | ], | ||
+ | "RoundServiceSetting": 2, | ||
+ | "CacheReady": true, | ||
+ | "EnableFiterTree": false, | ||
+ | "EnableActualFilters": true, | ||
+ | "CorrectLicense": true, | ||
+ | "CorrectLicenseMessage": "0deb1f882da1ec6301c961780507a180", | ||
+ | "IsCorrectUser": true, | ||
+ | "IsShowCitizenAuthTourist": true, | ||
+ | "IsShowFewCountPlaces": true, | ||
+ | "IsShowBusTransferPlaces": true, | ||
+ | "UseBusSeatChecks": 1, | ||
+ | "UseTransferSeatChecks": 2, | ||
+ | "IsShowFiltersByCity": true, | ||
+ | "CheckRealCourses": true, | ||
+ | "CommonImagesFolderPath": "\\\\server\\Icons", | ||
+ | "UseApplyFiltersButton": false, | ||
+ | "AutoSearchFiltersTimeout": 1, | ||
+ | "UseFastSearchAlgoritm": true, | ||
+ | "MaxSearchDatesCountClient": 10, | ||
+ | "MaxDurationsCountClient": 14 | ||
+ | "UseHotelCategoryGlobalCodeInDopFilter": false | ||
+ | "UsePansionGlobalCodeInDopFilter": false | ||
+ | "CheckTouristDataInBasket": true | ||
+ | "SimpleRegistration": false | ||
+ | "ShowHotelImagesInSearch": true | ||
+ | "CacheReadyMessage": "Кеш инициализирован" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | ===Выгрузка списка валют в онлайне (Currency)=== | ||
+ | Метод возвращает список используемых валют. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/Currency | ||
+ | * Принимаемые параметры: | ||
+ | ** нет принимаемых параметров | ||
+ | * Возвращаемый результат: | ||
+ | ** '''Code''' – код валюты | ||
+ | ** '''Name''' – наименование валюты | ||
+ | ** '''IsMain''' – признак валюты «Главная» | ||
+ | ** '''IsNational''' – признак валюты «Национальная» | ||
+ | ** '''IsoCode''' – ISO код валюты | ||
+ | ** '''IsShowInSearch''' – признак показывать ли валюту в поиске | ||
+ | ** '''Symbol''' – символ валюты (обрабатывается с 15.7) | ||
+ | ** '''Key''' – идентификатор валюты | ||
+ | <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> | ||
+ | Вызов метода Currency | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/Currency | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода Currency (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [ | ||
+ | { | ||
+ | "Code": "EU", | ||
+ | "Name": "Euro", | ||
+ | "IsMain": false, | ||
+ | "IsNational": false, | ||
+ | "IsoCode": "EUR", | ||
+ | "IsShowInSearch": true, | ||
+ | "Symbol": "€", | ||
+ | "Key": 2 | ||
+ | }, | ||
+ | { | ||
+ | "Code": "рб", | ||
+ | "Name": "Рубль", | ||
+ | "IsMain": false, | ||
+ | "IsNational": true, | ||
+ | "IsoCode": "RUR", | ||
+ | "IsShowInSearch": true, | ||
+ | "Symbol": "₽", | ||
+ | "Key": 14 | ||
+ | }, | ||
+ | { | ||
+ | "Code": "$", | ||
+ | "Name": "US Dollar", | ||
+ | "IsMain": true, | ||
+ | "IsNational": false, | ||
+ | "IsoCode": "USD", | ||
+ | "IsShowInSearch": true, | ||
+ | "Symbol": "$", | ||
+ | "Key": 1 | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | ===Выгрузка курсов валют (CurrencyRates) начиная с 15.7=== | ||
+ | Полный аналог метода [[Мастер-Тур(15):API для отдачи цен в поисковые системы#Выгрузка курсов валют (GetCurrencyRates)|Выгрузка курсов валют (GetCurrencyRates)]]<br /> | ||
+ | Метод возвращает список курсов валют, актуальных на дату запроса. Курсы отображаются только для тех валют, которые отмечены в справочнике признаком ''Отображать в онлайне'' | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/CurrencyRates | ||
+ | * Принимаемые параметры: | ||
+ | ** '''dateFrom''' – начальная дата, от которой вывести список курсов валют, в формате DD.MM.YYYY, не обязательный параметр | ||
+ | ** '''dateTo''' – конечная дата, до которой вывести список курсов валют, в формате DD.MM.YYYY, не обязательный параметр | ||
+ | * Возвращаемый результат: | ||
+ | ** '''baseCurrencyId''' – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке ''basketCurrency'' в конфигурационном файле (обрабатывается с релиза 15.6) | ||
+ | ** '''currencyId''' – идентификатор валюты, курс которой приводится | ||
+ | ** '''rate''' – курс валюты (отношение '''currencyId''' к '''baseCurrencyId''') | ||
+ | ** '''date''' – дата, на которую был зарегистрирован выводимый курс валюты | ||
+ | |||
+ | <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> | ||
+ | Вызов метода CurrencyRates | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | http://localhost:9000/TourSearchOwin/CurrencyRates?dateFrom=18.09.2024&dateTo=19.09.2024 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода CurrencyRates (в формате JSON) | ||
+ | <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> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка списка всех валют (getAllCurrencies)=== | ||
+ | Метод возвращает список всех валют. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/AllCurencies/getAllCurrencies | ||
+ | * Принимаемые параметры: | ||
+ | ** нет принимаемых параметров | ||
+ | * Возвращаемый результат: | ||
+ | ** '''Code''' – код валюты | ||
+ | ** '''Name''' – наименование валюты | ||
+ | ** '''IsMain''' – признак валюты «Главная» | ||
+ | ** '''IsNational''' – признак валюты «Национальная» | ||
+ | ** '''IsoCode''' – ISO код валюты | ||
+ | ** '''IsShowInSearch''' – признак показывать ли валюту в поиске | ||
+ | ** '''Symbol''' – символ валюты (обрабатывается с 15.7) | ||
+ | ** '''Key''' – идентификатор валюты | ||
+ | <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> | ||
+ | Вызов метода getAllCurrencies | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/AllCurencies/getAllCurrencies | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода getAllCurrencies (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [ | ||
+ | { | ||
+ | "Code": "EU", | ||
+ | "Name": "Euro", | ||
+ | "IsMain": false, | ||
+ | "IsNational": false, | ||
+ | "IsoCode": "EUR", | ||
+ | "IsShowInSearch": true, | ||
+ | "Symbol": "€", | ||
+ | "Key": 2 | ||
+ | }, | ||
+ | { | ||
+ | "Code": "рб", | ||
+ | "Name": "Рубль", | ||
+ | "IsMain": false, | ||
+ | "IsNational": true, | ||
+ | "IsoCode": "RUR", | ||
+ | "IsShowInSearch": true, | ||
+ | "Symbol": "₽", | ||
+ | "Key": 14 | ||
+ | }, | ||
+ | { | ||
+ | "Code": "$", | ||
+ | "Name": "US Dollar", | ||
+ | "IsMain": true, | ||
+ | "IsNational": false, | ||
+ | "IsoCode": "USD", | ||
+ | "IsShowInSearch": true, | ||
+ | "Symbol": "$", | ||
+ | "Key": 1 | ||
+ | }, | ||
+ | { | ||
+ | "Code": "гр", | ||
+ | "Name": "Гривна", | ||
+ | "IsMain": false, | ||
+ | "IsNational": false, | ||
+ | "IsoCode": "UAH", | ||
+ | "IsShowInSearch": true, | ||
+ | "Symbol": "₴", | ||
+ | "Key": 6 | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | ===Получение сконвертированных цен (convertFilterPrice)=== | ||
+ | Метод возвращает сконвертированные цен для допфильтра ''Цена'' (используется в canary) | ||
+ | * Формат запроса: | ||
+ | ** 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"> | ||
− | 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> | ||
Строка 92: | Строка 407: | ||
</div></div><br /> | </div></div><br /> | ||
+ | ===Выгрузка квотируемых услуг системы (QuotedServices)=== | ||
+ | Метод производит выгрузку услуг с признаком «Квотируемая» | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/QuotedServices | ||
+ | * Принимаемые параметры: | ||
+ | ** нет принимаемых параметров | ||
+ | * Возвращаемый результат: | ||
+ | ** '''Key''' – идентификатор услуги | ||
+ | ** '''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="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода QuotedServices | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/QuotedServices | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода QuotedServices (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [ | ||
+ | { | ||
+ | "Key": 1, | ||
+ | "Code": "А_П", | ||
+ | "Name": "Авиаперелет", | ||
+ | "NameLat": "Flight", | ||
+ | "IsDuration": false, | ||
+ | "IsCity": true, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "Quoted": true, | ||
+ | "CheckGeoPoint": true, | ||
+ | "IsRoute": true, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Control": 1 | ||
+ | }, | ||
+ | { | ||
+ | "Key": 3, | ||
+ | "Code": "HOTEL", | ||
+ | "Name": "Отель/Круиз", | ||
+ | "NameLat": "Hotel/Cruise", | ||
+ | "IsDuration": true, | ||
+ | "IsCity": true, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": true, | ||
+ | "Quoted": true, | ||
+ | "CheckGeoPoint": true, | ||
+ | "IsRoute": true, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Control": 1 | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка актуальных городов отправления (departureCities)=== | ||
+ | Метод производит выгрузку всех доступных городов отправления для поискового запроса. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/departureCities? | ||
+ | * Принимаемые параметры: | ||
+ | ** нет принимаемых параметров | ||
+ | * Возвращаемый результат: | ||
+ | ** '''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> | ||
+ | Вызов метода departureCities | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/departureCities | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода departureCities (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [ | ||
+ | { | ||
+ | "Key": -1, | ||
+ | "Name": "Без перелета" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 312, | ||
+ | "Name": "Астрахань" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 1, | ||
+ | "Name": "Москва" | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка актуальных стран (Destination)=== | ||
+ | Метод производит выгрузку всех доступных направлений туроператора. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/Destination? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | ** '''departureCities *''' – идентификатор города(ов) отправления (из контроллера [[#Выгрузка актуальных городов отправления (departureCities)|''.../TourSearchOwin/departureCities?'']]) | ||
+ | ** '''type''' – настройка easySearchFilter (0/не указано - настройка выключена, 1 - настройка включена) | ||
+ | ** '''term''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | ||
+ | * Возвращаемый результат: | ||
+ | ** '''Name''' – название страны | ||
+ | ** '''Key''' – идентификатор страны | ||
+ | ** '''DestinationType''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат. | ||
+ | ** '''IsExist''' – не используется | ||
+ | ** '''Data''' – массив данных для контекстного поиска | ||
+ | *** '''CityKey''' – код города | ||
+ | *** '''CityName''' – Название | ||
+ | *** '''HotelKey''' – код отеля | ||
+ | *** '''HotelName''' – название отеля | ||
+ | *** '''ResortKey''' – код курорта | ||
+ | *** '''ResortName''' – название курорта | ||
+ | |||
+ | |||
+ | <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> | ||
+ | Вызов метода Destination | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | |||
+ | GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода Destination (в формате JSON) | ||
+ | <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> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка актуальных городов (ActualizeCities)=== | ||
+ | Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/ActualizeCities? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | ** '''cityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ||
+ | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
+ | ** '''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> | ||
+ | Вызов метода ActualizeCities | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/ActualizeCities?cityKeys=1&Key=90 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода ActualizeCities (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [ | ||
+ | { | ||
+ | "Key": -1, | ||
+ | "Name": "Все" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 35, | ||
+ | "Name": "Вена" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 440, | ||
+ | "Name": "Зельден" | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | ===Выгрузка актуальных типов туров (ActualizeTourType)=== | ||
+ | Метод возвращает список типов туров по определенному городу отправления, стране и городу прибытия. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/ActualizeTourType? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | ** '''departureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ||
+ | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
+ | ** '''Type *''' – тип результата (всегда возвращается в JSON = 1, в xml = country) | ||
+ | ** '''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 *''' – тип результата (всегда возвращается в JSON = 1, в xml = country) | ||
+ | ** '''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></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка актуальных продолжительностей (Duration)=== | ||
+ | Метод производит выгрузку доступных продолжительностей для поискового запроса. | ||
* Формат запроса: | * Формат запроса: | ||
− | ** ? | + | ** GET .../TourSearchOwin/Duration? |
− | * Принимаемые параметры: | + | * Принимаемые параметры ( '''*''' – обязательный): |
− | ** ''' | + | ** '''departureCity *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') |
+ | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ||
+ | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
+ | ** '''Type *''' – тип результата (всегда возвращается в JSON = 1, в xml = country) | ||
+ | ** '''tourDate *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''tourTypes *''' – идентификатор типа(ов) тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
− | ** | + | ** массив продолжительностей (в днях) |
− | |||
− | |||
<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> | ||
− | Вызов метода | + | Вызов метода Duration |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/Duration?departureCity=1&destinationCity=-1 |
+ | &Key=90&Type=1&tourDate=25.02.2018&tourDate=26.02.2018&tourTypes=-1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода Duration (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | + | [ | |
− | + | 7, | |
− | + | 8, | |
− | + | 10, | |
− | + | 12, | |
− | + | 15, | |
− | + | 18 | |
− | + | ] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
− | === | + | ===Поиск туров (Tour)=== |
− | Метод | + | Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод возвращает наиболее дешевые предложения, найденные по предоставленным параметрам и сгруппированные по отелям в порядке возрастания цены. |
* Формат запроса: | * Формат запроса: | ||
− | ** ? | + | ** GET .../TourSearchOwin/Tour? |
− | * Принимаемые параметры: | + | * Принимаемые параметры ( '''*''' – обязательный): |
− | ** ''' | + | ** '''DepartureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') |
+ | ** '''Dates *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''Durations *''' – массив продолжительностей (полученные из метода ''.../TourSearchOwin/Duration?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''PageNumber *''' – номер возвращаемой страницы (по умолчанию возвращается 1) | ||
+ | ** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | ||
+ | ** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false) | ||
+ | ** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. | ||
+ | ** '''DestinationType *''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат. | ||
+ | ** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
+ | ** '''AdultCount *''' – количество взрослых | ||
+ | ** '''ChildAges''' – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''CurrencyName *''' – код валюты | ||
+ | ** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''HotelQuota *''' – информация о квотах на отель (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''BusTransferQuota''' – информация о квотах на автобусный переезд (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''MinPrice *''' – минимальная цена (по умолчанию не задана, передается ''NaN'') | ||
+ | ** '''MaxPrice''' – максимальная цена (по умолчанию не передается) | ||
+ | ** '''Groups''' – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля) | ||
+ | ** '''HotelScheme''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры: | ||
+ | *** '''TemplateId''' – идентификатор шаблона услуги, | ||
+ | *** '''DurationInNight''' – продолжительность отеля в ночах, | ||
+ | *** '''Code''' – ключ отеля, | ||
+ | *** '''PacketKey''' – ключ пакета, | ||
+ | *** '''PartnerKey''' – ключ партнера | ||
+ | *** '''GDSProviderId''' – ключ провайдера из внешней системы | ||
+ | *** '''TotalTourDuration''' – общая продолжительность тура в днях | ||
+ | ** '''BusTransferPointKeys''' – данный признак проставляется в ''true'' в том случае, когда происходит запрос вариантов проживания (кнопка ''Варианты'') в автобусных переездах | ||
+ | ** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура | ||
+ | ** '''TourDuration''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях | ||
+ | ** '''TourType''' – идентификатор типа(ов) тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны. Возможна множественная передача параметров. | ||
+ | ** '''Tour''' – ключ программы тура (дополнительный фильтр) | ||
+ | ** '''Duration''' – продолжительность тура (дополнительный фильтр) | ||
+ | ** '''DateTour''' – дата тура (дополнительный фильтр) | ||
+ | ** '''HotelResort''' – ключ курорта отеля (дополнительный фильтр) | ||
+ | ** '''HotelCity''' – ключ города отеля (дополнительный фильтр) | ||
+ | ** '''HotelType''' – ключ признака отеля (дополнительный фильтр) | ||
+ | ** '''HotelStars''' – ключ категории отеля (дополнительный фильтр) | ||
+ | ** '''Hotel''' – ключ отеля (дополнительный фильтр) | ||
+ | ** '''Pansions''' – ключ питания (дополнительный фильтр) | ||
+ | ** '''Airline''' – ключ авиакомпании (дополнительный фильтр) | ||
+ | ** '''AirportDeparture''' – ключ аэропорта вылета (дополнительный фильтр) | ||
+ | ** '''AirportArrival''' – ключ аэропорта прилета (дополнительный фильтр) | ||
+ | ** '''CityIds''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны. Возможна множественная передача параметров. | ||
+ | ** '''TimeDepartureFrom''' – время отправления с (по умолчанию возвращается 00:00) | ||
+ | ** '''TimeDepartureTo''' – время отправления по (по умолчанию возвращается 23:59) | ||
+ | ** '''TimeArrivalFrom''' – время прибытия с (по умолчанию возвращается 00:00) | ||
+ | ** '''TimeArrivalTo''' – время прибытия по (по умолчанию возвращается 23:59) | ||
+ | ** '''ArrivalFlightNoTransfer''' – производить поиск без пересадок в прямом направлении (true/false, по умолчанию false) | ||
+ | ** '''DepartureFlightNoTransfer''' – производить поиск без пересадок в обратном направлении (true/false, по умолчанию false) | ||
+ | ** '''DepartureFlightNumberTransfer''' – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3. | ||
+ | ** '''ArrivalFlightNumberTransfer''' – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3. | ||
+ | ** '''Tariff''' – ключ класса авиаперелета (дополнительный фильтр) | ||
+ | ** '''CombineAirlines''' — разрешить комбинировать авиаперелеты (дополнительный фильтр). Параметр применяется только при наличии параметра '''airline'''. Обрабатывается начиная с релиза 15.3. | ||
+ | ** '''CombineTariffs''' — разрешить комбинировать классы перелета (дополнительный фильтр). Параметр применяется только при наличии параметра '''tariff'''. Обрабатывается начиная с релиза 15.3. | ||
+ | ** '''FlightCityDeparture''' – ключ город вылета в параметрах авиаперелета (дополнительный фильтр) | ||
+ | ** '''CityDeparture''' – ключ города начала поездки (дополнительный фильтр) | ||
+ | ** '''RemoteHotelMode''' – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4. | ||
+ | ** '''GroupGuid''' – используется для получения турпрограмм по уникальному ключу из кэша при использовании группировки. Примеры использования. ''GroupGuid=00000000-0000-0000-0000-000000000000'' – при первом запросе от локальной системы. ''GroupGuid=936DA01F-9ABD-4d9d-80C7-02AF85C822A8'' (уникальный ключ) – передается на клиент от первого запроса из внешней системы. С данным уникальным ключом осуществляется второй запрос от внешней системы. Далее происходит получение значений по данному уникальному ключу. Обрабатывается начиная с релиза 15.4. | ||
+ | ** '''IsGroupingTourAlreadyMerge''' – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. ''IsGroupingTourAlreadyMerge=false'' – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. ''IsGroupingTourAlreadyMerge=true'' – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4. | ||
+ | ** '''SearchId''' – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5. | ||
+ | |||
+ | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
− | ** ''' | + | ** '''CheckMessages''' – сообщения для логики проверки тура (не используется) |
− | ** ''' | + | ** '''Message''' – сообщение об ошибке |
− | ** ''' | + | *** '''Key''' – код ошибки |
− | ** ''' | + | *** '''Value''' – сообщение об ошибке |
+ | ** '''Result''' – результаты поиска | ||
+ | *** '''Key''' – идентификатов программы тура | ||
+ | *** '''Name''' – название программы тура | ||
+ | *** '''TourUrl''' – ссылка на программу тура | ||
+ | *** '''BookingConditions''' – условия бронирования программы туров | ||
+ | *** '''StartDate''' – дата начала тура | ||
+ | *** '''Duration''' – продолжительность тура (в днях) | ||
+ | *** '''DurationInNight''' – продолжительность проживания (в ночах) | ||
+ | *** '''Types''' – идентификатор типа туров | ||
+ | *** '''Cost''' – цена тура | ||
+ | *** '''Rate''' – код валюты тура | ||
+ | *** '''CityDepature''' – город отправления | ||
+ | **** '''Key''' – идентификатор города отправления | ||
+ | **** '''Value''' – название города отправления | ||
+ | *** '''CountryId''' – всегда возвращается ключ 0 | ||
+ | *** '''Services''' – услуги в туре | ||
+ | **** '''DepartureCity''' – город отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureCountry''' – страна отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalCity''' – город прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalCountry''' – страна прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureAirport''' – аэропорт отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalAirport''' – аэропорт прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Airline''' – авиакомпания | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Aircraft''' – воздушное судно | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Flight''' – рейс | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureTime''' – время вылета | ||
+ | **** '''ArrivalTime''' – время прилета | ||
+ | **** '''EndDateTime''' – дата и время прилета | ||
+ | **** '''FlightDetails''' – информация об авиаперелете | ||
+ | ***** '''Tariff''' – информация о тарифе перелета | ||
+ | ****** '''Key''' – идентификатор | ||
+ | ****** '''Code''' – код тарифа | ||
+ | ****** '''Name''' – название тарифа | ||
+ | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ||
+ | ***** '''QuotaStatus''' – информация о квоте | ||
+ | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | ***** '''PartnerId''' – ключ партнера | ||
+ | ***** '''ByPax''' – цена за человека (true/false) | ||
+ | ***** '''Partner''' – информация о партнере | ||
+ | ****** '''Key''' – идентификатор | ||
+ | ****** '''Value''' – название | ||
+ | **** '''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''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ****** '''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="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> | ||
− | Вызов метода | + | Вызов метода Tour |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/Tour?DepartureCityKeys=1&Dates=25.02.2018&Durations=4 |
+ | &PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&isFromBasket=false | ||
+ | &isFillSecondaryFilters=true&DestinationType=1&DestinationKey=90&AdultCount=2&ChildAges=2 | ||
+ | &ChildAges=2&CurrencyName=EU&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&MinPrice=NaN&TourType=-1 | ||
+ | &CityIds=-1&TimeDepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00 | ||
+ | &TimeArrivalTo=23%3A59&ArrivalFlightNoTransfer=false&DepartureFlightNoTransfer=false | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода Tour (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
− | " | + | "CheckMessages": null, |
− | " | + | "Message": { |
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "Result": [ | ||
{ | { | ||
− | "id": -1, | + | "Key": 100000004, |
− | "name": " | + | "Name": "Общая проверка системы", |
− | " | + | "TourUrl": "www.megatec.ru", |
− | " | + | "BookingConditions": "<p>Условия бронирования тура.<\/p>", |
− | + | "StartDate": "2018-02-25T00:00:00", | |
− | 90 | + | "Duration": 4, |
− | ] | + | "DurationInNight": 3, |
− | }, | + | "Types": [2], |
− | { | + | "Cost": 260, |
− | " | + | "Rate": "EU", |
+ | "CityDepature": { | ||
+ | "Key": 1, | ||
+ | "Value": "Москва" | ||
+ | }, | ||
+ | "CountryId": 0, | ||
+ | "Services": [ | ||
+ | { | ||
+ | "DepartureCity": { | ||
+ | "Key": 1, | ||
+ | "Value": "Москва" | ||
+ | }, | ||
+ | "DepartureCountry": { | ||
+ | "Key": 460, | ||
+ | "Value": "Россия" | ||
+ | }, | ||
+ | "ArrivalCity": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "ArrivalCountry": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "DepartureAirport": { | ||
+ | "Key": "SVO4", | ||
+ | "Value": "Шереметьево-24" | ||
+ | }, | ||
+ | "ArrivalAirport": { | ||
+ | "Key": "VIE1", | ||
+ | "Value": "Vena1" | ||
+ | }, | ||
+ | "Airline": { | ||
+ | "Key": "BA7", | ||
+ | "Value": "BRITISH AIRWAYS" | ||
+ | }, | ||
+ | "Aircraft": { | ||
+ | "Key": "319", | ||
+ | "Value": "AIRBUS " | ||
+ | }, | ||
+ | "Flight": { | ||
+ | "Key": 882, | ||
+ | "Value": "4444" | ||
+ | }, | ||
+ | "DepartureTime": "10:00:00", | ||
+ | "ArrivalTime": "12:00:00", | ||
+ | "EndDateTime": "2018-02-25T12:00:00", | ||
+ | "FlightDetails": [ { | ||
+ | "Tariff": { | ||
+ | "Key": 89, | ||
+ | "Code": "Y", | ||
+ | "Name": "Экономический класс" | ||
+ | }, | ||
+ | "Cost": 10, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12668, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "FlightSetting": { | ||
+ | "ServiceId": 3, | ||
+ | "PatternId": 13, | ||
+ | "FlightId": 13 | ||
+ | }, | ||
+ | "FlightSourceMode": 1, | ||
+ | "Id": 3, | ||
+ | "SvKey": 1, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-02-25T10:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "Index": 0 | ||
+ | }, | ||
+ | { | ||
+ | "Hotel": { | ||
+ | "Key": 709, | ||
+ | "Value": "Am Brilliantengrund" | ||
+ | }, | ||
+ | "City": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "Stars": { | ||
+ | "Key": -1, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "Resort": { | ||
+ | "Key": -1, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "ImageURL": "", | ||
+ | "Http": null, | ||
+ | "Description": "", | ||
+ | "Country": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "HotelDetails": [ { | ||
+ | "HotelRoom": 46463, | ||
+ | "Room": { | ||
+ | "Key": 129, | ||
+ | "Value": "DBL" | ||
+ | }, | ||
+ | "RoomCategory": { | ||
+ | "Key": 3493, | ||
+ | "Value": "Cosy" | ||
+ | }, | ||
+ | "AccomodationType": { | ||
+ | "Key": 1256, | ||
+ | "Value": "2+1_K", | ||
+ | "AdultCount": 2, | ||
+ | "ChildCount": 1 | ||
+ | }, | ||
+ | "Pansion": { | ||
+ | "Key": 4, | ||
+ | "Value": "Завтрак" | ||
+ | }, | ||
+ | "Cost": 19.47, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12667, | ||
+ | "ByPax": false, | ||
+ | "Partner": { | ||
+ | "Key": 12667, | ||
+ | "Value": "Партнер-покупатель1" | ||
+ | } | ||
+ | }], | ||
+ | "HotelTypes": [ { | ||
+ | "Key": 5, | ||
+ | "Value": "Рекомендуемые" | ||
+ | }], | ||
+ | "Id": 1, | ||
+ | "SvKey": 3, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": true, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 3, | ||
+ | "BeginDateTime": "2018-02-25T12:00:00", | ||
+ | "EndDateTime": "2018-02-28T12:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "Index": 1 | ||
+ | }, | ||
+ | { | ||
+ | "DepartureCity": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "DepartureCountry": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "ArrivalCity": { | ||
+ | "Key": 1, | ||
+ | "Value": "Москва" | ||
+ | }, | ||
+ | "ArrivalCountry": { | ||
+ | "Key": 460, | ||
+ | "Value": "Россия" | ||
+ | }, | ||
+ | "DepartureAirport": { | ||
+ | "Key": "VIE1", | ||
+ | "Value": "Vena1" | ||
+ | }, | ||
+ | "ArrivalAirport": { | ||
+ | "Key": "DME", | ||
+ | "Value": "Домодедово" | ||
+ | }, | ||
+ | "Airline": { | ||
+ | "Key": "7U", | ||
+ | "Value": "Авиаэнерго" | ||
+ | }, | ||
+ | "Aircraft": { | ||
+ | "Key": "727", | ||
+ | "Value": "Boeing" | ||
+ | }, | ||
+ | "Flight": { | ||
+ | "Key": 774, | ||
+ | "Value": "222" | ||
+ | }, | ||
+ | "DepartureTime": "00:00:00", | ||
+ | "ArrivalTime": "00:00:00", | ||
+ | "EndDateTime": "2018-02-28T00:00:00", | ||
+ | "FlightDetails": [ { | ||
+ | "Tariff": { | ||
+ | "Key": 89, | ||
+ | "Code": "Y", | ||
+ | "Name": "Экономический класс" | ||
+ | }, | ||
+ | "Cost": 0, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 10760, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "FlightSetting": { | ||
+ | "ServiceId": 4, | ||
+ | "PatternId": 5, | ||
+ | "FlightId": 4 | ||
+ | }, | ||
+ | "FlightSourceMode": 1, | ||
+ | "Id": 4, | ||
+ | "SvKey": 1, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 4, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-02-28T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "Index": 4 | ||
+ | } | ||
+ | ], | ||
+ | "NotRouteServices": [ | ||
+ | [ { | ||
+ | "ServiceName": "страховка", | ||
+ | "City": null, | ||
+ | "Country": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "Code": { | ||
+ | "Key": 297, | ||
+ | "Value": "Страховка от несчастного случая" | ||
+ | }, | ||
+ | "ByScheduler": false, | ||
+ | "Details": [ { | ||
+ | "SubCode1": { | ||
+ | "Key": 18, | ||
+ | "Value": "2" | ||
+ | }, | ||
+ | "SubCode2": { | ||
+ | "Key": null, | ||
+ | "Value": "" | ||
+ | }, | ||
+ | "Date": null, | ||
+ | "IsShowTransportPlan": true, | ||
+ | "Cost": 16, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 1, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12668, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "ParentId": null, | ||
+ | "PartnerBasedOnServiceTemplateId": null, | ||
+ | "Id": 10, | ||
+ | "SvKey": 6, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": true, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 3, | ||
+ | "BeginDateTime": "2018-02-25T00:00:00", | ||
+ | "EndDateTime": "2018-02-28T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": true, | ||
+ | "IsNotCalculate": true, | ||
+ | "PacketId": 882, | ||
+ | "Index": 2 | ||
+ | }], | ||
+ | [ { | ||
+ | "ServiceName": "экскурсия", | ||
+ | "City": { | ||
+ | "Key": 1046, | ||
+ | "Value": "Санто-Доминго" | ||
+ | }, | ||
+ | "Country": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "Code": { | ||
+ | "Key": 743, | ||
+ | "Value": "4" | ||
+ | }, | ||
+ | "ByScheduler": false, | ||
+ | "Details": [ { | ||
+ | "SubCode1": { | ||
+ | "Key": 37, | ||
+ | "Value": "Мини-автобус 10 чел." | ||
+ | }, | ||
+ | "SubCode2": { | ||
+ | "Key": null, | ||
+ | "Value": "" | ||
+ | }, | ||
+ | "Date": null, | ||
+ | "IsShowTransportPlan": false, | ||
+ | "Cost": 85.22, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 1, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12667, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "ParentId": null, | ||
+ | "PartnerBasedOnServiceTemplateId": null, | ||
+ | "Id": 7, | ||
+ | "SvKey": 4, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": true, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-02-25T00:00:00", | ||
+ | "EndDateTime": "2018-02-26T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": true, | ||
+ | "IsNotCalculate": true, | ||
+ | "PacketId": 779, | ||
+ | "Index": 3 | ||
+ | }] | ||
+ | ], | ||
+ | "MinCostServicesComposition": [ | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 3, | ||
+ | "PatternId": 13, | ||
+ | "SettingId": 13 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 882, | ||
+ | "SubCode1": 89, | ||
+ | "SubCode2": 1, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 12668, | ||
+ | "CountryId": 90, | ||
+ | "CityId": 35, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0 | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 1, | ||
+ | "PatternId": 0, | ||
+ | "SettingId": 0 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 3, | ||
+ | "Code": 709, | ||
+ | "SubCode1": 46463, | ||
+ | "SubCode2": 4, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 12667, | ||
+ | "CountryId": 90, | ||
+ | "CityId": 35, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 3 | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 4, | ||
+ | "PatternId": 5, | ||
+ | "SettingId": 4 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 774, | ||
+ | "SubCode1": 89, | ||
+ | "SubCode2": 35, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 10760, | ||
+ | "CountryId": 460, | ||
+ | "CityId": 1, | ||
+ | "Day": 4, | ||
+ | "DurationInNight": 0 | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "FlightWeight": 2, | ||
+ | "LinkingFlightsRules": { | ||
+ | "notCombineDifferentAirlineRule": { | ||
+ | "airlines": ["AY2"], | ||
+ | "flightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "checkPlusMinus1CharterRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentTariffGroupRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "notCombineDifferentPartnerRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "departureCityEqualsArrivalCityRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "combineOnlySpecificChartersRule": { | ||
+ | "settings": [], | ||
+ | "enabled": false | ||
+ | } | ||
+ | }, | ||
+ | "RouteSubVariants": [] | ||
+ | } | ||
+ | ], | ||
+ | "SecondaryFiltersResult": { | ||
+ | "TourTypes": [ { | ||
+ | "Id": 2, | ||
+ | "Name": "Стандартный тур", | ||
+ | "ParentId": null, | ||
+ | "Type": "TourType" | ||
+ | }], | ||
+ | "TourPrograms": [ | ||
+ | { | ||
+ | "Key": 100000004, | ||
+ | "Name": "Общая проверка системы", | ||
+ | "TourUrl": "www.megatec.ru", | ||
+ | "BookingConditions": "<p>Условия бронирования тура.<\/p>", | ||
+ | "IsLandOnly": false, | ||
+ | "IsRestrictMultiHotels": false, | ||
+ | "IsHotelTemplates": true, | ||
+ | "IsRouteServices": true, | ||
+ | "MultiHotelDelta": 0, | ||
+ | "Rate": "EU", | ||
+ | "DateStart": "2018-01-30T00:00:00Z", | ||
+ | "DateEnd": "2018-02-27T00:00:00Z", | ||
+ | "Status": { | ||
+ | "Key": 3, | ||
+ | "Value": "Доступен для продажи" | ||
+ | }, | ||
+ | "Templates": [ | ||
+ | {"$id": "5"}, | ||
+ | {"$id": "6"}, | ||
+ | {"$id": "7"}, | ||
+ | {"$id": "8"}, | ||
+ | {"$id": "9"} | ||
+ | ], | ||
+ | "Types": [ { | ||
+ | "Id": 2, | ||
+ | "Name": "Стандартный тур", | ||
+ | "ParentId": null, | ||
+ | "Type": "TourType" | ||
+ | }], | ||
+ | "LinkingFlightsRules": { | ||
+ | "notCombineDifferentAirlineRule": { | ||
+ | "airlines": ["AY2"], | ||
+ | "flightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "checkPlusMinus1CharterRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentTariffGroupRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "notCombineDifferentPartnerRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "departureCityEqualsArrivalCityRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "combineOnlySpecificChartersRule": { | ||
+ | "settings": [], | ||
+ | "enabled": false | ||
+ | } | ||
+ | }, | ||
+ | "Type": "TourProgram" | ||
+ | } | ||
+ | ], | ||
+ | "TourDurations": [4], | ||
+ | "TourDates": ["2018-02-25T00:00:00"], | ||
+ | "HotelCities": [ { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }], | ||
+ | "HotelResorts": [ { | ||
+ | "Key": -1, | ||
+ | "CountryKey": 0, | ||
+ | "Name": "Не указан", | ||
+ | "NameLat": null, | ||
+ | "Type": "Resort" | ||
+ | }], | ||
+ | "HotelCategories": [ | ||
+ | { | ||
+ | "Key": 23, | ||
+ | "Name": "1*", | ||
+ | "PrintNumber": 1, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 56, | ||
+ | "Name": "2*", | ||
+ | "PrintNumber": 2, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 66, | ||
+ | "Name": "4*Boutique", | ||
+ | "PrintNumber": null, | ||
+ | "Type": "HotelCatigory" | ||
+ | } | ||
+ | ], | ||
+ | "Hotels": [ | ||
+ | { | ||
+ | "Key": 705, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "Name": "Continental", | ||
+ | "Category": { | ||
+ | "Key": 23, | ||
+ | "Name": "1*", | ||
+ | "PrintNumber": 1, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | "TimeFrom": null, | ||
+ | "TimeTo": null, | ||
+ | "HTTP": null, | ||
+ | "Stars": "1*", | ||
+ | "TimeIsEmpty": true, | ||
+ | "NameLat": "Continental", | ||
+ | "Address": null, | ||
+ | "IsCruise": 0, | ||
+ | "Phone": null, | ||
+ | "Code": null, | ||
+ | "Type": "Hotel" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 178, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "Name": "Ananas", | ||
+ | "Category": { | ||
+ | "Key": 56, | ||
+ | "Name": "2*", | ||
+ | "PrintNumber": 2, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | "TimeFrom": "1900-01-01T11:00:00", | ||
+ | "TimeTo": "1900-01-01T12:00:00", | ||
+ | "HTTP": "http://booking.panteon.ru/TourPrograms/Home/Tour/?tourKey=100000007", | ||
+ | "Stars": "2*", | ||
+ | "TimeIsEmpty": false, | ||
+ | "NameLat": "Ananas", | ||
+ | "Address": null, | ||
+ | "IsCruise": 0, | ||
+ | "Phone": "(+43/1) 546200", | ||
+ | "Code": null, | ||
+ | "Type": "Hotel" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 707, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "Name": "Beim Theresianum", | ||
+ | "Category": { | ||
+ | "Key": 66, | ||
+ | "Name": "4*Boutique", | ||
+ | "PrintNumber": null, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | "TimeFrom": null, | ||
+ | "TimeTo": null, | ||
+ | "HTTP": null, | ||
+ | "Stars": "4*Boutique", | ||
+ | "TimeIsEmpty": true, | ||
+ | "NameLat": "Beim Theresianum", | ||
+ | "Address": null, | ||
+ | "IsCruise": 0, | ||
+ | "Phone": null, | ||
+ | "Code": null, | ||
+ | "Type": "Hotel" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 709, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "Name": "Am Brilliantengrund", | ||
+ | "Category": null, | ||
+ | "TimeFrom": null, | ||
+ | "TimeTo": null, | ||
+ | "HTTP": null, | ||
+ | "Stars": "", | ||
+ | "TimeIsEmpty": true, | ||
+ | "NameLat": "Am Brilliantengrund", | ||
+ | "Address": null, | ||
+ | "IsCruise": 0, | ||
+ | "Phone": null, | ||
+ | "Code": null, | ||
+ | "Type": "Hotel" | ||
+ | } | ||
+ | ], | ||
+ | "Pansions": [ | ||
+ | { | ||
+ | "Key": 46, | ||
+ | "Code": "RO", | ||
+ | "Name": "RO", | ||
+ | "NameLat": null, | ||
+ | "Type": "Pansion" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 4, | ||
+ | "Code": "BB2", | ||
+ | "Name": "Завтрак", | ||
+ | "NameLat": null, | ||
+ | "Type": "Pansion" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 2, | ||
+ | "Code": "HB", | ||
+ | "Name": "Полупансион", | ||
+ | "NameLat": null, | ||
+ | "Type": "Pansion" | ||
+ | } | ||
+ | ], | ||
+ | "Airlines": [ | ||
+ | { | ||
+ | "Key": 8, | ||
+ | "Code": "BA7", | ||
+ | "Name": "BRITISH AIRWAYS", | ||
+ | "NameLat": "en_BRITISH AIRWAYS", | ||
+ | "Type": "AirLine" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 3, | ||
+ | "Code": "7U", | ||
+ | "Name": "Авиаэнерго", | ||
+ | "NameLat": "en_Авиаэнерго", | ||
+ | "Type": "AirLine" | ||
+ | } | ||
+ | ], | ||
+ | "FlightTariffs": [ { | ||
+ | "Key": 89, | ||
+ | "Code": "Y", | ||
+ | "Name": "Экономический класс", | ||
+ | "NameLat": "Coach economy", | ||
+ | "Group": null, | ||
+ | "Type": "AirService" | ||
+ | }], | ||
+ | "DepartureCities": [ { | ||
+ | "key": 1, | ||
+ | "Country": { | ||
+ | "key": 460, | ||
+ | "name": "Россия", | ||
+ | "Code": null, | ||
+ | "CitizenName": "Россия", | ||
+ | "CitizenNameLat": "Russia", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": true, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Москва", | ||
+ | "Code": "MOW", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }], | ||
+ | "DepartureAirports": [ { | ||
+ | "Key": 52, | ||
+ | "Code": "SVO4", | ||
+ | "Name": "Шереметьево-24", | ||
+ | "NameLat": "Шереметьево-", | ||
+ | "CityKey": 1, | ||
+ | "CountryKey": 460, | ||
+ | "Letter": "S", | ||
+ | "Site": 0, | ||
+ | "Type": "Airport" | ||
+ | }], | ||
+ | "ArrivalCities": [ { | ||
+ | "key": 1, | ||
+ | "Country": { | ||
+ | "key": 460, | ||
+ | "name": "Россия", | ||
+ | "Code": null, | ||
+ | "CitizenName": "Россия", | ||
+ | "CitizenNameLat": "Russia", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": true, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
"name": "Москва", | "name": "Москва", | ||
− | " | + | "Code": "MOW", |
− | " | + | "Web": 0, |
− | + | "RSKey": 0, | |
− | + | "WebImage": null, | |
− | + | "IsDeparture": 1, | |
− | + | "Type": "City" | |
− | + | }], | |
+ | "ArrivalAirports": [ { | ||
+ | "Key": 12, | ||
+ | "Code": "DME", | ||
+ | "Name": "Домодедово", | ||
+ | "NameLat": "Домодедово", | ||
+ | "CityKey": 1, | ||
+ | "CountryKey": 460, | ||
+ | "Letter": "D", | ||
+ | "Site": 0, | ||
+ | "Type": "Airport" | ||
+ | }], | ||
+ | "HotelTypes": [ | ||
+ | { | ||
+ | "key": 94, | ||
+ | "name": "Молодежный отдых", | ||
+ | "Type": "HotelType" | ||
+ | }, | ||
+ | { | ||
+ | "key": 5, | ||
+ | "name": "Рекомендуемые", | ||
+ | "Type": "HotelType" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 190: | Строка 2144: | ||
</div></div><br /> | </div></div><br /> | ||
− | ===Выгрузка | + | ===Выгрузка транспортного плана (TransportPlan) до релиза 15.7 включительно=== |
− | Метод | + | Метод производит выгрузку транспортного плана. |
* Формат запроса: | * Формат запроса: | ||
− | ** ? | + | ** GET .../TourSearchOwin/TransportPlan? |
− | * Принимаемые параметры: | + | * Принимаемые параметры ( '''*''' – обязательный): |
− | ** ''' | + | ** '''code''' – код услуги |
+ | ** '''dateBegin''' – дата услуги | ||
+ | ** '''serviceType''' – тип услуги | ||
+ | ** '''transportKey''' – ключ справочника транспорт | ||
+ | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
− | ** ''' | + | ** '''TransportKey''' – ключ справочника транспорт |
− | ** ''' | + | ** '''Title''' – описание |
− | ** ''' | + | ** '''AreasCount''' – количество уровней |
− | ** ''' | + | ** '''RowsCount''' – количество рядов |
+ | ** '''ColumnsCount''' – количество мест в ряду | ||
+ | ** '''BusySeats''' – не используется | ||
+ | ** '''Cells''' – массив описаний всех мест | ||
+ | *** '''Row''' – ряд | ||
+ | *** '''Column''' – место в ряду | ||
+ | *** '''Area''' – уровень места | ||
+ | *** '''Type''' – тип (None = 0, Seat = 1, Block = 4, Busy = 5) | ||
+ | *** '''Name''' – название/номер | ||
+ | ** '''UserSeats''' – не используется | ||
+ | ** '''BlockSeat''' – не используется | ||
<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> | ||
− | Вызов метода | + | Вызов метода TransportPlan |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/TransportPlan?code=1311&dateBegin=17.04.2018&serviceType=14&transportKey=39 |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода TransportPlan (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
− | + | "TransportKey": 39, | |
− | + | "Title": "__", | |
− | + | "AreasCount": 1, | |
− | + | "RowsCount": 12, | |
− | + | "ColumnsCount": 5, | |
− | + | "BusySeats": [], | |
− | + | "Cells": [{ | |
− | + | "Row": 5, | |
− | + | "Column": 0, | |
− | + | "Area": 0, | |
− | + | "Type": 4, | |
− | + | "Name": "21" | |
− | + | }, | |
− | + | { | |
− | + | "Row": 5, | |
− | + | "Column": 1, | |
− | + | "Area": 0, | |
− | + | "Type": 1, | |
− | + | "Name": "22" | |
− | + | }, | |
− | + | { | |
+ | "Row": 5, | ||
+ | "Column": 2, | ||
+ | "Area": 0, | ||
+ | "Type": 2, | ||
+ | "Name": "" | ||
+ | }, | ||
+ | { | ||
+ | "Row": 5, | ||
+ | "Column": 3, | ||
+ | "Area": 0, | ||
+ | "Type": 1, | ||
+ | "Name": "23" | ||
+ | }, | ||
+ | { | ||
+ | "Row": 5, | ||
+ | "Column": 4, | ||
+ | "Area": 0, | ||
+ | "Type": 1, | ||
+ | "Name": "24" | ||
+ | }], | ||
+ | "UserSeats": { | ||
+ | |||
+ | }, | ||
+ | "BlockSeat": { | ||
+ | |||
+ | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 238: | Строка 2232: | ||
</div></div><br /> | </div></div><br /> | ||
− | ===Выгрузка | + | ===Выгрузка транспортного плана (TransportPlan) начиная с релиза 15.8=== |
− | Метод | + | Метод производит выгрузку транспортного плана. |
* Формат запроса: | * Формат запроса: | ||
− | ** ? | + | ** 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="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> | ||
− | Вызов метода | + | Вызов метода TransportPlan |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/TransportPlan?code=1776&dateBegin=28.03.2022&serviceType=14&transportKey=35 |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода TransportPlan (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <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": "VehiclePlans" | ||
+ | } | ||
+ | ], | ||
+ | "Seats": | ||
+ | [ | ||
+ | { | ||
+ | "Key": 332522, | ||
+ | "SeatType": 1, | ||
+ | "Index": 0, | ||
+ | "Number": "1", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 291, | ||
+ | "Border": "2002" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332523, | ||
+ | "SeatType": 1, | ||
+ | "Index": 1, | ||
+ | "Number": "2", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 291, | ||
+ | "Border": "2100" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332524, | ||
+ | "SeatType": 2, | ||
+ | "Index": 2, | ||
+ | "Number": "П", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 291, | ||
+ | "Border": "2201" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332525, | ||
+ | "SeatType": 1, | ||
+ | "Index": 3, | ||
+ | "Number": "3", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 291, | ||
+ | "Border": "0022" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332526, | ||
+ | "SeatType": 1, | ||
+ | "Index": 4, | ||
+ | "Number": "4", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 291, | ||
+ | "Border": "0120" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332527, | ||
+ | "SeatType": 1, | ||
+ | "Index": 5, | ||
+ | "Number": "5", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 291, | ||
+ | "Border": "0221" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332528, | ||
+ | "SeatType": 1, | ||
+ | "Index": 0, | ||
+ | "Number": "1", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 292, | ||
+ | "Border": "2002" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332529, | ||
+ | "SeatType": 1, | ||
+ | "Index": 1, | ||
+ | "Number": "2", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 292, | ||
+ | "Border": "2200" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332530, | ||
+ | "SeatType": 1, | ||
+ | "Index": 2, | ||
+ | "Number": "3", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 292, | ||
+ | "Border": "0012" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332531, | ||
+ | "SeatType": 1, | ||
+ | "Index": 3, | ||
+ | "Number": "4", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 292, | ||
+ | "Border": "0210" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332532, | ||
+ | "SeatType": 1, | ||
+ | "Index": 4, | ||
+ | "Number": "5", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 292, | ||
+ | "Border": "1000" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 332533, | ||
+ | "SeatType": 1, | ||
+ | "Index": 5, | ||
+ | "Number": "6", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 292, | ||
+ | "Border": "1000" | ||
+ | } | ||
+ | ], | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 278: | Строка 2413: | ||
</div></div><br /> | </div></div><br /> | ||
− | === | + | ===Получение дат заезда по турпрограмме=== |
− | Метод возвращает | + | Работает начиная с релиза 15.8. |
+ | Метод возвращает даты заезда по ключу турпрограммы. | ||
* Формат запроса: | * Формат запроса: | ||
− | ** ? | + | ** GET .../TourSearchOwin/TransportPlan? |
− | * Принимаемые параметры: | + | * Принимаемые параметры ( '''*''' – обязательный): |
− | ** ''' | + | ** '''tourProgramKey *''' – ключ турпрограммы |
+ | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
− | ** ''' | + | ** '''Массив дат заезда по туру''' |
− | ** ''' | + | |
− | ** ''' | + | <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"> | ||
+ | GET http://localhost:9000/TourSearchOwin/TransportPlan?tourProgramKey=100001277 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [ | ||
+ | "2022-02-21T00:00:00Z", | ||
+ | "2022-02-22T00:00:00Z", | ||
+ | "2022-02-23T00:00:00Z", | ||
+ | "2022-02-24T00:00:00Z", | ||
+ | "2022-02-25T00:00:00Z", | ||
+ | "2022-02-26T00:00:00Z", | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Получение плана транспортного средства (TransportPlan) по ключу турпрограммы и дате услуги=== | ||
+ | Работает начиная с релиза 15.8. | ||
+ | Метод возвращает даты заезда по ключу турпрограммы и дате услуги. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/TransportPlan? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | ** '''tourProgramKey *''' – ключ турпрограммы | ||
+ | ** '''dateBegin *''' – дата услуги | ||
+ | ** '''serviceType *''' – тип услуги | ||
+ | * Возвращаемый результат: | ||
+ | * '''plan''' – массив данных план | ||
+ | ** '''VehiclePlans''' – массив параметров зон плана | ||
+ | *** '''Key''' – ключ зоны | ||
+ | *** '''TransportKey''' – ключ из справочника транспорт | ||
+ | *** '''Row''' – количество рядов | ||
+ | *** '''AreaNumber''' – номер уровня | ||
+ | *** '''Name''' – название уровня | ||
+ | *** '''PlanOrientation''' – ориентация плана (''false'' - горизонтальная, ''true'' - вертикальная) | ||
+ | *** '''Column''' – количество столбцов | ||
+ | *** '''IsAirCraft''' – является ли планом самолета (''false'' - нет, ''true'' - является) | ||
+ | *** '''Dates''' – не используется | ||
+ | *** '''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) | ||
+ | * '''routeCity''' – направление автобусного переезда | ||
<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> | ||
− | Вызов метода | + | Вызов метода |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/TransportPlan?tourProgramKey=100001221&dateBegin=06.09.2023&serviceType=14 |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
− | + | "plan": { | |
− | + | "VehiclePlans": [ | |
{ | { | ||
− | + | "Key": 10, | |
− | + | "TransportKey": 24, | |
− | + | "Row": 10, | |
− | + | "AreaNumber": 1, | |
− | + | "Name": "12345678901234567890", | |
+ | "PlanOrientation": true, | ||
+ | "Column": 5, | ||
+ | "IsAirCraft": false, | ||
+ | "Dates": null, | ||
+ | "Type": "VehiclePlans" | ||
+ | } | ||
+ | ], | ||
+ | "Seats": [ | ||
+ | { | ||
+ | "Key": 406, | ||
+ | "SeatType": 1, | ||
+ | "Index": 0, | ||
+ | "Number": "1", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 10, | ||
+ | "Border": "0000" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 407, | ||
+ | "SeatType": 1, | ||
+ | "Index": 1, | ||
+ | "Number": "2", | ||
+ | "Type": "Seat", | ||
+ | "VPKey": 10, | ||
+ | "Border": "0000" | ||
+ | }, | ||
{ | { | ||
− | + | "Key": 408, | |
− | + | "SeatType": 0, | |
− | + | "Index": 2, | |
− | + | "Number": "", | |
− | + | "Type": "Seat", | |
+ | "VPKey": 10, | ||
+ | "Border": "0000" | ||
+ | }, | ||
{ | { | ||
− | + | "Key": 409, | |
− | + | "SeatType": 1, | |
− | + | "Index": 3, | |
− | + | "Number": "3", | |
− | + | "Type": "Seat", | |
+ | "VPKey": 10, | ||
+ | "Border": "0000" | ||
+ | }, | ||
{ | { | ||
− | + | "Key": 410, | |
− | + | "SeatType": 1, | |
− | + | "Index": 4, | |
− | + | "Number": "4", | |
− | + | "Type": "Seat", | |
+ | "VPKey": 10, | ||
+ | "Border": "0000" | ||
+ | }, | ||
{ | { | ||
− | + | "Key": 411, | |
− | + | "SeatType": 1, | |
− | + | "Index": 5, | |
− | + | "Number": "5", | |
− | + | "Type": "Seat", | |
+ | "VPKey": 10, | ||
+ | "Border": "0000" | ||
+ | }, | ||
{ | { | ||
− | + | "Key": 412, | |
− | + | "SeatType": 1, | |
− | + | "Index": 6, | |
− | + | "Number": "6", | |
− | + | "Type": "Seat", | |
− | + | "VPKey": 10, | |
+ | "Border": "0000" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "routeCity": "Москва - Казань" | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 344: | Строка 2574: | ||
</div></div><br /> | </div></div><br /> | ||
− | ===Выгрузка | + | ===Выгрузка первоначального варианта в корзину для бронирования (Tour)=== |
− | Метод возвращает | + | Метод поиска, который возвращает варианты только по данной турпрограмме и схеме отеля. |
* Формат запроса: | * Формат запроса: | ||
− | ** ? | + | ** GET .../TourSearchOwin/Tour? |
− | * Принимаемые параметры: | + | * Принимаемые параметры ( '''*''' – обязательный): |
− | ** ''' | + | ** '''DepartureCityKeys *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') |
+ | ** '''DestinationType *''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат. | ||
+ | ** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
+ | ** '''Dates *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''Durations *''' – массив продолжительностей (полученные из метода ''.../TourSearchOwin/Duration?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''AdultCount *''' – количество взрослых | ||
+ | ** '''ChildAges''' – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''CurrencyName *''' – код валюты | ||
+ | ** '''HotelQuota *''' – информация о квотах на отель (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''BusTransferQuota''' – информация о квотах на автобусный переезд (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''HotelScheme *''' – объект схемы отеля | ||
+ | *** '''TemplateId''' – идентификатор шаблона услуги | ||
+ | *** '''DurationInNight''' – продолжительность отеля в ночах | ||
+ | *** '''Code''' – ключ отеля | ||
+ | *** '''PacketKey''' – ключ пакета | ||
+ | *** '''PartnerKey''' – ключ партнера | ||
+ | *** '''GDSProviderId''' – ключ провайдера из внешней системы | ||
+ | *** '''TotalTourDuration''' – общая продолжительность тура в днях, обрабатывается начиная с релиза 15.6, обязательный параметр. Изменения связаны с возможностью работы поиска в ночах проживания в отеле, для перехода в корзину необходимо знать общую продолжительность тура. Взять значение для параметра ''TotalTourDuration'' для HotelScheme можно из свойства ''Duration'', пришедшего для данной цены в ответе метода поиск туров (''Tour'') | ||
+ | ** '''PageNumber *''' – номер возвращаемой страницы (по умолчанию возвращается 1) | ||
+ | ** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | ||
+ | ** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false). | ||
+ | ** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. | ||
+ | ** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура | ||
+ | ** '''TourDuration''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях | ||
+ | ** '''RemoteHotelMode''' – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4. | ||
+ | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
− | ** ''' | + | ** '''CheckMessages''' – сообщения для логики проверки тура (не используется) |
− | ** ''' | + | ** '''Message''' – сообщение об ошибке |
+ | *** '''Key''' – код ошибки | ||
+ | *** '''Value''' – сообщение об ошибке | ||
+ | ** '''Result''' – результаты поиска | ||
+ | *** '''Key''' – идентификатор программы тура | ||
+ | *** '''Name''' – название программы тура | ||
+ | *** '''TourUrl''' – ссылка на программу тура | ||
+ | *** '''BookingConditions''' – условия бронирования программы туров | ||
+ | *** '''StartDate''' – дата начала тура | ||
+ | *** '''Duration''' – продолжительность тура (в днях) | ||
+ | *** '''DurationInNight''' – продолжительность проживания (в ночах) | ||
+ | *** '''Types''' – идентификатор типа туров | ||
+ | *** '''Cost''' – цена тура | ||
+ | *** '''Rate''' – код валюты тура | ||
+ | *** '''CityDepature''' – город отправления | ||
+ | **** '''Key''' – идентификатор города отправления | ||
+ | **** '''Value''' – название города отправления | ||
+ | *** '''CountryId''' – всегда возвращается ключ 0 | ||
+ | *** '''Services''' – услуги в туре | ||
+ | **** '''DepartureCity''' – город отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureCountry''' – страна отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalCity''' – город прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalCountry''' – страна прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureAirport''' – аэропорт отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalAirport''' – аэропорт прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Airline''' – авиакомпания | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Aircraft''' – воздушное судно | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Flight''' – рейс | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureTime''' – время вылета | ||
+ | **** '''ArrivalTime''' – время прилета | ||
+ | **** '''EndDateTime''' – дата и время прилета | ||
+ | **** '''FlightDetails''' – информация об авиаперелете | ||
+ | ***** '''Tariff''' – информация о тарифе перелета | ||
+ | ****** '''Key''' – идентификатор | ||
+ | ****** '''Code''' – код тарифа | ||
+ | ****** '''Name''' – название тарифа | ||
+ | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ||
+ | ***** '''QuotaStatus''' – информация о квоте | ||
+ | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | ***** '''PartnerId''' – ключ партнера | ||
+ | ***** '''ByPax''' – цена за человека (true/false) | ||
+ | ***** '''Partner''' – информация о партнере | ||
+ | ****** '''Key''' – идентификатор | ||
+ | ****** '''Value''' – название | ||
+ | **** '''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''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ****** '''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''' – доп. фильтры (не используется при вызове из корзины) | ||
+ | |||
<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> | ||
− | Вызов метода | + | Вызов метода Tour (первоначальный вариант Tour в корзине для бронирования) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/Tour?DepartureCityKeys=1&DestinationType=1&DestinationKey=90 |
+ | &Dates=31.03.18&Durations=8&AdultCount=2&CurrencyName=EU&HotelQuota=5&AviaQuota=5&BusTransferQuota=5 | ||
+ | &HotelScheme=[{"TemplateId":"1","DurationInNight":"7","Code":"707","PacketKey":"779","PartnerKey":"12667" | ||
+ | "GDSProviderId": "0","TotalTourDuration": "8"}] | ||
+ | &TourKey=100003404&TourDuration=8&PageNumber=1&PageSize=20&IsFromBasket=true&isFillSecondaryFilters=false | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода Tour (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
− | " | + | "CheckMessages": null, |
− | " | + | "Message": { |
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "Result": [ | ||
{ | { | ||
− | " | + | "Key": 100003404, |
− | " | + | "Name": "Удалить этот тур", |
− | + | "TourUrl": "www.megatec.ru", | |
− | { | + | "BookingConditions": "Условия бронирования тура", |
− | + | "StartDate": "2018-03-31T00:00:00", | |
− | + | "Duration": 8, | |
− | + | "DurationInNight": 7, | |
− | { | + | "Types": [2], |
− | " | + | "Cost": 122, |
− | " | + | "Rate": "EU", |
− | + | "CityDepature": { | |
− | { | + | "Key": 1, |
− | " | + | "Value": "Москва" |
− | " | + | }, |
+ | "CountryId": 90, | ||
+ | "Services": [ | ||
+ | { | ||
+ | "DepartureCity": { | ||
+ | "Key": 1, | ||
+ | "Value": "Москва" | ||
+ | }, | ||
+ | "DepartureCountry": { | ||
+ | "Key": 460, | ||
+ | "Value": "Россия" | ||
+ | }, | ||
+ | "ArrivalCity": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "ArrivalCountry": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "DepartureAirport": { | ||
+ | "Key": "DME", | ||
+ | "Value": "Домодедово" | ||
+ | }, | ||
+ | "ArrivalAirport": { | ||
+ | "Key": "VIE1", | ||
+ | "Value": "Vena1" | ||
+ | }, | ||
+ | "Airline": { | ||
+ | "Key": "3G", | ||
+ | "Value": "Атлант Союз_d;kgmdlfkgnfdlkhndlfkhnlkfnh" | ||
+ | }, | ||
+ | "Aircraft": { | ||
+ | "Key": "319", | ||
+ | "Value": "AIRBUS " | ||
+ | }, | ||
+ | "Flight": { | ||
+ | "Key": 858, | ||
+ | "Value": "1111" | ||
+ | }, | ||
+ | "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, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-03-31T10:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "Index": 0 | ||
+ | }, | ||
+ | { | ||
+ | "Hotel": { | ||
+ | "Key": 707, | ||
+ | "Value": "Beim Theresianum" | ||
+ | }, | ||
+ | "City": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "Stars": { | ||
+ | "Key": 66, | ||
+ | "Value": "4*Boutique" | ||
+ | }, | ||
+ | "Resort": { | ||
+ | "Key": -1, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "ImageURL": "", | ||
+ | "Http": null, | ||
+ | "Description": "", | ||
+ | "Country": { | ||
+ | "Key": 90, | ||
+ | "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, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": true, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 7, | ||
+ | "BeginDateTime": "2018-03-31T11:59:00", | ||
+ | "EndDateTime": "2018-04-07T11:59:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "Index": 1 | ||
+ | }, | ||
+ | { | ||
+ | "DepartureCity": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "DepartureCountry": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "ArrivalCity": { | ||
+ | "Key": 1, | ||
+ | "Value": "Москва" | ||
+ | }, | ||
+ | "ArrivalCountry": { | ||
+ | "Key": 460, | ||
+ | "Value": "Россия" | ||
+ | }, | ||
+ | "DepartureAirport": { | ||
+ | "Key": "VIE1", | ||
+ | "Value": "Vena1" | ||
+ | }, | ||
+ | "ArrivalAirport": { | ||
+ | "Key": "DME", | ||
+ | "Value": "Домодедово" | ||
+ | }, | ||
+ | "Airline": { | ||
+ | "Key": "7U", | ||
+ | "Value": "Авиаэнерго" | ||
+ | }, | ||
+ | "Aircraft": { | ||
+ | "Key": "727", | ||
+ | "Value": "Boeing" | ||
+ | }, | ||
+ | "Flight": { | ||
+ | "Key": 774, | ||
+ | "Value": "222" | ||
+ | }, | ||
+ | "DepartureTime": "00:00:00", | ||
+ | "ArrivalTime": "00:00:00", | ||
+ | "EndDateTime": "2018-04-07T00:00:00", | ||
+ | "FlightDetails": [ { | ||
+ | "Tariff": { | ||
+ | "Key": 67, | ||
+ | "Code": "C", | ||
+ | "Name": "Бизнес класс" | ||
+ | }, | ||
+ | "Cost": 1.61, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 10760, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "FlightSetting": { | ||
+ | "ServiceId": 4, | ||
+ | "PatternId": 5, | ||
+ | "FlightId": 4 | ||
+ | }, | ||
+ | "FlightSourceMode": 1, | ||
+ | "Id": 4, | ||
+ | "SvKey": 1, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 8, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-04-07T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "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, | ||
+ | "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-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": { | ||
+ | "TemplateId": 4, | ||
+ | "PatternId": 5, | ||
+ | "SettingId": 4 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 774, | ||
+ | "SubCode1": 67, | ||
+ | "SubCode2": 35, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 10760, | ||
+ | "CountryId": 460, | ||
+ | "CityId": 1, | ||
+ | "Day": 8, | ||
+ | "DurationInNight": 0 | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "FlightWeight": 2, | ||
+ | "LinkingFlightsRules": { | ||
+ | "notCombineDifferentAirlineRule": { | ||
+ | "airlines": ["AY2"], | ||
+ | "flightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "checkPlusMinus1CharterRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentTariffGroupRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "notCombineDifferentPartnerRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "departureCityEqualsArrivalCityRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "combineOnlySpecificChartersRule": { | ||
+ | "settings": [], | ||
+ | "enabled": false | ||
+ | } | ||
+ | }, | ||
+ | "RouteSubVariants": [] | ||
} | } | ||
− | ] | + | ], |
+ | "SecondaryFiltersResult": null | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка настройки отображения полей по туристам (TouristDataSettings)=== | ||
+ | Метод производит выгрузку настроек отображения полей по туристам. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/TouristDataSettings? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | ** '''countryId *''' – ключ страны, для которой будут выгружаться настройки | ||
+ | * Возвращаемый результат: | ||
+ | ** '''TouristFieldsSettings''' – массив полей с информацией о туристах (из админки Мастер-Web) | ||
+ | *** '''lastname''' – объект фамилия туриста (лат) | ||
+ | **** '''Index''' – порядковый индекс элемента | ||
+ | **** '''Code''' – код поля | ||
+ | **** '''ApiCode''' – имя поля, которое будет использоваться при бронировании (например при вызове метода CreateReservation) | ||
+ | **** '''HeaderText''' – название поля | ||
+ | **** '''IsEdit''' – признак редактируемости поля | ||
+ | **** '''IsRequired''' – признак обязательности заполнения поля | ||
+ | **** '''IsVisible''' – видимость поля (видимое) | ||
+ | **** '''IsDisabled''' – служебный внутренний параметр. При работе с API не используется | ||
+ | **** '''Translit''' – настройки транслитерации (0 – нет, 1 – транслитерация, 2 – латиница) | ||
+ | **** '''LetterCase''' – настройки регистра (0 – по умолчанию, 1 – с заглавной, 2 – большие, 3 – маленькие) | ||
+ | *** '''patronymic''' – объект отчество туриста (лат) | ||
+ | *** '''sex''' – объект пол туриста | ||
+ | *** '''firstname''' – объект имя туриста (лат) | ||
+ | *** '''passportbywhom''' – объект кем выдан заграничный паспорт | ||
+ | *** '''birthplace''' – объект место рождения | ||
+ | *** '''birthdate''' – объект дата рождения | ||
+ | *** '''patronymicrus''' – объект отчество (рус) | ||
+ | *** '''lastnamerus''' – объект фамилия туриста (рус) | ||
+ | *** '''citizenid''' – объект ID туриста | ||
+ | *** '''passport''' – объект серия и номер заграничного паспорта | ||
+ | *** '''passportrus''' – объект серия и номер национального паспорт а | ||
+ | *** '''ismain''' – объект признак главного туриста | ||
+ | *** '''passportdate''' – объект дата выдачи заграничного паспорта | ||
+ | *** '''firstnamerus''' – объект имя туриста (рус) | ||
+ | *** '''passportbywhomrus''' – объект кем выдан национальный паспорт | ||
+ | *** '''citizenship''' – объект гражданство | ||
+ | *** '''passportdaterus''' – объект дата выдачи национального паспорта | ||
+ | *** '''phone''' – объект телефон | ||
+ | *** '''number''' – объект порядковый номер | ||
+ | *** '''passportdateend''' – объект дата окончания заграничного паспорта | ||
+ | *** '''email''' – объект e-mail туриста | ||
+ | ** '''PassportDurationOfExpiry''' – объект минимальный срок действия загранпаспорта туриста | ||
+ | *** '''StartPoint''' – точка отсчета | ||
+ | *** '''Duration''' – минимальная продолжительность | ||
+ | ** '''ChildAgeSetting''' – максимальный возраст ребенка, когда он считается ребенком (лет) | ||
+ | ** '''InfantAgeSetting''' – максимальный возраст младенца (месяцев) | ||
+ | |||
+ | <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> | ||
+ | Вызов метода TouristDataSettings | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/TouristDataSettings?countryId=90 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода TouristDataSettings (в формате JSON) | ||
+ | <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> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка услуг доплат к авиаперелетам (GetFlightsAdditionalServices)=== | ||
+ | Метод производит выгрузку услуг доплат к авиаперелетам. | ||
+ | * Формат запроса: | ||
+ | ** POST .../TourSearchOwin/GetFlightsAdditionalServices? | ||
+ | |||
+ | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
+ | ** '''Content-Type *''' – application/json | ||
+ | |||
+ | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
+ | ** '''TourProgramId''' – ключ турпрограммы | ||
+ | ** '''BeginDate''' – дата начала тура | ||
+ | ** '''Duration''' – продолжительность тура | ||
+ | ** '''Currency''' – код валюты | ||
+ | ** '''Services''' – массив услуг авиаперелетов для получения доплат | ||
+ | *** '''Service''' – объект услуга авиаперелет | ||
+ | **** '''ServiceType''' – тип услуги | ||
+ | **** '''Code''' – код услуги | ||
+ | **** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги | ||
+ | **** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги | ||
+ | **** '''Packet''' – ключ пакета услуги | ||
+ | **** '''Partner''' – ключ партнера услуги | ||
+ | **** '''Day''' – день предоставления услуги | ||
+ | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''City''' – ключ города | ||
+ | **** '''Country''' – страна услуги | ||
+ | **** '''Attributes''' – битовая маска атрибутов услуг | ||
+ | **** '''IsRemovable''' – (не обрабатывается) | ||
+ | **** '''Type''' – тип услуги в путевке (базовая дополнительная) | ||
+ | **** '''IsHooded''' – признак скрытая услуга | ||
+ | **** '''IsNotCalculated''' – признак не рассчитываемая услуга | ||
+ | **** '''BeginDateTimeString''' – дата и время начала услуги | ||
+ | **** '''EndDateTimeString''' – дата и время окончания услуги | ||
+ | **** '''TemplateId''' – шаблон услуги | ||
+ | **** '''Cost''' – цена услуги | ||
+ | **** '''ByPax''' – цена за человека | ||
+ | **** '''QuotaStatus''' – объект статус квотирования | ||
+ | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | **** '''Index''' – индекс услуги | ||
+ | **** '''IsRoute''' – признак маршрутная услуга | ||
+ | **** '''ServiceTemplateIndex''' – индекс шаблона услуги | ||
+ | *** '''TouristNumbersList''' – массив туристов, привязанных к услуге | ||
+ | ** '''Tourists''' – массив туристов | ||
+ | *** '''IsMain''' – главный турист | ||
+ | *** '''Number''' – порядковый номер туриста | ||
+ | *** '''AgeType''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант) | ||
+ | *** '''MaleFemaleSex''' – пол (0 – мужской, 1 – женский) | ||
+ | *** '''FirstName''' – имя (лат) | ||
+ | *** '''LastName''' – фамилия (лат) | ||
+ | *** '''Patronymic''' – отчество (лат) | ||
+ | *** '''FirstNameRus''' – имя (рус) | ||
+ | *** '''LastNameRus''' – фамилия (рус) | ||
+ | *** '''PatronymicRus''' – отчество (рус) | ||
+ | *** '''InternationalPassportSeries''' – серия загранпаспорта | ||
+ | *** '''InternationalPassportNumber''' – номер загранпаспорта | ||
+ | *** '''InternationalPassportDateOfIssue''' – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''InternationalPassportDateOfIssueString''' – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY) | ||
+ | *** '''InternationalPassportDateOfExpiry''' – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''InternationalPassportDateOfExpiryString''' – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY) | ||
+ | *** '''internationalPassportByWhom''' – кем выдан загранпаспорт | ||
+ | *** '''PassportSeries''' – серия паспорта | ||
+ | *** '''PassportNumber''' – номер паспорта | ||
+ | *** '''PassportDateOfIssue''' – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''PassportDateOfIssueString''' – дата выдачи паспорта в строковом формате (DD.MM.YYYY) | ||
+ | *** '''PassportByWhom''' – кем выдан паспорт | ||
+ | *** '''Citizenship''' – название страны | ||
+ | *** '''Phone''' – телефон | ||
+ | *** '''Email''' – e-mail | ||
+ | *** '''BirthDay''' – дата рождения (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''BirthDayString''' – дата рождения в строковом формате (DD.MM.YYYY) | ||
+ | *** '''BirthPlace''' – место рождения | ||
+ | *** '''CitizenID''' – гражданство | ||
+ | *** '''Age''' – количество полных лет на момент окончания тура | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''Массив''' – массив объектов доплат к авиаперелетам | ||
+ | *** '''ServiceName''' – название услуги | ||
+ | *** '''City''' – объект город | ||
+ | *** '''Country''' – объект страна | ||
+ | **** '''Key''' – ключ страны | ||
+ | **** '''Value''' – название страны | ||
+ | *** '''Code''' – объект код услуги | ||
+ | **** '''Key''' – ключ услуги | ||
+ | **** '''Value''' – название услуги | ||
+ | *** '''ByScheduler''' – признак по расписанию | ||
+ | *** '''Details''' - объект детализация | ||
+ | **** '''SubCode1''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Value''' – название | ||
+ | **** '''SubCode2''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Date''' – дата услуги | ||
+ | **** '''IsShowTransportPlan''' – признак показать транспортный план (для автобусов) | ||
+ | **** '''Cost''' – цена | ||
+ | **** '''QuotaStatus''' – объект статус квотирования | ||
+ | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | **** '''PartnerId''' – ключ партнера | ||
+ | **** '''ByPax''' – признак за человека | ||
+ | **** '''Partner''' – объект партнер (не заполняется) | ||
+ | ***** '''Key''' – ключ (не заполняется) | ||
+ | ***** '''Value''' – название (не заполняется) | ||
+ | *** '''ParentId''' – ключ родительской услуги | ||
+ | *** '''PartnerBasedOnServiceTemplateId''' – шаблон услуги для подбора поставщика | ||
+ | *** '''ShowOrder''' – порядок при печати (сортировка) по услуге | ||
+ | *** '''ShowOrderAddDescript1''' – порядок при печати (сортировка) по доп. описанию 1 | ||
+ | *** '''ShowOrderAddDescript2''' – порядок при печати (сортировка) по доп. описанию 2 | ||
+ | *** '''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''' – индекс шаблона услуги | ||
+ | |||
+ | <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> | ||
+ | Вызов метода GetHotelsAdditionalServices | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices? HTTP/1.1 | ||
+ | Content-Type: application/json | ||
+ | { | ||
+ | "TourProgramId": 100003404, | ||
+ | "BeginDate": "2018-04-16T00:00:00", | ||
+ | "Duration": 8, | ||
+ | "Currency": "EU", | ||
+ | "Services": [{ | ||
+ | "Service": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 858, | ||
+ | "SubCode1": 67, | ||
+ | "SubCode2": 1, | ||
+ | "Packet": 779, | ||
+ | "Partner": 10760, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "City": 35, | ||
+ | "Country": 90, | ||
+ | "Attributes": 0, | ||
+ | "IsRemovable": false, | ||
+ | "Type": 1, | ||
+ | "IsHooded": false, | ||
+ | "IsNotCalculated": false, | ||
+ | "BeginDateTimeString": "2018-04-16T10:00:00", | ||
+ | "EndDateTimeString": "2018-04-16T11:59:00", | ||
+ | "TemplateId": 3, | ||
+ | "Cost": 6, | ||
+ | "ByPax": true, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "Index": 0, | ||
+ | "IsRoute": true, | ||
+ | "ServiceTemplateIndex": 0 | ||
+ | }, | ||
+ | "TouristNumbersList": [1, | ||
+ | 2] | ||
+ | }, | ||
+ | { | ||
+ | "Service": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 774, | ||
+ | "SubCode1": 67, | ||
+ | "SubCode2": 35, | ||
+ | "Packet": 779, | ||
+ | "Partner": 10760, | ||
+ | "Day": 8, | ||
+ | "DurationInNight": 0, | ||
+ | "City": 1, | ||
+ | "Country": 460, | ||
+ | "Attributes": 0, | ||
+ | "IsRemovable": false, | ||
+ | "Type": 1, | ||
+ | "IsHooded": false, | ||
+ | "IsNotCalculated": false, | ||
+ | "BeginDateTimeString": "2018-04-23T00:00:00", | ||
+ | "EndDateTimeString": "2018-04-23T00:00:00", | ||
+ | "TemplateId": 4, | ||
+ | "Cost": 2, | ||
+ | "ByPax": true, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "Index": 3, | ||
+ | "IsRoute": true, | ||
+ | "ServiceTemplateIndex": 3 | ||
+ | }, | ||
+ | "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 | ||
+ | }] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода GetHotelsAdditionalServices (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [{ | ||
+ | "ServiceName": "Доплаты к авиаперелетам", | ||
+ | "City": null, | ||
+ | "Country": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "Code": { | ||
+ | "Key": 357, | ||
+ | "Value": "Топливный сбор" | ||
+ | }, | ||
+ | "ByScheduler": false, | ||
+ | "Details": [{ | ||
+ | "SubCode1": { | ||
+ | "Key": 41, | ||
+ | "Value": "3G1111 DME-VIE1 ()" | ||
+ | }, | ||
+ | "SubCode2": { | ||
+ | "Key": null, | ||
+ | "Value": "" | ||
+ | }, | ||
+ | "Date": "2018-04-16T10:00:00", | ||
+ | "IsShowTransportPlan": false, | ||
+ | "Cost": 24, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 0, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 10760, | ||
+ | "ByPax": false, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "ParentId": null, | ||
+ | "PartnerBasedOnServiceTemplateId": null, | ||
+ | "ShowOrder": 0, | ||
+ | "ShowOrderAddDescript1": 0, | ||
+ | "ShowOrderAddDescript2": 0, | ||
+ | "Id": -1, | ||
+ | "SvKey": 12, | ||
+ | "IsSubCode1": false, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-04-16T10:00:00", | ||
+ | "EndDateTime": "0001-01-01T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": true, | ||
+ | "PacketId": 777, | ||
+ | "Index": 0 | ||
+ | }] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка услуг доплат к отелям (GetHotelsAdditionalServices)=== | ||
+ | Метод производит выгрузку услуг доплат к отелям. | ||
+ | * Формат запроса: | ||
+ | ** POST .../TourSearchOwin/GetHotelsAdditionalServices? | ||
+ | |||
+ | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
+ | ** '''Content-Type *''' – application/json | ||
+ | |||
+ | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
+ | ** '''TourProgramId''' – ключ турпрограммы | ||
+ | ** '''BeginDate''' – дата начала тура | ||
+ | ** '''Duration''' – продолжительность тура | ||
+ | ** '''Currency''' – код валюты | ||
+ | ** '''Services''' – массив услуг отелей для получения доплат | ||
+ | *** '''Service''' – объект услуга отель | ||
+ | **** '''ServiceType''' – тип услуги | ||
+ | **** '''Code''' – код услуги | ||
+ | **** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги | ||
+ | **** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги | ||
+ | **** '''Packet''' – ключ пакета услуги | ||
+ | **** '''Partner''' – ключ партнера услуги | ||
+ | **** '''Day''' – день предоставления услуги | ||
+ | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''City''' – ключ города | ||
+ | **** '''Country''' – страна услуги | ||
+ | **** '''Attributes''' – битовая маска атрибутов услуг | ||
+ | **** '''IsRemovable''' – (не обрабатывается) | ||
+ | **** '''Type''' – тип услуги в путевке (базовая дополнительная) | ||
+ | **** '''IsHooded''' – признак скрытая услуга | ||
+ | **** '''IsNotCalculated''' – признак не рассчитываемая услуга | ||
+ | **** '''BeginDateTimeString''' – дата и время начала услуги (YYYY-MM-DDThh:mm:ss) | ||
+ | **** '''EndDateTimeString''' – дата и время окончания услуги (YYYY-MM-DDThh:mm:ss) | ||
+ | **** '''TemplateId''' – шаблон услуги | ||
+ | **** '''Cost''' – цена услуги | ||
+ | **** '''ByPax''' – цена за человека | ||
+ | **** '''QuotaStatus''' – объект статус квотирования | ||
+ | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | **** '''Index''' – индекс услуги | ||
+ | **** '''IsRoute''' – признак маршрутная услуга | ||
+ | **** '''ServiceTemplateIndex''' – индекс шаблона услуги | ||
+ | **** '''RemoteId''' – (в доплатах не используется) | ||
+ | *** '''TouristNumbersList''' – массив туристов, привязанных к услуге | ||
+ | ** '''Tourists''' – массив туристов | ||
+ | *** '''IsMain''' – главный турист | ||
+ | *** '''Number''' – порядковый номер туриста | ||
+ | *** '''AgeType''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант) | ||
+ | *** '''MaleFemaleSex''' – пол (0 – мужской, 1 – женский) | ||
+ | *** '''FirstName''' – имя (лат) | ||
+ | *** '''LastName''' – фамилия (лат) | ||
+ | *** '''Patronymic''' – отчество (лат) | ||
+ | *** '''FirstNameRus''' – имя (рус) | ||
+ | *** '''LastNameRus''' – фамилия (рус) | ||
+ | *** '''PatronymicRus''' – отчество (рус) | ||
+ | *** '''InternationalPassportSeries''' – серия загранпаспорта | ||
+ | *** '''InternationalPassportNumber''' – номер загранпаспорта | ||
+ | *** '''InternationalPassportDateOfIssue''' – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''InternationalPassportDateOfIssueString''' – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY) | ||
+ | *** '''InternationalPassportDateOfExpiry''' – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''InternationalPassportDateOfExpiryString''' – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY) | ||
+ | *** '''internationalPassportByWhom''' – кем выдан загранпаспорт | ||
+ | *** '''PassportSeries''' – серия паспорта | ||
+ | *** '''PassportNumber''' – номер паспорта | ||
+ | *** '''PassportDateOfIssue''' – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''PassportDateOfIssueString''' – дата выдачи паспорта в строке (DD.MM.YYYY) | ||
+ | *** '''PassportByWhom''' – кем выдан паспорт | ||
+ | *** '''Citizenship''' – название страны | ||
+ | *** '''Phone''' – телефон | ||
+ | *** '''Email''' – e-mail | ||
+ | *** '''BirthDay''' – дата рождения (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''BirthDayString''' – дата рождения в строковом формате (DD.MM.YYYY) | ||
+ | *** '''BirthPlace''' – место рождения | ||
+ | *** '''CitizenID''' – гражданство | ||
+ | *** '''Age''' – количество полных лет на момент окончания тура | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''Массив''' – массив объектов связок Возраст-Отель-Доп. услуги | ||
+ | *** '''Age''' – возраст туриста | ||
+ | *** '''Hotel''' – объект отель | ||
+ | **** '''ServiceType''' – тип услуги | ||
+ | **** '''Code''' – код услуги | ||
+ | **** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
+ | **** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
+ | **** '''PacketId''' – ключ пакета | ||
+ | **** '''PartnerId''' – ключ партнера | ||
+ | **** '''Day''' – день предоставления услуги | ||
+ | **** '''BeginTime''' – время начала услуги | ||
+ | **** '''EndTime''' – время окончания услуги | ||
+ | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''Attributes''' – маска атрибутов услуги | ||
+ | **** '''CountryId''' – ключ страны услуги | ||
+ | **** '''CityId''' – ключ города | ||
+ | **** '''Type''' – тип услуги в путевке | ||
+ | **** '''ShowOrder''' – порядок при печати (сортировка) по услуге | ||
+ | **** '''ShowOrderAddDescript1''' – порядок при печати (сортировка) по доп. описанию 1 | ||
+ | **** '''ShowOrderAddDescript2''' – порядок при печати (сортировка) по доп. описанию 2 | ||
+ | **** '''IsCommission''' – признак, комиссионная ли услуга | ||
+ | **** '''BaseFlightsParams''' – параметр не обрабатывается | ||
+ | *** '''AdditionalServices''' – массив доплат | ||
+ | *** '''ServiceName''' – название услуги | ||
+ | *** '''City''' – объект город | ||
+ | *** '''Country''' – ключ страны | ||
+ | *** '''Code''' – объект код услуги | ||
+ | **** '''Key''' – ключ услуги | ||
+ | **** '''Value''' – название услуги | ||
+ | *** '''ByScheduler''' – признак по расписанию | ||
+ | *** '''Details''' - объект детализация | ||
+ | **** '''SubCode1''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Value''' – название | ||
+ | **** '''SubCode2''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Date''' – дата услуги | ||
+ | **** '''IsShowTransportPlan''' – признак показать транспортный план (для автобусов) | ||
+ | **** '''Cost''' – цена | ||
+ | **** '''QuotaStatus''' – объект статус квотирования | ||
+ | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | **** '''PartnerId''' – ключ партнера | ||
+ | **** '''ByPax''' – признак за человека | ||
+ | **** '''Partner''' – объект партнер (не заполняется) | ||
+ | ***** '''Key''' – ключ (не заполняется) | ||
+ | ***** '''Value''' – название (не заполняется) | ||
+ | *** '''ParentId''' – ключ родительской услуги | ||
+ | *** '''PartnerBasedOnServiceTemplateId''' – шаблон услуги для подбора поставщика | ||
+ | *** '''ShowOrder''' – порядок при печати (сортировка) по услуге | ||
+ | *** '''ShowOrderAddDescript1''' – порядок при печати (сортировка) по доп. описанию 1 | ||
+ | *** '''ShowOrderAddDescript2''' – порядок при печати (сортировка) по доп. описанию 2 | ||
+ | *** '''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''' – индекс шаблона услуги | ||
+ | |||
+ | <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> | ||
+ | Вызов метода GetHotelsAdditionalServices | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices? HTTP/1.1 | ||
+ | Content-Type: application/json | ||
+ | |||
+ | { "TourProgramId": 100003404, | ||
+ | "BeginDate": "2018-04-16T00:00:00", | ||
+ | "Duration": 8, | ||
+ | "Currency": "EU", | ||
+ | "Services": [{ | ||
+ | "Service": { | ||
+ | "ServiceType": 3, | ||
+ | "Code": 178, | ||
+ | "SubCode1": 46387, | ||
+ | "SubCode2": 57, | ||
+ | "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": 122, | ||
+ | "ByPax": false, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "Index": 1, | ||
+ | "IsRoute": true, | ||
+ | "ServiceTemplateIndex": 1, | ||
+ | "RemoteId": null | ||
+ | }, | ||
+ | "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 | ||
+ | }] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода GetHotelsAdditionalServices (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [{ | ||
+ | "Age": 17, | ||
+ | "Hotel": { | ||
+ | "ServiceType": 3, | ||
+ | "Code": 178, | ||
+ | "SubCode1": 46387, | ||
+ | "SubCode2": 57, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 12667, | ||
+ | "Day": 1, | ||
+ | "BeginTime": "11:59:00", | ||
+ | "EndTime": "11:59:00", | ||
+ | "DurationInNight": 7, | ||
+ | "Attributes": 0, | ||
+ | "CountryId": 90, | ||
+ | "CityId": 35, | ||
+ | "Type": 1, | ||
+ | "ShowOrder": 1, | ||
+ | "ShowOrderAddDescript1": 0, | ||
+ | "ShowOrderAddDescript2": 0, | ||
+ | "IsCommission": false, | ||
+ | "BaseFlightsParams": null | ||
+ | }, | ||
+ | "AdditionalServices": [{ | ||
+ | "ServiceName": "Доплаты к отелям", | ||
+ | "City": null, | ||
+ | "Country": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "Code": { | ||
+ | "Key": 364, | ||
+ | "Value": "Праздник" | ||
+ | }, | ||
+ | "ByScheduler": false, | ||
+ | "Details": [{ | ||
+ | "SubCode1": { | ||
+ | "Key": 109, | ||
+ | "Value": "Ananas" | ||
+ | }, | ||
+ | "SubCode2": { | ||
+ | "Key": null, | ||
+ | "Value": "" | ||
+ | }, | ||
+ | "Date": "2018-04-16T11:59:00", | ||
+ | "IsShowTransportPlan": false, | ||
+ | "Cost": 2, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 0, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12667, | ||
+ | "ByPax": false, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "ParentId": null, | ||
+ | "PartnerBasedOnServiceTemplateId": null, | ||
+ | "ShowOrder": 0, | ||
+ | "ShowOrderAddDescript1": 0, | ||
+ | "ShowOrderAddDescript2": 0, | ||
+ | "Id": -1, | ||
+ | "SvKey": 13, | ||
+ | "IsSubCode1": false, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-04-16T11:59:00", | ||
+ | "EndDateTime": "0001-01-01T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": true, | ||
+ | "PacketId": 879, | ||
+ | "Index": 1 | ||
+ | }] | ||
+ | }] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Расчет индивидуальных услуг (CalculateIndividualServiceCosts)=== | ||
+ | Метод производит расчет услуг с индивидуальным выбором у туристов. | ||
+ | * Формат запроса: | ||
+ | ** POST .../TourSearchOwin/CalculateIndividualServiceCosts? | ||
+ | |||
+ | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
+ | ** '''Content-Type *''' – application/json | ||
+ | |||
+ | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
+ | ** '''TourProgramId''' – ключ тура | ||
+ | ** '''TourDate''' – дата тура | ||
+ | ** '''TourDuration''' – продолжительность тура | ||
+ | ** '''Currency''' – код валюты | ||
+ | ** '''Services''' – массив индивидуальных услуг | ||
+ | *** '''ServiceType''' – тип услуги | ||
+ | *** '''Code''' – код услуги | ||
+ | *** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
+ | *** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
+ | *** '''Packet''' – ключ пакета | ||
+ | *** '''Partner''' – ключ партнера | ||
+ | *** '''Day''' – день предоставления услуги | ||
+ | *** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | *** '''City''' – объект город | ||
+ | *** '''Country''' – страна услуги | ||
+ | *** '''Attributes''' – маска атрибутов услуги | ||
+ | *** '''Type''' – тип услуги | ||
+ | *** '''IsHooded''' – признак скрытая | ||
+ | *** '''IsNotCalculated''' – признак не рассчитываемая | ||
+ | *** '''BeginDateTimeString''' – дата начала услуги в строке | ||
+ | *** '''EndDateTimeString''' – дата начала услуги в строке | ||
+ | *** '''TemplateId''' – номер шаблона услуги | ||
+ | *** '''Cost''' – цена услуги | ||
+ | *** '''ByPax''' – цена за человека | ||
+ | *** '''QuotaStatus''' – объект статус квотирования | ||
+ | **** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | ||
+ | **** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | **** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | *** '''Index''' – индекс услуги | ||
+ | *** '''IsRoute''' – признак маршрутная услуга | ||
+ | *** '''ServiceTemplateIndex''' – индекс шаблона услуги | ||
+ | *** '''RemoteId''' – (не используется) | ||
+ | ** '''Ages''' – массив возрастов туристов | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''Массив''' – массив связок Возраст-Услуга-Цена | ||
+ | *** '''Age''' – возраст | ||
+ | *** '''Service''' – объект услуга | ||
+ | **** '''ServiceType''' – тип услуги | ||
+ | **** '''Code''' – код услуги | ||
+ | **** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
+ | **** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
+ | **** '''PacketId''' – ключ пакета услуги | ||
+ | **** '''PartnerId''' – ключ партнера | ||
+ | **** '''Day''' – день предоставления услуги | ||
+ | **** '''BeginTime''' – время начала услуги | ||
+ | **** '''EndTime''' – время окончания услуги | ||
+ | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''Attributes''' – маска атрибутов услуги | ||
+ | **** '''CountryId''' – ключ страны | ||
+ | **** '''CityId''' – ключ города | ||
+ | **** '''Type''' – тип услуги | ||
+ | **** '''ShowOrder''' – порядковый номер | ||
+ | *** '''SimpleServiceCost''' – объект цена | ||
+ | **** '''Brutto''' – брутто | ||
+ | **** '''Discount''' – скидка | ||
+ | |||
+ | <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> | ||
+ | Вызов метода CalculateIndividualServiceCosts | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:9000/TourSearchOwin/CalculateIndividualServiceCosts? HTTP/1.1 | ||
+ | Content-Type: application/json | ||
+ | |||
+ | { | ||
+ | "TourProgramId": 100003403, | ||
+ | "TourDate": "2018-04-16T00:00:00", | ||
+ | "TourDuration": 8, | ||
+ | "Currency": "EU", | ||
+ | "Services": [{ | ||
+ | "ServiceType": 6, | ||
+ | "Code": 155, | ||
+ | "SubCode1": 7, | ||
+ | "SubCode2": 10, | ||
+ | "Packet": 779, | ||
+ | "Partner": 10760, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 7, | ||
+ | "City": null, | ||
+ | "Country": 90, | ||
+ | "Attributes": 0, | ||
+ | "Type": 1, | ||
+ | "IsHooded": false, | ||
+ | "IsNotCalculated": false, | ||
+ | "BeginDateTimeString": "2018-04-16T00:00:00", | ||
+ | "EndDateTimeString": null, | ||
+ | "TemplateId": 12, | ||
+ | "Cost": 26, | ||
+ | "ByPax": false, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 1, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "Index": null, | ||
+ | "IsRoute": null, | ||
+ | "ServiceTemplateIndex": null, | ||
+ | "RemoteId": null | ||
+ | }], | ||
+ | "Ages": [17] | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода CalculateIndividualServiceCosts (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [{ | ||
+ | "Age": 17, | ||
+ | "Service": { | ||
+ | "ServiceType": 6, | ||
+ | "Code": 155, | ||
+ | "SubCode1": 7, | ||
+ | "SubCode2": 10, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 10760, | ||
+ | "Day": 1, | ||
+ | "BeginTime": null, | ||
+ | "EndTime": null, | ||
+ | "DurationInNight": 7, | ||
+ | "Attributes": 0, | ||
+ | "CountryId": 90, | ||
+ | "CityId": null, | ||
+ | "Type": 1, | ||
+ | "ShowOrder": 0 | ||
+ | }, | ||
+ | "SimpleServiceCost": { | ||
+ | "Brutto": 13, | ||
+ | "Discount": 0 | ||
+ | } | ||
+ | }] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</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''' – локализация | ||
+ | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
− | ** '''id''' – | + | ** '''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"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | 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, |
− | + | "States": null, | |
− | + | "IsValid": true | |
+ | }, | ||
+ | "flightsStartEndPointPatterns": [{ | ||
+ | "fromPoint": { | ||
+ | "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/RebuildFlights | ||
+ | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
+ | ** '''Content-Type *''' – application/json | ||
+ | |||
+ | * Принимаемые параметры 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''' – день предоставления услуги | ||
+ | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''BeginDateTime''' – дата предоставления услуги | ||
+ | **** '''EndDateTime''' – дата окончания услуги | ||
+ | **** '''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 | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:9000/TourSearchOwin/RebuildFlights HTTP/1.1 | ||
+ | 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> | ||
+ | Возвращаемый результат метода GetGDSFlightFareFamilies (в формате JSON) | ||
+ | <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": "Возврат запрещен" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | "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''' – название филиала (название партнера) | ||
+ | |||
+ | <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> | ||
+ | Вызов метода 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> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
Строка 433: | Строка 6259: | ||
− | === | + | ===Загрузка ведущих менеджеров (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? | ||
+ | |||
+ | * Принимаемые параметры 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 *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) ''Может быть с пустым значением'' | ||
+ | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
− | ** ''' | + | ** '''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''' – код национальной валюты | ||
<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> | ||
− | Вызов метода | + | Вызов метода CalculateReservation |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | POST http://localhost:9000/TourSearchOwin/CalculateReservation? 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": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)" | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода CalculateReservation (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <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, | ||
+ | "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? | ||
+ | |||
+ | * Принимаемые параметры 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 *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) ''Может быть с пустым значением'' | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''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''' – количество дней услуги | ||
+ | **** '''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="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода CreateReservation | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | PUT http://localhost:9000/TourSearchOwin/CreateReservation/1? 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", | ||
+ | "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, | ||
+ | "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": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)" | ||
+ | } | ||
+ | </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, | ||
+ | "DiscSumBfrAnn": null, | ||
+ | "PriceBfrAnn": null, | ||
+ | "RazmerP": 0, | ||
+ | "LeadDepartment": 0, | ||
+ | "MainManEmail": "test@megatec.ru", | ||
+ | "MainManComment": "", | ||
+ | "DupUserKey": 6, | ||
+ | "BTKey": 1, | ||
+ | "ConfirmedDate": null, | ||
+ | "PrtDogKey": 11, | ||
+ | "CTDepartureKey": 1, | ||
+ | "PDTType": 0, | ||
+ | "NationalCurrencyPrice": null, | ||
+ | "NationalCurrencyDiscountSum": null, | ||
+ | "NationalCurrencyPayed": null, | ||
+ | "CurrencyKey": null, | ||
+ | "CurrencyRate": null, | ||
+ | "ClientKey": null, | ||
+ | "Partner": { | ||
+ | "$id": 2, | ||
+ | "Key": 10762, | ||
+ | "FullName": "Агентство", | ||
+ | "Name": "Агентство" | ||
+ | }, | ||
+ | "Services": [{ | ||
+ | "$id": 3, | ||
+ | "DGCod": "AU10101003", | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "Key": 202463, | ||
+ | "PaketKey": 209, | ||
+ | "TRKey": 100000038, | ||
+ | "SVKey": 1, | ||
+ | "Name": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс", | ||
+ | "Day": 1, | ||
+ | "Code": 570, | ||
+ | "SubCode1": 67, | ||
+ | "SubCode2": 1, | ||
+ | "Men": 2, | ||
+ | "Days": 0, | ||
+ | "CNKey": 90, | ||
+ | "CTKey": 35, | ||
+ | "PartnerKey": 10760, | ||
+ | "Brutto": 162.2, | ||
+ | "Wait": null, | ||
+ | "Warning": 0, | ||
+ | "TimeBeg": "1899-01-01T14:00:00", | ||
+ | "Control": 1, | ||
+ | "Attribute": 65695, | ||
+ | "DateBeg": "2021-01-01T00:00:00", | ||
+ | "DateEnd": "2021-01-01T00:00:00", | ||
+ | "Discount": 14.8, | ||
+ | "Comment": null, | ||
+ | "DGKey": 40335, | ||
+ | "Blocked": null, | ||
+ | "NameLat": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс", | ||
+ | "Long": 9, | ||
+ | "TRFId": 0, | ||
+ | "CreateDate": "2020-10-12T15:02:29.013", | ||
+ | "CalculatePriceDate": "2020-10-12T15:02:29.013", | ||
+ | "ShowOrder": 1, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 4, | ||
+ | "DGCod": "AU10101003", | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "Key": 202462, | ||
+ | "PaketKey": 209, | ||
+ | "TRKey": 100000038, | ||
+ | "SVKey": 3, | ||
+ | "Name": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион", | ||
+ | "Day": 1, | ||
+ | "Code": 702, | ||
+ | "SubCode1": 1113, | ||
+ | "SubCode2": 2, | ||
+ | "Men": 2, | ||
+ | "Days": 8, | ||
+ | "CNKey": 90, | ||
+ | "CTKey": 35, | ||
+ | "PartnerKey": 10760, | ||
+ | "Brutto": 519.6, | ||
+ | "Wait": null, | ||
+ | "Warning": 0, | ||
+ | "TimeBeg": "1899-01-01T16:30:00", | ||
+ | "Control": 1, | ||
+ | "Attribute": 65695, | ||
+ | "DateBeg": "2021-01-01T00:00:00", | ||
+ | "DateEnd": "2021-01-08T00:00:00", | ||
+ | "Discount": 47.4, | ||
+ | "Comment": null, | ||
+ | "DGKey": 40335, | ||
+ | "Blocked": null, | ||
+ | "NameLat": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион", | ||
+ | "Long": 9, | ||
+ | "TRFId": 0, | ||
+ | "CreateDate": "2020-10-12T15:02:29.013", | ||
+ | "CalculatePriceDate": "2020-10-12T15:02:29.013", | ||
+ | "ShowOrder": 2, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 5, | ||
+ | "DGCod": "AU10101003", | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "Key": 202461, | ||
+ | "PaketKey": 209, | ||
+ | "TRKey": 100000038, | ||
+ | "SVKey": 1, | ||
+ | "Name": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс", | ||
+ | "Day": 9, | ||
+ | "Code": 572, | ||
+ | "SubCode1": 67, | ||
+ | "SubCode2": 35, | ||
+ | "Men": 2, | ||
+ | "Days": 0, | ||
+ | "CNKey": 460, | ||
+ | "CTKey": 1, | ||
+ | "PartnerKey": 10760, | ||
+ | "Brutto": 195.2, | ||
+ | "Wait": null, | ||
+ | "Warning": 0, | ||
+ | "TimeBeg": "1899-01-01T14:00:00", | ||
+ | "Control": 1, | ||
+ | "Attribute": 65695, | ||
+ | "DateBeg": "2021-01-09T00:00:00", | ||
+ | "DateEnd": "2021-01-09T00:00:00", | ||
+ | "Discount": 17.8, | ||
+ | "Comment": null, | ||
+ | "DGKey": 40335, | ||
+ | "Blocked": null, | ||
+ | "NameLat": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс", | ||
+ | "Long": 9, | ||
+ | "TRFId": 0, | ||
+ | "CreateDate": "2020-10-12T15:02:29.013", | ||
+ | "CalculatePriceDate": "2020-10-12T15:02:29.013", | ||
+ | "ShowOrder": 3, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | "Turists": [{ | ||
+ | "$id": 6, | ||
+ | "DGCod": "AU10101003", | ||
+ | "Key": 88653, | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "NameRus": "IVANOV", | ||
+ | "NameLat": "IVANOV", | ||
+ | "ShortName": "I.", | ||
+ | "Sex": 0, | ||
+ | "FNameRus": "IVAN", | ||
+ | "FNameLat": "IVAN", | ||
+ | "SNameRus": "", | ||
+ | "SNameLat": "", | ||
+ | "BirthDay": "1980-01-01T00:00:00", | ||
+ | "BirthCountry": null, | ||
+ | "BirthCity": "Москва", | ||
+ | "Citizen": "", | ||
+ | "PostIndex": null, | ||
+ | "PostCity": null, | ||
+ | "PostStreet": null, | ||
+ | "PostBild": null, | ||
+ | "PostFlat": null, | ||
+ | "Phone": "", | ||
+ | "PhoneCode": null, | ||
+ | "PasportType": "", | ||
+ | "PasportNum": "", | ||
+ | "PasportDate": null, | ||
+ | "PasportDateEnd": null, | ||
+ | "PasportByWhom": "", | ||
+ | "Place": null, | ||
+ | "IsAnketa": null, | ||
+ | "PaspRuser": "", | ||
+ | "PaspRuNum": "", | ||
+ | "PaspRuDate": null, | ||
+ | "PaspRuByWhom": "", | ||
+ | "ClientId": null, | ||
+ | "IsMain": 1, | ||
+ | "DGKey": 40335, | ||
+ | "RealSex": 0, | ||
+ | "Email": "", | ||
+ | "EnableSmsNotifications": 0, | ||
+ | "CitizenId": "", | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 7, | ||
+ | "DGCod": "AU10101003", | ||
+ | "Key": 88652, | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "NameRus": "PETROV", | ||
+ | "NameLat": "PETROV", | ||
+ | "ShortName": "P.", | ||
+ | "Sex": 0, | ||
+ | "FNameRus": "PETR", | ||
+ | "FNameLat": "PETR", | ||
+ | "SNameRus": "", | ||
+ | "SNameLat": "", | ||
+ | "BirthDay": "1981-01-01T00:00:00", | ||
+ | "BirthCountry": null, | ||
+ | "BirthCity": "Москва", | ||
+ | "Citizen": "", | ||
+ | "PostIndex": null, | ||
+ | "PostCity": null, | ||
+ | "PostStreet": null, | ||
+ | "PostBild": null, | ||
+ | "PostFlat": null, | ||
+ | "Phone": "", | ||
+ | "PhoneCode": null, | ||
+ | "PasportType": "", | ||
+ | "PasportNum": "", | ||
+ | "PasportDate": null, | ||
+ | "PasportDateEnd": null, | ||
+ | "PasportByWhom": "", | ||
+ | "Place": null, | ||
+ | "IsAnketa": null, | ||
+ | "PaspRuser": "", | ||
+ | "PaspRuNum": "", | ||
+ | "PaspRuDate": null, | ||
+ | "PaspRuByWhom": "", | ||
+ | "ClientId": null, | ||
+ | "IsMain": 0, | ||
+ | "DGKey": 40335, | ||
+ | "RealSex": 0, | ||
+ | "Email": "", | ||
+ | "EnableSmsNotifications": 0, | ||
+ | "CitizenId": "", | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | "TuristServices": [{ | ||
+ | "$id": 8, | ||
+ | "TUKey": 88653, | ||
+ | "DLKey": 202463, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3770, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 3 | ||
+ | }, { | ||
+ | "$ref": 6 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 9, | ||
+ | "TUKey": 88652, | ||
+ | "DLKey": 202463, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3768, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 3 | ||
+ | }, { | ||
+ | "$ref": 7 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 10, | ||
+ | "TUKey": 88653, | ||
+ | "DLKey": 202462, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3771, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 4 | ||
+ | }, { | ||
+ | "$ref": 6 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 11, | ||
+ | "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, | ||
+ | "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": [] | ||
+ | "DogovorMessages": [{ | ||
+ | "$id": 11, | ||
+ | "Date": "2020-10-09T09:16:39.99", | ||
+ | "Text": "Тайм-лимит забронированного перелета: 13.10.2020 21:59", | ||
+ | "Remark": "TimeLimit", | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "ValidationResultSummary": { | ||
+ | "ValidationResult": { | ||
+ | "Errors": [], | ||
+ | "IsValid": true | ||
+ | }, | ||
+ | "ValidationResultAttributes": 0 | ||
+ | } | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка информации о путевке (GetReservation)=== | ||
+ | Метод выводит информацию о бронированной путевке. | ||
+ | |||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/GetReservation? | ||
+ | |||
+ | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
+ | ** '''Content-Type *''' – application/json | ||
+ | ** '''Authorization *''' – token_type + access_token (полученные из метода .../TourSearchOwin/Token?) | ||
+ | |||
+ | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
+ | ** '''dgCode *''' – номер путевки: | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''$id''' – внутренний идентификатор для установки связей между сущностями, | ||
+ | ** '''Code''' – код путевки | ||
+ | ** '''TurDate''' – дата заезда | ||
+ | ** '''TRKey''' – ключ тура | ||
+ | ** '''CNKey''' – ключ страны | ||
+ | ** '''CTKey''' – ключ города | ||
+ | ** '''NMen''' – количество туристов по путевке | ||
+ | ** '''Price''' – стоимость путевки за вычетом скидки (комиссии) | ||
+ | ** '''Payed''' – оплаченная сумма по путевке | ||
+ | ** '''NDay''' – продолжительность тура в днях | ||
+ | ** '''MainMan''' – ФИО лица, заключившего договор | ||
+ | ** '''MainManPhone''' – номер телефона лица, заключившего договор | ||
+ | ** '''MainManAddress''' – адрес лица, заключившего договор | ||
+ | ** '''MainManPassport''' – паспортные данные лица, заключившего договор | ||
+ | ** '''PartnerKey''' – ключ партнера, оформившего договор | ||
+ | ** '''Operator''' – ФИО создателя договора | ||
+ | ** '''Discount''' – величина скидки на одного человека | ||
+ | ** '''DiscountSum''' – абсолютная величина скидки | ||
+ | ** '''SORCode''' – ключ статус путевки, возможные значения: 0-в работе, 1-не определён, 2-аннулирован, 3-wait лист, 7-ок. | ||
+ | ** '''CrDate''' – дата и время создания путевки | ||
+ | ** '''Rate''' – код валюты путевки | ||
+ | ** '''Advertise''' – ключ источника рекламы | ||
+ | ** '''Locked''' – блокировка путевки: ''1'' – если заблокирована | ||
+ | ** '''CauseDisc''' – ключ основания для скидки | ||
+ | ** '''PPaymentDate''' – максимальная дата внесения предоплаты | ||
+ | ** '''PaymentDate''' – максимальная дата полной оплаты | ||
+ | ** '''Procent''' – информация о предоплате: ''1'' – предоплата в %; ''0'' – предоплата в у.е. | ||
+ | ** '''TurDateBfrAnnul''' – значение даты заезда до аннуляции путевки (при аннуляции дата заезда заменяется на 31.12.1899) | ||
+ | ** '''ARKey''' – ключ причины аннуляции путевки | ||
+ | ** '''Key''' – ключ договора | ||
+ | ** '''CodePartner''' – значение ключевого поля из таблицы партнеров | ||
+ | ** '''FilialKey''' – ключ филиала фирмы-владельца, пользователем которого была забронирована путевка | ||
+ | ** '''IsOutDoc''' – статус выдачи документов | ||
+ | ** '''Notes''' – сообщение поставщику | ||
+ | ** '''DiscSumBfrAnn''' – числовое значение скидки перед аннуляцией путевки | ||
+ | ** '''PriceBfrAnn''' – стоимость путевки перед ее аннуляцией | ||
+ | ** '''RazmerP''' – размер предоплаты | ||
+ | ** '''LeadDepartment''' – ключ отдела, ведущего данный тур | ||
+ | ** '''MainManEmail''' – адрес е-mail из данных лица, заключившего договор | ||
+ | ** '''MainManComment''' – примечание из данных лица, заключившего договор | ||
+ | ** '''DupUserKey''' – ключ представителя партнера, которым был оформлен договор | ||
+ | ** '''BTKey''' – ключ системы бронирования, из которой был оформлен договор | ||
+ | ** '''ConfirmedDate''' – дата подтверждения путевки покупателю | ||
+ | ** '''PrtDogKey''' – договор партнера, по которому оформлена путевка | ||
+ | ** '''CTDepartureKey''' – ключ города начала поездки | ||
+ | ** '''PDTType''' – тип договора, по которому оформлена путевка | ||
+ | ** '''NationalCurrencyPrice''' – стоимость путевки в национальной валюте | ||
+ | ** '''NationalCurrencyDiscountSum''' – значение скидки в национальной валюте | ||
+ | ** '''NationalCurrencyPayed''' – сумма платежей по путевке, зафиксированная в национальной валюте | ||
+ | ** '''CurrencyKey''' – ключ национальной валюты путевки | ||
+ | ** '''CurrencyRate''' – курс национальной валюты путевки | ||
+ | ** '''ClientKey''' – ключ частника, которым был оформлен договор | ||
+ | ** '''Partner''' – информация о партнере покупателе, привязанным к путевке | ||
+ | *** '''$id''' – внутренний идентификатор для установки связей между сущностями | ||
+ | *** '''Key''' – ключ партнера покумателя | ||
+ | *** '''FullName''' – полное имя партнера | ||
+ | *** '''Name''' – имя партнера | ||
+ | ** '''Services''' – коллекция услуг в данной путевке | ||
+ | *** '''$id''' – внутренний идентификатор для установки связей между сущностями | ||
+ | *** '''DGCod''' – номер путевки | ||
+ | *** '''TurDate''' – дата начала тура | ||
+ | *** '''Key''' – ключ услуги | ||
+ | *** '''PaketKey''' – ключ пакета | ||
+ | *** '''TRKey''' – клют тура | ||
+ | *** '''SVKey''' – ключ типа услуги | ||
+ | *** '''Name''' – наименование услуги | ||
+ | *** '''Day''' – порядковый номер дня тура, в который предоставляется услуга | ||
+ | *** '''Code''' – ключ кода услуги | ||
+ | *** '''SubCode1''' – ключ доп.описания 1 услуги | ||
+ | *** '''SubCode2''' – ключ доп.описания 2 услуги | ||
+ | *** '''Men''' – количество человек, пользующихся услугой по путевке | ||
+ | *** '''Days''' – количество дней услуги | ||
+ | *** '''CNKey''' – ключ страны услуги | ||
+ | *** '''CTKey''' – ключ города услуги | ||
+ | *** '''PartnerKey''' – ключ партнера, предоставляющего услугу | ||
+ | *** '''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'' | ||
+ | <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/GetReservation?dgCode=AU10101003 | ||
+ | Content-Type: application/json | ||
+ | Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA- | ||
+ | EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR- | ||
+ | GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4- | ||
+ | 9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9- | ||
+ | CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода GetReservation (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "$id": 1, | ||
+ | "Code": "AU10101003", | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "TRKey": 100000038, | ||
+ | "CNKey": 90, | ||
+ | "CTKey": 35, | ||
+ | "NMen": 2, | ||
+ | "Price": 877, | ||
+ | "Payed": 0, | ||
+ | "NDay": 9, | ||
+ | "MainMan": "", | ||
+ | "MainManPhone": "", | ||
+ | "MainManAddress": "", | ||
+ | "MainManPassport": "", | ||
+ | "PartnerKey": 10762, | ||
+ | "Operator": "Megatec ", | ||
+ | "Discount": 40, | ||
+ | "DiscountSum": 80, | ||
+ | "SORCode": 3, | ||
+ | "CrDate": "2020-10-12T15:02:29.013", | ||
+ | "Rate": "$", | ||
+ | "Advertise": 0, | ||
+ | "Locked": null, | ||
+ | "CauseDisc": null, | ||
+ | "PPaymentDate": null, | ||
+ | "PaymentDate": "2020-10-14T00:00:00", | ||
+ | "Procent": 1, | ||
+ | "TurDateBfrAnnul": null, | ||
+ | "ARKey": 0, | ||
+ | "Key": 40335, | ||
+ | "CodePartner": null, | ||
+ | "FilialKey": 1, | ||
+ | "IsOutDoc": 0, | ||
+ | "Notes": null, | ||
+ | "DiscSumBfrAnn": null, | ||
+ | "PriceBfrAnn": null, | ||
+ | "RazmerP": 0, | ||
+ | "LeadDepartment": 0, | ||
+ | "MainManEmail": "test@megatec.ru", | ||
+ | "MainManComment": "", | ||
+ | "DupUserKey": 6, | ||
+ | "BTKey": 1, | ||
+ | "ConfirmedDate": null, | ||
+ | "PrtDogKey": 11, | ||
+ | "CTDepartureKey": 1, | ||
+ | "PDTType": 0, | ||
+ | "NationalCurrencyPrice": null, | ||
+ | "NationalCurrencyDiscountSum": null, | ||
+ | "NationalCurrencyPayed": null, | ||
+ | "CurrencyKey": null, | ||
+ | "CurrencyRate": null, | ||
+ | "ClientKey": null, | ||
+ | "Partner": { | ||
+ | "$id": 2, | ||
+ | "Key": 10762, | ||
+ | "FullName": "Агентство", | ||
+ | "Name": "Агентство" | ||
+ | }, | ||
+ | "Services": [{ | ||
+ | "$id": 3, | ||
+ | "DGCod": "AU10101003", | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "Key": 202463, | ||
+ | "PaketKey": 209, | ||
+ | "TRKey": 100000038, | ||
+ | "SVKey": 1, | ||
+ | "Name": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс", | ||
+ | "Day": 1, | ||
+ | "Code": 570, | ||
+ | "SubCode1": 67, | ||
+ | "SubCode2": 1, | ||
+ | "Men": 2, | ||
+ | "Days": 0, | ||
+ | "CNKey": 90, | ||
+ | "CTKey": 35, | ||
+ | "PartnerKey": 10760, | ||
+ | "Brutto": 162.2, | ||
+ | "Wait": null, | ||
+ | "Warning": 0, | ||
+ | "TimeBeg": "1899-01-01T14:00:00", | ||
+ | "Control": 1, | ||
+ | "Attribute": 65695, | ||
+ | "DateBeg": "2021-01-01T00:00:00", | ||
+ | "DateEnd": "2021-01-01T00:00:00", | ||
+ | "Discount": 14.8, | ||
+ | "Comment": null, | ||
+ | "DGKey": 40335, | ||
+ | "Blocked": null, | ||
+ | "NameLat": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс", | ||
+ | "Long": 9, | ||
+ | "TRFId": 0, | ||
+ | "CreateDate": "2020-10-12T15:02:29.013", | ||
+ | "CalculatePriceDate": "2020-10-12T15:02:29.013", | ||
+ | "ShowOrder": 1, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 4, | ||
+ | "DGCod": "AU10101003", | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "Key": 202462, | ||
+ | "PaketKey": 209, | ||
+ | "TRKey": 100000038, | ||
+ | "SVKey": 3, | ||
+ | "Name": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион", | ||
+ | "Day": 1, | ||
+ | "Code": 702, | ||
+ | "SubCode1": 1113, | ||
+ | "SubCode2": 2, | ||
+ | "Men": 2, | ||
+ | "Days": 8, | ||
+ | "CNKey": 90, | ||
+ | "CTKey": 35, | ||
+ | "PartnerKey": 10760, | ||
+ | "Brutto": 519.6, | ||
+ | "Wait": null, | ||
+ | "Warning": 0, | ||
+ | "TimeBeg": "1899-01-01T16:30:00", | ||
+ | "Control": 1, | ||
+ | "Attribute": 65695, | ||
+ | "DateBeg": "2021-01-01T00:00:00", | ||
+ | "DateEnd": "2021-01-08T00:00:00", | ||
+ | "Discount": 47.4, | ||
+ | "Comment": null, | ||
+ | "DGKey": 40335, | ||
+ | "Blocked": null, | ||
+ | "NameLat": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион", | ||
+ | "Long": 9, | ||
+ | "TRFId": 0, | ||
+ | "CreateDate": "2020-10-12T15:02:29.013", | ||
+ | "CalculatePriceDate": "2020-10-12T15:02:29.013", | ||
+ | "ShowOrder": 2, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 5, | ||
+ | "DGCod": "AU10101003", | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "Key": 202461, | ||
+ | "PaketKey": 209, | ||
+ | "TRKey": 100000038, | ||
+ | "SVKey": 1, | ||
+ | "Name": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс", | ||
+ | "Day": 9, | ||
+ | "Code": 572, | ||
+ | "SubCode1": 67, | ||
+ | "SubCode2": 35, | ||
+ | "Men": 2, | ||
+ | "Days": 0, | ||
+ | "CNKey": 460, | ||
+ | "CTKey": 1, | ||
+ | "PartnerKey": 10760, | ||
+ | "Brutto": 195.2, | ||
+ | "Wait": null, | ||
+ | "Warning": 0, | ||
+ | "TimeBeg": "1899-01-01T14:00:00", | ||
+ | "Control": 1, | ||
+ | "Attribute": 65695, | ||
+ | "DateBeg": "2021-01-09T00:00:00", | ||
+ | "DateEnd": "2021-01-09T00:00:00", | ||
+ | "Discount": 17.8, | ||
+ | "Comment": null, | ||
+ | "DGKey": 40335, | ||
+ | "Blocked": null, | ||
+ | "NameLat": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс", | ||
+ | "Long": 9, | ||
+ | "TRFId": 0, | ||
+ | "CreateDate": "2020-10-12T15:02:29.013", | ||
+ | "CalculatePriceDate": "2020-10-12T15:02:29.013", | ||
+ | "ShowOrder": 3, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | "Turists": [{ | ||
+ | "$id": 6, | ||
+ | "DGCod": "AU10101003", | ||
+ | "Key": 88653, | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "NameRus": "IVANOV", | ||
+ | "NameLat": "IVANOV", | ||
+ | "ShortName": "I.", | ||
+ | "Sex": 0, | ||
+ | "FNameRus": "IVAN", | ||
+ | "FNameLat": "IVAN", | ||
+ | "SNameRus": "", | ||
+ | "SNameLat": "", | ||
+ | "BirthDay": "1980-01-01T00:00:00", | ||
+ | "BirthCountry": null, | ||
+ | "BirthCity": "Москва", | ||
+ | "Citizen": "", | ||
+ | "PostIndex": null, | ||
+ | "PostCity": null, | ||
+ | "PostStreet": null, | ||
+ | "PostBild": null, | ||
+ | "PostFlat": null, | ||
+ | "Phone": "", | ||
+ | "PhoneCode": null, | ||
+ | "PasportType": "", | ||
+ | "PasportNum": "", | ||
+ | "PasportDate": null, | ||
+ | "PasportDateEnd": null, | ||
+ | "PasportByWhom": "", | ||
+ | "Place": null, | ||
+ | "IsAnketa": null, | ||
+ | "PaspRuser": "", | ||
+ | "PaspRuNum": "", | ||
+ | "PaspRuDate": null, | ||
+ | "PaspRuByWhom": "", | ||
+ | "ClientId": null, | ||
+ | "IsMain": 1, | ||
+ | "DGKey": 40335, | ||
+ | "RealSex": 0, | ||
+ | "Email": "", | ||
+ | "EnableSmsNotifications": 0, | ||
+ | "CitizenId": "", | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 7, | ||
+ | "DGCod": "AU10101003", | ||
+ | "Key": 88652, | ||
+ | "TurDate": "2021-01-01T00:00:00", | ||
+ | "NameRus": "PETROV", | ||
+ | "NameLat": "PETROV", | ||
+ | "ShortName": "P.", | ||
+ | "Sex": 0, | ||
+ | "FNameRus": "PETR", | ||
+ | "FNameLat": "PETR", | ||
+ | "SNameRus": "", | ||
+ | "SNameLat": "", | ||
+ | "BirthDay": "1981-01-01T00:00:00", | ||
+ | "BirthCountry": null, | ||
+ | "BirthCity": "Москва", | ||
+ | "Citizen": "", | ||
+ | "PostIndex": null, | ||
+ | "PostCity": null, | ||
+ | "PostStreet": null, | ||
+ | "PostBild": null, | ||
+ | "PostFlat": null, | ||
+ | "Phone": "", | ||
+ | "PhoneCode": null, | ||
+ | "PasportType": "", | ||
+ | "PasportNum": "", | ||
+ | "PasportDate": null, | ||
+ | "PasportDateEnd": null, | ||
+ | "PasportByWhom": "", | ||
+ | "Place": null, | ||
+ | "IsAnketa": null, | ||
+ | "PaspRuser": "", | ||
+ | "PaspRuNum": "", | ||
+ | "PaspRuDate": null, | ||
+ | "PaspRuByWhom": "", | ||
+ | "ClientId": null, | ||
+ | "IsMain": 0, | ||
+ | "DGKey": 40335, | ||
+ | "RealSex": 0, | ||
+ | "Email": "", | ||
+ | "EnableSmsNotifications": 0, | ||
+ | "CitizenId": "", | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | "TuristServices": [{ | ||
+ | "$id": 8, | ||
+ | "TUKey": 88653, | ||
+ | "DLKey": 202463, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3770, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 3 | ||
+ | }, { | ||
+ | "$ref": 6 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 9, | ||
+ | "TUKey": 88652, | ||
+ | "DLKey": 202463, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3768, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 3 | ||
+ | }, { | ||
+ | "$ref": 7 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 10, | ||
+ | "TUKey": 88652, | ||
+ | "DLKey": 202462, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3767, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 4 | ||
+ | }, { | ||
+ | "$ref": 7 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 11, | ||
+ | "TUKey": 88653, | ||
+ | "DLKey": 202462, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3771, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 4 | ||
+ | }, { | ||
+ | "$ref": 6 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 12, | ||
+ | "TUKey": 88653, | ||
+ | "DLKey": 202461, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3772, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 5 | ||
+ | }, { | ||
+ | "$ref": 6 | ||
+ | } | ||
+ | ] | ||
+ | }, { | ||
+ | "$id": 13, | ||
+ | "TUKey": 88652, | ||
+ | "DLKey": 202461, | ||
+ | "NumDoc": null, | ||
+ | "NumRoom": 0, | ||
+ | "Seat": null, | ||
+ | "Area": null, | ||
+ | "DocDate": null, | ||
+ | "Key": 3769, | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | }, { | ||
+ | "$ref": 5 | ||
+ | }, { | ||
+ | "$ref": 7 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | "DogovorMessages": [{ | ||
+ | "$id": 14, | ||
+ | "Date": "2020-10-09T09:16:39.99", | ||
+ | "Text": "Тайм-лимит забронированного перелета: 14.10.2020 21:59", | ||
+ | "Remark": "TimeLimit", | ||
+ | "Connections": [{ | ||
+ | "$ref": 1 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </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="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
− | Вызов метода | + | Вызов метода GetCaptcha |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/GetCaptcha?sessionId=cd5yr3wftltmorphuzwx0krh |
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода GetCaptcha (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
− | + | "FileContents": "iVBORw0KGgoAAAANSUhEUgAAALQAAAAyCAYAAAD1JPH3AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA | |
− | + | xiSURBVHhe7Z1NyE1tF8eNZMZEyUBGEikDAwNFKRSFMsCEMkDyOUG+Hgw8UkiPvHjLq1uRdBsgMVEGxERGGHGPmBkantdvd9Z51n3tdX3ts/c+5+Bfq/ucfa7Ptf5rXWtf1z | |
− | + | 7nntLpdFb8lL+qyqtXry4/f/78H+szLanlYjI+Pv6fsbGx/1qfjZJMTEz8ff369f/x1/q8LfkVdKkFQvOiEt69e9eZMmVKIQ8fPuxeLcNX7vv374WEQN3Xr18Xr58+fdpr58aNG8 | |
− | + | W1UQXzOnXqVG9ug8CLFy8KXd66dat7JR8/fvwo2kFitqTs+/fvOx8+fOheqR/JhLYGDjmFYNeuXSuuWfCVw6iID5rAKJ0xbNmypXgPGdqEdqxRg2/cd+/eLXR56dKl4n2V+UFObI | |
− | + | GEbAkuXrzYs+f9+/e7V+tFMqF9A4dokBSyhZBaToOyKPvcuXM9J+IvY/j8+XPxvg24jjVKCEVh9Cu6DZXLhc/59+7d29Pjhg0bulfrRV8px+8Cy7FGBW4U9iG1XAwh5//69Wvn6N | |
− | + | GjnbVr13Y+fvzYvVov/hC6BdSRrhBBc1Y3gY7CIaSWi2HQzt84oZnUqEW1fuDOt450hXrUhyQaKSQf5dy/ChonNArVOfevjpcvXxYiqCNiUc+9b/CRXGNQuf8gnehPytEH3GgM2n | |
− | + | Jgi+RcI08VtL3809/58+cH4kSCkSJ03Z6PkfU2ZC7aIm9q/gyBILmAOm0QWcBO2LFjxzqrV6/u7Nu3r9W+BY0R2iIeE6w6ySaWT8gIAfpxEtqAcFVv2mJISS0ERGs9F/b/NcH7wa, | |
− | + | "ContentType": "image/jpeg", | |
− | + | "FileDownloadName": "" | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 587: | Строка 8291: | ||
</div></div><br /> | </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="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
− | Вызов метода | + | Вызов метода CheckCaptcha |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | http://localhost:9000/TourSearchOwin/ | + | GET http://localhost:9000/TourSearchOwin/CheckCaptcha?captchaText=vf8an&sessionId=cd5yr3wftltmorphuzwx0krh |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода CheckCaptcha (в формате JSON) |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
− | + | true | |
− | + | } | |
− | + | </syntaxhighlight> | |
− | + | </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> | </syntaxhighlight> | ||
Строка 731: | Строка 8342: | ||
</div></div><br /> | </div></div><br /> | ||
− | ==Проверка туриста (checkTourist)== | + | ===Проверка туриста (checkTourist)=== |
Метод служит для получения информации о путевке по номеру путевки и номеру паспорта туриста. | Метод служит для получения информации о путевке по номеру путевки и номеру паспорта туриста. | ||
* Формат запроса: | * Формат запроса: | ||
− | ** /checkTourist | + | ** GET .../TourSearchOwin/checkTourist? |
* Принимаемые параметры ( * – обязательный): | * Принимаемые параметры ( * – обязательный): | ||
** '''dogovorNumber *''' – номер путевки. | ** '''dogovorNumber *''' – номер путевки. | ||
Строка 821: | Строка 8432: | ||
</div></div><br /> | </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]] | ||
+ | ** '''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 /> | ||
+ | |||
+ | ===Выгрузка плана рассадки (TransportPlan)=== | ||
+ | Метод выгружает план рассадки транспортного средства. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/TransportPlan? | ||
+ | * Принимаемые параметры ( * – обязательный): | ||
+ | ** '''code *''' – код услуги | ||
+ | ** '''dateBegin *''' – дата начала услуги | ||
+ | ** '''serviceType *''' – класс услуги | ||
+ | ** '''transportKey *''' – ключ транспорта | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''TransportKey''' – ключ транспорта | ||
+ | ** '''Title''' – название | ||
+ | ** '''AreasCount''' – количество зон (уровней) | ||
+ | ** '''RowsCount''' – количество рядов | ||
+ | ** '''ColumnsCount''' – количество колонок | ||
+ | ** '''BusySeats''' – информация о занятых местах | ||
+ | ** '''Cells''' – блок не заполняется | ||
+ | *** '''Row''' – ряд | ||
+ | *** '''Column''' – колонка | ||
+ | *** '''Area''' – уровень | ||
+ | *** '''Type''' – тип места (1 - свободно, 5 - занято) | ||
+ | *** '''Name''' – номер места | ||
+ | ** '''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 /> | ||
+ | |||
+ | ===Выгрузка списка всех стран (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''' – тип результата (всегда возвращается в JSON = 1, в xml = country) | ||
+ | ** '''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 *''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат. | ||
+ | ** '''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 *''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат. | ||
+ | ** '''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''' – условия бронирования программы туров | ||
+ | *** '''StartDate''' – дата начала тура | ||
+ | *** '''Duration''' – продолжительность тура (в днях) | ||
+ | *** '''DurationInNight''' – продолжительность проживания (в ночах) | ||
+ | *** '''Types''' – идентификатор типа туров | ||
+ | *** '''Cost''' – цена тура | ||
+ | *** '''Rate''' – код валюты тура | ||
+ | *** '''CityDepature''' – город отправления | ||
+ | **** '''Key''' – идентификатор города отправления | ||
+ | **** '''Value''' – название города отправления | ||
+ | *** '''CountryId''' – всегда возвращается ключ 0 | ||
+ | *** '''Services''' – услуги в туре | ||
+ | **** '''DepartureCity''' – город отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureCountry''' – страна отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalCity''' – город прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalCountry''' – страна прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureAirport''' – аэропорт отправления | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''ArrivalAirport''' – аэропорт прибытия | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Airline''' – авиакомпания | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Aircraft''' – воздушное судно | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''Flight''' – рейс | ||
+ | ***** '''Key''' – идентификатор | ||
+ | ***** '''Value''' – название | ||
+ | **** '''DepartureTime''' – время вылета | ||
+ | **** '''ArrivalTime''' – время прилета | ||
+ | **** '''EndDateTime''' – дата и время прилета | ||
+ | **** '''FlightDetails''' – информация об авиаперелете | ||
+ | ***** '''Tariff''' – информация о тарифе перелета | ||
+ | ****** '''Key''' – идентификатор | ||
+ | ****** '''Code''' – код тарифа | ||
+ | ****** '''Name''' – название тарифа | ||
+ | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ||
+ | ***** '''QuotaStatus''' – информация о квоте | ||
+ | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | ||
+ | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | ***** '''PartnerId''' – ключ партнера | ||
+ | ***** '''ByPax''' – цена за человека (true/false) | ||
+ | ***** '''Partner''' – информация о партнере | ||
+ | ****** '''Key''' – идентификатор | ||
+ | ****** '''Value''' – название | ||
+ | **** '''FlightSetting''' – внутренняя информация о перелете из программы туров | ||
+ | ***** '''ServiceId''' – идентификатор класса услуги (внутренняя информация из программы туров) | ||
+ | ***** '''PatternId''' – идентификатор паттерна услуги (внутренняя информация из программы туров) | ||
+ | ***** '''FlightId''' – идентификатор перелета (внутренняя информация из программы туров) | ||
+ | **** '''FlightSourceMode''' – локальный или внешний перелет (внутренняя информация из программы туров) | ||
+ | **** '''Id''' – идентификатор базового шаблона услуги (внутренняя информация из программы туров) | ||
+ | **** '''SvKey''' – ключ типа услуги | ||
+ | **** '''IsSubCode1''' – признак наличия [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описания 1]] | ||
+ | **** '''IsSubCode2''' – признак наличия [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описания 2]] | ||
+ | **** '''IsPartnerBasedOn''' – признак услуга с приоритетным подбором поставщика | ||
+ | **** '''Day''' – день предоставления услуги | ||
+ | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''BeginDateTime''' – дата предоставления услуги | ||
+ | **** '''IsHooded''' – признак скрытая услуга | ||
+ | **** '''IsDeleted''' – признак удаляемая услуга | ||
+ | **** '''IsNotCalculate''' – признак не рассчитываемая услуга | ||
+ | **** '''PacketId''' – ключ пакета | ||
+ | **** '''Index''' – порядковый номер услуги | ||
+ | *** '''NotRouteServices''' – массив коллекций немаршрутных услуг (например если две экскурсии будут являться одним элементом массива, то это будет говорить о том, что эти экскурсии можно будет выбрать в выпадающем списке) | ||
+ | **** '''ServiceName''' – название типа услуги | ||
+ | **** '''City''' – объект город | ||
+ | ***** '''Key''' – ключ города | ||
+ | ***** '''Value''' – название города | ||
+ | **** '''Country''' – объект страна | ||
+ | ***** '''Key''' – ключ страны | ||
+ | ***** '''Value''' – название страны | ||
+ | **** '''Code''' – объект код услуги | ||
+ | ***** '''Key''' – ключ услуги | ||
+ | ***** '''Value''' – название услуги | ||
+ | **** '''ByScheduler''' – флаг услуга по расписанию или нет | ||
+ | **** '''Details''' – объект детализация услуги | ||
+ | ***** '''SubCode1''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
+ | ****** '''Key''' – ключ доп. описания 1 | ||
+ | ****** '''Value''' – название доп. описания 1 | ||
+ | ***** '''SubCode2''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
+ | ****** '''Key''' – ключ доп. описания 2 | ||
+ | ****** '''Value''' – название доп. описания 2 | ||
+ | ***** '''Date''' – дата услуги | ||
+ | ***** '''IsShowTransportPlan''' – признак показывать ли план рассадки (для автобусов) | ||
+ | ***** '''Cost''' – цена | ||
+ | ***** '''QuotaStatus''' – объект информация по квотам | ||
+ | ****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос) | ||
+ | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | ***** '''PartnerId''' – идентификатор партнера | ||
+ | ***** '''ByPax''' – признак цены за человека | ||
+ | ***** '''Partner''' – объект партнер (не заполняется) | ||
+ | ****** '''Key''' – ключ (не заполняется) | ||
+ | ****** '''Value''' – название (не заполняется) | ||
+ | **** '''ParentId''' – идентификатор родительской услуги (для вложенных услуг) | ||
+ | **** '''PartnerBasedOnServiceTemplateId''' – ключ шаблона услуги, по которой приоритетно выбирается партнер текущей услуги | ||
+ | **** '''Id''' – идентификатор услуги | ||
+ | **** '''SvKey''' – ключ типа услуги | ||
+ | **** '''IsSubCode1''' – наличие [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описания 1]] | ||
+ | **** '''IsSubCode2''' – наличие [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описания 2]] | ||
+ | **** '''IsPartnerBasedOn''' – услуга с подбором приоритетного поставщика услуги | ||
+ | **** '''Day''' – день предоставления услуги | ||
+ | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''BeginDateTime''' – дата предоставления услуги | ||
+ | **** '''EndDateTime''' – дата окончания услуги | ||
+ | **** '''IsHooded''' – скрытая ли услуга | ||
+ | **** '''IsDeleted''' – удаляемая ли услуга | ||
+ | **** '''IsNotCalculate''' – не рассчитываемая ли услуга | ||
+ | **** '''PacketId''' – пакет услуги | ||
+ | **** '''Index''' – индекс услуги | ||
+ | *** '''MinCostServicesComposition''' – массив состав услуг минимальной цены | ||
+ | **** '''Key''' – ключ | ||
+ | ***** '''TemplateId''' – идентификатор шаблона | ||
+ | ***** '''PatternId''' – идентификатор вкладки | ||
+ | ***** '''SettingId''' – идентификатор услуги | ||
+ | **** '''Value''' – значение | ||
+ | ***** '''ServiceType''' – тип услуги | ||
+ | ***** '''Code''' – ключ услуги | ||
+ | ***** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
+ | ***** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
+ | ***** '''PacketId''' – пакет услуги | ||
+ | ***** '''PartnerId''' – партнер услуги | ||
+ | ***** '''CountryId''' – страна услуги | ||
+ | ***** '''CityId''' – город услуги | ||
+ | ***** '''Day''' – день предоставления услуги | ||
+ | ***** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''COAndSpecialsInfo''' – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков | ||
+ | ***** '''AppliedCostOffersKeys''' – коллекция идентификаторов всех применённых ценовых блоков к одной цене | ||
+ | ***** '''AppliedSpeciasInfo''' – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция | ||
+ | ****** '''SpecialKey''' – ключ акции | ||
+ | ****** '''SpecialName''' – название акции | ||
+ | ****** '''SpecialType''' – тип акции | ||
+ | ****** '''NewPrice''' – цена после применения акции | ||
+ | ****** '''OldPrice''' – цена до применения акции | ||
+ | ****** '''ShowOnline''' – нужно ли показывать акцию в поиске | ||
+ | ****** '''UntilDate''' – акция действует при совершении покупки до указанной даты | ||
+ | ****** '''Condition''' – json форма условия применения акции. Данное поле включает в себя следующие значения в зависимости от типа акции: | ||
+ | ******* ''NightsFrom'' (для типа ''PayStay'') – ночей от | ||
+ | ******* ''NightsTo'' (для типа ''PayStay'') – ночей до | ||
+ | ******* ''NightValue'' (для типа ''PayStay'') – значение ночи, которое соответствует заданному периоду | ||
+ | ******* ''OperationType'' (для типа ''PayStay'') – тип действия | ||
+ | ******* ''SpecialNightType'' (для типа ''PayStay'') – тип бесплатной ночи | ||
+ | ******* ''DurationFrom'' (для типа ''KickBack'') – ночей от | ||
+ | ******* ''DurationTo'' (для типа ''KickBack'') – ночей до | ||
+ | ******* ''Value'' (для типа ''KickBack'') – значение продолжительности, равное заданному периоду | ||
+ | ******* ''OperationType'' (для типа ''KickBack'') – тип действия | ||
+ | ******* ''NightsFrom'' (для типа ''EarlyBird'') – ночей от | ||
+ | ******* ''NightsTo'' (для типа ''EarlyBird'') – ночей до | ||
+ | ******* ''Discount'' (для типа ''EarlyBird'') – размер скидки | ||
+ | ******* ''OperationType'' (для типа ''EarlyBird'') – тип действия | ||
+ | **** '''COBySubCode''' – список применённых идентификаторов ценовых блоков по SubCode1 и SubCode2 | ||
+ | **** '''SpecialsBySubCode''' – список применённых акций по SubCode1 и SubCode2 | ||
+ | ***** '''SubCode1''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] | ||
+ | ***** '''SubCode2''' – объект [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] | ||
+ | *** '''FlightWeight''' – | ||
+ | *** '''LinkingFlightsRules''' – объект правил связывания | ||
+ | **** '''notCombineDifferentAirlineRule''' – объект не скрещивать авиакомпании | ||
+ | ***** '''airlines''' – авиакомпании | ||
+ | ***** '''flightSettings''' – массив ключей ServiceId, PatternId, FlightId | ||
+ | ***** '''enabled''' – флаг включен/выключен | ||
+ | **** '''checkPlusMinus1CharterRule''' – объект Отличие номера рейса на 1 | ||
+ | ***** '''FlightSettingPairs''' – массив чартеров, для которых это правило будет выполняться | ||
+ | ***** '''enabled''' – флаг включен/выключен | ||
+ | **** '''notCombineDifferentTariffGroupRule''' – объект не комбинировать рейсы от разных классов перелетов | ||
+ | ***** '''FlightSettings''' – массив ключей ServiceId, PatternId, FlightId | ||
+ | ***** '''enabled''' – флаг включен/выключен | ||
+ | **** '''notCombineDifferentPartnerRule''' – объект не комбинировать рейсы от разных партнеров | ||
+ | ***** '''FlightSettings''' – массив ключей ServiceId, PatternId, FlightId | ||
+ | ***** '''enabled''' – флаг включен/выключен | ||
+ | **** '''departureCityEqualsArrivalCityRule''' – объект Город вылета = городу прилета | ||
+ | ***** '''FlightSettingPairs''' – чартеры, для которых это будет выполняться | ||
+ | ***** '''enabled''' – флаг включен/выключен | ||
+ | **** '''combineOnlySpecificChartersRule''' – объект не комбинировать различные классы перелетов | ||
+ | ***** '''settings''' – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId | ||
+ | ***** '''enabled''' – флаг включен/выключен | ||
+ | *** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске) | ||
+ | ** '''SecondaryFiltersResult''' – результаты доп. фильтров | ||
+ | *** '''TourTypes''' – типы тура | ||
+ | **** '''Id''' – ключ типа тура | ||
+ | **** '''Name''' – название типа тура | ||
+ | **** '''ParentId''' – родительский элемент типа тура (если есть) | ||
+ | **** '''Type''' – тип справочника (используется для внутренних целей) | ||
+ | *** '''TourPrograms''' – информация по каждой турпрограмме | ||
+ | **** '''Key''' – ключ турпрограммы | ||
+ | **** '''Name''' – название турпрограммы | ||
+ | **** '''TourUrl''' – ссылка на тур | ||
+ | **** '''BookingConditions''' – условия бронирования | ||
+ | **** '''IsLandOnly''' – признак только наземное обслуживание | ||
+ | **** '''IsRestrictMultiHotels''' – ограничивать ли расчёт многоотельных туров категориями отелей | ||
+ | **** '''IsHotelTemplates''' – есть ли вообще отели в данной турпрограмме | ||
+ | **** '''IsRouteServices''' – есть ли маршрутные услуги | ||
+ | **** '''MultiHotelDelta''' – Значение отклонения звездности последующих отелей от первого отеля в многоотельном туре. По умолчанию 0. Звездность определяется числом, заданном в поле порядок при печати. | ||
+ | **** '''Rate''' – валюта тура | ||
+ | **** '''DateStart''' – нижняя граница дат заезда по программе тура | ||
+ | **** '''DateEnd''' – верхняя граница дат заеда по программе тура | ||
+ | **** '''Status''' – статус турпрограммы | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Value''' – значение | ||
+ | **** '''Templates''' – шаблоны услуг | ||
+ | ***** '''$id''' – шаблон 1 | ||
+ | ***** '''$id''' – шаблон 2 | ||
+ | **** '''Types''' – типы тура | ||
+ | ***** '''Id''' – ключ типа тура | ||
+ | ***** '''Name''' – название типа тура | ||
+ | ***** '''ParentId''' – родительский элемент типа тура (если есть) | ||
+ | ***** '''Type''' – тип справочника (используется для внутренних целей) | ||
+ | **** '''LinkingFlightsRules''' – правила связывания перелетов | ||
+ | ***** '''notCombineDifferentAirlineRule''' – | ||
+ | ****** '''airlines''' – | ||
+ | ****** '''flightSettings''' – | ||
+ | ****** '''enabled''' – | ||
+ | ***** '''checkPlusMinus1CharterRule''' – | ||
+ | ****** '''FlightSettingPairs''' – | ||
+ | ****** '''enabled''' – | ||
+ | ***** '''notCombineDifferentTariffGroupRule''' – | ||
+ | ****** '''FlightSettings''' – | ||
+ | ****** '''enabled''' – | ||
+ | ***** '''notCombineDifferentPartnerRule''' – | ||
+ | ****** '''FlightSettings''' – | ||
+ | ****** '''enabled''' – | ||
+ | ***** '''departureCityEqualsArrivalCityRule''' – | ||
+ | ****** '''FlightSettingPairs''' – | ||
+ | ****** '''enabled''' – | ||
+ | ***** '''combineOnlySpecificChartersRule''' – | ||
+ | ****** '''settings''' – | ||
+ | ****** '''enabled''' – | ||
+ | **** '''Type''' – тип справочника (используется для внутренних целей) | ||
+ | *** '''TourDurations''' – продолжительность тура | ||
+ | *** '''TourDates''' – список дат заездов в турпрограмме | ||
+ | **** '''HotelCities''' – город в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''HotelResorts''' – курорты в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''HotelCategories''' – категории отеля в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''Hotels''' – отели в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''Pansions''' – питания в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''Airlines''' – авиакомпании в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''FlightTariffs''' – класс перелета в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''DepartureCities''' – города вылета в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''DepartureAirports''' – аэропорты вылета в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''ArrivalCities''' – города прибытия в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''ArrivalAirports''' – аэропорты прибытия в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | **** '''HotelTypes''' – признаки отелей в дополнительных фильтрах | ||
+ | ***** '''''' – | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода RegistrationClient/Search | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/RegistrationClient/Search?DepartureCityKeys=1&Dates=12.02.2021&Durations=9 | ||
+ | &PageNumber=1&PageSize=20&isFromBasket=false&isFillSecondaryFilters=true&DestinationType=1&DestinationKey=90 | ||
+ | &AdultCount=2&IsRegistrationClients=false&CurrencyName=EU&AviaQuota=7&HotelQuota=7&BusTransferQuota=7 | ||
+ | &TimeArrivalFrom=00:00&TimeArrivalTo=23:59&TimeDepartureFrom=00:00&TimeDepartureTo=23:59 | ||
+ | &ArrivalFlightNoTransfer=false&Tour=100006755&TourDuration=&DepartureFlightNoTransfer=false&HotelScheme= | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода RegistrationClient/Search (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "CheckMessages": null, | ||
+ | "Message": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "Result": [ | ||
+ | { | ||
+ | "Key": 100000004, | ||
+ | "Name": "Общая проверка системы", | ||
+ | "TourUrl": "www.megatec.ru", | ||
+ | "BookingConditions": "<p>Условия бронирования тура.<\/p>", | ||
+ | "StartDate": "2018-02-25T00:00:00", | ||
+ | "Duration": 4, | ||
+ | "DurationInNight": 3, | ||
+ | "Types": [2], | ||
+ | "Cost": 260, | ||
+ | "Rate": "EU", | ||
+ | "CityDepature": { | ||
+ | "Key": 1, | ||
+ | "Value": "Москва" | ||
+ | }, | ||
+ | "Country": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "Services": [ | ||
+ | { | ||
+ | "DepartureCity": { | ||
+ | "Key": 1, | ||
+ | "Value": "Москва" | ||
+ | }, | ||
+ | "DepartureCountry": { | ||
+ | "Key": 460, | ||
+ | "Value": "Россия" | ||
+ | }, | ||
+ | "ArrivalCity": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "ArrivalCountry": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "DepartureAirport": { | ||
+ | "Key": "SVO4", | ||
+ | "Value": "Шереметьево-24" | ||
+ | }, | ||
+ | "ArrivalAirport": { | ||
+ | "Key": "VIE1", | ||
+ | "Value": "Vena1" | ||
+ | }, | ||
+ | "Airline": { | ||
+ | "Key": "BA7", | ||
+ | "Value": "BRITISH AIRWAYS" | ||
+ | }, | ||
+ | "Aircraft": { | ||
+ | "Key": "319", | ||
+ | "Value": "AIRBUS " | ||
+ | }, | ||
+ | "Flight": { | ||
+ | "Key": 882, | ||
+ | "Value": "4444" | ||
+ | }, | ||
+ | "DepartureTime": "10:00:00", | ||
+ | "ArrivalTime": "12:00:00", | ||
+ | "EndDateTime": "2018-02-25T12:00:00", | ||
+ | "FlightDetails": [ { | ||
+ | "Tariff": { | ||
+ | "Key": 89, | ||
+ | "Code": "Y", | ||
+ | "Name": "Экономический класс" | ||
+ | }, | ||
+ | "Cost": 10, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12668, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "FlightSetting": { | ||
+ | "ServiceId": 3, | ||
+ | "PatternId": 13, | ||
+ | "FlightId": 13 | ||
+ | }, | ||
+ | "FlightSourceMode": 1, | ||
+ | "Id": 3, | ||
+ | "SvKey": 1, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-02-25T10:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "Index": 0 | ||
+ | }, | ||
+ | { | ||
+ | "Hotel": { | ||
+ | "Key": 709, | ||
+ | "Value": "Am Brilliantengrund" | ||
+ | }, | ||
+ | "City": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "Stars": { | ||
+ | "Key": -1, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "Resort": { | ||
+ | "Key": -1, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "ImageURL": "", | ||
+ | "Http": null, | ||
+ | "Description": "", | ||
+ | "Country": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "HotelDetails": [ { | ||
+ | "HotelRoom": 46463, | ||
+ | "Room": { | ||
+ | "Key": 129, | ||
+ | "Value": "DBL" | ||
+ | }, | ||
+ | "RoomCategory": { | ||
+ | "Key": 3493, | ||
+ | "Value": "Cosy" | ||
+ | }, | ||
+ | "AccomodationType": { | ||
+ | "Key": 1256, | ||
+ | "Value": "2+1_K", | ||
+ | "AdultCount": 2, | ||
+ | "ChildCount": 1 | ||
+ | }, | ||
+ | "Pansion": { | ||
+ | "Key": 4, | ||
+ | "Value": "Завтрак" | ||
+ | }, | ||
+ | "Cost": 19.47, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12667, | ||
+ | "ByPax": false, | ||
+ | "Partner": { | ||
+ | "Key": 12667, | ||
+ | "Value": "Партнер-покупатель1" | ||
+ | } | ||
+ | }], | ||
+ | "HotelTypes": [ { | ||
+ | "Key": 5, | ||
+ | "Value": "Рекомендуемые" | ||
+ | }], | ||
+ | "Id": 1, | ||
+ | "SvKey": 3, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": true, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 3, | ||
+ | "BeginDateTime": "2018-02-25T12:00:00", | ||
+ | "EndDateTime": "2018-02-28T12:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "Index": 1 | ||
+ | }, | ||
+ | { | ||
+ | "DepartureCity": { | ||
+ | "Key": 35, | ||
+ | "Value": "Вена" | ||
+ | }, | ||
+ | "DepartureCountry": { | ||
+ | "Key": 90, | ||
+ | "Value": "Австрия" | ||
+ | }, | ||
+ | "ArrivalCity": { | ||
+ | "Key": 1, | ||
+ | "Value": "Москва" | ||
+ | }, | ||
+ | "ArrivalCountry": { | ||
+ | "Key": 460, | ||
+ | "Value": "Россия" | ||
+ | }, | ||
+ | "DepartureAirport": { | ||
+ | "Key": "VIE1", | ||
+ | "Value": "Vena1" | ||
+ | }, | ||
+ | "ArrivalAirport": { | ||
+ | "Key": "DME", | ||
+ | "Value": "Домодедово" | ||
+ | }, | ||
+ | "Airline": { | ||
+ | "Key": "7U", | ||
+ | "Value": "Авиаэнерго" | ||
+ | }, | ||
+ | "Aircraft": { | ||
+ | "Key": "727", | ||
+ | "Value": "Boeing" | ||
+ | }, | ||
+ | "Flight": { | ||
+ | "Key": 774, | ||
+ | "Value": "222" | ||
+ | }, | ||
+ | "DepartureTime": "00:00:00", | ||
+ | "ArrivalTime": "00:00:00", | ||
+ | "EndDateTime": "2018-02-28T00:00:00", | ||
+ | "FlightDetails": [ { | ||
+ | "Tariff": { | ||
+ | "Key": 89, | ||
+ | "Code": "Y", | ||
+ | "Name": "Экономический класс" | ||
+ | }, | ||
+ | "Cost": 0, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 10760, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "FlightSetting": { | ||
+ | "ServiceId": 4, | ||
+ | "PatternId": 5, | ||
+ | "FlightId": 4 | ||
+ | }, | ||
+ | "FlightSourceMode": 1, | ||
+ | "Id": 4, | ||
+ | "SvKey": 1, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 4, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-02-28T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 779, | ||
+ | "Index": 4 | ||
+ | } | ||
+ | ], | ||
+ | "NotRouteServices": [ | ||
+ | [ { | ||
+ | "ServiceName": "страховка", | ||
+ | "City": null, | ||
+ | "Country": 6245, | ||
+ | "Code": { | ||
+ | "Key": 297, | ||
+ | "Value": "Страховка от несчастного случая" | ||
+ | }, | ||
+ | "ByScheduler": false, | ||
+ | "Details": [ { | ||
+ | "SubCode1": { | ||
+ | "Key": 18, | ||
+ | "Value": "2" | ||
+ | }, | ||
+ | "SubCode2": { | ||
+ | "Key": null, | ||
+ | "Value": "" | ||
+ | }, | ||
+ | "Date": null, | ||
+ | "IsShowTransportPlan": true, | ||
+ | "Cost": 16, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 1, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12668, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "ParentId": null, | ||
+ | "PartnerBasedOnServiceTemplateId": null, | ||
+ | "Id": 10, | ||
+ | "SvKey": 6, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": true, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 3, | ||
+ | "BeginDateTime": "2018-02-25T00:00:00", | ||
+ | "EndDateTime": "2018-02-28T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": true, | ||
+ | "IsNotCalculate": true, | ||
+ | "PacketId": 882, | ||
+ | "Index": 2 | ||
+ | }], | ||
+ | [ { | ||
+ | "ServiceName": "экскурсия", | ||
+ | "City": { | ||
+ | "Key": 1046, | ||
+ | "Value": "Санто-Доминго" | ||
+ | }, | ||
+ | "Country": { | ||
+ | "Key": 6245, | ||
+ | "Value": "Испания" | ||
+ | }, | ||
+ | "Code": { | ||
+ | "Key": 743, | ||
+ | "Value": "4" | ||
+ | }, | ||
+ | "ByScheduler": false, | ||
+ | "Details": [ { | ||
+ | "SubCode1": { | ||
+ | "Key": 37, | ||
+ | "Value": "Мини-автобус 10 чел." | ||
+ | }, | ||
+ | "SubCode2": { | ||
+ | "Key": null, | ||
+ | "Value": "" | ||
+ | }, | ||
+ | "Date": null, | ||
+ | "IsShowTransportPlan": false, | ||
+ | "Cost": 85.22, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 1, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12667, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | }], | ||
+ | "ParentId": null, | ||
+ | "PartnerBasedOnServiceTemplateId": null, | ||
+ | "Id": 7, | ||
+ | "SvKey": 4, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": true, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2018-02-25T00:00:00", | ||
+ | "EndDateTime": "2018-02-26T00:00:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": true, | ||
+ | "IsNotCalculate": true, | ||
+ | "PacketId": 779, | ||
+ | "Index": 3 | ||
+ | }] | ||
+ | ], | ||
+ | "MinCostServicesComposition": [ | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 3, | ||
+ | "PatternId": 13, | ||
+ | "SettingId": 13 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 882, | ||
+ | "SubCode1": 89, | ||
+ | "SubCode2": 1, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 12668, | ||
+ | "CountryId": 90, | ||
+ | "CityId": 35, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0 | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 1, | ||
+ | "PatternId": 0, | ||
+ | "SettingId": 0 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 3, | ||
+ | "Code": 709, | ||
+ | "SubCode1": 46463, | ||
+ | "SubCode2": 4, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 12667, | ||
+ | "CountryId": 90, | ||
+ | "CityId": 35, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 3 | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 4, | ||
+ | "PatternId": 5, | ||
+ | "SettingId": 4 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 774, | ||
+ | "SubCode1": 89, | ||
+ | "SubCode2": 35, | ||
+ | "PacketId": 779, | ||
+ | "PartnerId": 10760, | ||
+ | "CountryId": 460, | ||
+ | "CityId": 1, | ||
+ | "Day": 4, | ||
+ | "DurationInNight": 0 | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "FlightWeight": 2, | ||
+ | "LinkingFlightsRules": { | ||
+ | "notCombineDifferentAirlineRule": { | ||
+ | "airlines": ["AY2"], | ||
+ | "flightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "checkPlusMinus1CharterRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentTariffGroupRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "notCombineDifferentPartnerRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "departureCityEqualsArrivalCityRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "combineOnlySpecificChartersRule": { | ||
+ | "settings": [], | ||
+ | "enabled": false | ||
+ | } | ||
+ | }, | ||
+ | "RouteSubVariants": [] | ||
+ | } | ||
+ | ], | ||
+ | "SecondaryFiltersResult": { | ||
+ | "TourTypes": [ { | ||
+ | "Id": 2, | ||
+ | "Name": "Стандартный тур", | ||
+ | "ParentId": null, | ||
+ | "Type": "TourType" | ||
+ | }], | ||
+ | "TourPrograms": [ | ||
+ | { | ||
+ | "Key": 100000004, | ||
+ | "Name": "Общая проверка системы", | ||
+ | "TourUrl": "www.megatec.ru", | ||
+ | "BookingConditions": "<p>Условия бронирования тура.<\/p>", | ||
+ | "IsLandOnly": false, | ||
+ | "IsRestrictMultiHotels": false, | ||
+ | "IsHotelTemplates": true, | ||
+ | "IsRouteServices": true, | ||
+ | "MultiHotelDelta": 0, | ||
+ | "Rate": "EU", | ||
+ | "DateStart": "2018-01-30T00:00:00Z", | ||
+ | "DateEnd": "2018-02-27T00:00:00Z", | ||
+ | "Status": { | ||
+ | "Key": 3, | ||
+ | "Value": "Доступен для продажи" | ||
+ | }, | ||
+ | "Templates": [ | ||
+ | {"$id": "5"}, | ||
+ | {"$id": "6"}, | ||
+ | {"$id": "7"}, | ||
+ | {"$id": "8"}, | ||
+ | {"$id": "9"} | ||
+ | ], | ||
+ | "Types": [ { | ||
+ | "Id": 2, | ||
+ | "Name": "Стандартный тур", | ||
+ | "ParentId": null, | ||
+ | "Type": "TourType" | ||
+ | }], | ||
+ | "LinkingFlightsRules": { | ||
+ | "notCombineDifferentAirlineRule": { | ||
+ | "airlines": ["AY2"], | ||
+ | "flightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "checkPlusMinus1CharterRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentTariffGroupRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": true | ||
+ | }, | ||
+ | "notCombineDifferentPartnerRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "departureCityEqualsArrivalCityRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "combineOnlySpecificChartersRule": { | ||
+ | "settings": [], | ||
+ | "enabled": false | ||
+ | } | ||
+ | }, | ||
+ | "Type": "TourProgram" | ||
+ | } | ||
+ | ], | ||
+ | "TourDurations": [4], | ||
+ | "TourDates": ["2018-02-25T00:00:00"], | ||
+ | "HotelCities": [ { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }], | ||
+ | "HotelResorts": [ { | ||
+ | "Key": -1, | ||
+ | "CountryKey": 0, | ||
+ | "Name": "Не указан", | ||
+ | "NameLat": null, | ||
+ | "Type": "Resort" | ||
+ | }], | ||
+ | "HotelCategories": [ | ||
+ | { | ||
+ | "Key": 23, | ||
+ | "Name": "1*", | ||
+ | "PrintNumber": 1, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 56, | ||
+ | "Name": "2*", | ||
+ | "PrintNumber": 2, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 66, | ||
+ | "Name": "4*Boutique", | ||
+ | "PrintNumber": null, | ||
+ | "Type": "HotelCatigory" | ||
+ | } | ||
+ | ], | ||
+ | "Hotels": [ | ||
+ | { | ||
+ | "Key": 705, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "Name": "Continental", | ||
+ | "Category": { | ||
+ | "Key": 23, | ||
+ | "Name": "1*", | ||
+ | "PrintNumber": 1, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | "TimeFrom": null, | ||
+ | "TimeTo": null, | ||
+ | "HTTP": null, | ||
+ | "Stars": "1*", | ||
+ | "TimeIsEmpty": true, | ||
+ | "NameLat": "Continental", | ||
+ | "Address": null, | ||
+ | "IsCruise": 0, | ||
+ | "Phone": null, | ||
+ | "Code": null, | ||
+ | "Type": "Hotel" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 178, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "Name": "Ananas", | ||
+ | "Category": { | ||
+ | "Key": 56, | ||
+ | "Name": "2*", | ||
+ | "PrintNumber": 2, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | "TimeFrom": "1900-01-01T11:00:00", | ||
+ | "TimeTo": "1900-01-01T12:00:00", | ||
+ | "HTTP": "http://booking.panteon.ru/TourPrograms/Home/Tour/?tourKey=100000007", | ||
+ | "Stars": "2*", | ||
+ | "TimeIsEmpty": false, | ||
+ | "NameLat": "Ananas", | ||
+ | "Address": null, | ||
+ | "IsCruise": 0, | ||
+ | "Phone": "(+43/1) 546200", | ||
+ | "Code": null, | ||
+ | "Type": "Hotel" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 707, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "Name": "Beim Theresianum", | ||
+ | "Category": { | ||
+ | "Key": 66, | ||
+ | "Name": "4*Boutique", | ||
+ | "PrintNumber": null, | ||
+ | "Type": "HotelCatigory" | ||
+ | }, | ||
+ | "TimeFrom": null, | ||
+ | "TimeTo": null, | ||
+ | "HTTP": null, | ||
+ | "Stars": "4*Boutique", | ||
+ | "TimeIsEmpty": true, | ||
+ | "NameLat": "Beim Theresianum", | ||
+ | "Address": null, | ||
+ | "IsCruise": 0, | ||
+ | "Phone": null, | ||
+ | "Code": null, | ||
+ | "Type": "Hotel" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 709, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 35, | ||
+ | "Country": { | ||
+ | "key": 90, | ||
+ | "name": "Австрия", | ||
+ | "Code": "AUS", | ||
+ | "CitizenName": "Австрия", | ||
+ | "CitizenNameLat": "AUSTRIA", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 1, | ||
+ | "WebImage": "/pics/animate/austria.gif", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Вена", | ||
+ | "Code": "VIE", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "Name": "Am Brilliantengrund", | ||
+ | "Category": null, | ||
+ | "TimeFrom": null, | ||
+ | "TimeTo": null, | ||
+ | "HTTP": null, | ||
+ | "Stars": "", | ||
+ | "TimeIsEmpty": true, | ||
+ | "NameLat": "Am Brilliantengrund", | ||
+ | "Address": null, | ||
+ | "IsCruise": 0, | ||
+ | "Phone": null, | ||
+ | "Code": null, | ||
+ | "Type": "Hotel" | ||
+ | } | ||
+ | ], | ||
+ | "Pansions": [ | ||
+ | { | ||
+ | "Key": 46, | ||
+ | "Code": "RO", | ||
+ | "Name": "RO", | ||
+ | "NameLat": null, | ||
+ | "Type": "Pansion" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 4, | ||
+ | "Code": "BB2", | ||
+ | "Name": "Завтрак", | ||
+ | "NameLat": null, | ||
+ | "Type": "Pansion" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 2, | ||
+ | "Code": "HB", | ||
+ | "Name": "Полупансион", | ||
+ | "NameLat": null, | ||
+ | "Type": "Pansion" | ||
+ | } | ||
+ | ], | ||
+ | "Airlines": [ | ||
+ | { | ||
+ | "Key": 8, | ||
+ | "Code": "BA7", | ||
+ | "Name": "BRITISH AIRWAYS", | ||
+ | "NameLat": "en_BRITISH AIRWAYS", | ||
+ | "Type": "AirLine" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 3, | ||
+ | "Code": "7U", | ||
+ | "Name": "Авиаэнерго", | ||
+ | "NameLat": "en_Авиаэнерго", | ||
+ | "Type": "AirLine" | ||
+ | } | ||
+ | ], | ||
+ | "FlightTariffs": [ { | ||
+ | "Key": 89, | ||
+ | "Code": "Y", | ||
+ | "Name": "Экономический класс", | ||
+ | "NameLat": "Coach economy", | ||
+ | "Group": null, | ||
+ | "Type": "AirService" | ||
+ | }], | ||
+ | "DepartureCities": [ { | ||
+ | "key": 1, | ||
+ | "Country": { | ||
+ | "key": 460, | ||
+ | "name": "Россия", | ||
+ | "Code": null, | ||
+ | "CitizenName": "Россия", | ||
+ | "CitizenNameLat": "Russia", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": true, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Москва", | ||
+ | "Code": "MOW", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }], | ||
+ | "DepartureAirports": [ { | ||
+ | "Key": 52, | ||
+ | "Code": "SVO4", | ||
+ | "Name": "Шереметьево-24", | ||
+ | "NameLat": "Шереметьево-", | ||
+ | "CityKey": 1, | ||
+ | "CountryKey": 460, | ||
+ | "Letter": "S", | ||
+ | "Site": 0, | ||
+ | "Type": "Airport" | ||
+ | }], | ||
+ | "ArrivalCities": [ { | ||
+ | "key": 1, | ||
+ | "Country": { | ||
+ | "key": 460, | ||
+ | "name": "Россия", | ||
+ | "Code": null, | ||
+ | "CitizenName": "Россия", | ||
+ | "CitizenNameLat": "Russia", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": true, | ||
+ | "PassportMinDur": null, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Москва", | ||
+ | "Code": "MOW", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Type": "City" | ||
+ | }], | ||
+ | "ArrivalAirports": [ { | ||
+ | "Key": 12, | ||
+ | "Code": "DME", | ||
+ | "Name": "Домодедово", | ||
+ | "NameLat": "Домодедово", | ||
+ | "CityKey": 1, | ||
+ | "CountryKey": 460, | ||
+ | "Letter": "D", | ||
+ | "Site": 0, | ||
+ | "Type": "Airport" | ||
+ | }], | ||
+ | "HotelTypes": [ | ||
+ | { | ||
+ | "key": 94, | ||
+ | "name": "Молодежный отдых", | ||
+ | "Type": "HotelType" | ||
+ | }, | ||
+ | { | ||
+ | "key": 5, | ||
+ | "name": "Рекомендуемые", | ||
+ | "Type": "HotelType" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | |||
+ | ===Поиск туров онлайн (TourForWeb)=== | ||
+ | Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод возвращает наиболее дешевые предложения, найденные по предоставленным параметрам и сгруппированные по отелям в порядке возрастания цены. В зависимости от параметров запроса, дополнительных фильтров формат запроса имеет отличия. Метод используется при работе веб-приложения Canary. | ||
+ | * Обычный формат запроса GET: | ||
+ | ** GET .../TourSearchOwin/TourForWeb/search/simple? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | ** '''DepartureCityKeys *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ||
+ | ** '''Dates *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''Durations *''' – массив продолжительностей (полученные из метода ''.../TourSearchOwin/Duration?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''PageNumber *''' – номер возвращаемой страницы (по умолчанию возвращается 1) | ||
+ | ** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20) | ||
+ | ** '''HotelScheme *''' – объект схемы отеля | ||
+ | ** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура | ||
+ | ** '''TourDuration''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях | ||
+ | ** '''ShowToursWithoutHotels''' – показывать ли туры без проживания | ||
+ | ** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false). | ||
+ | ** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. | ||
+ | ** '''DestinationType *''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат. | ||
+ | ** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
+ | ** '''AdultCount *''' – количество взрослых | ||
+ | ** '''CurrencyName *''' – код валюты | ||
+ | ** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''HotelQuota *''' – информация о квотах на отель (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''BusTransferQuota''' – информация о квотах на автобусный переезд (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''TourType''' – тип тура | ||
+ | ** '''CityIds''' – идентификатор города | ||
+ | ** '''TimeDepartureFrom''' – время отправления с (по умолчанию возвращается 00:00) | ||
+ | ** '''TimeDepartureTo''' – время отправления по (по умолчанию возвращается 23:59) | ||
+ | ** '''TimeArrivalFrom''' – время прибытия с (по умолчанию возвращается 00:00) | ||
+ | ** '''TimeArrivalTo''' – время прибытия по (по умолчанию возвращается 23:59) | ||
+ | ** '''SearchId''' – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5. | ||
+ | ** '''MatrixAlgoritm''' – используется ли дополнительный фильтр «Таблица цен» | ||
+ | ** '''SearchMaxPriceAlgoritm''' – | ||
+ | ** '''wrongLicenseFileUpperTitle''' – проверка файла лицензии | ||
+ | ** '''RemoteHotelMode''' – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4. | ||
+ | * Возвращаемый результат: | ||
+ | ** '''Result''' – результаты поиска | ||
+ | *** '''Key''' – идентификатор программы тура | ||
+ | *** '''Name''' – название программы тура | ||
+ | *** '''TourUrl''' – ссылка на программу тура | ||
+ | *** '''BookingConditions''' – условия бронирования программы туров | ||
+ | *** '''DefaultManagers''' – менеджер по-умолчанию | ||
+ | *** '''Manager''' – обозначение менеджера | ||
+ | *** '''Branches''' – филиал | ||
+ | *** '''DetermineTheBranchOnCity''' – признак определения филиала в зависимости от города начала поездки | ||
+ | *** '''StartDate''' – дата начала тура | ||
+ | *** '''Duration''' – продолжительность тура (в днях) | ||
+ | *** '''DurationInNight''' – продолжительность проживания (в ночах) | ||
+ | *** '''Types''' – идентификатор типа туров | ||
+ | *** '''Cost''' – цена тура | ||
+ | *** '''Rate''' – код валюты тура | ||
+ | *** '''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''' – время прилета | ||
+ | **** '''TotalTimeOfFlight''' – полное время перелета | ||
+ | **** '''FlightDetails''' – детали авиаперелета | ||
+ | ***** '''Tariff''' – информация о тарифе перелета | ||
+ | ****** '''Key''' – идентификатор | ||
+ | ****** '''Code''' – код тарифа | ||
+ | ****** '''Name''' – наименование тарифа | ||
+ | ***** '''IsCommission''' – признак, комиссионная ли услуга | ||
+ | ***** '''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''' – дата предоставления услуги | ||
+ | **** '''EndDateTime''' – дата окончания услуги | ||
+ | **** '''IsHooded''' – признак скрытая услуга | ||
+ | **** '''IsDeleted''' – признак удаляемая услуга | ||
+ | **** '''IsNotCalculate''' – признак не рассчитываемая услуга | ||
+ | **** '''PacketId''' – ключ пакета | ||
+ | **** '''Index''' – порядковый номер услуги | ||
+ | **** '''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''' – статус по квотам (есть места / нет мест / под запрос) | ||
+ | ****** '''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''' – дата предоставления услуги | ||
+ | **** '''EndDateTime''' – дата окончания услуги | ||
+ | **** '''IsHooded''' – признак скрытая услуга | ||
+ | **** '''IsDeleted''' – признак удаляемая услуга | ||
+ | **** '''IsNotCalculate''' – признак не рассчитываемая услуга | ||
+ | **** '''PacketId''' – ключ пакета | ||
+ | **** '''Index''' – порядковый номер услуги | ||
+ | **** '''Hotel''' – отель | ||
+ | ***** '''Key''' – ключ отеля | ||
+ | ***** '''Value''' – наименование отеля | ||
+ | **** '''City''' – город | ||
+ | ***** '''Key''' – ключ города | ||
+ | ***** '''Value''' – наименование города | ||
+ | **** '''Stars''' – категория отеля | ||
+ | ***** '''Key''' – ключ категории отеля | ||
+ | ***** '''Value''' – наименование категории отеля | ||
+ | **** '''StarsGlobalCode''' – глобальный код категории отеля | ||
+ | ***** '''Key''' – глобальный ключ категории отеля | ||
+ | ***** '''Value''' – наименование категории отеля | ||
+ | **** '''Resort''' – курорт | ||
+ | ***** '''Key''' – ключ курорта | ||
+ | ***** '''Value''' – наименование курорта | ||
+ | **** '''ImageURL''' – ссылка на лого отеля | ||
+ | **** '''Http''' – ссылка на сайт отеля | ||
+ | **** '''Description''' – описание | ||
+ | **** '''Latitude''' – GPS координаты: географическая широта | ||
+ | **** '''Longitude''' – GPS координаты: географическая долгота | ||
+ | **** '''Country''' – страна | ||
+ | ***** '''Key''' – ключ страны | ||
+ | ***** '''Value''' – наименование страны | ||
+ | **** '''HotelDetails''' – массив данных отель | ||
+ | ***** '''HotelRoom''' – категория номера | ||
+ | ***** '''Room''' – номер | ||
+ | ****** '''Key''' – ключ номера | ||
+ | ****** '''Value''' – наименование номера | ||
+ | ***** '''RoomCategory''' – тип номера | ||
+ | ****** '''Key''' – ключ типа номера | ||
+ | ****** '''Value''' – наименование типа номера | ||
+ | ***** '''AccomodationType''' – тип размещения | ||
+ | ****** '''Key''' – ключ типа размещения | ||
+ | ****** '''Value''' – наименование типа размещения | ||
+ | ****** '''AdultCount''' – количество взрослых | ||
+ | ****** '''ChildCount''' – количество детей | ||
+ | ***** '''Pansion''' – тип питания | ||
+ | ****** '''Key''' – ключ типа питания | ||
+ | ****** '''Value''' – наименование типа питания | ||
+ | ***** '''PansionGlobalCode''' – глобальный код типа питания | ||
+ | ****** '''Key''' – ключ типа питания | ||
+ | ****** '''Value''' – наименование типа питания | ||
+ | ***** '''RemoteId''' – не используется | ||
+ | ***** '''Cost''' – разница в стоимости с самым дешевым вариантом | ||
+ | ***** '''QuotaStatus''' – информация о квоте | ||
+ | ****** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | ***** '''PartnerId''' – ключ партнера | ||
+ | ***** '''ByPax''' – цена за человека (true/false) | ||
+ | ***** '''Partner''' – информация о партнере | ||
+ | ****** '''Key''' – идентификатор | ||
+ | ****** '''Value''' – название | ||
+ | **** '''HotelTypes''' – признаки отелей в дополнительных фильтрах | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Value''' – значение | ||
+ | **** '''RemoteId''' – не используется | ||
+ | **** '''COAndSpecialsInfo''' – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков | ||
+ | ***** '''AppliedCostOffersKeys''' – коллекция идентификаторов всех применённых ценовых блоков к одной цене | ||
+ | ***** '''AppliedSpeciasInfo''' – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция | ||
+ | **** '''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''' – порядковый номер услуги | ||
+ | *** '''NotRouteServices''' – массив коллекций немаршрутных услуг (например если две экскурсии будут являться одним элементом массива, то это будет говорить о том, что эти экскурсии можно будет выбрать в выпадающем списке) | ||
+ | *** '''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''' – продолжительность услуги в ночах | ||
+ | ***** '''GDSProviderId''' – ключ провайдера из внешней системы | ||
+ | ***** '''COAndSpecialsInfo''' – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков | ||
+ | ****** '''AppliedCostOffersKeys''' – коллекция идентификаторов всех применённых ценовых блоков к одной цене | ||
+ | ****** '''AppliedSpeciasInfo''' – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция | ||
+ | ***** '''COBySubCode''' – список применённых идентификаторов ценовых блоков по SubCode1 и SubCode2 | ||
+ | ***** '''SpecialsBySubCode''' – список применённых акций по SubCode1 и SubCode2 | ||
+ | *** '''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''' – подварианты услуг (используется в основном поиске) | ||
+ | *** '''Routes''' – массив возможных маршрутов в данной программе туров | ||
+ | *** '''IsRemoteHotels''' – удаленные отели | ||
+ | ** '''SecondaryFiltersResult''' – результаты доп. фильтров | ||
+ | *** '''TourTypes''' – типы тура | ||
+ | **** '''Id''' – ключ типа тура | ||
+ | **** '''Name''' – название типа тура | ||
+ | **** '''ParentId''' – родительский элемент типа тура (если есть) | ||
+ | **** '''Type''' – тип справочника (используется для внутренних целей) | ||
+ | *** '''TourPrograms''' – информация по каждой турпрограмме | ||
+ | **** '''Key''' – ключ турпрограммы | ||
+ | **** '''Name''' – название турпрограммы | ||
+ | **** '''TourUrl''' – ссылка на тур | ||
+ | **** '''BookingConditions''' – условия бронирования | ||
+ | *** '''DefaultManagers''' – менеджер по-умолчанию | ||
+ | *** '''Manager''' – обозначение менеджера | ||
+ | *** '''Branches''' – филиал | ||
+ | *** '''DetermineTheBranchOnCity''' – признак определения филиала в зависимости от города начала поездки | ||
+ | **** '''IsLandOnly''' – признак только наземное обслуживание | ||
+ | **** '''IsApplyMarginAddCostToRemoteService''' – | ||
+ | **** '''IsRestrictMultiHotels''' – ограничивать ли расчёт многоотельных туров категориями отелей | ||
+ | **** '''IsHotelTemplates''' – есть ли вообще отели в данной турпрограмме | ||
+ | **** '''IsRouteServices''' – есть ли маршрутные услуги | ||
+ | **** '''IsAviaBooking''' – | ||
+ | **** '''MultiHotelDelta''' – Значение отклонения звездности последующих отелей от первого отеля в многоотельном туре. По умолчанию 0. Звездность определяется числом, заданном в поле порядок при печати. | ||
+ | **** '''Rate''' – валюта тура | ||
+ | **** '''RateId''' – идентификатор валюты тура | ||
+ | **** '''DateStart''' – нижняя граница дат заезда по программе тура | ||
+ | **** '''DateEnd''' – верхняя граница дат заезда по программе тура | ||
+ | **** '''DateList''' – список дат заездов | ||
+ | **** '''UpdateDate''' – дата обновления | ||
+ | **** '''Status''' – статус турпрограммы | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Value''' – значение | ||
+ | **** '''Templates''' – шаблоны услуг | ||
+ | ***** '''$id''' – шаблон 1 | ||
+ | ***** '''$id''' – шаблон 2 | ||
+ | **** '''Types''' – типы тура | ||
+ | ***** '''Id''' – ключ типа тура | ||
+ | ***** '''Name''' – название типа тура | ||
+ | ***** '''ParentId''' – родительский элемент типа тура (если есть) | ||
+ | ***** '''Type''' – тип справочника (используется для внутренних целей) | ||
+ | **** '''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''' – флаг включен/выключен | ||
+ | **** '''IsMultiHotel''' – | ||
+ | **** '''Type''' – тип справочника (используется для внутренних целей) | ||
+ | *** '''TourDurations''' – продолжительность тура | ||
+ | *** '''TourDates''' – список дат заездов в турпрограмме | ||
+ | **** '''HotelCities''' – город в дополнительных фильтрах | ||
+ | ***** '''key''' – ключ города | ||
+ | ***** '''Country''' – страна | ||
+ | ****** '''key''' – ключ страны | ||
+ | ****** '''name''' – наименование страны | ||
+ | ****** '''Code''' – код страны | ||
+ | ****** '''DigitCode''' – цифровой код | ||
+ | ****** '''Alpha2Code''' – | ||
+ | ****** '''Alpha3Code''' – | ||
+ | ****** '''CitizenName''' – наименование страны | ||
+ | ****** '''CitizenNameLat''' – наименование страны латиницей | ||
+ | ****** '''PassportMinDurCheckFrom''' – | ||
+ | ****** '''CheckINN''' – проверка ИНН | ||
+ | ****** '''PassportMinDur''' – | ||
+ | ****** '''INNName''' – наименование поля ИНН | ||
+ | ****** '''Web''' – | ||
+ | ****** '''WebImage''' – логотип страны | ||
+ | ****** '''WebHTTP''' – сайт | ||
+ | ****** '''AnkLang''' – | ||
+ | ****** '''Key''' – ключ страны | ||
+ | ****** '''Type''' – тип (страна) | ||
+ | ***** '''name''' – наименование города | ||
+ | ***** '''Code''' – код города | ||
+ | ***** '''Web''' – | ||
+ | ***** '''RSKey''' – | ||
+ | ***** '''WebImage''' – | ||
+ | ***** '''IsDeparture''' – | ||
+ | ***** '''Key''' – ключ города | ||
+ | ***** '''Type''' – тип (город) | ||
+ | **** '''HotelResorts''' – курорты в дополнительных фильтрах | ||
+ | ***** '''CountryKey''' – ключ | ||
+ | ***** '''Name''' – наименование | ||
+ | ***** '''NameLat''' – наименование латиницей | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Type''' – тип (курорт) | ||
+ | **** '''HotelCategories''' – категории отеля в дополнительных фильтрах | ||
+ | ***** '''Name''' – наименование категории | ||
+ | ***** '''PrintNumber''' – номер для печати | ||
+ | ***** '''GlobalCode''' – глобальный код | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Type''' – тип (категория отеоля) | ||
+ | **** '''Hotels''' – отели в дополнительных фильтрах | ||
+ | ***** '''Country''' – страна | ||
+ | ****** '''key''' – ключ страны | ||
+ | ****** '''name''' – наименование страны | ||
+ | ****** '''Code''' – код страны | ||
+ | ****** '''DigitCode''' – цифровой код | ||
+ | ****** '''Alpha2Code''' – | ||
+ | ****** '''Alpha3Code''' – | ||
+ | ****** '''CitizenName''' – наименование страны | ||
+ | ****** '''CitizenNameLat''' – наименование страны латиницей | ||
+ | ****** '''PassportMinDurCheckFrom''' – | ||
+ | ****** '''CheckINN''' – проверка ИНН | ||
+ | ****** '''PassportMinDur''' – | ||
+ | ****** '''INNName''' – | ||
+ | ****** '''Web''' – | ||
+ | ****** '''WebImage''' – логотип страны | ||
+ | ****** '''WebHTTP''' – сайт | ||
+ | ****** '''AnkLang''' – | ||
+ | ****** '''Key''' – ключ страны | ||
+ | ****** '''Type''' – тип (страна) | ||
+ | **** '''Сity''' – город | ||
+ | ***** '''key''' – ключ города | ||
+ | ***** '''Country''' – страна | ||
+ | ****** '''key''' – ключ страны | ||
+ | ****** '''name''' – наименование страны | ||
+ | ****** '''Code''' – код страны | ||
+ | ****** '''DigitCode''' – цифровой код | ||
+ | ****** '''Alpha2Code''' – | ||
+ | ****** '''Alpha3Code''' – | ||
+ | ****** '''CitizenName''' – наименование страны | ||
+ | ****** '''CitizenNameLat''' – наименование страны латиницей | ||
+ | ****** '''PassportMinDurCheckFrom''' – | ||
+ | ****** '''CheckINN''' – проверка ИНН | ||
+ | ****** '''PassportMinDur''' – | ||
+ | ****** '''INNName''' – | ||
+ | ****** '''Web''' – | ||
+ | ****** '''WebImage''' – логотип страны | ||
+ | ****** '''WebHTTP''' – сайт | ||
+ | ****** '''AnkLang''' – | ||
+ | ****** '''Key''' – ключ страны | ||
+ | ****** '''Type''' – тип (страна) | ||
+ | ***** '''name''' – наименование города | ||
+ | ***** '''Code''' – код города | ||
+ | ***** '''Web''' – | ||
+ | ***** '''RSKey''' – | ||
+ | ***** '''WebImage''' – | ||
+ | ***** '''IsDeparture''' – | ||
+ | ***** '''Key''' – ключ города | ||
+ | ***** '''Type''' – тип (город) | ||
+ | **** '''Resort''' – курорт | ||
+ | ***** '''ResortKey''' – ключ курорта | ||
+ | ***** '''Name''' – наименование | ||
+ | ***** '''Category''' – категория | ||
+ | ****** '''Name''' – наименование категории | ||
+ | ****** '''PrintNumber''' – ключ для печати | ||
+ | ****** '''GlobalCode''' – глобальный код | ||
+ | ****** '''Key''' – ключ | ||
+ | ****** '''Type''' – тип (категория отеля) | ||
+ | ***** '''CategoryKey''' – ключ категории | ||
+ | ***** '''TimeFrom''' – время с | ||
+ | ***** '''TimeTo''' – время по | ||
+ | ***** '''HTTP": сайт | ||
+ | ***** '''Stars''' – категория | ||
+ | ***** '''TimeIsEmpty''' – вышло ли время | ||
+ | ***** '''NameLat''' – наименование латиницей | ||
+ | ***** '''Address''' – адрес | ||
+ | ***** '''IsCruise''' – имеется круиз | ||
+ | ***** '''Phone''' – телефон | ||
+ | ***** '''Email''' – E-mail | ||
+ | ***** '''Fax''' – факс | ||
+ | ***** '''Code''' – код | ||
+ | ***** '''Site''' – сайт | ||
+ | ***** '''Descript''' – описание | ||
+ | ***** '''PayHourNote''' – час оплаты | ||
+ | ***** '''EarlyCheckInSurcharge''' – доплаты за ранний заезд | ||
+ | ***** '''LateCheckOutSurcharge''' – доплата за поздний выезд | ||
+ | ***** '''Latitude''' – GPS координаты: географическая широта (обрабатывается с релиза 15.6) | ||
+ | ***** '''Longitude''' – GPS координаты: географическая долгота (обрабатывается с релиза 15.6) | ||
+ | ***** '''DescExcur''' – | ||
+ | ***** '''DescSport''' – | ||
+ | ***** '''DescHealth''' – | ||
+ | ***** '''DescService''' – | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Type''' – тип (отель) | ||
+ | **** '''Pansions''' – питание | ||
+ | ***** '''Code''' – код питания | ||
+ | ***** '''Name''' – наименование питания | ||
+ | ***** '''NameLat''' – наименование питания латиницей | ||
+ | ***** '''GlobalCode''' – глобальный код | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Type''' – тип (питание) | ||
+ | **** '''Airlines''' – авиакомпании в дополнительных фильтрах | ||
+ | ***** '''Key''' – ключ авиакомпании | ||
+ | ***** '''Code''' – код авиакомпании | ||
+ | ***** '''ICAO''' – код ИКАО | ||
+ | ***** '''Name''' – наименование авиакомпании | ||
+ | ***** '''NameLat''' – наименование авиакомпании латиницей | ||
+ | ***** '''Type''' – тип (авиакомпания) | ||
+ | **** '''FlightTariffs''' – класс перелета в дополнительных фильтрах | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Code''' – код | ||
+ | ***** '''Name''' – наименование | ||
+ | ***** '''NameLat''' – наименование латиницей | ||
+ | ***** '''Group''' – группа | ||
+ | ***** '''Type''' – тип (авиаперелет) | ||
+ | **** '''DepartureCities''' – города вылета в дополнительных фильтрах | ||
+ | ***** '''key''' – ключ города | ||
+ | ***** '''Country''' – страна | ||
+ | ****** '''key''' – ключ страны | ||
+ | ****** '''name''' – наименование страны | ||
+ | ****** '''Code''' – код страны | ||
+ | ****** '''DigitCode''' – цифровой код | ||
+ | ****** '''Alpha2Code''' – | ||
+ | ****** '''Alpha3Code''' – | ||
+ | ****** '''CitizenName''' – наименование страны | ||
+ | ****** '''CitizenNameLat''' – наименование страны латиницей | ||
+ | ****** '''PassportMinDurCheckFrom''' – | ||
+ | ****** '''CheckINN''' – проверка ИНН | ||
+ | ****** '''PassportMinDur''' – | ||
+ | ****** '''INNName''' – | ||
+ | ****** '''Web''' – | ||
+ | ****** '''WebImage''' – логотип страны | ||
+ | ****** '''WebHTTP''' – сайт | ||
+ | ****** '''AnkLang''' – | ||
+ | ****** '''Key''' – ключ страны | ||
+ | ****** '''Type''' – тип (страна) | ||
+ | ***** '''name''' – наименование города | ||
+ | ***** '''Code''' – код города | ||
+ | ***** '''Web''' – | ||
+ | ***** '''RSKey''' – | ||
+ | ***** '''WebImage''' – | ||
+ | ***** '''IsDeparture''' – | ||
+ | ***** '''Key''' – ключ города | ||
+ | ***** '''Type''' – тип (город) | ||
+ | **** '''DepartureAirports''' – аэропорты вылета в дополнительных фильтрах | ||
+ | ***** '''Key''' – ключ | ||
+ | ***** '''Code''' – код аэропорта | ||
+ | ***** '''Name''' – наименование аэропорта | ||
+ | ***** '''NameLat''' – наименование аэропорта латиницей | ||
+ | ***** '''CityKey''' – ключ города | ||
+ | ***** '''CountryKey''' – ключ страны | ||
+ | ***** '''Letter''' – присвоенный символд | ||
+ | ***** '''Site''' – сайт | ||
+ | ***** '''Type''' – тип (аэропорт) | ||
+ | **** '''ArrivalCities''' – города прибытия в дополнительных фильтрах | ||
+ | ***** '''key''' – ключ города | ||
+ | ***** '''Country''' – страна | ||
+ | ****** '''key''' – ключ страны | ||
+ | ****** '''name''' – наименование страны | ||
+ | ****** '''Code''' – код страны | ||
+ | ****** '''DigitCode''' – цифровой код | ||
+ | ****** '''Alpha2Code''' – | ||
+ | ****** '''Alpha3Code''' – | ||
+ | ****** '''CitizenName''' – наименование страны | ||
+ | ****** '''CitizenNameLat''' – наименование страны латиницей | ||
+ | ****** '''PassportMinDurCheckFrom''' – | ||
+ | ****** '''CheckINN''' – проверка ИНН | ||
+ | ****** '''PassportMinDur''' – | ||
+ | ****** '''INNName''' – | ||
+ | ****** '''Web''' – | ||
+ | ****** '''WebImage''' – логотип страны | ||
+ | ****** '''WebHTTP''' – сайт | ||
+ | ****** '''AnkLang''' – | ||
+ | ****** '''Key''' – ключ страны | ||
+ | ****** '''Type''' – тип (страна) | ||
+ | ***** '''name''' – наименование города | ||
+ | ***** '''Code''' – код города | ||
+ | ***** '''Web''' – | ||
+ | ***** '''RSKey''' – | ||
+ | ***** '''WebImage''' – | ||
+ | ***** '''IsDeparture''' – | ||
+ | ***** '''Key''' – ключ города | ||
+ | ***** '''Type''' – тип (город) | ||
+ | **** '''ArrivalAirports''' – аэропорты прибытия в дополнительных фильтрах | ||
+ | ***** '''Key''' – ключ аэропорта | ||
+ | ***** '''Code''' – код аэропорта | ||
+ | ***** '''Name''' – наименование аэропорта | ||
+ | ***** '''NameLat''' – наименование аэропорта латиницей | ||
+ | ***** '''CityKey''' – ключ города | ||
+ | ***** '''CountryKey''' – ключ страны | ||
+ | ***** '''Letter''' – буква аэропорта | ||
+ | ***** '''Site''' – сайт | ||
+ | ***** '''Type''' – тип (аэропорт) | ||
+ | **** '''HotelTypes''' – признаки отелей в дополнительных фильтрах | ||
+ | ***** '''key''' – ключ | ||
+ | ***** '''name''' – обозначение | ||
+ | ***** '''Type''' – тип (отель) | ||
+ | **** '''ComplexHotelIds''' – | ||
+ | **** '''Message''' – сообщение | ||
+ | ***** '''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> | ||
+ | Вызов метода TourForWeb | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://dev4-04:9000/TourSearchOwin/TourForWeb/search/simple?DepartureCityKeys=1&Dates=25.10.2021 | ||
+ | &Durations=5&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&ShowToursWithoutHotels=- | ||
+ | 1&isFromBasket=false&isFillSecondaryFilters=false&DestinationType=1&DestinationKey=90&AdultCount= | ||
+ | 2&CurrencyName=%D1%80%D0%B1&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&TourType=-1&CityIds=-1& | ||
+ | TimeDepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00&TimeArrivalTo=23 | ||
+ | %3A59&SearchId=2&MatrixAlgoritm=false&wrongLicenseFileUpperTitle=Incorrect+license+file.& | ||
+ | RemoteHotelMode=0&_=1633953386754 HTTP/1.1 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода TourForWeb (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "Result": [ | ||
+ | { | ||
+ | "Key": 100011112, | ||
+ | "Name": "EFREHolland", | ||
+ | "TourUrl": null, | ||
+ | "BookingConditions": null, | ||
+ | "DefaultManagers": [], | ||
+ | "Manager": 106, | ||
+ | "Branches": [], | ||
+ | "DetermineTheBranchOnCity": false, | ||
+ | "StartDate": "2021-10-18T00:00:00", | ||
+ | "Duration": 6, | ||
+ | "DurationInNight": 5, | ||
+ | "Types": [ | ||
+ | 45 | ||
+ | ], | ||
+ | "Cost": 620, | ||
+ | "Rate": "рб", | ||
+ | "CityDepature": { | ||
+ | "Key": 312, | ||
+ | "Value": "Астрахань" | ||
+ | }, | ||
+ | "CountryId": 1, | ||
+ | "Services": [ | ||
+ | { | ||
+ | "DepartureCity": { | ||
+ | "Key": 312, | ||
+ | "Value": "Астрахань" | ||
+ | }, | ||
+ | "DepartureCountry": { | ||
+ | "Key": 460, | ||
+ | "Value": "Россия" | ||
+ | }, | ||
+ | "ArrivalCity": { | ||
+ | "Key": 62, | ||
+ | "Value": "Амстердам" | ||
+ | }, | ||
+ | "ArrivalCountry": { | ||
+ | "Key": 1, | ||
+ | "Value": "Голландия" | ||
+ | }, | ||
+ | "DepartureAirport": { | ||
+ | "Key": "ASF", | ||
+ | "Value": "Астрахань" | ||
+ | }, | ||
+ | "ArrivalAirport": { | ||
+ | "Key": "EH9", | ||
+ | "Value": "AMST" | ||
+ | }, | ||
+ | "Airline": { | ||
+ | "Id": 43, | ||
+ | "Value": "МАУ", | ||
+ | "Key": "PS" | ||
+ | }, | ||
+ | "Aircraft": { | ||
+ | "Key": "133", | ||
+ | "Value": "13131313" | ||
+ | }, | ||
+ | "Flight": { | ||
+ | "Key": 2111, | ||
+ | "Value": "9117" | ||
+ | }, | ||
+ | "DepartureTime": "17:05:00", | ||
+ | "ArrivalTime": "20:05:00", | ||
+ | "TotalTimeOfFlight": 420, | ||
+ | "FlightDetails": [ | ||
+ | { | ||
+ | "Tariff": { | ||
+ | "Key": 339, | ||
+ | "Code": "14", | ||
+ | "Name": "14" | ||
+ | }, | ||
+ | "IsCommission": true, | ||
+ | "Cost": 0, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12685, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "FlightSetting": { | ||
+ | "ServiceId": 1, | ||
+ | "PatternId": 30, | ||
+ | "FlightId": 30 | ||
+ | }, | ||
+ | "FlightSourceMode": 1, | ||
+ | "Id": 1, | ||
+ | "SvKey": 1, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2021-10-18T17:05:00", | ||
+ | "EndDateTime": "2021-10-18T20:05:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 1462, | ||
+ | "Index": 0 | ||
+ | }, | ||
+ | { | ||
+ | "DepartureCity": { | ||
+ | "Key": 62, | ||
+ | "Value": "Амстердам" | ||
+ | }, | ||
+ | "DepartureCountry": { | ||
+ | "Key": 1, | ||
+ | "Value": "Голландия" | ||
+ | }, | ||
+ | "ArrivalCity": { | ||
+ | "Key": 312, | ||
+ | "Value": "Астрахань" | ||
+ | }, | ||
+ | "ArrivalCountry": { | ||
+ | "Key": 460, | ||
+ | "Value": "Россия" | ||
+ | }, | ||
+ | "DepartureAirport": { | ||
+ | "Key": "EH9", | ||
+ | "Value": "AMST" | ||
+ | }, | ||
+ | "ArrivalAirport": { | ||
+ | "Key": "ASF", | ||
+ | "Value": "Астрахань" | ||
+ | }, | ||
+ | "Airline": { | ||
+ | "Id": 304, | ||
+ | "Value": "АЭРОФЛОТ", | ||
+ | "Key": "AUF" | ||
+ | }, | ||
+ | "Aircraft": { | ||
+ | "Key": "330", | ||
+ | "Value": "aerobus A-330" | ||
+ | }, | ||
+ | "Flight": { | ||
+ | "Key": 2080, | ||
+ | "Value": "9000" | ||
+ | }, | ||
+ | "DepartureTime": "09:59:00", | ||
+ | "ArrivalTime": "12:59:00", | ||
+ | "TotalTimeOfFlight": -60, | ||
+ | "FlightDetails": [ | ||
+ | { | ||
+ | "Tariff": { | ||
+ | "Key": 339, | ||
+ | "Code": "14", | ||
+ | "Name": "14" | ||
+ | }, | ||
+ | "IsCommission": true, | ||
+ | "Cost": 0, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12685, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "FlightSetting": { | ||
+ | "ServiceId": 2, | ||
+ | "PatternId": 1, | ||
+ | "FlightId": 0 | ||
+ | }, | ||
+ | "FlightSourceMode": 1, | ||
+ | "Id": 2, | ||
+ | "SvKey": 1, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": false, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 2, | ||
+ | "DurationInNight": 0, | ||
+ | "BeginDateTime": "2021-10-19T09:59:00", | ||
+ | "EndDateTime": "2021-10-19T12:59:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 1462, | ||
+ | "Index": 1 | ||
+ | }, | ||
+ | { | ||
+ | "Hotel": { | ||
+ | "Key": 238, | ||
+ | "Value": "Hotel 4" | ||
+ | }, | ||
+ | "City": { | ||
+ | "Key": 62, | ||
+ | "Value": "Амстердам" | ||
+ | }, | ||
+ | "Stars": { | ||
+ | "Key": 23, | ||
+ | "Value": "1*++" | ||
+ | }, | ||
+ | "StarsGlobalCode": { | ||
+ | "Key": 23, | ||
+ | "Value": "1*" | ||
+ | }, | ||
+ | "Resort": { | ||
+ | "Key": -1, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "ImageURL": "", | ||
+ | "Http": "https://aniconrus.ru/ru/", | ||
+ | "Description": "", | ||
+ | "Latitude": null, | ||
+ | "Longitude": null, | ||
+ | "Country": { | ||
+ | "Key": 1, | ||
+ | "Value": "Голландия" | ||
+ | }, | ||
+ | "HotelDetails": [ | ||
+ | { | ||
+ | "HotelRoom": 1085918, | ||
+ | "Room": { | ||
+ | "Key": 141, | ||
+ | "Value": "2AD" | ||
+ | }, | ||
+ | "RoomCategory": { | ||
+ | "Key": 2905, | ||
+ | "Value": "Double" | ||
+ | }, | ||
+ | "AccomodationType": { | ||
+ | "Key": 1172, | ||
+ | "Value": "2AD", | ||
+ | "AdultCount": 2, | ||
+ | "ChildCount": 0 | ||
+ | }, | ||
+ | "Pansion": { | ||
+ | "Key": 1, | ||
+ | "Value": "Полный пансион" | ||
+ | }, | ||
+ | "PansionGlobalCode": { | ||
+ | "Key": 1, | ||
+ | "Value": null | ||
+ | }, | ||
+ | "RemoteId": null, | ||
+ | "Cost": 0, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "PartnerId": 12685, | ||
+ | "ByPax": true, | ||
+ | "Partner": { | ||
+ | "Key": 12685, | ||
+ | "Value": " ПКЦ" | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "HotelTypes": [ | ||
+ | { | ||
+ | "Key": 290, | ||
+ | "Value": "ALEXXZ" | ||
+ | } | ||
+ | ], | ||
+ | "RemoteId": null, | ||
+ | "COAndSpecialsInfo": { | ||
+ | "AppliedCostOffersKeys": [ | ||
+ | 21706 | ||
+ | ], | ||
+ | "AppliedSpeciasInfo": null | ||
+ | }, | ||
+ | "Id": 3, | ||
+ | "SvKey": 3, | ||
+ | "IsSubCode1": true, | ||
+ | "IsSubCode2": true, | ||
+ | "IsPartnerBasedOn": false, | ||
+ | "Day": 2, | ||
+ | "DurationInNight": 4, | ||
+ | "BeginDateTime": "2021-10-19T12:59:00", | ||
+ | "EndDateTime": "2021-10-23T12:59:00", | ||
+ | "IsHooded": false, | ||
+ | "IsDeleted": false, | ||
+ | "IsNotCalculate": false, | ||
+ | "PacketId": 1462, | ||
+ | "Index": 2 | ||
+ | } | ||
+ | ], | ||
+ | "NotRouteServices": [], | ||
+ | "MinCostServicesComposition": [ | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 1, | ||
+ | "PatternId": 30, | ||
+ | "SettingId": 30 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 2111, | ||
+ | "SubCode1": 339, | ||
+ | "SubCode2": 312, | ||
+ | "PacketId": 1462, | ||
+ | "PartnerId": 12685, | ||
+ | "CountryId": 1, | ||
+ | "CityId": 62, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "GDSProviderId": null, | ||
+ | "COAndSpecialsInfo": { | ||
+ | "AppliedCostOffersKeys": null, | ||
+ | "AppliedSpeciasInfo": null | ||
+ | }, | ||
+ | "COBySubCode": [ | ||
+ | 21756 | ||
+ | ], | ||
+ | "SpecialsBySubCode": null | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 2, | ||
+ | "PatternId": 1, | ||
+ | "SettingId": 0 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 2080, | ||
+ | "SubCode1": 339, | ||
+ | "SubCode2": 62, | ||
+ | "PacketId": 1462, | ||
+ | "PartnerId": 12685, | ||
+ | "CountryId": 460, | ||
+ | "CityId": 312, | ||
+ | "Day": 2, | ||
+ | "DurationInNight": 0, | ||
+ | "GDSProviderId": null, | ||
+ | "COAndSpecialsInfo": { | ||
+ | "AppliedCostOffersKeys": null, | ||
+ | "AppliedSpeciasInfo": null | ||
+ | }, | ||
+ | "COBySubCode": [ | ||
+ | 21705 | ||
+ | ], | ||
+ | "SpecialsBySubCode": null | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | "Key": { | ||
+ | "TemplateId": 3, | ||
+ | "PatternId": 0, | ||
+ | "SettingId": 0 | ||
+ | }, | ||
+ | "Value": { | ||
+ | "ServiceType": 3, | ||
+ | "Code": 238, | ||
+ | "SubCode1": 1085918, | ||
+ | "SubCode2": 1, | ||
+ | "PacketId": 1462, | ||
+ | "PartnerId": 12685, | ||
+ | "CountryId": 1, | ||
+ | "CityId": 62, | ||
+ | "Day": 2, | ||
+ | "DurationInNight": 4, | ||
+ | "GDSProviderId": null, | ||
+ | "COAndSpecialsInfo": { | ||
+ | "AppliedCostOffersKeys": null, | ||
+ | "AppliedSpeciasInfo": null | ||
+ | }, | ||
+ | "COBySubCode": [ | ||
+ | 21706 | ||
+ | ], | ||
+ | "SpecialsBySubCode": null | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "FlightWeight": 2, | ||
+ | "LinkingFlightsRules": { | ||
+ | "notCombineDifferentAirlineRule": { | ||
+ | "airlines": [], | ||
+ | "flightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "checkPlusMinus1CharterRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentTariffGroupRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentPartnerRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "departureCityEqualsArrivalCityRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "combineOnlySpecificChartersRule": { | ||
+ | "settings": [], | ||
+ | "enabled": false | ||
+ | } | ||
+ | }, | ||
+ | "RouteSubVariants": [], | ||
+ | "Routes": 15, | ||
+ | "IsRemoteHotels": false | ||
+ | ], | ||
+ | "SecondaryFiltersResult": { | ||
+ | "TourTypes": [ | ||
+ | { | ||
+ | "Id": 45, | ||
+ | "Name": "Индивидуальный тур", | ||
+ | "ParentId": null, | ||
+ | "Type": "TourType" | ||
+ | } | ||
+ | ], | ||
+ | "TourPrograms": [ | ||
+ | { | ||
+ | "Key": 100011112, | ||
+ | "Name": "EFREHolland", | ||
+ | "TourUrl": null, | ||
+ | "BookingConditions": null, | ||
+ | "DefaultManagers": [], | ||
+ | "Manager": 106, | ||
+ | "Branches": [], | ||
+ | "DetermineTheBranchOnCity": false, | ||
+ | "IsLandOnly": false, | ||
+ | "IsApplyMarginAddCostToRemoteService": true, | ||
+ | "IsRestrictMultiHotels": false, | ||
+ | "IsHotelTemplates": true, | ||
+ | "IsRouteServices": true, | ||
+ | "IsAviaBooking": false, | ||
+ | "MultiHotelDelta": 0, | ||
+ | "Rate": "рб", | ||
+ | "RateId": 14, | ||
+ | "DateStart": "2021-08-01T00:00:00Z", | ||
+ | "DateEnd": "2021-12-31T00:00:00Z", | ||
+ | "DateList": [], | ||
+ | "UpdateDate": "2021-10-01T14:56:14.44", | ||
+ | "Status": { | ||
+ | "Key": 3, | ||
+ | "Value": "Доступен для продажи" | ||
+ | }, | ||
+ | "Templates": [ | ||
+ | { | ||
+ | "$id": "1" | ||
+ | }, | ||
+ | { | ||
+ | "$id": "2" | ||
+ | }, | ||
+ | { | ||
+ | "$id": "3" | ||
+ | } | ||
+ | ], | ||
+ | "Types": [ | ||
+ | { | ||
+ | "Id": 45, | ||
+ | "Name": "Индивидуальный тур", | ||
+ | "ParentId": null, | ||
+ | "Type": "TourType" | ||
+ | } | ||
+ | ], | ||
+ | "LinkingFlightsRules": { | ||
+ | "notCombineDifferentAirlineRule": { | ||
+ | "airlines": [], | ||
+ | "flightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "checkPlusMinus1CharterRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentTariffGroupRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "notCombineDifferentPartnerRule": { | ||
+ | "FlightSettings": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "departureCityEqualsArrivalCityRule": { | ||
+ | "FlightSettingPairs": [], | ||
+ | "enabled": false | ||
+ | }, | ||
+ | "combineOnlySpecificChartersRule": { | ||
+ | "settings": [], | ||
+ | "enabled": false | ||
+ | } | ||
+ | }, | ||
+ | "IsMultiHotel": false, | ||
+ | "Type": "TourProgram" | ||
+ | } | ||
+ | ], | ||
+ | "TourDurations": [ | ||
+ | 6 | ||
+ | ], | ||
+ | "TourDates": [ | ||
+ | "2021-10-18T00:00:00" | ||
+ | ], | ||
+ | "HotelCities": [ | ||
+ | { | ||
+ | "key": 62, | ||
+ | "Country": { | ||
+ | "key": 1, | ||
+ | "name": "Голландия", | ||
+ | "Code": "Hol", | ||
+ | "DigitCode": "528", | ||
+ | "Alpha2Code": "NL", | ||
+ | "Alpha3Code": "NLD", | ||
+ | "CitizenName": "Голландия", | ||
+ | "CitizenNameLat": "Holland", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": 0, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "ыяфаыуа", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Key": 1, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Амстердам", | ||
+ | "Code": "AMS", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Key": 62, | ||
+ | "Type": "City" | ||
+ | } | ||
+ | ], | ||
+ | "HotelResorts": [ | ||
+ | { | ||
+ | "CountryKey": -1, | ||
+ | "Name": "Не указан", | ||
+ | "NameLat": null, | ||
+ | "Key": -1, | ||
+ | "Type": "Resort" | ||
+ | } | ||
+ | ], | ||
+ | "HotelCategories": [ | ||
+ | { | ||
+ | "Name": "1*++", | ||
+ | "PrintNumber": 23, | ||
+ | "GlobalCode": "1*", | ||
+ | "Key": 23, | ||
+ | "Type": "HotelCategory" | ||
+ | } | ||
+ | ], | ||
+ | "Hotels": [ | ||
+ | { | ||
+ | "Country": { | ||
+ | "key": 1, | ||
+ | "name": "Голландия", | ||
+ | "Code": "Hol", | ||
+ | "DigitCode": "528", | ||
+ | "Alpha2Code": "NL", | ||
+ | "Alpha3Code": "NLD", | ||
+ | "CitizenName": "Голландия", | ||
+ | "CitizenNameLat": "Holland", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": 0, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "ыяфаыуа", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Key": 1, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "City": { | ||
+ | "key": 62, | ||
+ | "Country": { | ||
+ | "key": 1, | ||
+ | "name": "Голландия", | ||
+ | "Code": "Hol", | ||
+ | "DigitCode": "528", | ||
+ | "Alpha2Code": "NL", | ||
+ | "Alpha3Code": "NLD", | ||
+ | "CitizenName": "Голландия", | ||
+ | "CitizenNameLat": "Holland", | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": false, | ||
+ | "PassportMinDur": 0, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "ыяфаыуа", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Key": 1, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Амстердам", | ||
+ | "Code": "AMS", | ||
+ | "Web": 0, | ||
+ | "RSKey": 0, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Key": 62, | ||
+ | "Type": "City" | ||
+ | }, | ||
+ | "Resort": null, | ||
+ | "ResortKey": 0, | ||
+ | "Name": "Hotel 4", | ||
+ | "Category": { | ||
+ | "Name": "1*++", | ||
+ | "PrintNumber": 23, | ||
+ | "GlobalCode": "1*", | ||
+ | "Key": 23, | ||
+ | "Type": "HotelCategory" | ||
+ | }, | ||
+ | "CategoryKey": 23, | ||
+ | "TimeFrom": null, | ||
+ | "TimeTo": null, | ||
+ | "HTTP": "https://aniconrus.ru/ru/", | ||
+ | "Stars": "1*++", | ||
+ | "TimeIsEmpty": true, | ||
+ | "NameLat": "Hotel 4", | ||
+ | "Address": "", | ||
+ | "IsCruise": 0, | ||
+ | "Phone": null, | ||
+ | "Email": "", | ||
+ | "Fax": null, | ||
+ | "Code": null, | ||
+ | "Site": 0, | ||
+ | "Descript": "", | ||
+ | "PayHourNote": null, | ||
+ | "EarlyCheckInSurcharge": 0, | ||
+ | "LateCheckOutSurcharge": 0, | ||
+ | "Latitude": null, | ||
+ | "Longitude": null, | ||
+ | "DescExcur": "", | ||
+ | "DescSport": "", | ||
+ | "DescHealth": "", | ||
+ | "DescService": "", | ||
+ | "Key": 238, | ||
+ | "Type": "Hotel" | ||
+ | } | ||
+ | ], | ||
+ | "Pansions": [ | ||
+ | { | ||
+ | "Code": "FB", | ||
+ | "Name": "Полный пансион", | ||
+ | "NameLat": null, | ||
+ | "GlobalCode": null, | ||
+ | "Key": 1, | ||
+ | "Type": "Pansion" | ||
+ | } | ||
+ | ], | ||
+ | "Airlines": [ | ||
+ | { | ||
+ | "Key": 43, | ||
+ | "Code": "PS", | ||
+ | "ICAO": null, | ||
+ | "Name": "МАУ", | ||
+ | "NameLat": "en_Ukrainian Airlanes", | ||
+ | "Type": "AirLine" | ||
+ | }, | ||
+ | { | ||
+ | "Key": 304, | ||
+ | "Code": "AUF", | ||
+ | "ICAO": null, | ||
+ | "Name": "АЭРОФЛОТ", | ||
+ | "NameLat": null, | ||
+ | "Type": "AirLine" | ||
+ | } | ||
+ | ], | ||
+ | "FlightTariffs": [ | ||
+ | { | ||
+ | "Key": 339, | ||
+ | "Code": "14", | ||
+ | "Name": "14", | ||
+ | "NameLat": null, | ||
+ | "Group": null, | ||
+ | "Type": "AirService" | ||
+ | } | ||
+ | ], | ||
+ | "DepartureCities": [ | ||
+ | { | ||
+ | "key": 312, | ||
+ | "Country": { | ||
+ | "key": 460, | ||
+ | "name": "Россия", | ||
+ | "Code": "RU", | ||
+ | "DigitCode": "643", | ||
+ | "Alpha2Code": "RU", | ||
+ | "Alpha3Code": "RUS", | ||
+ | "CitizenName": "Россия", | ||
+ | "CitizenNameLat": null, | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": true, | ||
+ | "PassportMinDur": 0, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Key": 460, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Астрахань", | ||
+ | "Code": "", | ||
+ | "Web": 0, | ||
+ | "RSKey": null, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Key": 312, | ||
+ | "Type": "City" | ||
+ | } | ||
+ | ], | ||
+ | "DepartureAirports": [ | ||
+ | { | ||
+ | "Key": 168, | ||
+ | "Code": "ASF", | ||
+ | "Name": "Астрахань", | ||
+ | "NameLat": null, | ||
+ | "CityKey": 312, | ||
+ | "CountryKey": 460, | ||
+ | "Letter": null, | ||
+ | "Site": null, | ||
+ | "Type": "Airport" | ||
+ | } | ||
+ | ], | ||
+ | "ArrivalCities": [ | ||
+ | { | ||
+ | "key": 312, | ||
+ | "Country": { | ||
+ | "key": 460, | ||
+ | "name": "Россия", | ||
+ | "Code": "RU", | ||
+ | "DigitCode": "643", | ||
+ | "Alpha2Code": "RU", | ||
+ | "Alpha3Code": "RUS", | ||
+ | "CitizenName": "Россия", | ||
+ | "CitizenNameLat": null, | ||
+ | "PassportMinDurCheckFrom": 0, | ||
+ | "CheckINN": true, | ||
+ | "PassportMinDur": 0, | ||
+ | "INNName": "ИНН", | ||
+ | "Web": 0, | ||
+ | "WebImage": "", | ||
+ | "WebHTTP": "", | ||
+ | "AnkLang": 0, | ||
+ | "Key": 460, | ||
+ | "Type": "Country" | ||
+ | }, | ||
+ | "name": "Астрахань", | ||
+ | "Code": "", | ||
+ | "Web": 0, | ||
+ | "RSKey": null, | ||
+ | "WebImage": null, | ||
+ | "IsDeparture": 1, | ||
+ | "Key": 312, | ||
+ | "Type": "City" | ||
+ | } | ||
+ | ], | ||
+ | "ArrivalAirports": [ | ||
+ | { | ||
+ | "Key": 168, | ||
+ | "Code": "ASF", | ||
+ | "Name": "Астрахань", | ||
+ | "NameLat": null, | ||
+ | "CityKey": 312, | ||
+ | "CountryKey": 460, | ||
+ | "Letter": null, | ||
+ | "Site": null, | ||
+ | "Type": "Airport" | ||
+ | } | ||
+ | ], | ||
+ | "HotelTypes": [ | ||
+ | { | ||
+ | "key": 290, | ||
+ | "name": "ALEXXZ", | ||
+ | "Type": "HotelType" | ||
+ | } | ||
+ | ], | ||
+ | "ComplexHotelIds": [] | ||
+ | }, | ||
+ | "Message": { | ||
+ | "Key": 0, | ||
+ | "Value": null | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | * Формат запроса GET с таблицей цен: | ||
+ | ** GET .../TourSearchOwin/TourForWeb/search/matrix? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | Аналогичны стандартному запросу (simple) | ||
+ | * Возвращаемый результат: | ||
+ | ** '''CellsForMatrix''' – ячейки таблицы | ||
+ | *** '''Key''' – ключ | ||
+ | *** '''StartDate''' – дата начала | ||
+ | *** '''Duration''' – продолжительность | ||
+ | *** '''DurationInNight''' – количество ночей | ||
+ | *** '''Cost''' – цена | ||
+ | ** '''CitiesWithMinimalCosts''' – города с минимальной ценой | ||
+ | *** '''DepartureCityKey''' – ключ города отправления | ||
+ | *** '''ArrivalCityKey''' – ключ города прибытия | ||
+ | *** '''DepartureCityName''' – наименование города отправления | ||
+ | *** '''ArrivalCityName''' – наименование города прибытия | ||
+ | *** '''RouteMinimalPrice''' – минимальная цена маршрута | ||
+ | ** '''TourMinimalAndMaximalCost''' – минимальная и максимальная цены тура | ||
+ | *** '''MinimalPrice''' – минимальная цена | ||
+ | *** '''MaximalPrice''' – максимальная цена | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода TourForWeb | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/TourForWeb/search/matrix?DepartureCityKeys=1&Dates=18.10.2021 | ||
+ | &Durations=6&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&ShowToursWithoutHotels= | ||
+ | -1&isFromBasket=false&isFillSecondaryFilters=false&DestinationType=1&DestinationKey=90&AdultCount= | ||
+ | 2&CurrencyName=%D1%80%D0%B1&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&TourType=-1&CityIds=35& | ||
+ | TimeDepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00&TimeArrivalTo=23%3A59& | ||
+ | SearchId=1&MatrixAlgoritm=true&wrongLicenseFileUpperTitle=Incorrect+license+file.&RemoteHotelMode=0&_ | ||
+ | =1634028589340 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода TourForWeb (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "CellsForMatrix": [ | ||
+ | { | ||
+ | "Key": 100011079, | ||
+ | "StartDate": "2021-10-18T00:00:00", | ||
+ | "Duration": 6, | ||
+ | "DurationInNight": 5, | ||
+ | "Cost": 1218 | ||
+ | } | ||
+ | ], | ||
+ | "CitiesWithMinimalCosts": [ | ||
+ | { | ||
+ | "DepartureCityKey": 1, | ||
+ | "ArrivalCityKey": 35, | ||
+ | "DepartureCityName": "Москва", | ||
+ | "ArrivalCityName": "Вена", | ||
+ | "RouteMinimalPrice": 1218 | ||
+ | } | ||
+ | ], | ||
+ | "TourMinimalAndMaximalCost": { | ||
+ | "MinimalPrice": 1218, | ||
+ | "MaximalPrice": 53227 | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | * Формат запроса GET с минимальной и максимальной ценой: | ||
+ | ** GET .../TourSearchOwin/TourForWeb/search/minMaxPrices? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | Аналогичны стандартному запросу (simple) | ||
+ | * Возвращаемый результат: | ||
+ | ** '''MinimalPrice''' – минимальная цена | ||
+ | ** '''MaximalPrice''' – максимальная цена | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода TourForWeb | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/TourForWeb/search/minMaxPrices?DepartureCityKeys=1&Dates=18.10.2021 | ||
+ | &Durations=6&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&ShowToursWithoutHotels= | ||
+ | -1&isFromBasket=false&isFillSecondaryFilters=false&DestinationType=1&DestinationKey=90&AdultCount= | ||
+ | 2&CurrencyName=%D1%80%D0%B1&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&TourType=-1&CityIds=35&Time | ||
+ | DepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00&TimeArrivalTo=23%3A59&SearchId | ||
+ | =1&SearchMaxPriceAlgoritm=false&MatrixAlgoritm=true&wrongLicenseFileUpperTitle=Incorrect+license+file. | ||
+ | &RemoteHotelMode=0&_ | ||
+ | =1634028589340 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода TourForWeb (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "MinimalPrice": 1218, | ||
+ | "MaximalPrice": 285618 | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Проверка дублирующих туристов (CheckDoubleDogovor)=== | ||
+ | Метод проверяет есть ли дублирующие туристы в существующих путевках. Проверка на дублирование регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки#Общие настройки|Предупреждать при дублировании туристов]]. | ||
+ | * Формат запроса POST: | ||
+ | ** POST .../TourSearchOwin/CheckDoubleDogovor | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | ** '''TourProgramId''' – ключ турпрограммы | ||
+ | ** '''BeginDate''' – дата начала тура | ||
+ | ** '''Duration''' – продолжительность тура | ||
+ | ** '''Currency''' – код валюты | ||
+ | ** '''Services''' – массив услуг авиаперелетов для получения доплат | ||
+ | *** '''Service''' – объект услуга авиаперелет | ||
+ | **** '''ServiceType''' – тип услуги | ||
+ | **** '''Code''' – код услуги | ||
+ | **** '''SubCode1''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 1]] услуги | ||
+ | **** '''SubCode2''' – [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|доп. описание 2]] услуги | ||
+ | **** '''Packet''' – ключ пакета услуги | ||
+ | **** '''Partner''' – ключ партнера услуги | ||
+ | **** '''Day''' – день предоставления услуги | ||
+ | **** '''DurationInNight''' – продолжительность услуги в ночах | ||
+ | **** '''City''' – ключ города | ||
+ | **** '''Country''' – страна услуги | ||
+ | **** '''Attributes''' – битовая маска атрибутов услуг | ||
+ | **** '''IsRemovable''' – (не обрабатывается) | ||
+ | **** '''Type''' – тип услуги в путевке (базовая дополнительная) | ||
+ | **** '''IsHooded''' – признак скрытая услуга | ||
+ | **** '''IsNotCalculated''' – признак не рассчитываемая услуга | ||
+ | **** '''BeginDateTimeString''' – дата и время начала услуги | ||
+ | **** '''EndDateTimeString''' – дата и время окончания услуги | ||
+ | **** '''TemplateId''' – шаблон услуги | ||
+ | **** '''Cost''' – цена услуги | ||
+ | **** '''ByPax''' – цена за человека | ||
+ | **** '''QuotaStatus''' – объект статус квотирования | ||
+ | ***** '''PlacesStatus''' – статус по квотам (есть места-1 / нет мест-2 / под запрос-4) | ||
+ | ***** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''. | ||
+ | ***** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены. | ||
+ | **** '''Index''' – индекс услуги | ||
+ | **** '''IsRoute''' – признак маршрутная услуга | ||
+ | **** '''ServiceTemplateIndex''' – индекс шаблона услуги | ||
+ | **** '''RemoteId''' – информация об услуге во внешней системе | ||
+ | **** '''IsCommission''' – признак, комиссионная ли услуга | ||
+ | **** '''BaseFlightsParams''' – параметры рассчитанных авиаперелетов | ||
+ | ***** '''CityArrival''' – ключ города прибытия прямого перелета | ||
+ | ***** '''FlightCode''' – ключ прямого авиаперелета | ||
+ | ***** '''TariffKey''' – ключ тарифа прямого авиаперелета | ||
+ | ***** '''PartnerId''' – ключ партнера прямого авиаперелета | ||
+ | *** '''TouristNumbersList''' – массив туристов, привязанных к услуге | ||
+ | ** '''Tourists''' – массив туристов | ||
+ | *** '''IsMain''' – главный турист | ||
+ | *** '''Number''' – порядковый номер туриста | ||
+ | *** '''AgeType''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант) | ||
+ | *** '''MaleFemaleSex''' – пол (0 – мужской, 1 – женский) | ||
+ | *** '''FirstName''' – имя (лат) | ||
+ | *** '''LastName''' – фамилия (лат) | ||
+ | *** '''Patronymic''' – отчество (лат) | ||
+ | *** '''FirstNameRus''' – имя (рус) | ||
+ | *** '''LastNameRus''' – фамилия (рус) | ||
+ | *** '''PatronymicRus''' – отчество (рус) | ||
+ | *** '''InternationalPassportSeries''' – серия загранпаспорта | ||
+ | *** '''InternationalPassportNumber''' – номер загранпаспорта | ||
+ | *** '''InternationalPassportDateOfIssue''' – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''InternationalPassportDateOfIssueString''' – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY) | ||
+ | *** '''InternationalPassportDateOfExpiry''' – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''InternationalPassportDateOfExpiryString''' – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY) | ||
+ | *** '''internationalPassportByWhom''' – кем выдан загранпаспорт | ||
+ | *** '''PassportSeries''' – серия паспорта | ||
+ | *** '''PassportNumber''' – номер паспорта | ||
+ | *** '''PassportDateOfIssue''' – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''PassportDateOfIssueString''' – дата выдачи паспорта в строковом формате (DD.MM.YYYY) | ||
+ | *** '''PassportByWhom''' – кем выдан паспорт | ||
+ | *** '''Citizenship''' – название страны | ||
+ | *** '''Phone''' – телефон | ||
+ | *** '''Email''' – e-mail | ||
+ | *** '''BirthDay''' – дата рождения (YYYY-MM-DDThh:mm:ssz) | ||
+ | *** '''BirthDayString''' – дата рождения в строковом формате (DD.MM.YYYY) | ||
+ | *** '''BirthPlace''' – место рождения | ||
+ | *** '''CitizenID''' – ID туриста (задается в карточке постоянного клиента) | ||
+ | *** '''Age''' – количество полных лет на момент окончания тура | ||
+ | ** '''TechnicalProblemsDuringUpdateFlights''' – технические проблемы при обновлении рейсов | ||
+ | ** '''TimeLimit''' – лимит времени | ||
+ | ** '''CountryKey''' – ключ страны | ||
+ | ** '''OwnerId''' – ключ ведущего менеджера (начиная с релиза 15.3). Если 0, то берется по умолчанию. Если по умолчанию не указан, то берется создатель тура. | ||
+ | ** '''Day''' – день | ||
+ | ** '''Day2''' – дня | ||
+ | ** '''Days''' – дней | ||
+ | ** '''Night''' – ночь | ||
+ | ** '''Night2''' – ночи | ||
+ | ** '''Nights''' – ночей | ||
+ | ** '''adultsCountOverServiceLimit''' – Количество взрослых туристов превышает лимит услуги | ||
+ | ** '''incorrectChildrenInf''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) | ||
+ | * Возвращаемый результат: | ||
+ | ** '''Errors''' – описание ошибки | ||
+ | ** '''Warnings''' – предупреждение | ||
+ | ** '''States''' – статус | ||
+ | ** '''IsValid''' – результат проверки подключения (true/false) | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода CheckDoubleDogovor | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:9000/TourSearchOwin/CheckDoubleDogovor | ||
+ | { | ||
+ | "TourProgramId": 100011112, | ||
+ | "BeginDate": "2021-10-18T17:05:00", | ||
+ | "Duration": 6, | ||
+ | "Currency": "рб", | ||
+ | "Services": [ | ||
+ | { | ||
+ | "Service": { | ||
+ | "ServiceType": 3, | ||
+ | "Code": 238, | ||
+ | "SubCode1": 1085918, | ||
+ | "SubCode2": 1, | ||
+ | "Packet": 1462, | ||
+ | "Partner": 12685, | ||
+ | "Day": 2, | ||
+ | "DurationInNight": 4, | ||
+ | "City": 62, | ||
+ | "Country": 1, | ||
+ | "Attributes": 0, | ||
+ | "IsRemovable": false, | ||
+ | "Type": 1, | ||
+ | "IsHooded": false, | ||
+ | "IsNotCalculated": false, | ||
+ | "BeginDateTimeString": "2021-10-19T14:59:00", | ||
+ | "EndDateTimeString": "2021-10-23T14:59:00", | ||
+ | "TemplateId": 3, | ||
+ | "Cost": 0, | ||
+ | "ByPax": true, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "Index": 2, | ||
+ | "IsRoute": true, | ||
+ | "ServiceTemplateIndex": 2, | ||
+ | "RemoteId": null, | ||
+ | "IsCommission": true, | ||
+ | "BaseFlightsParams": [ | ||
+ | { | ||
+ | "CityArrival": 62, | ||
+ | "FlightCode": 2111, | ||
+ | "TariffKey": 339, | ||
+ | "PartnerId": 12685 | ||
+ | }, | ||
+ | { | ||
+ | "CityArrival": 312, | ||
+ | "FlightCode": 2080, | ||
+ | "TariffKey": 339, | ||
+ | "PartnerId": 12685 | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "TouristNumbersList": [ | ||
+ | 1, | ||
+ | 2 | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "Service": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 2111, | ||
+ | "SubCode1": 339, | ||
+ | "SubCode2": 312, | ||
+ | "Packet": 1462, | ||
+ | "Partner": 12685, | ||
+ | "Day": 1, | ||
+ | "DurationInNight": 0, | ||
+ | "City": 62, | ||
+ | "Country": 1, | ||
+ | "Attributes": 0, | ||
+ | "IsRemovable": false, | ||
+ | "Type": 1, | ||
+ | "IsHooded": false, | ||
+ | "IsNotCalculated": false, | ||
+ | "BeginDateTimeString": "2021-10-18T17:10:00", | ||
+ | "EndDateTimeString": "2021-10-18T20:20:00", | ||
+ | "TemplateId": 1, | ||
+ | "Cost": 0, | ||
+ | "ByPax": true, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "Index": 0, | ||
+ | "IsRoute": true, | ||
+ | "ServiceTemplateIndex": 0, | ||
+ | "IsCommission": true, | ||
+ | "BaseFlightsParams": [ | ||
+ | { | ||
+ | "CityArrival": 62, | ||
+ | "FlightCode": 2111, | ||
+ | "TariffKey": 339, | ||
+ | "PartnerId": 12685 | ||
+ | }, | ||
+ | { | ||
+ | "CityArrival": 312, | ||
+ | "FlightCode": 2080, | ||
+ | "TariffKey": 339, | ||
+ | "PartnerId": 12685 | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "TouristNumbersList": [ | ||
+ | 1, | ||
+ | 2 | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "Service": { | ||
+ | "ServiceType": 1, | ||
+ | "Code": 2080, | ||
+ | "SubCode1": 339, | ||
+ | "SubCode2": 62, | ||
+ | "Packet": 1462, | ||
+ | "Partner": 12685, | ||
+ | "Day": 2, | ||
+ | "DurationInNight": 0, | ||
+ | "City": 312, | ||
+ | "Country": 460, | ||
+ | "Attributes": 0, | ||
+ | "IsRemovable": false, | ||
+ | "Type": 1, | ||
+ | "IsHooded": false, | ||
+ | "IsNotCalculated": false, | ||
+ | "BeginDateTimeString": "2021-10-19T09:59:00", | ||
+ | "EndDateTimeString": "2021-10-19T12:59:00", | ||
+ | "TemplateId": 2, | ||
+ | "Cost": 0, | ||
+ | "ByPax": true, | ||
+ | "QuotaStatus": { | ||
+ | "PlacesStatus": 4, | ||
+ | "FreePlaces": 0, | ||
+ | "IsFewPlaces": false | ||
+ | }, | ||
+ | "Index": 1, | ||
+ | "IsRoute": true, | ||
+ | "ServiceTemplateIndex": 1, | ||
+ | "IsCommission": true, | ||
+ | "BaseFlightsParams": [ | ||
+ | { | ||
+ | "CityArrival": 62, | ||
+ | "FlightCode": 2111, | ||
+ | "TariffKey": 339, | ||
+ | "PartnerId": 12685 | ||
+ | }, | ||
+ | { | ||
+ | "CityArrival": 312, | ||
+ | "FlightCode": 2080, | ||
+ | "TariffKey": 339, | ||
+ | "PartnerId": 12685 | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "TouristNumbersList": [ | ||
+ | 1, | ||
+ | 2 | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | "Tourists": [ | ||
+ | { | ||
+ | "IsMain": true, | ||
+ | "Number": 1, | ||
+ | "AgeType": 0, | ||
+ | "MaleFemaleSex": 0, | ||
+ | "FirstName": "ETYETY", | ||
+ | "LastName": "REYERYETY", | ||
+ | "Patronymic": "", | ||
+ | "FirstNameRus": "ETYETY", | ||
+ | "LastNameRus": "REYERYETY", | ||
+ | "PatronymicRus": "", | ||
+ | "InternationalPassportSeries": "", | ||
+ | "InternationalPassportNumber": "", | ||
+ | "InternationalPassportDateOfIssue": "", | ||
+ | "InternationalPassportDateOfIssueString": "", | ||
+ | "InternationalPassportDateOfExpiry": "", | ||
+ | "InternationalPassportDateOfExpiryString": "", | ||
+ | "internationalPassportByWhom": "", | ||
+ | "PassportSeries": "", | ||
+ | "PassportNumber": "", | ||
+ | "PassportDateOfIssue": "", | ||
+ | "PassportDateOfIssueString": "", | ||
+ | "PassportByWhom": "", | ||
+ | "Citizenship": "", | ||
+ | "Phone": "", | ||
+ | "Email": "", | ||
+ | "BirthDay": "1987-04-09T19:00:00.000Z", | ||
+ | "BirthDayString": "10.04.1987", | ||
+ | "BirthPlace": "", | ||
+ | "CitizenID": "", | ||
+ | "Age": 34 | ||
+ | }, | ||
+ | { | ||
+ | "IsMain": false, | ||
+ | "Number": 2, | ||
+ | "AgeType": 0, | ||
+ | "MaleFemaleSex": 0, | ||
+ | "FirstName": "ETYETY", | ||
+ | "LastName": "ETYTY", | ||
+ | "Patronymic": "", | ||
+ | "FirstNameRus": "ETYETY", | ||
+ | "LastNameRus": "ETYTY", | ||
+ | "PatronymicRus": "", | ||
+ | "InternationalPassportSeries": "", | ||
+ | "InternationalPassportNumber": "", | ||
+ | "InternationalPassportDateOfIssue": "", | ||
+ | "InternationalPassportDateOfIssueString": "", | ||
+ | "InternationalPassportDateOfExpiry": "", | ||
+ | "InternationalPassportDateOfExpiryString": "", | ||
+ | "internationalPassportByWhom": "", | ||
+ | "PassportSeries": "", | ||
+ | "PassportNumber": "", | ||
+ | "PassportDateOfIssue": "", | ||
+ | "PassportDateOfIssueString": "", | ||
+ | "PassportByWhom": "", | ||
+ | "Citizenship": "", | ||
+ | "Phone": "", | ||
+ | "Email": "", | ||
+ | "BirthDay": "1987-04-09T19:00:00.000Z", | ||
+ | "BirthDayString": "10.04.1987", | ||
+ | "BirthPlace": "", | ||
+ | "CitizenID": "", | ||
+ | "Age": 34 | ||
+ | } | ||
+ | ], | ||
+ | "TechnicalProblemsDuringUpdateFlights": false, | ||
+ | "TimeLimit": null, | ||
+ | "CountryKey": 1, | ||
+ | "OwnerId": 106, | ||
+ | "Day": "день", | ||
+ | "Day2": "дня", | ||
+ | "Days": "дней", | ||
+ | "Night": "ночь", | ||
+ | "Night2": "ночи", | ||
+ | "Nights": "ночей", | ||
+ | "adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги", | ||
+ | "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода CheckDoubleDogovor (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "Errors": [], | ||
+ | "Warnings": null, | ||
+ | "States": null, | ||
+ | "IsValid": true | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ==Дополнительные методы== | ||
+ | |||
+ | ===Выгрузка измененных турпрограмм (TourProgram) начиная с релиза 15.3=== | ||
+ | Метод производит выгрузку измененных турпрограмм, в которых были сделаны изменения с указанной даты и времени и повлияли на маршруты в турпрограмме. К таким изменениям относятся изменения страны и города начала поездки, страны и города по туру, типа тура. Изменения цен по услугам не приводят к обновлению турпрограмме, такие турпрограммы в ответе не будут указаны. Турпрограммы, по которым статус ''Доступен для продажи'' сменился на другой за период, указанный в запросе, в ответе тоже не будут указаны. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/TourProgram? | ||
+ | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
+ | ** '''fromDateTime''' – дата (в формате ''dd.MM.yyyy HH:mm:ss''), начиная с которой будут выгружаться изменения, | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''Key''' – ключ программы туров | ||
+ | ** '''Name''' – название программы туров | ||
+ | ** '''UpdateDate''' – дата последнего изменения программы туров (или связанных с ней компонентов) | ||
+ | ** '''routes''' – массив возможных маршрутов в данной программе туров | ||
+ | *** '''departureCountryKey''' – страна начала поездки (для каждой страны начала поездки в одной программе тура будет отдельный маршрут) | ||
+ | *** '''departureCityKey''' – город начала поездки (для каждого города начала поездки в одной программе тура будет отдельный маршрут) | ||
+ | *** '''destinationCountryKeys''' – страны по туру (если в туре несколько услуг класса отель и они в разных странах, то будут возвращаться все страны отелей) | ||
+ | *** '''destinationCityKeys''' – города по туру (если в туре отели в нескольких городах, то будут возвращаться все города отелей) | ||
+ | *** '''tourTypeKeys''' – типы туров для данной программы туров | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода TourProgram | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/TourProgram?fromDateTime=20.08.2022 00:00:00 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода TourProgram (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [{ | ||
+ | "key": 100002353, | ||
+ | "name": "Турпрограмма в Австрию", | ||
+ | "updateDate": "2018-09-25T13:48:13.847", | ||
+ | "routes": [{ | ||
+ | "departureCountryKey": 5, | ||
+ | "departureCityKey": 218, | ||
+ | "destinationCountryKeys": [80], | ||
+ | "destinationCityKeys": [19, | ||
+ | 1051, | ||
+ | 113], | ||
+ | "tourTypeKeys": [52] | ||
+ | }, | ||
+ | { | ||
+ | "departureCountryKey": 5, | ||
+ | "departureCityKey": 766, | ||
+ | "destinationCountryKeys": [80], | ||
+ | "destinationCityKeys": [19, | ||
+ | 1051, | ||
+ | 113], | ||
+ | "tourTypeKeys": [52] | ||
+ | }] | ||
+ | }, | ||
+ | { | ||
+ | "Key": 100004452, | ||
+ | "Name": "Турпрограмма в Англию" | ||
+ | "UpdateDate": "2018-06-30T10:09:35.22" | ||
+ | "routes": [{ | ||
+ | "departureCountryKey": -1, | ||
+ | "departureCityKey": -1, | ||
+ | "destinationCountryKeys": [80], | ||
+ | "destinationCityKeys": [19], | ||
+ | "tourTypeKeys": [52, | ||
+ | 35] | ||
+ | }] | ||
+ | }] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Проверка построения маршрутов турпрограммы (CheckTourProgram)=== | ||
+ | Метод производит построение маршрутов турпрограмм (вызывается из проверки тура). Метод проверяет маршруты по турпрограммам с любым статусом (не только по статусу Доступен для подажи). | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/CheckTourProgram? | ||
+ | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
+ | ** '''tourKey''' – ключ турпрограммы | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''Message''' – сообщение ''Начинаем строить маршрут.'' | ||
+ | ** '''Message''' – сообщение ''Маршрутов по данной программе тура построилось'' – количество | ||
+ | ** '''Message''' – сообщение ''Построено каркасов маршрутов (без конкретных отелей)'' – количество | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода CheckTourProgram | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/CheckTourProgram?tourKey=100007837 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода CheckTourProgram (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [ | ||
+ | { | ||
+ | "Message": "[startingMakingRouteUpper]", | ||
+ | "MessageType": 0 | ||
+ | }, | ||
+ | { | ||
+ | "Message": "[routeCarcassesBuildWithoutSpecificHotelsUpper] - 10", | ||
+ | "MessageType": 1 | ||
+ | }, | ||
+ | { | ||
+ | "Message": "[routesMadeByThisTourProgrammUpper] - 10", | ||
+ | "MessageType": 1 | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Получение разметки формы для новой формы быстрого поиска (GetJavascriptFile)=== | ||
+ | Метод получает разметку формы для новой формы быстрого поиска. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/GetJavascriptFile/Get? | ||
+ | * Принимаемые параметры GET запроса ( '''*''' – обязательный): | ||
+ | ** '''name''' – имя файла | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''полученный файл''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода GetJavascriptFile/Get | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/GetJavascriptFile/Get?name=demoSearch.js | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода GetJavascriptFile/Get (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [ | ||
+ | полученный файл demoSearch.js | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Проверка подключения к внешним системам (GDSCheckConnection)=== | ||
+ | Метод производит проверку подключения к внешней системе. | ||
+ | * Формат запроса: | ||
+ | ** POST .../TourSearchOwin/GDSCheckConnection? | ||
+ | |||
+ | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
+ | ** '''Content-Type *''' – application/json | ||
+ | |||
+ | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
+ | ** '''adapterTypeName''' – адаптер | ||
+ | ** '''id''' – ключ адаптера | ||
+ | ** '''apiAddress''' – api-адрес | ||
+ | ** '''settings''' – набор настроек (у каждого адаптера индивидуальный) | ||
+ | *** '''Key''' – _Login | ||
+ | *** '''Value''' – логин | ||
+ | *** '''Key''' – _Password | ||
+ | *** '''Value''' – пароль | ||
+ | *** '''Key''' – _UserID | ||
+ | *** '''Value''' – ID пользователя | ||
+ | ** '''licenseDateExpiry''' – дата окончания лицензии | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''Errors''' – описание ошибки | ||
+ | ** '''Warnings''' – предупреждение | ||
+ | ** '''States''' – статус | ||
+ | ** '''IsValid''' – результат проверки подключения (true/false) | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода GDSCheckConnection | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:9000/TourSearchOwin/GDSCheckConnection? HTTP/1.1 | ||
+ | Content-Type: application/json | ||
+ | { | ||
+ | "adapterTypeName": "TravelBoxAdapter", | ||
+ | "id": 5565, | ||
+ | "apiAddress": "http://dev24.desertadventur.com/", | ||
+ | "settings": [{ | ||
+ | "Key": "TravelBox_Login", | ||
+ | "Value": "Login" | ||
+ | }, { | ||
+ | "Key": "TravelBox_Password", | ||
+ | "Value": "Password" | ||
+ | }, { | ||
+ | "Key": "TravelBox_UserID", | ||
+ | "Value": "12345" | ||
+ | }, { | ||
+ | "Key": "TravelBox_CompanyCode", | ||
+ | "Value": "DA_UAE" | ||
+ | }, { | ||
+ | "Key": "TravelBox_Division", | ||
+ | "Value": "FIT_UAE" | ||
+ | }, { | ||
+ | "Key": "TravelBox_Department", | ||
+ | "Value": "FIT- Local" | ||
+ | }, { | ||
+ | "Key": "TravelBox_TouroperatorCode", | ||
+ | "Value": "54321" | ||
+ | }, { | ||
+ | "Key": "TravelBox_MaxResponses", | ||
+ | "Value": "200" | ||
+ | }, { | ||
+ | "Key": "TravelBox_AvailRatesOnly", | ||
+ | "Value": "AvailRatesOnly" | ||
+ | }, { | ||
+ | "Key": "TravelBox_CacheTimelife", | ||
+ | "Value": "10" | ||
+ | } | ||
+ | ], | ||
+ | "licenseDateExpiry": "01.01.2022" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода GDSCheckConnection (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [{ | ||
+ | "Errors": [], | ||
+ | "Warnings": null, | ||
+ | "States": null, | ||
+ | "IsValid": true | ||
+ | }] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Подтверждения оплаты полиса в ЕВРОИНС=== | ||
+ | Для подтверждения оплаты метод будет обращаться к внешним службам для подтверждения платежа.<br /> | ||
+ | [[Мастер-Тур(15):Программа туров. Внешние системы. Страховая компания ЕВРОИНС|Страховая компания ЕВРОИНС]] | ||
+ | |||
+ | * Формат запроса: | ||
+ | ** POST .../TourSearchOwin/EuroinsConfirmPay | ||
+ | |||
+ | * Принимаемые параметры headers ( '''*''' – обязательный): | ||
+ | ** '''Content-Type *''' – application/json | ||
+ | |||
+ | * Принимаемые параметры POST запроса ( '''*''' – обязательный): | ||
+ | ** '''policyId *''' – ID полиса | ||
+ | ** '''code *''' – код партнера | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''success: true''' – подтверждено (''код 200'') | ||
+ | ** '''error''' – описание ошибки (''код 400'') | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода EuroinsConfirmPay | ||
+ | |||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST localhost:9000/TourSearchOwin/EuroinsConfirmPay | ||
+ | </syntaxhighlight> | ||
+ | Content-Type: application/json | ||
+ | |||
+ | { | ||
+ | "policyId": "134574", | ||
+ | "code": "oqxKQXlOInSJqLl" | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода EuroinsConfirmPay (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | Код 200: | ||
+ | { | ||
+ | "success": true | ||
+ | } | ||
+ | |||
+ | Код 400: | ||
+ | { | ||
+ | "error": "Не удалось выполнить действие" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ==Приложения== | ||
+ | |||
+ | ===Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)=== | ||
+ | |||
+ | Параметры ''ServiceType'' – это ключ типа услуги, ''Сode'' – ключ услуги, ''SubCode1'' и ''SubCode2'', возвращаемые при API-запросах – это параметры дополнительных описаний двух типов, индивидуальных для каждой услуги. | ||
+ | |||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" width="1500px" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |||
+ | ! width="9%" | Ключ типа услуги (ServiceType) | ||
+ | ! width="13%" | Наименование типа услуги | ||
+ | ! width="13%" | Ключ услуги (Code) | ||
+ | ! width="13%" | Доп. описание 1 (SubCode1) | ||
+ | ! width="13%" | Таблица БД со значениями SubCode1 | ||
+ | ! width="13%" | Доп. описание 2 (SubCode2) | ||
+ | ! width="13%" | Таблица БД со значениями SubCode2 | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 1 | ||
+ | | Авиаперелет | ||
+ | | индивидуальный ключ услуги | ||
+ | | Тариф | ||
+ | | AirService | ||
+ | | отсутствует | ||
+ | | отсутствует | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 2 | ||
+ | | Трансфер | ||
+ | | индивидуальный ключ услуги | ||
+ | | Вид транспорта | ||
+ | | Transport | ||
+ | | отсутствует | ||
+ | | отсутствует | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 3 | ||
+ | | Отель/Круиз | ||
+ | | индивидуальный ключ услуги | ||
+ | | Вид проживания (Тип номера + Категория номера + Тип размещения) | ||
+ | | HotelRooms (Rooms + RoomCategory + Accmdmentype) | ||
+ | | Тип питания | ||
+ | | Pansion | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 4 | ||
+ | | Экскурсия | ||
+ | | индивидуальный ключ услуги | ||
+ | | Вид транспорта | ||
+ | | Transport | ||
+ | | отсутствует | ||
+ | | отсутствует | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 5 | ||
+ | | Виза | ||
+ | | индивидуальный ключ услуги | ||
+ | | отсутствует | ||
+ | | отсутствует | ||
+ | | отсутствует | ||
+ | | отсутствует | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 6 | ||
+ | | Страховка | ||
+ | | индивидуальный ключ услуги | ||
+ | | Доп. описание 1 | ||
+ | | AddDescript1 | ||
+ | | Доп. описание 2 | ||
+ | | AddDescript2 | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 8 | ||
+ | | Доп услуга в отеле/круизе | ||
+ | | индивидуальный ключ услуги | ||
+ | | Вид проживания (Тип номера + Категория номера + Тип размещения) | ||
+ | | HotelRooms (Rooms + RoomCategory + Accmdmentype) | ||
+ | | Доп. описание 2 | ||
+ | | AddDescript2 | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 14 | ||
+ | | Автобусный переезд | ||
+ | | индивидуальный ключ услуги | ||
+ | | Место посадки | ||
+ | | BusTransferPoints | ||
+ | | Вид транспорта | ||
+ | | Transport | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 99 | ||
+ | | Любая пользовательская услуга | ||
+ | | индивидуальный ключ услуги | ||
+ | | Доп. описание 1 | ||
+ | | AddDescript1 | ||
+ | | Доп. описание 2 | ||
+ | | AddDescript2 | ||
+ | |||
+ | |} | ||
[[Category:Мастер-Тур(15)]] | [[Category:Мастер-Тур(15)]] |
Текущая версия на 17:07, 1 октября 2024
Версия статьи от 1-10-2024.
Поддерживаемые версии ПК «Мастер-Тур»: |
Содержание
- 1 Введение
- 2 Установка
- 3 Список методов
- 3.1 Авторизация (Token)
- 3.2 Выгрузка настроек службы поиска (Settings)
- 3.3 Выгрузка списка валют в онлайне (Currency)
- 3.4 Выгрузка курсов валют (CurrencyRates) начиная с 15.7
- 3.5 Выгрузка списка всех валют (getAllCurrencies)
- 3.6 Получение сконвертированных цен (convertFilterPrice)
- 3.7 Выгрузка квотируемых услуг системы (QuotedServices)
- 3.8 Выгрузка актуальных городов отправления (departureCities)
- 3.9 Выгрузка актуальных стран (Destination)
- 3.10 Выгрузка актуальных городов (ActualizeCities)
- 3.11 Выгрузка актуальных типов туров (ActualizeTourType)
- 3.12 Выгрузка актуальных дат заездов (TourDate)
- 3.13 Выгрузка актуальных продолжительностей (Duration)
- 3.14 Поиск туров (Tour)
- 3.15 Выгрузка транспортного плана (TransportPlan) до релиза 15.7 включительно
- 3.16 Выгрузка транспортного плана (TransportPlan) начиная с релиза 15.8
- 3.17 Получение дат заезда по турпрограмме
- 3.18 Получение плана транспортного средства (TransportPlan) по ключу турпрограммы и дате услуги
- 3.19 Выгрузка первоначального варианта в корзину для бронирования (Tour)
- 3.20 Выгрузка настройки отображения полей по туристам (TouristDataSettings)
- 3.21 Выгрузка услуг доплат к авиаперелетам (GetFlightsAdditionalServices)
- 3.22 Выгрузка услуг доплат к отелям (GetHotelsAdditionalServices)
- 3.23 Расчет индивидуальных услуг (CalculateIndividualServiceCosts)
- 3.24 Поиск рейсов из внешней системы (GetGDSFlights)
- 3.25 Выгрузка информации от внешнего поставщика по перелету (RebuildFlights)
- 3.26 Получение семейств тарифов авиаперелетов из внешней системы (GetGDSFlightFareFamilies)
- 3.27 Загрузка филиалов (Branches) начиная с релиза 15.3
- 3.28 Загрузка ведущих менеджеров (Users) начиная с релиза 15.3
- 3.29 Расчет путевки (CalculateReservation)
- 3.30 Бронирование путевки (CreateReservation)
- 3.31 Выгрузка информации о путевке (GetReservation)
- 3.32 Выгрузка информации о ценовых блоках (CostOfferDescriptions)
- 3.33 Получение капчи (GetCaptcha)
- 3.34 Проверка капчи (CheckCaptcha)
- 3.35 Проверка e-mail (CheckMail)
- 3.36 Проверка туриста (checkTourist)
- 3.37 Список значений параметра гражданства (Citizenships)
- 3.38 Выгрузка постоянного клиента (Client)
- 3.39 Выгрузка описаний ценовых блоков (CostOfferDescriptions)
- 3.40 Выгрузка описания по стране (CountryInfo)
- 3.41 Выгрузка картинки по отелю (HotelImages)
- 3.42 Выгрузка картинки по туру (TourImages)
- 3.43 Регистрация частного лица (PersonalRegistration)
- 3.44 Выгрузка плана рассадки (TransportPlan)
- 3.45 Выгрузка списка всех стран (Countries)
- 3.46 Выгрузка списка всех городов (Cities)
- 3.47 Выгрузка городов отправления в оформлении клиентов (RegistrationClientsDepartureCities)
- 3.48 Выгрузка стран в оформлении клиентов (RegistrationClientsDestination)
- 3.49 Выгрузка турпрограмм в оформлении клиентов (RegistrationClientsTourPrograms)
- 3.50 Выгрузка дат заезда в оформлении клиентов (RegistrationClientsTourDate)
- 3.51 Поиск туров в оформлении клиентов (Search)
- 3.52 Поиск туров онлайн (TourForWeb)
- 3.53 Проверка дублирующих туристов (CheckDoubleDogovor)
- 4 Дополнительные методы
- 4.1 Выгрузка измененных турпрограмм (TourProgram) начиная с релиза 15.3
- 4.2 Проверка построения маршрутов турпрограммы (CheckTourProgram)
- 4.3 Получение разметки формы для новой формы быстрого поиска (GetJavascriptFile)
- 4.4 Проверка подключения к внешним системам (GDSCheckConnection)
- 4.5 Подтверждения оплаты полиса в ЕВРОИНС
- 5 Приложения
Введение
Данный web-сервис служит для разработки собственного сайта туроператору на основе API.
Установка
Для работы с web-сервисом необходимо на отдающей стороне установить службу поиска.
После установки web-сервис будет доступен по адресу http://значение настройки "serviceAddress" в TourSearchOwin/"название метода" (пример: http://localhost:9000/TourSearchOwin/Settings)
Список методов
Последовательность вызова методов сервиса
Авторизация (Token)
Метод производит получение авторизационного токена (описание стандарта).
- Формат запроса:
- POST .../TourSearchOwin/Token?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/x-www-form-urlencoded
- Принимаемые параметры POST запроса ( * – обязательный):
- grant_type * – текст password
- username * – логин представителя партнера или частного лица
- password * – пароль представителя партнера или частного лица
- Возвращаемый результат:
- access_token – токен
- token_type – тип токена
- expires_in – код
- userKey – ключ пользователя
- userType – тип пользователя (0 – представитель партнера, 1 – частное лицо)
- .issued – дата получения
- .expires – дата действия до
Вызов метода Token POST http://localhost:9000/TourSearchOwin/Token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=test&password=1
Возвращаемый результат метода Token (в формате JSON) {
"access_token": "AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR-
GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4-
9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9-
CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA",",
"token_type": "bearer",
"expires_in": 1209599,
"userKey": "333",
"userType": "0",
".issued": "Thu, 05 Apr 2018 12:05:31 GMT",
".expires": "Thu, 19 Apr 2018 12:05:31 GMT"
}
|
Выгрузка настроек службы поиска (Settings)
Метод производит выгрузку настроек службы поиска.
- Формат запроса:
- GET .../TourSearchOwin/Settings?
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- ChildAgesSetting – регулируется настройкой максимальный возраст ребенка (массив возрастов, при которых турист будет считаться ребенком
- DurationSetting – регулируется настройкой максимальная продолжительность тура (массив продолжительностей, доступных в фильтрах для поиска)
- RoundServiceSetting – признак округления цены (количество знаков после запятой)
- CacheReady – статус готовности службы поиска к работе (true/false)
- EnableFiterTree – устаревшая настройка, будет убрана (по умолчанию всегда false)
- EnableActualFilters – включены ли актуальные фильтры (true/false)
- CorrectLicense – проверка лицензии (true/false)
- CorrectLicenseMessage – сообщение, если проверка лицензии не прошла
- IsCorrectUser – проверка наличия пользователя в таблице Userlist, под которым запущена служба поиска (true/false)
- IsShowCitizenAuthTourist – настройка запрашивать гражданство при регистрации частного лица (true/false)
- IsShowFewCountPlaces – настройка отображения числового значения оставшихся мест, когда достигнуто значение «Мало» (true/false)
- IsShowBusTransferPlaces – использовать фильтр наличие мест на автобусный переезд в поиске (true/false)
- UseBusSeatChecks – план рассадки автобусного переезда (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой)
- UseTransferSeatChecks – план рассадки трансфера (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой)
- IsShowFiltersByCity – отображать фильтр по городам на главной странице поиска (true/false)
- CheckRealCourses – включена ли проверка курсов реальных валют при поиске (true/false)
- CommonImagesFolderPath – путь к папке для хранения изображений
- UseApplyFiltersButton – отображать кнопку «Применить фильтры» (true/false)
- AutoSearchFiltersTimeout – задержка между выбором дополнительных фильтров и выводом результатов (в секундах)
- UseFastSearchAlgoritm – использовать быстрый алгоритм поиска (true/false)
- MaxSearchDatesCountClient – максимальное количество дат, которое будет обрабатываться в клиенте поиска
- MaxDurationsCountClient – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
- UseHotelCategoryGlobalCodeInDopFilter – использовать глобальные коды категорий отелей в поиске
- UsePansionGlobalCodeInDopFilter – использовать глобальные коды питаний в поиске
- CheckTouristDataInBasket – проверять корректность данных туристов
- SimpleRegistration – упрощенная регистрация частного лица
- ShowHotelImagesInSearch – показывать описание и изображения отелей в поиске
- CacheReadyMessage – сообщение о готовности службы поиска или службы расчета актуальных фильтров. Варианты возвращаемых значений:
- <add key="enableActualFilters" value="true" /> - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован"
- <add key="enableActualFilters" value="false" /> - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован".
Вызов метода Settings GET http://localhost:9000/TourSearchOwin/Settings
Возвращаемый результат метода Settings (в формате JSON) {
"ChildAgesSetting": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16
],
"DurationSetting": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20
],
"RoundServiceSetting": 2,
"CacheReady": true,
"EnableFiterTree": false,
"EnableActualFilters": true,
"CorrectLicense": true,
"CorrectLicenseMessage": "0deb1f882da1ec6301c961780507a180",
"IsCorrectUser": true,
"IsShowCitizenAuthTourist": true,
"IsShowFewCountPlaces": true,
"IsShowBusTransferPlaces": true,
"UseBusSeatChecks": 1,
"UseTransferSeatChecks": 2,
"IsShowFiltersByCity": true,
"CheckRealCourses": true,
"CommonImagesFolderPath": "\\\\server\\Icons",
"UseApplyFiltersButton": false,
"AutoSearchFiltersTimeout": 1,
"UseFastSearchAlgoritm": true,
"MaxSearchDatesCountClient": 10,
"MaxDurationsCountClient": 14
"UseHotelCategoryGlobalCodeInDopFilter": false
"UsePansionGlobalCodeInDopFilter": false
"CheckTouristDataInBasket": true
"SimpleRegistration": false
"ShowHotelImagesInSearch": true
"CacheReadyMessage": "Кеш инициализирован"
}
|
Выгрузка списка валют в онлайне (Currency)
Метод возвращает список используемых валют.
- Формат запроса:
- GET .../TourSearchOwin/Currency
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Code – код валюты
- Name – наименование валюты
- IsMain – признак валюты «Главная»
- IsNational – признак валюты «Национальная»
- IsoCode – ISO код валюты
- IsShowInSearch – признак показывать ли валюту в поиске
- Symbol – символ валюты (обрабатывается с 15.7)
- Key – идентификатор валюты
Вызов метода Currency GET http://localhost:9000/TourSearchOwin/Currency
Возвращаемый результат метода Currency (в формате JSON) [
{
"Code": "EU",
"Name": "Euro",
"IsMain": false,
"IsNational": false,
"IsoCode": "EUR",
"IsShowInSearch": true,
"Symbol": "€",
"Key": 2
},
{
"Code": "рб",
"Name": "Рубль",
"IsMain": false,
"IsNational": true,
"IsoCode": "RUR",
"IsShowInSearch": true,
"Symbol": "₽",
"Key": 14
},
{
"Code": "$",
"Name": "US Dollar",
"IsMain": true,
"IsNational": false,
"IsoCode": "USD",
"IsShowInSearch": true,
"Symbol": "$",
"Key": 1
}
]
|
Выгрузка курсов валют (CurrencyRates) начиная с 15.7
Полный аналог метода Выгрузка курсов валют (GetCurrencyRates)
Метод возвращает список курсов валют, актуальных на дату запроса. Курсы отображаются только для тех валют, которые отмечены в справочнике признаком Отображать в онлайне
- Формат запроса:
- GET .../TourSearchOwin/CurrencyRates
- Принимаемые параметры:
- dateFrom – начальная дата, от которой вывести список курсов валют, в формате DD.MM.YYYY, не обязательный параметр
- dateTo – конечная дата, до которой вывести список курсов валют, в формате DD.MM.YYYY, не обязательный параметр
- Возвращаемый результат:
- baseCurrencyId – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке basketCurrency в конфигурационном файле (обрабатывается с релиза 15.6)
- currencyId – идентификатор валюты, курс которой приводится
- rate – курс валюты (отношение currencyId к baseCurrencyId)
- date – дата, на которую был зарегистрирован выводимый курс валюты
Вызов метода CurrencyRates http://localhost:9000/TourSearchOwin/CurrencyRates?dateFrom=18.09.2024&dateTo=19.09.2024
Возвращаемый результат метода CurrencyRates (в формате JSON) [
{
"BaseCurrencyId": 14,
"CurrencyId": 1,
"Rate": 91.429200,
"Date": "18.09.2024"
},
{
"BaseCurrencyId": 14,
"CurrencyId": 2,
"Rate": 101.505700,
"Date": "18.09.2024"
},
{
"BaseCurrencyId": 14,
"CurrencyId": 1,
"Rate": 91.671200,
"Date": "19.09.2024"
},
{
"BaseCurrencyId": 14,
"CurrencyId": 2,
"Rate": 102.039000,
"Date": "19.09.2024"
}
]
|
Выгрузка списка всех валют (getAllCurrencies)
Метод возвращает список всех валют.
- Формат запроса:
- GET .../TourSearchOwin/AllCurencies/getAllCurrencies
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Code – код валюты
- Name – наименование валюты
- IsMain – признак валюты «Главная»
- IsNational – признак валюты «Национальная»
- IsoCode – ISO код валюты
- IsShowInSearch – признак показывать ли валюту в поиске
- Symbol – символ валюты (обрабатывается с 15.7)
- Key – идентификатор валюты
Вызов метода getAllCurrencies GET http://localhost:9000/TourSearchOwin/AllCurencies/getAllCurrencies
Возвращаемый результат метода getAllCurrencies (в формате JSON) [
{
"Code": "EU",
"Name": "Euro",
"IsMain": false,
"IsNational": false,
"IsoCode": "EUR",
"IsShowInSearch": true,
"Symbol": "€",
"Key": 2
},
{
"Code": "рб",
"Name": "Рубль",
"IsMain": false,
"IsNational": true,
"IsoCode": "RUR",
"IsShowInSearch": true,
"Symbol": "₽",
"Key": 14
},
{
"Code": "$",
"Name": "US Dollar",
"IsMain": true,
"IsNational": false,
"IsoCode": "USD",
"IsShowInSearch": true,
"Symbol": "$",
"Key": 1
},
{
"Code": "гр",
"Name": "Гривна",
"IsMain": false,
"IsNational": false,
"IsoCode": "UAH",
"IsShowInSearch": true,
"Symbol": "₴",
"Key": 6
}
]
|
Получение сконвертированных цен (convertFilterPrice)
Метод возвращает сконвертированные цен для допфильтра Цена (используется в canary)
- Формат запроса:
- GET .../TourSearchOwin/AllCurencies/convertFilterPrice
- Принимаемые параметры ( * – обязательный):
- SourceRateKey * – ключ исходной валюты конвертации
- TargetRateKey * – ключ валюты, в которую будет произведена конвертация
- MinPrice * – значение минимальной цены, которое будет участвовать в конвертации
- MaxPrice * – значение максимальной цены, которое будет участвовать в конвертации
- Возвращаемый результат:
- m_Item1 – сконвертированная минимальная цена
- m_Item12 – сконвертированная максимальная цена
Вызов метода convertFilterPrice GET http://localhost:9000/TourSearchOwin/AllCurencies/convertFilterPrice?SourceRateKey=2&TargetRateKey=1&MinPrice=10&MaxPrice=200
Возвращаемый результат метода convertFilterPrice (в формате JSON) {
"m_Item1": 12.035142616440004814057046576,
"m_Item2": 240.70285232880009628114093152
}
|
Выгрузка квотируемых услуг системы (QuotedServices)
Метод производит выгрузку услуг с признаком «Квотируемая»
- Формат запроса:
- GET .../TourSearchOwin/QuotedServices
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Key – идентификатор услуги
- Code – код услуги
- Name – наименование услуги (русский)
- NameLat – наименование услуги (английский)
- IsDuration – наличие продолжительности у услуги
- IsCity – наличие города у услуги
- IsSubCode1 – признак наличия SubCode1 у услуги
- IsSubCode2 – признак наличия SubCode2 у услуги
- Quoted – признак квотируемости услуги
- CheckGeoPoint – наличие геоточек у услуги
- IsRoute – признак маршрутной услуги
- IsPartnerBasedOn – признак сопоставления партнера услуги в зависимости от отеля
- Control – идентификатор статуса услуги
Вызов метода QuotedServices GET http://localhost:9000/TourSearchOwin/QuotedServices
Возвращаемый результат метода QuotedServices (в формате JSON) [
{
"Key": 1,
"Code": "А_П",
"Name": "Авиаперелет",
"NameLat": "Flight",
"IsDuration": false,
"IsCity": true,
"IsSubCode1": true,
"IsSubCode2": false,
"Quoted": true,
"CheckGeoPoint": true,
"IsRoute": true,
"IsPartnerBasedOn": false,
"Control": 1
},
{
"Key": 3,
"Code": "HOTEL",
"Name": "Отель/Круиз",
"NameLat": "Hotel/Cruise",
"IsDuration": true,
"IsCity": true,
"IsSubCode1": true,
"IsSubCode2": true,
"Quoted": true,
"CheckGeoPoint": true,
"IsRoute": true,
"IsPartnerBasedOn": false,
"Control": 1
}
]
|
Выгрузка актуальных городов отправления (departureCities)
Метод производит выгрузку всех доступных городов отправления для поискового запроса.
- Формат запроса:
- GET .../TourSearchOwin/departureCities?
- Принимаемые параметры:
- нет принимаемых параметров
- Возвращаемый результат:
- Key – идентификатор города
- Name – название города
Вызов метода departureCities GET http://localhost:9000/TourSearchOwin/departureCities
Возвращаемый результат метода departureCities (в формате JSON) [
{
"Key": -1,
"Name": "Без перелета"
},
{
"Key": 312,
"Name": "Астрахань"
},
{
"Key": 1,
"Name": "Москва"
}
]
|
Выгрузка актуальных стран (Destination)
Метод производит выгрузку всех доступных направлений туроператора.
- Формат запроса:
- GET .../TourSearchOwin/Destination?
- Принимаемые параметры ( * – обязательный):
- departureCities * – идентификатор города(ов) отправления (из контроллера .../TourSearchOwin/departureCities?)
- type – настройка easySearchFilter (0/не указано - настройка выключена, 1 - настройка включена)
- term – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Name – название страны
- Key – идентификатор страны
- DestinationType – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
- IsExist – не используется
- Data – массив данных для контекстного поиска
- CityKey – код города
- CityName – Название
- HotelKey – код отеля
- HotelName – название отеля
- ResortKey – код курорта
- ResortName – название курорта
Вызов метода Destination GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1
Возвращаемый результат метода Destination (в формате JSON) [
{
"Data": null,
"DestinationType": 1,
"IsExist": false,
"Key": 90,
"Name": "Австрия"
},
{
"Data": null,
"DestinationType": 1,
"IsExist": false,
"Key": 53,
"Name": "Тайланд"
},
{
"Data": null,
"DestinationType": 1,
"IsExist": false,
"Key": 460,
"Name": "Россия"
}
]
GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1&type=1
Возвращаемый результат метода Destination (в формате JSON) с включенной настройкой easySearchFilter [
{
"Name": "Австрия",
"Key": 90,
"DestinationType": 1,
"IsExist": false,
"Data":
[
{
"CityKey": 35,
"CityName": "Вена",
"HotelKey": 178,
"HotelName": "Ananas, 5+++*",
"ResortKey": 232,
"ResortName": "Малина"
},
{
"CityKey": 35,
"CityName": "Вена",
"HotelKey": 20748,
"HotelName": "Dev, 1-4*Boutique",
"ResortKey": 0,
"ResortName": ""
},
],
}
{
"Name": "Тайланд",
"Key": 53,
"DestinationType": 1,
"IsExist": false,
"Data":
[
{
"CityKey": 415,
"CityName": "Пхукет",
"HotelKey": 5263,
"HotelName": "7Q Hotel, HV",
"ResortKey": 123,
"ResortName": "Пхукет"
}
],
},
{
"Name": "Россия",
"Key": 460,
"DestinationType": 1,
"IsExist": false,
"Data":
[
{
"CityKey": 295,
"CityName": "Санкт-Петербург",
"HotelKey": 20365,
"HotelName": "Бристоль, 3*",
"ResortKey": 0,
"ResortName": ""
}
],
},
{
"Name": "ОАЭ",
"Key": 2,
"DestinationType": 1,
"IsExist": false,
"Data":
[
{
"CityKey": 12,
"CityName": "ДУБАЙ",
"HotelKey": 1257,
"HotelName": "Avari, APTH3",
"ResortKey": 0,
"ResortName": ""
},
],
}
]
|
Выгрузка актуальных городов (ActualizeCities)
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.
- Формат запроса:
- GET .../TourSearchOwin/ActualizeCities?
- Принимаемые параметры ( * – обязательный):
- cityKeys * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- term – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Key – идентификатор города
- Name – название города
Вызов метода ActualizeCities GET http://localhost:9000/TourSearchOwin/ActualizeCities?cityKeys=1&Key=90
Возвращаемый результат метода ActualizeCities (в формате JSON) [
{
"Key": -1,
"Name": "Все"
},
{
"Key": 35,
"Name": "Вена"
},
{
"Key": 440,
"Name": "Зельден"
}
]
|
Выгрузка актуальных типов туров (ActualizeTourType)
Метод возвращает список типов туров по определенному городу отправления, стране и городу прибытия.
- Формат запроса:
- GET .../TourSearchOwin/ActualizeTourType?
- Принимаемые параметры ( * – обязательный):
- departureCityKeys * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- Type * – тип результата (всегда возвращается в JSON = 1, в xml = country)
- destinationCity * – идентификатор города(ов) прибытия (полученный из метода .../TourSearchOwin/ActualizeCities?), по умолчанию передается -1, то есть все города в рамках данной страны
- terms – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Key – идентификатор типа тура
- Name – название типа тура
- ParentId – идентификатор группы, к которой относится данный типа тура (если тип тура не относится к группе, то возвращается null)
Вызов метода ActualizeTourType GET http://localhost:9000/TourSearchOwin/ActualizeTourType?departureCityKeys=1&Key=90&Type=1&destinationCity=-1
Возвращаемый результат метода ActualizeTourType (в формате JSON) [
{
"Key": -1,
"Name": "Все",
"ParentId": null
},
{
"Key": 2,
"Name": "Стандартный тур",
"ParentId": null
},
{
"Key": 16,
"Name": "Экскурсионный тур",
"ParentId": 35
}
]
|
Выгрузка актуальных дат заездов (TourDate)
Метод производит выгрузку доступных дат заездов для поискового запроса.
- Формат запроса:
- GET .../TourSearchOwin/TourDate?
- Принимаемые параметры ( * – обязательный):
- departureCity * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- destinationCity * – идентификатор города(ов) прибытия (полученный из метода .../TourSearchOwin/ActualizeCities?), по умолчанию передается -1, то есть все города в рамках данной страны
- Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- Type * – тип результата (всегда возвращается в JSON = 1, в xml = country)
- tourTypes * – идентификатор типа тура (полученный из метода .../TourSearchOwin/ActualizeTourType?), по умолчанию передается -1, то есть все типы тура в рамках данной страны
- Возвращаемый результат:
- массив дат
Вызов метода TourDate GET http://localhost:9000/TourSearchOwin/TourDate?departureCity=1&destinationCity=-1&Key=90&Type=1&tourTypes=-1
Возвращаемый результат метода TourDate (в формате JSON) [
"21.02.2018",
"22.02.2018",
"23.02.2018",
"24.02.2018",
"25.02.2018",
"26.02.2018",
"27.02.2018",
"28.02.2018"
]
|
Выгрузка актуальных продолжительностей (Duration)
Метод производит выгрузку доступных продолжительностей для поискового запроса.
- Формат запроса:
- GET .../TourSearchOwin/Duration?
- Принимаемые параметры ( * – обязательный):
- departureCity * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- destinationCity * – идентификатор города(ов) прибытия (полученный из метода .../TourSearchOwin/ActualizeCities?), по умолчанию передается -1, то есть все города в рамках данной страны
- Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- Type * – тип результата (всегда возвращается в JSON = 1, в xml = country)
- tourDate * – массив дат заезда (полученные из метода .../TourSearchOwin/TourDate?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- tourTypes * – идентификатор типа(ов) тура (полученный из метода .../TourSearchOwin/ActualizeTourType?), по умолчанию передается -1, то есть все типы тура в рамках данной страны
- Возвращаемый результат:
- массив продолжительностей (в днях)
Вызов метода Duration GET http://localhost:9000/TourSearchOwin/Duration?departureCity=1&destinationCity=-1
&Key=90&Type=1&tourDate=25.02.2018&tourDate=26.02.2018&tourTypes=-1
Возвращаемый результат метода Duration (в формате JSON) [
7,
8,
10,
12,
15,
18
]
|
Поиск туров (Tour)
Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод возвращает наиболее дешевые предложения, найденные по предоставленным параметрам и сгруппированные по отелям в порядке возрастания цены.
- Формат запроса:
- GET .../TourSearchOwin/Tour?
- Принимаемые параметры ( * – обязательный):
- DepartureCityKeys * – идентификатор города(ов) отправления (полученный из метода .../TourSearchOwin/departureCities?)
- Dates * – массив дат заезда (полученные из метода .../TourSearchOwin/TourDate?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- Durations * – массив продолжительностей (полученные из метода .../TourSearchOwin/Duration?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
- PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
- isFromBasket * – происходит ли обращение из корзины или из поиска туров (true/false)
- isFillSecondaryFilters – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
- DestinationType * – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
- DestinationKey * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- AdultCount * – количество взрослых
- ChildAges – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- CurrencyName * – код валюты
- AviaQuota * – информация о квотах на авиаперелет (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- HotelQuota * – информация о квотах на отель (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- BusTransferQuota – информация о квотах на автобусный переезд (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- MinPrice * – минимальная цена (по умолчанию не задана, передается NaN)
- MaxPrice – максимальная цена (по умолчанию не передается)
- Groups – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля)
- HotelScheme – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры:
- TemplateId – идентификатор шаблона услуги,
- DurationInNight – продолжительность отеля в ночах,
- Code – ключ отеля,
- PacketKey – ключ пакета,
- PartnerKey – ключ партнера
- GDSProviderId – ключ провайдера из внешней системы
- TotalTourDuration – общая продолжительность тура в днях
- BusTransferPointKeys – данный признак проставляется в true в том случае, когда происходит запрос вариантов проживания (кнопка Варианты) в автобусных переездах
- TourKey – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура
- TourDuration – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях
- TourType – идентификатор типа(ов) тура (полученный из метода .../TourSearchOwin/ActualizeTourType?), по умолчанию передается -1, то есть все типы тура в рамках данной страны. Возможна множественная передача параметров.
- Tour – ключ программы тура (дополнительный фильтр)
- Duration – продолжительность тура (дополнительный фильтр)
- DateTour – дата тура (дополнительный фильтр)
- HotelResort – ключ курорта отеля (дополнительный фильтр)
- HotelCity – ключ города отеля (дополнительный фильтр)
- HotelType – ключ признака отеля (дополнительный фильтр)
- HotelStars – ключ категории отеля (дополнительный фильтр)
- Hotel – ключ отеля (дополнительный фильтр)
- Pansions – ключ питания (дополнительный фильтр)
- Airline – ключ авиакомпании (дополнительный фильтр)
- AirportDeparture – ключ аэропорта вылета (дополнительный фильтр)
- AirportArrival – ключ аэропорта прилета (дополнительный фильтр)
- CityIds – идентификатор города(ов) прибытия (полученный из метода .../TourSearchOwin/ActualizeCities?), по умолчанию передается -1, то есть все города в рамках данной страны. Возможна множественная передача параметров.
- TimeDepartureFrom – время отправления с (по умолчанию возвращается 00:00)
- TimeDepartureTo – время отправления по (по умолчанию возвращается 23:59)
- TimeArrivalFrom – время прибытия с (по умолчанию возвращается 00:00)
- TimeArrivalTo – время прибытия по (по умолчанию возвращается 23:59)
- ArrivalFlightNoTransfer – производить поиск без пересадок в прямом направлении (true/false, по умолчанию false)
- DepartureFlightNoTransfer – производить поиск без пересадок в обратном направлении (true/false, по умолчанию false)
- DepartureFlightNumberTransfer – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3.
- ArrivalFlightNumberTransfer – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3.
- Tariff – ключ класса авиаперелета (дополнительный фильтр)
- CombineAirlines — разрешить комбинировать авиаперелеты (дополнительный фильтр). Параметр применяется только при наличии параметра airline. Обрабатывается начиная с релиза 15.3.
- CombineTariffs — разрешить комбинировать классы перелета (дополнительный фильтр). Параметр применяется только при наличии параметра tariff. Обрабатывается начиная с релиза 15.3.
- FlightCityDeparture – ключ город вылета в параметрах авиаперелета (дополнительный фильтр)
- CityDeparture – ключ города начала поездки (дополнительный фильтр)
- RemoteHotelMode – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4.
- GroupGuid – используется для получения турпрограмм по уникальному ключу из кэша при использовании группировки. Примеры использования. GroupGuid=00000000-0000-0000-0000-000000000000 – при первом запросе от локальной системы. GroupGuid=936DA01F-9ABD-4d9d-80C7-02AF85C822A8 (уникальный ключ) – передается на клиент от первого запроса из внешней системы. С данным уникальным ключом осуществляется второй запрос от внешней системы. Далее происходит получение значений по данному уникальному ключу. Обрабатывается начиная с релиза 15.4.
- IsGroupingTourAlreadyMerge – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. IsGroupingTourAlreadyMerge=false – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. IsGroupingTourAlreadyMerge=true – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4.
- SearchId – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5.
- Возвращаемый результат:
- CheckMessages – сообщения для логики проверки тура (не используется)
- Message – сообщение об ошибке
- Key – код ошибки
- Value – сообщение об ошибке
- Result – результаты поиска
- Key – идентификатов программы тура
- Name – название программы тура
- TourUrl – ссылка на программу тура
- BookingConditions – условия бронирования программы туров
- StartDate – дата начала тура
- Duration – продолжительность тура (в днях)
- DurationInNight – продолжительность проживания (в ночах)
- Types – идентификатор типа туров
- Cost – цена тура
- Rate – код валюты тура
- CityDepature – город отправления
- Key – идентификатор города отправления
- Value – название города отправления
- CountryId – всегда возвращается ключ 0
- Services – услуги в туре
- DepartureCity – город отправления
- Key – идентификатор
- Value – название
- DepartureCountry – страна отправления
- Key – идентификатор
- Value – название
- ArrivalCity – город прибытия
- Key – идентификатор
- Value – название
- ArrivalCountry – страна прибытия
- Key – идентификатор
- Value – название
- DepartureAirport – аэропорт отправления
- Key – идентификатор
- Value – название
- ArrivalAirport – аэропорт прибытия
- Key – идентификатор
- Value – название
- Airline – авиакомпания
- Key – идентификатор
- Value – название
- Aircraft – воздушное судно
- Key – идентификатор
- Value – название
- Flight – рейс
- Key – идентификатор
- Value – название
- DepartureTime – время вылета
- ArrivalTime – время прилета
- EndDateTime – дата и время прилета
- FlightDetails – информация об авиаперелете
- Tariff – информация о тарифе перелета
- Key – идентификатор
- Code – код тарифа
- Name – название тарифа
- Cost – разница в стоимости с самым дешевым вариантом
- QuotaStatus – информация о квоте
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – ключ партнера
- ByPax – цена за человека (true/false)
- Partner – информация о партнере
- Key – идентификатор
- Value – название
- Tariff – информация о тарифе перелета
- FlightSetting – внутренняя информация о перелете из программы туров
- ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
- PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- FlightId – идентификатор перелета (внутренняя информация из программы туров)
- FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- DepartureCity – город отправления
- NotRouteServices – массив коллекций немаршрутных услуг (например если две экскурсии будут являться одним элементом массива, то это будет говорить о том, что эти экскурсии можно будет выбрать в выпадающем списке)
- ServiceName – название типа услуги
- City – объект город
- Key – ключ города
- Value – название города
- Country – объект страна
- Key – ключ страны
- Value – название страны
- Code – объект код услуги
- Key – ключ услуги
- Value – название услуги
- ByScheduler – флаг услуга по расписанию или нет
- Details – объект детализация услуги
- SubCode1 – объект доп. описание 1
- Key – ключ доп. описания 1
- Value – название доп. описания 1
- SubCode2 – объект доп. описание 2
- Key – ключ доп. описания 2
- Value – название доп. описания 2
- Date – дата услуги
- IsShowTransportPlan – признак показывать ли план рассадки (для автобусов)
- Cost – цена
- QuotaStatus – объект информация по квотам
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – идентификатор партнера
- ByPax – признак цены за человека
- Partner – объект партнер (не заполняется)
- Key – ключ (не заполняется)
- Value – название (не заполняется)
- SubCode1 – объект доп. описание 1
- ParentId – идентификатор родительской услуги (для вложенных услуг)
- PartnerBasedOnServiceTemplateId – ключ шаблона услуги, по которой приоритетно выбирается партнер текущей услуги
- Id – идентификатор услуги
- SvKey – ключ типа услуги
- IsSubCode1 – наличие доп. описания 1
- IsSubCode2 – наличие доп. описания 2
- IsPartnerBasedOn – услуга с подбором приоритетного поставщика услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- EndDateTime – дата окончания услуги
- IsHooded – скрытая ли услуга
- IsDeleted – удаляемая ли услуга
- IsNotCalculate – не рассчитываемая ли услуга
- PacketId – пакет услуги
- Index – индекс услуги
- MinCostServicesComposition – массив состав услуг минимальной цены
- Key – ключ
- TemplateId – идентификатор шаблона
- PatternId – идентификатор вкладки
- SettingId – идентификатор услуги
- Value – значение
- ServiceType – тип услуги
- Code – ключ услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- PacketId – пакет услуги
- PartnerId – партнер услуги
- CountryId – страна услуги
- CityId – город услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- COAndSpecialsInfo – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков
- AppliedCostOffersKeys – коллекция идентификаторов всех применённых ценовых блоков к одной цене
- AppliedSpeciasInfo – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция
- SpecialKey – ключ акции
- SpecialName – название акции
- SpecialType – тип акции
- NewPrice – цена после применения акции
- OldPrice – цена до применения акции
- ShowOnline – нужно ли показывать акцию в поиске
- UntilDate – акция действует при совершении покупки до указанной даты
- Condition – json форма условия применения акции. Данное поле включает в себя следующие значения в зависимости от типа акции:
- NightsFrom (для типа PayStay) – ночей от
- NightsTo (для типа PayStay) – ночей до
- NightValue (для типа PayStay) – значение ночи, которое соответствует заданному периоду
- OperationType (для типа PayStay) – тип действия
- SpecialNightType (для типа PayStay) – тип бесплатной ночи
- DurationFrom (для типа KickBack) – ночей от
- DurationTo (для типа KickBack) – ночей до
- Value (для типа KickBack) – значение продолжительности, равное заданному периоду
- OperationType (для типа KickBack) – тип действия
- NightsFrom (для типа EarlyBird) – ночей от
- NightsTo (для типа EarlyBird) – ночей до
- Discount (для типа EarlyBird) – размер скидки
- OperationType (для типа EarlyBird) – тип действия
- COBySubCode – список применённых идентификаторов ценовых блоков по SubCode1 и SubCode2
- SpecialsBySubCode – список применённых акций по SubCode1 и SubCode2
- SubCode1 – объект доп. описание 1
- SubCode2 – объект доп. описание 2
- Key – ключ
- FlightWeight –
- LinkingFlightsRules – объект правил связывания
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- airlines – авиакомпании
- flightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- checkPlusMinus1CharterRule – объект Отличие номера рейса на 1
- FlightSettingPairs – массив чартеров, для которых это правило будет выполняться
- enabled – флаг включен/выключен
- notCombineDifferentTariffGroupRule – объект не комбинировать рейсы от разных классов перелетов
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentPartnerRule – объект не комбинировать рейсы от разных партнеров
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- departureCityEqualsArrivalCityRule – объект Город вылета = городу прилета
- FlightSettingPairs – чартеры, для которых это будет выполняться
- enabled – флаг включен/выключен
- combineOnlySpecificChartersRule – объект не комбинировать различные классы перелетов
- settings – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- RouteSubVariants – подварианты услуг (используется в основном поиске)
- SecondaryFiltersResult – результаты доп. фильтров
- TourTypes – типы тура
- Id – ключ типа тура
- Name – название типа тура
- ParentId – родительский элемент типа тура (если есть)
- Type – тип справочника (используется для внутренних целей)
- TourPrograms – информация по каждой турпрограмме
- Key – ключ турпрограммы
- Name – название турпрограммы
- TourUrl – ссылка на тур
- BookingConditions – условия бронирования
- IsLandOnly – признак только наземное обслуживание
- IsRestrictMultiHotels – ограничивать ли расчёт многоотельных туров категориями отелей
- IsHotelTemplates – есть ли вообще отели в данной турпрограмме
- IsRouteServices – есть ли маршрутные услуги
- MultiHotelDelta – Значение отклонения звездности последующих отелей от первого отеля в многоотельном туре. По умолчанию 0. Звездность определяется числом, заданном в поле порядок при печати.
- Rate – валюта тура
- DateStart – нижняя граница дат заезда по программе тура
- DateEnd – верхняя граница дат заеда по программе тура
- Status – статус турпрограммы
- Key – ключ
- Value – значение
- Templates – шаблоны услуг
- $id – шаблон 1
- $id – шаблон 2
- Types – типы тура
- Id – ключ типа тура
- Name – название типа тура
- ParentId – родительский элемент типа тура (если есть)
- Type – тип справочника (используется для внутренних целей)
- LinkingFlightsRules – правила связывания перелетов
- notCombineDifferentAirlineRule –
- airlines –
- flightSettings –
- enabled –
- checkPlusMinus1CharterRule –
- FlightSettingPairs –
- enabled –
- notCombineDifferentTariffGroupRule –
- FlightSettings –
- enabled –
- notCombineDifferentPartnerRule –
- FlightSettings –
- enabled –
- departureCityEqualsArrivalCityRule –
- FlightSettingPairs –
- enabled –
- combineOnlySpecificChartersRule –
- settings –
- enabled –
- notCombineDifferentAirlineRule –
- Type – тип справочника (используется для внутренних целей)
- TourDurations – продолжительность тура
- TourDates – список дат заездов в турпрограмме
- HotelCities – город в дополнительных фильтрах
- ' –
- HotelResorts – курорты в дополнительных фильтрах
- ' –
- HotelCategories – категории отеля в дополнительных фильтрах
- ' –
- Hotels – отели в дополнительных фильтрах
- ' –
- Pansions – питания в дополнительных фильтрах
- ' –
- Airlines – авиакомпании в дополнительных фильтрах
- ' –
- FlightTariffs – класс перелета в дополнительных фильтрах
- ' –
- DepartureCities – города вылета в дополнительных фильтрах
- ' –
- DepartureAirports – аэропорты вылета в дополнительных фильтрах
- ' –
- ArrivalCities – города прибытия в дополнительных фильтрах
- ' –
- ArrivalAirports – аэропорты прибытия в дополнительных фильтрах
- ' –
- HotelTypes – признаки отелей в дополнительных фильтрах
- ' –
- HotelCities – город в дополнительных фильтрах
- TourTypes – типы тура
Вызов метода Tour GET http://localhost:9000/TourSearchOwin/Tour?DepartureCityKeys=1&Dates=25.02.2018&Durations=4
&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&isFromBasket=false
&isFillSecondaryFilters=true&DestinationType=1&DestinationKey=90&AdultCount=2&ChildAges=2
&ChildAges=2&CurrencyName=EU&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&MinPrice=NaN&TourType=-1
&CityIds=-1&TimeDepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00
&TimeArrivalTo=23%3A59&ArrivalFlightNoTransfer=false&DepartureFlightNoTransfer=false
Возвращаемый результат метода Tour (в формате JSON) {
"CheckMessages": null,
"Message": {
"Key": 0,
"Value": null
},
"Result": [
{
"Key": 100000004,
"Name": "Общая проверка системы",
"TourUrl": "www.megatec.ru",
"BookingConditions": "<p>Условия бронирования тура.<\/p>",
"StartDate": "2018-02-25T00:00:00",
"Duration": 4,
"DurationInNight": 3,
"Types": [2],
"Cost": 260,
"Rate": "EU",
"CityDepature": {
"Key": 1,
"Value": "Москва"
},
"CountryId": 0,
"Services": [
{
"DepartureCity": {
"Key": 1,
"Value": "Москва"
},
"DepartureCountry": {
"Key": 460,
"Value": "Россия"
},
"ArrivalCity": {
"Key": 35,
"Value": "Вена"
},
"ArrivalCountry": {
"Key": 90,
"Value": "Австрия"
},
"DepartureAirport": {
"Key": "SVO4",
"Value": "Шереметьево-24"
},
"ArrivalAirport": {
"Key": "VIE1",
"Value": "Vena1"
},
"Airline": {
"Key": "BA7",
"Value": "BRITISH AIRWAYS"
},
"Aircraft": {
"Key": "319",
"Value": "AIRBUS "
},
"Flight": {
"Key": 882,
"Value": "4444"
},
"DepartureTime": "10:00:00",
"ArrivalTime": "12:00:00",
"EndDateTime": "2018-02-25T12:00:00",
"FlightDetails": [ {
"Tariff": {
"Key": 89,
"Code": "Y",
"Name": "Экономический класс"
},
"Cost": 10,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12668,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"FlightSetting": {
"ServiceId": 3,
"PatternId": 13,
"FlightId": 13
},
"FlightSourceMode": 1,
"Id": 3,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-02-25T10:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 0
},
{
"Hotel": {
"Key": 709,
"Value": "Am Brilliantengrund"
},
"City": {
"Key": 35,
"Value": "Вена"
},
"Stars": {
"Key": -1,
"Value": null
},
"Resort": {
"Key": -1,
"Value": null
},
"ImageURL": "",
"Http": null,
"Description": "",
"Country": {
"Key": 90,
"Value": "Австрия"
},
"HotelDetails": [ {
"HotelRoom": 46463,
"Room": {
"Key": 129,
"Value": "DBL"
},
"RoomCategory": {
"Key": 3493,
"Value": "Cosy"
},
"AccomodationType": {
"Key": 1256,
"Value": "2+1_K",
"AdultCount": 2,
"ChildCount": 1
},
"Pansion": {
"Key": 4,
"Value": "Завтрак"
},
"Cost": 19.47,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12667,
"ByPax": false,
"Partner": {
"Key": 12667,
"Value": "Партнер-покупатель1"
}
}],
"HotelTypes": [ {
"Key": 5,
"Value": "Рекомендуемые"
}],
"Id": 1,
"SvKey": 3,
"IsSubCode1": true,
"IsSubCode2": true,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 3,
"BeginDateTime": "2018-02-25T12:00:00",
"EndDateTime": "2018-02-28T12:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 1
},
{
"DepartureCity": {
"Key": 35,
"Value": "Вена"
},
"DepartureCountry": {
"Key": 90,
"Value": "Австрия"
},
"ArrivalCity": {
"Key": 1,
"Value": "Москва"
},
"ArrivalCountry": {
"Key": 460,
"Value": "Россия"
},
"DepartureAirport": {
"Key": "VIE1",
"Value": "Vena1"
},
"ArrivalAirport": {
"Key": "DME",
"Value": "Домодедово"
},
"Airline": {
"Key": "7U",
"Value": "Авиаэнерго"
},
"Aircraft": {
"Key": "727",
"Value": "Boeing"
},
"Flight": {
"Key": 774,
"Value": "222"
},
"DepartureTime": "00:00:00",
"ArrivalTime": "00:00:00",
"EndDateTime": "2018-02-28T00:00:00",
"FlightDetails": [ {
"Tariff": {
"Key": 89,
"Code": "Y",
"Name": "Экономический класс"
},
"Cost": 0,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 10760,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"FlightSetting": {
"ServiceId": 4,
"PatternId": 5,
"FlightId": 4
},
"FlightSourceMode": 1,
"Id": 4,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 4,
"DurationInNight": 0,
"BeginDateTime": "2018-02-28T00:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 4
}
],
"NotRouteServices": [
[ {
"ServiceName": "страховка",
"City": null,
"Country": {
"Key": 90,
"Value": "Австрия"
},
"Code": {
"Key": 297,
"Value": "Страховка от несчастного случая"
},
"ByScheduler": false,
"Details": [ {
"SubCode1": {
"Key": 18,
"Value": "2"
},
"SubCode2": {
"Key": null,
"Value": ""
},
"Date": null,
"IsShowTransportPlan": true,
"Cost": 16,
"QuotaStatus": {
"PlacesStatus": 1,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12668,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"ParentId": null,
"PartnerBasedOnServiceTemplateId": null,
"Id": 10,
"SvKey": 6,
"IsSubCode1": true,
"IsSubCode2": true,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 3,
"BeginDateTime": "2018-02-25T00:00:00",
"EndDateTime": "2018-02-28T00:00:00",
"IsHooded": false,
"IsDeleted": true,
"IsNotCalculate": true,
"PacketId": 882,
"Index": 2
}],
[ {
"ServiceName": "экскурсия",
"City": {
"Key": 1046,
"Value": "Санто-Доминго"
},
"Country": {
"Key": 90,
"Value": "Австрия"
},
"Code": {
"Key": 743,
"Value": "4"
},
"ByScheduler": false,
"Details": [ {
"SubCode1": {
"Key": 37,
"Value": "Мини-автобус 10 чел."
},
"SubCode2": {
"Key": null,
"Value": ""
},
"Date": null,
"IsShowTransportPlan": false,
"Cost": 85.22,
"QuotaStatus": {
"PlacesStatus": 1,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12667,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"ParentId": null,
"PartnerBasedOnServiceTemplateId": null,
"Id": 7,
"SvKey": 4,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": true,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-02-25T00:00:00",
"EndDateTime": "2018-02-26T00:00:00",
"IsHooded": false,
"IsDeleted": true,
"IsNotCalculate": true,
"PacketId": 779,
"Index": 3
}]
],
"MinCostServicesComposition": [
{
"Key": {
"TemplateId": 3,
"PatternId": 13,
"SettingId": 13
},
"Value": {
"ServiceType": 1,
"Code": 882,
"SubCode1": 89,
"SubCode2": 1,
"PacketId": 779,
"PartnerId": 12668,
"CountryId": 90,
"CityId": 35,
"Day": 1,
"DurationInNight": 0
}
},
{
"Key": {
"TemplateId": 1,
"PatternId": 0,
"SettingId": 0
},
"Value": {
"ServiceType": 3,
"Code": 709,
"SubCode1": 46463,
"SubCode2": 4,
"PacketId": 779,
"PartnerId": 12667,
"CountryId": 90,
"CityId": 35,
"Day": 1,
"DurationInNight": 3
}
},
{
"Key": {
"TemplateId": 4,
"PatternId": 5,
"SettingId": 4
},
"Value": {
"ServiceType": 1,
"Code": 774,
"SubCode1": 89,
"SubCode2": 35,
"PacketId": 779,
"PartnerId": 10760,
"CountryId": 460,
"CityId": 1,
"Day": 4,
"DurationInNight": 0
}
}
],
"FlightWeight": 2,
"LinkingFlightsRules": {
"notCombineDifferentAirlineRule": {
"airlines": ["AY2"],
"flightSettings": [],
"enabled": true
},
"checkPlusMinus1CharterRule": {
"FlightSettingPairs": [],
"enabled": false
},
"notCombineDifferentTariffGroupRule": {
"FlightSettings": [],
"enabled": true
},
"notCombineDifferentPartnerRule": {
"FlightSettings": [],
"enabled": false
},
"departureCityEqualsArrivalCityRule": {
"FlightSettingPairs": [],
"enabled": false
},
"combineOnlySpecificChartersRule": {
"settings": [],
"enabled": false
}
},
"RouteSubVariants": []
}
],
"SecondaryFiltersResult": {
"TourTypes": [ {
"Id": 2,
"Name": "Стандартный тур",
"ParentId": null,
"Type": "TourType"
}],
"TourPrograms": [
{
"Key": 100000004,
"Name": "Общая проверка системы",
"TourUrl": "www.megatec.ru",
"BookingConditions": "<p>Условия бронирования тура.<\/p>",
"IsLandOnly": false,
"IsRestrictMultiHotels": false,
"IsHotelTemplates": true,
"IsRouteServices": true,
"MultiHotelDelta": 0,
"Rate": "EU",
"DateStart": "2018-01-30T00:00:00Z",
"DateEnd": "2018-02-27T00:00:00Z",
"Status": {
"Key": 3,
"Value": "Доступен для продажи"
},
"Templates": [
{"$id": "5"},
{"$id": "6"},
{"$id": "7"},
{"$id": "8"},
{"$id": "9"}
],
"Types": [ {
"Id": 2,
"Name": "Стандартный тур",
"ParentId": null,
"Type": "TourType"
}],
"LinkingFlightsRules": {
"notCombineDifferentAirlineRule": {
"airlines": ["AY2"],
"flightSettings": [],
"enabled": true
},
"checkPlusMinus1CharterRule": {
"FlightSettingPairs": [],
"enabled": false
},
"notCombineDifferentTariffGroupRule": {
"FlightSettings": [],
"enabled": true
},
"notCombineDifferentPartnerRule": {
"FlightSettings": [],
"enabled": false
},
"departureCityEqualsArrivalCityRule": {
"FlightSettingPairs": [],
"enabled": false
},
"combineOnlySpecificChartersRule": {
"settings": [],
"enabled": false
}
},
"Type": "TourProgram"
}
],
"TourDurations": [4],
"TourDates": ["2018-02-25T00:00:00"],
"HotelCities": [ {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
}],
"HotelResorts": [ {
"Key": -1,
"CountryKey": 0,
"Name": "Не указан",
"NameLat": null,
"Type": "Resort"
}],
"HotelCategories": [
{
"Key": 23,
"Name": "1*",
"PrintNumber": 1,
"Type": "HotelCatigory"
},
{
"Key": 56,
"Name": "2*",
"PrintNumber": 2,
"Type": "HotelCatigory"
},
{
"Key": 66,
"Name": "4*Boutique",
"PrintNumber": null,
"Type": "HotelCatigory"
}
],
"Hotels": [
{
"Key": 705,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"City": {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
},
"Resort": null,
"Name": "Continental",
"Category": {
"Key": 23,
"Name": "1*",
"PrintNumber": 1,
"Type": "HotelCatigory"
},
"TimeFrom": null,
"TimeTo": null,
"HTTP": null,
"Stars": "1*",
"TimeIsEmpty": true,
"NameLat": "Continental",
"Address": null,
"IsCruise": 0,
"Phone": null,
"Code": null,
"Type": "Hotel"
},
{
"Key": 178,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"City": {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
},
"Resort": null,
"Name": "Ananas",
"Category": {
"Key": 56,
"Name": "2*",
"PrintNumber": 2,
"Type": "HotelCatigory"
},
"TimeFrom": "1900-01-01T11:00:00",
"TimeTo": "1900-01-01T12:00:00",
"HTTP": "http://booking.panteon.ru/TourPrograms/Home/Tour/?tourKey=100000007",
"Stars": "2*",
"TimeIsEmpty": false,
"NameLat": "Ananas",
"Address": null,
"IsCruise": 0,
"Phone": "(+43/1) 546200",
"Code": null,
"Type": "Hotel"
},
{
"Key": 707,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"City": {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
},
"Resort": null,
"Name": "Beim Theresianum",
"Category": {
"Key": 66,
"Name": "4*Boutique",
"PrintNumber": null,
"Type": "HotelCatigory"
},
"TimeFrom": null,
"TimeTo": null,
"HTTP": null,
"Stars": "4*Boutique",
"TimeIsEmpty": true,
"NameLat": "Beim Theresianum",
"Address": null,
"IsCruise": 0,
"Phone": null,
"Code": null,
"Type": "Hotel"
},
{
"Key": 709,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"City": {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
},
"Resort": null,
"Name": "Am Brilliantengrund",
"Category": null,
"TimeFrom": null,
"TimeTo": null,
"HTTP": null,
"Stars": "",
"TimeIsEmpty": true,
"NameLat": "Am Brilliantengrund",
"Address": null,
"IsCruise": 0,
"Phone": null,
"Code": null,
"Type": "Hotel"
}
],
"Pansions": [
{
"Key": 46,
"Code": "RO",
"Name": "RO",
"NameLat": null,
"Type": "Pansion"
},
{
"Key": 4,
"Code": "BB2",
"Name": "Завтрак",
"NameLat": null,
"Type": "Pansion"
},
{
"Key": 2,
"Code": "HB",
"Name": "Полупансион",
"NameLat": null,
"Type": "Pansion"
}
],
"Airlines": [
{
"Key": 8,
"Code": "BA7",
"Name": "BRITISH AIRWAYS",
"NameLat": "en_BRITISH AIRWAYS",
"Type": "AirLine"
},
{
"Key": 3,
"Code": "7U",
"Name": "Авиаэнерго",
"NameLat": "en_Авиаэнерго",
"Type": "AirLine"
}
],
"FlightTariffs": [ {
"Key": 89,
"Code": "Y",
"Name": "Экономический класс",
"NameLat": "Coach economy",
"Group": null,
"Type": "AirService"
}],
"DepartureCities": [ {
"key": 1,
"Country": {
"key": 460,
"name": "Россия",
"Code": null,
"CitizenName": "Россия",
"CitizenNameLat": "Russia",
"PassportMinDurCheckFrom": 0,
"CheckINN": true,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 0,
"WebImage": "",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Москва",
"Code": "MOW",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
}],
"DepartureAirports": [ {
"Key": 52,
"Code": "SVO4",
"Name": "Шереметьево-24",
"NameLat": "Шереметьево-",
"CityKey": 1,
"CountryKey": 460,
"Letter": "S",
"Site": 0,
"Type": "Airport"
}],
"ArrivalCities": [ {
"key": 1,
"Country": {
"key": 460,
"name": "Россия",
"Code": null,
"CitizenName": "Россия",
"CitizenNameLat": "Russia",
"PassportMinDurCheckFrom": 0,
"CheckINN": true,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 0,
"WebImage": "",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Москва",
"Code": "MOW",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
}],
"ArrivalAirports": [ {
"Key": 12,
"Code": "DME",
"Name": "Домодедово",
"NameLat": "Домодедово",
"CityKey": 1,
"CountryKey": 460,
"Letter": "D",
"Site": 0,
"Type": "Airport"
}],
"HotelTypes": [
{
"key": 94,
"name": "Молодежный отдых",
"Type": "HotelType"
},
{
"key": 5,
"name": "Рекомендуемые",
"Type": "HotelType"
}
]
}
}
|
Выгрузка транспортного плана (TransportPlan) до релиза 15.7 включительно
Метод производит выгрузку транспортного плана.
- Формат запроса:
- GET .../TourSearchOwin/TransportPlan?
- Принимаемые параметры ( * – обязательный):
- code – код услуги
- dateBegin – дата услуги
- serviceType – тип услуги
- transportKey – ключ справочника транспорт
- Возвращаемый результат:
- TransportKey – ключ справочника транспорт
- Title – описание
- AreasCount – количество уровней
- RowsCount – количество рядов
- ColumnsCount – количество мест в ряду
- BusySeats – не используется
- Cells – массив описаний всех мест
- Row – ряд
- Column – место в ряду
- Area – уровень места
- Type – тип (None = 0, Seat = 1, Block = 4, Busy = 5)
- Name – название/номер
- UserSeats – не используется
- BlockSeat – не используется
Вызов метода TransportPlan GET http://localhost:9000/TourSearchOwin/TransportPlan?code=1311&dateBegin=17.04.2018&serviceType=14&transportKey=39
Возвращаемый результат метода TransportPlan (в формате JSON) {
"TransportKey": 39,
"Title": "__",
"AreasCount": 1,
"RowsCount": 12,
"ColumnsCount": 5,
"BusySeats": [],
"Cells": [{
"Row": 5,
"Column": 0,
"Area": 0,
"Type": 4,
"Name": "21"
},
{
"Row": 5,
"Column": 1,
"Area": 0,
"Type": 1,
"Name": "22"
},
{
"Row": 5,
"Column": 2,
"Area": 0,
"Type": 2,
"Name": ""
},
{
"Row": 5,
"Column": 3,
"Area": 0,
"Type": 1,
"Name": "23"
},
{
"Row": 5,
"Column": 4,
"Area": 0,
"Type": 1,
"Name": "24"
}],
"UserSeats": {
},
"BlockSeat": {
}
}
|
Выгрузка транспортного плана (TransportPlan) начиная с релиза 15.8
Метод производит выгрузку транспортного плана.
- Формат запроса:
- 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)
- VehiclePlans – массив параметров зон плана
Вызов метода TransportPlan GET http://localhost:9000/TourSearchOwin/TransportPlan?code=1776&dateBegin=28.03.2022&serviceType=14&transportKey=35
Возвращаемый результат метода TransportPlan (в формате JSON) {
"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": "VehiclePlans"
}
],
"Seats":
[
{
"Key": 332522,
"SeatType": 1,
"Index": 0,
"Number": "1",
"Type": "Seat",
"VPKey": 291,
"Border": "2002"
},
{
"Key": 332523,
"SeatType": 1,
"Index": 1,
"Number": "2",
"Type": "Seat",
"VPKey": 291,
"Border": "2100"
},
{
"Key": 332524,
"SeatType": 2,
"Index": 2,
"Number": "П",
"Type": "Seat",
"VPKey": 291,
"Border": "2201"
},
{
"Key": 332525,
"SeatType": 1,
"Index": 3,
"Number": "3",
"Type": "Seat",
"VPKey": 291,
"Border": "0022"
},
{
"Key": 332526,
"SeatType": 1,
"Index": 4,
"Number": "4",
"Type": "Seat",
"VPKey": 291,
"Border": "0120"
},
{
"Key": 332527,
"SeatType": 1,
"Index": 5,
"Number": "5",
"Type": "Seat",
"VPKey": 291,
"Border": "0221"
},
{
"Key": 332528,
"SeatType": 1,
"Index": 0,
"Number": "1",
"Type": "Seat",
"VPKey": 292,
"Border": "2002"
},
{
"Key": 332529,
"SeatType": 1,
"Index": 1,
"Number": "2",
"Type": "Seat",
"VPKey": 292,
"Border": "2200"
},
{
"Key": 332530,
"SeatType": 1,
"Index": 2,
"Number": "3",
"Type": "Seat",
"VPKey": 292,
"Border": "0012"
},
{
"Key": 332531,
"SeatType": 1,
"Index": 3,
"Number": "4",
"Type": "Seat",
"VPKey": 292,
"Border": "0210"
},
{
"Key": 332532,
"SeatType": 1,
"Index": 4,
"Number": "5",
"Type": "Seat",
"VPKey": 292,
"Border": "1000"
},
{
"Key": 332533,
"SeatType": 1,
"Index": 5,
"Number": "6",
"Type": "Seat",
"VPKey": 292,
"Border": "1000"
}
],
}
|
Получение дат заезда по турпрограмме
Работает начиная с релиза 15.8.
Метод возвращает даты заезда по ключу турпрограммы.
- Формат запроса:
- GET .../TourSearchOwin/TransportPlan?
- Принимаемые параметры ( * – обязательный):
- tourProgramKey * – ключ турпрограммы
- Возвращаемый результат:
- Массив дат заезда по туру
Вызов метода GET http://localhost:9000/TourSearchOwin/TransportPlan?tourProgramKey=100001277
Возвращаемый результат метода (в формате JSON) [
"2022-02-21T00:00:00Z",
"2022-02-22T00:00:00Z",
"2022-02-23T00:00:00Z",
"2022-02-24T00:00:00Z",
"2022-02-25T00:00:00Z",
"2022-02-26T00:00:00Z",
]
|
Получение плана транспортного средства (TransportPlan) по ключу турпрограммы и дате услуги
Работает начиная с релиза 15.8.
Метод возвращает даты заезда по ключу турпрограммы и дате услуги.
- Формат запроса:
- GET .../TourSearchOwin/TransportPlan?
- Принимаемые параметры ( * – обязательный):
- tourProgramKey * – ключ турпрограммы
- dateBegin * – дата услуги
- serviceType * – тип услуги
- Возвращаемый результат:
- plan – массив данных план
- VehiclePlans – массив параметров зон плана
- Key – ключ зоны
- TransportKey – ключ из справочника транспорт
- Row – количество рядов
- AreaNumber – номер уровня
- Name – название уровня
- PlanOrientation – ориентация плана (false - горизонтальная, true - вертикальная)
- Column – количество столбцов
- IsAirCraft – является ли планом самолета (false - нет, true - является)
- Dates – не используется
- 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)
- VehiclePlans – массив параметров зон плана
- routeCity – направление автобусного переезда
Вызов метода GET http://localhost:9000/TourSearchOwin/TransportPlan?tourProgramKey=100001221&dateBegin=06.09.2023&serviceType=14
Возвращаемый результат метода (в формате JSON) {
"plan": {
"VehiclePlans": [
{
"Key": 10,
"TransportKey": 24,
"Row": 10,
"AreaNumber": 1,
"Name": "12345678901234567890",
"PlanOrientation": true,
"Column": 5,
"IsAirCraft": false,
"Dates": null,
"Type": "VehiclePlans"
}
],
"Seats": [
{
"Key": 406,
"SeatType": 1,
"Index": 0,
"Number": "1",
"Type": "Seat",
"VPKey": 10,
"Border": "0000"
},
{
"Key": 407,
"SeatType": 1,
"Index": 1,
"Number": "2",
"Type": "Seat",
"VPKey": 10,
"Border": "0000"
},
{
"Key": 408,
"SeatType": 0,
"Index": 2,
"Number": "",
"Type": "Seat",
"VPKey": 10,
"Border": "0000"
},
{
"Key": 409,
"SeatType": 1,
"Index": 3,
"Number": "3",
"Type": "Seat",
"VPKey": 10,
"Border": "0000"
},
{
"Key": 410,
"SeatType": 1,
"Index": 4,
"Number": "4",
"Type": "Seat",
"VPKey": 10,
"Border": "0000"
},
{
"Key": 411,
"SeatType": 1,
"Index": 5,
"Number": "5",
"Type": "Seat",
"VPKey": 10,
"Border": "0000"
},
{
"Key": 412,
"SeatType": 1,
"Index": 6,
"Number": "6",
"Type": "Seat",
"VPKey": 10,
"Border": "0000"
}
]
},
"routeCity": "Москва - Казань"
}
|
Выгрузка первоначального варианта в корзину для бронирования (Tour)
Метод поиска, который возвращает варианты только по данной турпрограмме и схеме отеля.
- Формат запроса:
- GET .../TourSearchOwin/Tour?
- Принимаемые параметры ( * – обязательный):
- DepartureCityKeys * – идентификатор города отправления (полученный из метода .../TourSearchOwin/departureCities?)
- DestinationType * – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
- DestinationKey * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- Dates * – массив дат заезда (полученные из метода .../TourSearchOwin/TourDate?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- Durations * – массив продолжительностей (полученные из метода .../TourSearchOwin/Duration?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- AdultCount * – количество взрослых
- ChildAges – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- CurrencyName * – код валюты
- HotelQuota * – информация о квотах на отель (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- AviaQuota * – информация о квотах на авиаперелет (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- BusTransferQuota – информация о квотах на автобусный переезд (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- HotelScheme * – объект схемы отеля
- TemplateId – идентификатор шаблона услуги
- DurationInNight – продолжительность отеля в ночах
- Code – ключ отеля
- PacketKey – ключ пакета
- PartnerKey – ключ партнера
- GDSProviderId – ключ провайдера из внешней системы
- TotalTourDuration – общая продолжительность тура в днях, обрабатывается начиная с релиза 15.6, обязательный параметр. Изменения связаны с возможностью работы поиска в ночах проживания в отеле, для перехода в корзину необходимо знать общую продолжительность тура. Взять значение для параметра TotalTourDuration для HotelScheme можно из свойства Duration, пришедшего для данной цены в ответе метода поиск туров (Tour)
- PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
- PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
- isFromBasket * – происходит ли обращение из корзины или из поиска туров (true/false).
- isFillSecondaryFilters – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
- TourKey – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура
- TourDuration – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях
- RemoteHotelMode – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4.
- Возвращаемый результат:
- CheckMessages – сообщения для логики проверки тура (не используется)
- Message – сообщение об ошибке
- Key – код ошибки
- Value – сообщение об ошибке
- Result – результаты поиска
- Key – идентификатор программы тура
- Name – название программы тура
- TourUrl – ссылка на программу тура
- BookingConditions – условия бронирования программы туров
- StartDate – дата начала тура
- Duration – продолжительность тура (в днях)
- DurationInNight – продолжительность проживания (в ночах)
- Types – идентификатор типа туров
- Cost – цена тура
- Rate – код валюты тура
- CityDepature – город отправления
- Key – идентификатор города отправления
- Value – название города отправления
- CountryId – всегда возвращается ключ 0
- Services – услуги в туре
- DepartureCity – город отправления
- Key – идентификатор
- Value – название
- DepartureCountry – страна отправления
- Key – идентификатор
- Value – название
- ArrivalCity – город прибытия
- Key – идентификатор
- Value – название
- ArrivalCountry – страна прибытия
- Key – идентификатор
- Value – название
- DepartureAirport – аэропорт отправления
- Key – идентификатор
- Value – название
- ArrivalAirport – аэропорт прибытия
- Key – идентификатор
- Value – название
- Airline – авиакомпания
- Key – идентификатор
- Value – название
- Aircraft – воздушное судно
- Key – идентификатор
- Value – название
- Flight – рейс
- Key – идентификатор
- Value – название
- DepartureTime – время вылета
- ArrivalTime – время прилета
- EndDateTime – дата и время прилета
- FlightDetails – информация об авиаперелете
- Tariff – информация о тарифе перелета
- Key – идентификатор
- Code – код тарифа
- Name – название тарифа
- Cost – разница в стоимости с самым дешевым вариантом
- QuotaStatus – информация о квоте
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – ключ партнера
- ByPax – цена за человека (true/false)
- Partner – информация о партнере
- Key – идентификатор
- Value – название
- Tariff – информация о тарифе перелета
- FlightSetting – внутренняя информация о перелете из программы туров
- ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
- PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- FlightId – идентификатор перелета (внутренняя информация из программы туров)
- FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- DepartureCity – город отправления
- NotRouteServices – массив коллекций немаршрутных услуг (например если две экскурсии будут являться одним элементом массива, то это будет говорить о том, что эти экскурсии можно будет выбрать в выпадающем списке)
- ServiceName – название типа услуги
- City – объект город
- Key – ключ города
- Value – название города
- Country – объект страна
- Key – ключ страны
- Value – название страны
- Code – объект код услуги
- Key – ключ услуги
- Value – название услуги
- ByScheduler – флаг услуга по расписанию или нет
- Details – объект детализация услуги
- SubCode1 – объект доп. описание 1
- Key – ключ доп. описания 1
- Value – название доп. описания 1
- SubCode2 – объект доп. описание 2
- Key – ключ доп. описания 2
- Value – название доп. описания 2
- Date – дата услуги
- IsShowTransportPlan – признак показывать ли план рассадки (для автобусов)
- Cost – цена
- QuotaStatus – объект информация по квотам
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – идентификатор партнера
- ByPax – признак цены за человека
- Partner – объект партнер (не заполняется)
- Key – ключ (не заполняется)
- Value – название (не заполняется)
- SubCode1 – объект доп. описание 1
- ParentId – идентификатор родительской услуги (для вложенных услуг)
- PartnerBasedOnServiceTemplateId – ключ шаблона услуги, по которой приоритетно выбирается партнер текущей услуги
- Id – идентификатор услуги
- SvKey – ключ типа услуги
- IsSubCode1 – наличие доп. описания 1
- IsSubCode2 – наличие доп. описания 2
- IsPartnerBasedOn – услуга с подбором приоритетного поставщика услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- EndDateTime – дата окончания услуги
- IsHooded – скрытая ли услуга
- IsDeleted – удаляемая ли услуга
- IsNotCalculate – не рассчитываемая ли услуга
- PacketId – пакет услуги
- Index – индекс услуги
- MinCostServicesComposition – массив состав услуг минимальной цены
- Key – ключ
- TemplateId – идентификатор шаблона
- PatternId – идентификатор вкладки
- SettingId – идентификатор услуги
- Value – значение
- ServiceType – тип услуги
- Code – ключ услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- PacketId – пакет услуги
- PartnerId – партнер услуги
- CountryId – страна услуги
- CityId – город услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- COAndSpecialsInfo – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков
- AppliedCostOffersKeys – коллекция идентификаторов всех применённых ценовых блоков к одной цене
- AppliedSpeciasInfo – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция
- SpecialKey – ключ акции
- SpecialName – название акции
- SpecialType – тип акции
- NewPrice – цена после применения акции
- OldPrice – цена до применения акции
- ShowOnline – нужно ли показывать акцию в поиске
- UntilDate – акция действует при совершении покупки до указанной даты
- Condition – json форма условия применения акции. Данное поле включает в себя следующие значения в зависимости от типа акции:
- NightsFrom (для типа PayStay) – ночей от
- NightsTo (для типа PayStay) – ночей до
- NightValue (для типа PayStay) – значение ночи, которое соответствует заданному периоду
- OperationType (для типа PayStay) – тип действия
- SpecialNightType (для типа PayStay) – тип бесплатной ночи
- DurationFrom (для типа KickBack) – ночей от
- DurationTo (для типа KickBack) – ночей до
- Value (для типа KickBack) – значение продолжительности, равное заданному периоду
- OperationType (для типа KickBack) – тип действия
- NightsFrom (для типа EarlyBird) – ночей от
- NightsTo (для типа EarlyBird) – ночей до
- Discount (для типа EarlyBird) – размер скидки
- OperationType (для типа EarlyBird) – тип действия
- COBySubCode – список применённых идентификаторов ценовых блоков по SubCode1 и SubCode2
- SpecialsBySubCode - список применённых акций по SubCode1 и SubCode2
- SubCode1 – объект доп. описание 1
- SubCode2 – объект доп. описание 2
- Key – ключ
- FlightWeight –
- LinkingFlightsRules – объект правил связывания
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- airlines – авиакомпании
- flightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- checkPlusMinus1CharterRule – объект Отличие номера рейса на 1
- FlightSettingPairs – массив чартеров, для которых это правило будет выполняться
- enabled – флаг включен/выключен
- notCombineDifferentTariffGroupRule – объект не комбинировать рейсы от разных классов перелетов
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentPartnerRule – объект не комбинировать рейсы от разных партнеров
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- departureCityEqualsArrivalCityRule – объект Город вылета = городу прилета
- FlightSettingPairs – чартеры, для которых это будет выполняться
- enabled – флаг включен/выключен
- combineOnlySpecificChartersRule – объект не комбинировать различные классы перелетов
- settings – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- RouteSubVariants – подварианты услуг (используется в основном поиске)
- SecondaryFiltersResult – доп. фильтры (не используется при вызове из корзины)
Вызов метода Tour (первоначальный вариант Tour в корзине для бронирования) GET http://localhost:9000/TourSearchOwin/Tour?DepartureCityKeys=1&DestinationType=1&DestinationKey=90
&Dates=31.03.18&Durations=8&AdultCount=2&CurrencyName=EU&HotelQuota=5&AviaQuota=5&BusTransferQuota=5
&HotelScheme=[{"TemplateId":"1","DurationInNight":"7","Code":"707","PacketKey":"779","PartnerKey":"12667"
"GDSProviderId": "0","TotalTourDuration": "8"}]
&TourKey=100003404&TourDuration=8&PageNumber=1&PageSize=20&IsFromBasket=true&isFillSecondaryFilters=false
Возвращаемый результат метода Tour (в формате JSON) {
"CheckMessages": null,
"Message": {
"Key": 0,
"Value": null
},
"Result": [
{
"Key": 100003404,
"Name": "Удалить этот тур",
"TourUrl": "www.megatec.ru",
"BookingConditions": "Условия бронирования тура",
"StartDate": "2018-03-31T00:00:00",
"Duration": 8,
"DurationInNight": 7,
"Types": [2],
"Cost": 122,
"Rate": "EU",
"CityDepature": {
"Key": 1,
"Value": "Москва"
},
"CountryId": 90,
"Services": [
{
"DepartureCity": {
"Key": 1,
"Value": "Москва"
},
"DepartureCountry": {
"Key": 460,
"Value": "Россия"
},
"ArrivalCity": {
"Key": 35,
"Value": "Вена"
},
"ArrivalCountry": {
"Key": 90,
"Value": "Австрия"
},
"DepartureAirport": {
"Key": "DME",
"Value": "Домодедово"
},
"ArrivalAirport": {
"Key": "VIE1",
"Value": "Vena1"
},
"Airline": {
"Key": "3G",
"Value": "Атлант Союз_d;kgmdlfkgnfdlkhndlfkhnlkfnh"
},
"Aircraft": {
"Key": "319",
"Value": "AIRBUS "
},
"Flight": {
"Key": 858,
"Value": "1111"
},
"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,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-03-31T10:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 0
},
{
"Hotel": {
"Key": 707,
"Value": "Beim Theresianum"
},
"City": {
"Key": 35,
"Value": "Вена"
},
"Stars": {
"Key": 66,
"Value": "4*Boutique"
},
"Resort": {
"Key": -1,
"Value": null
},
"ImageURL": "",
"Http": null,
"Description": "",
"Country": {
"Key": 90,
"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,
"IsSubCode1": true,
"IsSubCode2": true,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 7,
"BeginDateTime": "2018-03-31T11:59:00",
"EndDateTime": "2018-04-07T11:59:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 1
},
{
"DepartureCity": {
"Key": 35,
"Value": "Вена"
},
"DepartureCountry": {
"Key": 90,
"Value": "Австрия"
},
"ArrivalCity": {
"Key": 1,
"Value": "Москва"
},
"ArrivalCountry": {
"Key": 460,
"Value": "Россия"
},
"DepartureAirport": {
"Key": "VIE1",
"Value": "Vena1"
},
"ArrivalAirport": {
"Key": "DME",
"Value": "Домодедово"
},
"Airline": {
"Key": "7U",
"Value": "Авиаэнерго"
},
"Aircraft": {
"Key": "727",
"Value": "Boeing"
},
"Flight": {
"Key": 774,
"Value": "222"
},
"DepartureTime": "00:00:00",
"ArrivalTime": "00:00:00",
"EndDateTime": "2018-04-07T00:00:00",
"FlightDetails": [ {
"Tariff": {
"Key": 67,
"Code": "C",
"Name": "Бизнес класс"
},
"Cost": 1.61,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 10760,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"FlightSetting": {
"ServiceId": 4,
"PatternId": 5,
"FlightId": 4
},
"FlightSourceMode": 1,
"Id": 4,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 8,
"DurationInNight": 0,
"BeginDateTime": "2018-04-07T00:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"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,
"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-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": {
"TemplateId": 4,
"PatternId": 5,
"SettingId": 4
},
"Value": {
"ServiceType": 1,
"Code": 774,
"SubCode1": 67,
"SubCode2": 35,
"PacketId": 779,
"PartnerId": 10760,
"CountryId": 460,
"CityId": 1,
"Day": 8,
"DurationInNight": 0
}
}
],
"FlightWeight": 2,
"LinkingFlightsRules": {
"notCombineDifferentAirlineRule": {
"airlines": ["AY2"],
"flightSettings": [],
"enabled": true
},
"checkPlusMinus1CharterRule": {
"FlightSettingPairs": [],
"enabled": false
},
"notCombineDifferentTariffGroupRule": {
"FlightSettings": [],
"enabled": true
},
"notCombineDifferentPartnerRule": {
"FlightSettings": [],
"enabled": false
},
"departureCityEqualsArrivalCityRule": {
"FlightSettingPairs": [],
"enabled": false
},
"combineOnlySpecificChartersRule": {
"settings": [],
"enabled": false
}
},
"RouteSubVariants": []
}
],
"SecondaryFiltersResult": null
}
|
Выгрузка настройки отображения полей по туристам (TouristDataSettings)
Метод производит выгрузку настроек отображения полей по туристам.
- Формат запроса:
- GET .../TourSearchOwin/TouristDataSettings?
- Принимаемые параметры ( * – обязательный):
- countryId * – ключ страны, для которой будут выгружаться настройки
- Возвращаемый результат:
- TouristFieldsSettings – массив полей с информацией о туристах (из админки Мастер-Web)
- lastname – объект фамилия туриста (лат)
- Index – порядковый индекс элемента
- Code – код поля
- ApiCode – имя поля, которое будет использоваться при бронировании (например при вызове метода CreateReservation)
- HeaderText – название поля
- IsEdit – признак редактируемости поля
- IsRequired – признак обязательности заполнения поля
- IsVisible – видимость поля (видимое)
- IsDisabled – служебный внутренний параметр. При работе с API не используется
- Translit – настройки транслитерации (0 – нет, 1 – транслитерация, 2 – латиница)
- LetterCase – настройки регистра (0 – по умолчанию, 1 – с заглавной, 2 – большие, 3 – маленькие)
- patronymic – объект отчество туриста (лат)
- sex – объект пол туриста
- firstname – объект имя туриста (лат)
- passportbywhom – объект кем выдан заграничный паспорт
- birthplace – объект место рождения
- birthdate – объект дата рождения
- patronymicrus – объект отчество (рус)
- lastnamerus – объект фамилия туриста (рус)
- citizenid – объект ID туриста
- passport – объект серия и номер заграничного паспорта
- passportrus – объект серия и номер национального паспорт а
- ismain – объект признак главного туриста
- passportdate – объект дата выдачи заграничного паспорта
- firstnamerus – объект имя туриста (рус)
- passportbywhomrus – объект кем выдан национальный паспорт
- citizenship – объект гражданство
- passportdaterus – объект дата выдачи национального паспорта
- phone – объект телефон
- number – объект порядковый номер
- passportdateend – объект дата окончания заграничного паспорта
- email – объект e-mail туриста
- lastname – объект фамилия туриста (лат)
- PassportDurationOfExpiry – объект минимальный срок действия загранпаспорта туриста
- StartPoint – точка отсчета
- Duration – минимальная продолжительность
- ChildAgeSetting – максимальный возраст ребенка, когда он считается ребенком (лет)
- InfantAgeSetting – максимальный возраст младенца (месяцев)
- TouristFieldsSettings – массив полей с информацией о туристах (из админки Мастер-Web)
Вызов метода TouristDataSettings GET http://localhost:9000/TourSearchOwin/TouristDataSettings?countryId=90
Возвращаемый результат метода TouristDataSettings (в формате JSON) {
"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
}
|
Выгрузка услуг доплат к авиаперелетам (GetFlightsAdditionalServices)
Метод производит выгрузку услуг доплат к авиаперелетам.
- Формат запроса:
- POST .../TourSearchOwin/GetFlightsAdditionalServices?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Принимаемые параметры POST запроса ( * – обязательный):
- TourProgramId – ключ турпрограммы
- BeginDate – дата начала тура
- Duration – продолжительность тура
- Currency – код валюты
- Services – массив услуг авиаперелетов для получения доплат
- Service – объект услуга авиаперелет
- ServiceType – тип услуги
- Code – код услуги
- SubCode1 – доп. описание 1 услуги
- 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 – индекс шаблона услуги
- TouristNumbersList – массив туристов, привязанных к услуге
- Service – объект услуга авиаперелет
- Tourists – массив туристов
- IsMain – главный турист
- Number – порядковый номер туриста
- AgeType – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
- MaleFemaleSex – пол (0 – мужской, 1 – женский)
- FirstName – имя (лат)
- LastName – фамилия (лат)
- Patronymic – отчество (лат)
- FirstNameRus – имя (рус)
- LastNameRus – фамилия (рус)
- PatronymicRus – отчество (рус)
- InternationalPassportSeries – серия загранпаспорта
- InternationalPassportNumber – номер загранпаспорта
- InternationalPassportDateOfIssue – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz)
- InternationalPassportDateOfIssueString – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY)
- InternationalPassportDateOfExpiry – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz)
- InternationalPassportDateOfExpiryString – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY)
- internationalPassportByWhom – кем выдан загранпаспорт
- PassportSeries – серия паспорта
- PassportNumber – номер паспорта
- PassportDateOfIssue – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz)
- PassportDateOfIssueString – дата выдачи паспорта в строковом формате (DD.MM.YYYY)
- PassportByWhom – кем выдан паспорт
- Citizenship – название страны
- Phone – телефон
- Email – e-mail
- BirthDay – дата рождения (YYYY-MM-DDThh:mm:ssz)
- BirthDayString – дата рождения в строковом формате (DD.MM.YYYY)
- BirthPlace – место рождения
- CitizenID – гражданство
- Age – количество полных лет на момент окончания тура
- Возвращаемый результат:
- Массив – массив объектов доплат к авиаперелетам
- ServiceName – название услуги
- City – объект город
- Country – объект страна
- Key – ключ страны
- Value – название страны
- Code – объект код услуги
- Key – ключ услуги
- Value – название услуги
- ByScheduler – признак по расписанию
- Details - объект детализация
- SubCode1 – объект доп. описание 1
- Key – ключ
- Value – название
- SubCode2 – объект доп. описание 2
- Key – ключ
- Value – название
- Date – дата услуги
- IsShowTransportPlan – признак показать транспортный план (для автобусов)
- Cost – цена
- QuotaStatus – объект статус квотирования
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – ключ партнера
- ByPax – признак за человека
- Partner – объект партнер (не заполняется)
- Key – ключ (не заполняется)
- Value – название (не заполняется)
- SubCode1 – объект доп. описание 1
- ParentId – ключ родительской услуги
- PartnerBasedOnServiceTemplateId – шаблон услуги для подбора поставщика
- ShowOrder – порядок при печати (сортировка) по услуге
- ShowOrderAddDescript1 – порядок при печати (сортировка) по доп. описанию 1
- ShowOrderAddDescript2 – порядок при печати (сортировка) по доп. описанию 2
- Id – идентификатор услуги
- SvKey – тип услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата начала услуги
- EndDateTime – дата окончания
- IsHooded – признак скрытая
- IsDeleted – признак удаляемая
- IsNotCalculate – признак не рассчитываемая
- PacketId – ключ пакета
- Index – индекс шаблона услуги
- Массив – массив объектов доплат к авиаперелетам
Вызов метода GetHotelsAdditionalServices POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices? HTTP/1.1
Content-Type: application/json
{
"TourProgramId": 100003404,
"BeginDate": "2018-04-16T00:00:00",
"Duration": 8,
"Currency": "EU",
"Services": [{
"Service": {
"ServiceType": 1,
"Code": 858,
"SubCode1": 67,
"SubCode2": 1,
"Packet": 779,
"Partner": 10760,
"Day": 1,
"DurationInNight": 0,
"City": 35,
"Country": 90,
"Attributes": 0,
"IsRemovable": false,
"Type": 1,
"IsHooded": false,
"IsNotCalculated": false,
"BeginDateTimeString": "2018-04-16T10:00:00",
"EndDateTimeString": "2018-04-16T11:59:00",
"TemplateId": 3,
"Cost": 6,
"ByPax": true,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"Index": 0,
"IsRoute": true,
"ServiceTemplateIndex": 0
},
"TouristNumbersList": [1,
2]
},
{
"Service": {
"ServiceType": 1,
"Code": 774,
"SubCode1": 67,
"SubCode2": 35,
"Packet": 779,
"Partner": 10760,
"Day": 8,
"DurationInNight": 0,
"City": 1,
"Country": 460,
"Attributes": 0,
"IsRemovable": false,
"Type": 1,
"IsHooded": false,
"IsNotCalculated": false,
"BeginDateTimeString": "2018-04-23T00:00:00",
"EndDateTimeString": "2018-04-23T00:00:00",
"TemplateId": 4,
"Cost": 2,
"ByPax": true,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"Index": 3,
"IsRoute": true,
"ServiceTemplateIndex": 3
},
"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
}]
}
Возвращаемый результат метода GetHotelsAdditionalServices (в формате JSON) [{
"ServiceName": "Доплаты к авиаперелетам",
"City": null,
"Country": {
"Key": 90,
"Value": "Австрия"
},
"Code": {
"Key": 357,
"Value": "Топливный сбор"
},
"ByScheduler": false,
"Details": [{
"SubCode1": {
"Key": 41,
"Value": "3G1111 DME-VIE1 ()"
},
"SubCode2": {
"Key": null,
"Value": ""
},
"Date": "2018-04-16T10:00:00",
"IsShowTransportPlan": false,
"Cost": 24,
"QuotaStatus": {
"PlacesStatus": 0,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 10760,
"ByPax": false,
"Partner": {
"Key": 0,
"Value": null
}
}],
"ParentId": null,
"PartnerBasedOnServiceTemplateId": null,
"ShowOrder": 0,
"ShowOrderAddDescript1": 0,
"ShowOrderAddDescript2": 0,
"Id": -1,
"SvKey": 12,
"IsSubCode1": false,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-04-16T10:00:00",
"EndDateTime": "0001-01-01T00:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": true,
"PacketId": 777,
"Index": 0
}]
|
Выгрузка услуг доплат к отелям (GetHotelsAdditionalServices)
Метод производит выгрузку услуг доплат к отелям.
- Формат запроса:
- POST .../TourSearchOwin/GetHotelsAdditionalServices?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Принимаемые параметры POST запроса ( * – обязательный):
- TourProgramId – ключ турпрограммы
- BeginDate – дата начала тура
- Duration – продолжительность тура
- Currency – код валюты
- Services – массив услуг отелей для получения доплат
- Service – объект услуга отель
- ServiceType – тип услуги
- Code – код услуги
- SubCode1 – доп. описание 1 услуги
- SubCode2 – доп. описание 2 услуги
- Packet – ключ пакета услуги
- Partner – ключ партнера услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- City – ключ города
- Country – страна услуги
- Attributes – битовая маска атрибутов услуг
- IsRemovable – (не обрабатывается)
- Type – тип услуги в путевке (базовая дополнительная)
- IsHooded – признак скрытая услуга
- IsNotCalculated – признак не рассчитываемая услуга
- BeginDateTimeString – дата и время начала услуги (YYYY-MM-DDThh:mm:ss)
- EndDateTimeString – дата и время окончания услуги (YYYY-MM-DDThh:mm:ss)
- TemplateId – шаблон услуги
- Cost – цена услуги
- ByPax – цена за человека
- QuotaStatus – объект статус квотирования
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- Index – индекс услуги
- IsRoute – признак маршрутная услуга
- ServiceTemplateIndex – индекс шаблона услуги
- RemoteId – (в доплатах не используется)
- TouristNumbersList – массив туристов, привязанных к услуге
- Service – объект услуга отель
- Tourists – массив туристов
- IsMain – главный турист
- Number – порядковый номер туриста
- AgeType – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
- MaleFemaleSex – пол (0 – мужской, 1 – женский)
- FirstName – имя (лат)
- LastName – фамилия (лат)
- Patronymic – отчество (лат)
- FirstNameRus – имя (рус)
- LastNameRus – фамилия (рус)
- PatronymicRus – отчество (рус)
- InternationalPassportSeries – серия загранпаспорта
- InternationalPassportNumber – номер загранпаспорта
- InternationalPassportDateOfIssue – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz)
- InternationalPassportDateOfIssueString – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY)
- InternationalPassportDateOfExpiry – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz)
- InternationalPassportDateOfExpiryString – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY)
- internationalPassportByWhom – кем выдан загранпаспорт
- PassportSeries – серия паспорта
- PassportNumber – номер паспорта
- PassportDateOfIssue – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz)
- PassportDateOfIssueString – дата выдачи паспорта в строке (DD.MM.YYYY)
- PassportByWhom – кем выдан паспорт
- Citizenship – название страны
- Phone – телефон
- Email – e-mail
- BirthDay – дата рождения (YYYY-MM-DDThh:mm:ssz)
- BirthDayString – дата рождения в строковом формате (DD.MM.YYYY)
- BirthPlace – место рождения
- CitizenID – гражданство
- Age – количество полных лет на момент окончания тура
- Возвращаемый результат:
- Массив – массив объектов связок Возраст-Отель-Доп. услуги
- Age – возраст туриста
- Hotel – объект отель
- ServiceType – тип услуги
- Code – код услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- PacketId – ключ пакета
- PartnerId – ключ партнера
- Day – день предоставления услуги
- BeginTime – время начала услуги
- EndTime – время окончания услуги
- DurationInNight – продолжительность услуги в ночах
- Attributes – маска атрибутов услуги
- CountryId – ключ страны услуги
- CityId – ключ города
- Type – тип услуги в путевке
- ShowOrder – порядок при печати (сортировка) по услуге
- ShowOrderAddDescript1 – порядок при печати (сортировка) по доп. описанию 1
- ShowOrderAddDescript2 – порядок при печати (сортировка) по доп. описанию 2
- IsCommission – признак, комиссионная ли услуга
- BaseFlightsParams – параметр не обрабатывается
- AdditionalServices – массив доплат
- ServiceName – название услуги
- City – объект город
- Country – ключ страны
- Code – объект код услуги
- Key – ключ услуги
- Value – название услуги
- ByScheduler – признак по расписанию
- Details - объект детализация
- SubCode1 – объект доп. описание 1
- Key – ключ
- Value – название
- SubCode2 – объект доп. описание 2
- Key – ключ
- Value – название
- Date – дата услуги
- IsShowTransportPlan – признак показать транспортный план (для автобусов)
- Cost – цена
- QuotaStatus – объект статус квотирования
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – ключ партнера
- ByPax – признак за человека
- Partner – объект партнер (не заполняется)
- Key – ключ (не заполняется)
- Value – название (не заполняется)
- SubCode1 – объект доп. описание 1
- ParentId – ключ родительской услуги
- PartnerBasedOnServiceTemplateId – шаблон услуги для подбора поставщика
- ShowOrder – порядок при печати (сортировка) по услуге
- ShowOrderAddDescript1 – порядок при печати (сортировка) по доп. описанию 1
- ShowOrderAddDescript2 – порядок при печати (сортировка) по доп. описанию 2
- Id – идентификатор услуги
- SvKey – тип услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата начала услуги
- EndDateTime – дата окончания
- IsHooded – признак скрытая
- IsDeleted – признак удаляемая
- IsNotCalculate – признак не рассчитываемая
- PacketId – ключ пакета
- Index – индекс шаблона услуги
- Массив – массив объектов связок Возраст-Отель-Доп. услуги
Вызов метода GetHotelsAdditionalServices POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices? HTTP/1.1
Content-Type: application/json
{ "TourProgramId": 100003404,
"BeginDate": "2018-04-16T00:00:00",
"Duration": 8,
"Currency": "EU",
"Services": [{
"Service": {
"ServiceType": 3,
"Code": 178,
"SubCode1": 46387,
"SubCode2": 57,
"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": 122,
"ByPax": false,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"Index": 1,
"IsRoute": true,
"ServiceTemplateIndex": 1,
"RemoteId": null
},
"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
}]
}
Возвращаемый результат метода GetHotelsAdditionalServices (в формате JSON) [{
"Age": 17,
"Hotel": {
"ServiceType": 3,
"Code": 178,
"SubCode1": 46387,
"SubCode2": 57,
"PacketId": 779,
"PartnerId": 12667,
"Day": 1,
"BeginTime": "11:59:00",
"EndTime": "11:59:00",
"DurationInNight": 7,
"Attributes": 0,
"CountryId": 90,
"CityId": 35,
"Type": 1,
"ShowOrder": 1,
"ShowOrderAddDescript1": 0,
"ShowOrderAddDescript2": 0,
"IsCommission": false,
"BaseFlightsParams": null
},
"AdditionalServices": [{
"ServiceName": "Доплаты к отелям",
"City": null,
"Country": {
"Key": 90,
"Value": "Австрия"
},
"Code": {
"Key": 364,
"Value": "Праздник"
},
"ByScheduler": false,
"Details": [{
"SubCode1": {
"Key": 109,
"Value": "Ananas"
},
"SubCode2": {
"Key": null,
"Value": ""
},
"Date": "2018-04-16T11:59:00",
"IsShowTransportPlan": false,
"Cost": 2,
"QuotaStatus": {
"PlacesStatus": 0,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12667,
"ByPax": false,
"Partner": {
"Key": 0,
"Value": null
}
}],
"ParentId": null,
"PartnerBasedOnServiceTemplateId": null,
"ShowOrder": 0,
"ShowOrderAddDescript1": 0,
"ShowOrderAddDescript2": 0,
"Id": -1,
"SvKey": 13,
"IsSubCode1": false,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-04-16T11:59:00",
"EndDateTime": "0001-01-01T00:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": true,
"PacketId": 879,
"Index": 1
}]
}]
|
Расчет индивидуальных услуг (CalculateIndividualServiceCosts)
Метод производит расчет услуг с индивидуальным выбором у туристов.
- Формат запроса:
- POST .../TourSearchOwin/CalculateIndividualServiceCosts?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Принимаемые параметры POST запроса ( * – обязательный):
- TourProgramId – ключ тура
- TourDate – дата тура
- TourDuration – продолжительность тура
- Currency – код валюты
- Services – массив индивидуальных услуг
- ServiceType – тип услуги
- Code – код услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- Packet – ключ пакета
- Partner – ключ партнера
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- City – объект город
- Country – страна услуги
- Attributes – маска атрибутов услуги
- Type – тип услуги
- IsHooded – признак скрытая
- IsNotCalculated – признак не рассчитываемая
- BeginDateTimeString – дата начала услуги в строке
- EndDateTimeString – дата начала услуги в строке
- TemplateId – номер шаблона услуги
- Cost – цена услуги
- ByPax – цена за человека
- QuotaStatus – объект статус квотирования
- PlacesStatus – статус по квотам (есть места / нет мест / под запрос)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- Index – индекс услуги
- IsRoute – признак маршрутная услуга
- ServiceTemplateIndex – индекс шаблона услуги
- RemoteId – (не используется)
- Ages – массив возрастов туристов
- Возвращаемый результат:
- Массив – массив связок Возраст-Услуга-Цена
- Age – возраст
- Service – объект услуга
- ServiceType – тип услуги
- Code – код услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- PacketId – ключ пакета услуги
- PartnerId – ключ партнера
- Day – день предоставления услуги
- BeginTime – время начала услуги
- EndTime – время окончания услуги
- DurationInNight – продолжительность услуги в ночах
- Attributes – маска атрибутов услуги
- CountryId – ключ страны
- CityId – ключ города
- Type – тип услуги
- ShowOrder – порядковый номер
- SimpleServiceCost – объект цена
- Brutto – брутто
- Discount – скидка
- Массив – массив связок Возраст-Услуга-Цена
Вызов метода CalculateIndividualServiceCosts POST http://localhost:9000/TourSearchOwin/CalculateIndividualServiceCosts? HTTP/1.1
Content-Type: application/json
{
"TourProgramId": 100003403,
"TourDate": "2018-04-16T00:00:00",
"TourDuration": 8,
"Currency": "EU",
"Services": [{
"ServiceType": 6,
"Code": 155,
"SubCode1": 7,
"SubCode2": 10,
"Packet": 779,
"Partner": 10760,
"Day": 1,
"DurationInNight": 7,
"City": null,
"Country": 90,
"Attributes": 0,
"Type": 1,
"IsHooded": false,
"IsNotCalculated": false,
"BeginDateTimeString": "2018-04-16T00:00:00",
"EndDateTimeString": null,
"TemplateId": 12,
"Cost": 26,
"ByPax": false,
"QuotaStatus": {
"PlacesStatus": 1,
"FreePlaces": 0,
"IsFewPlaces": false
},
"Index": null,
"IsRoute": null,
"ServiceTemplateIndex": null,
"RemoteId": null
}],
"Ages": [17]
}
Возвращаемый результат метода CalculateIndividualServiceCosts (в формате JSON) [{
"Age": 17,
"Service": {
"ServiceType": 6,
"Code": 155,
"SubCode1": 7,
"SubCode2": 10,
"PacketId": 779,
"PartnerId": 10760,
"Day": 1,
"BeginTime": null,
"EndTime": null,
"DurationInNight": 7,
"Attributes": 0,
"CountryId": 90,
"CityId": null,
"Type": 1,
"ShowOrder": 0
},
"SimpleServiceCost": {
"Brutto": 13,
"Discount": 0
}
}]
|
Поиск рейсов из внешней системы (GetGDSFlights)
Метод производит поиск рейсов из внешней системы.
- Формат запроса:
- POST .../TourSearchOwin/GetGDSFlights?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Принимаемые параметры POST запроса ( * – обязательный):
Внимание! Если в туре используется перелет из GDS, то в параметр flightSettings передается ответ из секции flightGDSRequest метода API ActualizeTour. Далее для получения цены выполняем методы RebuidFlights и CalculateReservation.
- flightSettings – информация о шаблоне услуги авиаперелета
- templateId – идентификатор шаблона услуги
- patternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- serviceId – идентификатор класса услуги (внутренняя информация из программы туров)
- service – информация об услуге авиаперелета
- ServiceType – тип услуги
- Code – ключ услуги
- SubCode1 – доп. описание 1
- 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 – локализация
- flightSettings – информация о шаблоне услуги авиаперелета
- Возвращаемый результат:
- validationResult – информация о валидации
- Errors – ошибки
- Warnings – предупреждения
- States – статус
- IsValid – информация о результате
- flightsStartEndPointPatterns – информация о начале и окончании перелета
- fromPoint – информация о перелете отправления
- country – страна вылета
- id – ключ
- description – описание
- code – код
- city – город вылета
- id – ключ
- description – описание
- code – код
- airport – аэропорт вылета
- id – ключ
- description – описание
- code – код
- country – страна вылета
- toPoint – информация о перелете прибытия
- country – страна прилета
- id – ключ
- description – описание
- code – код
- city – город прилета
- id – ключ
- description – описание
- code – код
- airport – аэропорт прилета
- id – ключ
- description – описание
- code – код
- country – страна прилета
- fromPoint – информация о перелете отправления
- passengersAgeInfos – информация о возрасте пассажиров
- ageType – тип пассажира
- count – количество человек
- flightsSequencies – информация о перелете
- flights – массив данных о перелете из внешнего поставщика
- – ...
- deltaPrice – разница в цене
- amount – стоимость
- currency – валюта
- timeForward – время вперед
- timeBackward – время обратно
- hasTariffFamily – имеется ли семейство тарифов
- rating – рейтинг
- flights – массив данных о перелете из внешнего поставщика
- airTravelAdapterFilterValues – дополнительная информация
- LuggageFilterValue – багаж
- ClassAirTravelFilterValue – класс перелета
- ConnectionsFilterValue – пересадки
- SortFilterValue – сортировка
- AutomaticFlightSelection – подбор перелета
- tariff – тариф
- minFlightTimeForward – минимальное время в пути туда
- maxFlightTimeForward – максимальное время в пути туда
- minFlightTimeBackward – минимальное время в пути обратно
- maxFlightTimeBackward – максимальное время в пути обратно
- validationResult – информация о валидации
Вызов метода GetGDSFlights 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"
}
Возвращаемый результат метода GetGDSFlights (в формате JSON) [
{
"validationResult": {
"Errors": [],
"Warnings": null,
"States": null,
"IsValid": true
},
"flightsStartEndPointPatterns": [{
"fromPoint": {
"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
}
]
|
Выгрузка информации от внешнего поставщика по перелету (RebuildFlights)
Внимание! Если в туре используется перелет из GDS, то перед этим методом вызывается GetGDSFlights в принимаемые параметры которого передается ответ из секции flightGDSRequest метода API ActualizeTour. Далее текущий метод RebuidFlights и далее CalculateReservation.
Метод возвращает информацию по выбранному перелету от внешнего поставщика.
- Формат запроса:
- POST .../TourSearchOwin/RebuildFlights
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Принимаемые параметры 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
- gdsItem – справочная информация внешней системы
- 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
- gdsItem – справочная информация внешней системы
- 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
- gdsItem –справочная информация внешней системы
- 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
- gdsItem – справочная информация внешней системы
- 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
- gdsItem – справочная информация внешней системы
- tariff – тариф
- gdsItem – справочная информация внешней системы
- id – идентификатор тарифа
- code – код тарифа
- name – наименование тарифа
- automaticallyMappingValue – выражение используемое для автоматического маппинга
- requestValue – значение поля справочника которое используется в запросе к внешнему поставщику
- displayedValue – значение поля справочника который используется для отображения
- dependencies – список зависимых сущностей
- columnValues – наименование тарифа
- mtItem – справочная информация из локальной системы
- mapping – связка
- gdsItem – справочная информация внешней системы
- flightNumber – номер перелета
- baggageRestriction – ограничение провоза багажа
- caryyOncarry – ограничение ручной клади
- departureDate – дата вылета
- arrivalDate – дата прилета
- quotaInfo – объект информация по квотам
- status – статус по квотам (есть места / нет мест / под запрос)
- freePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- isFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- tourDate – дата тура
- flights – перелеты
- Возвращаемый результат:
- 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 – наименование
- Tariff – информация о тарифе перелета
- FlightSetting – информация о шаблоне услуги авиаперелета
- ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
- PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- FlightId – идентификатор внешнего перелета
- FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- EndDateTime – дата окончания услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- DepartureCity – город вылета
- flights – информация о рейсах
Вызов метода RebuildFlights POST http://localhost:9000/TourSearchOwin/RebuildFlights HTTP/1.1
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"
}
Возвращаемый результат метода RebuildFlights (в формате JSON) {
"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
}
]
}
]
}
|
Получение семейств тарифов авиаперелетов из внешней системы (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
- 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 – из внешний системы)
- flightSettings – информация о шаблоне услуги авиаперелета
- 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 – локализация
- flightsSource – параметры перелета
- Возвращаемый результат:
- validationResult – информация о валидации
- Errors – ошибки
- Warnings – предупреждения
- States – статус
- IsValid – информация о результате
- tariffSequencies – информация тарифах
- flightId – идентификатор перелета
- universalParametrsSequence – параметры тарифов
- universalParametrs – массив параметров
- code – описание параметра тарифа
- priority – приоритет показа
- needToPay – нужна ли доплата
- shortDescriptions – краткое описание
- code – код
- value – значение
- universalParametrs – массив параметров
- price – стоимость
- deltaPrice – разница в цене
- timeLimit – тайм-лимит
- segments – сегменты
- depAirportCode – код аэропорта отправления
- depCityCode – код города отправления
- arrAirportCode – код аэропорта прибытия
- arrCityCode – код города прибытия
- validationResult – информация о валидации
Вызов метода GetGDSFlightFareFamilies 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"
}
}
Возвращаемый результат метода GetGDSFlightFareFamilies (в формате JSON) [
{
"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": "Возврат запрещен"
}
]
}
]
}
],
"price": 147,
"deltaPrice": 0,
"timeLimit": "22.01.2021 4:08:00",
"segments": [{
"depAirportCode": "VKO",
"depCityCode": "MOW",
"arrAirportCode": "VIE",
"arrCityCode": "VIE"
}
]
}
],
"isDone": true
}
]
|
Загрузка филиалов (Branches) начиная с релиза 15.3
Метод производит выгрузку филиалов бронирования.
- Формат запроса:
- GET .../TourSearchOwin/Branches?
- Принимаемые параметры GET запроса ( * – обязательный):
- ids – массив ключей филиалов
- cityKey – фильтр по городу филиала (если 0 или не задан, то выбираются все филиалы)
- Возвращаемый результат:
- Key – ключ филиала (ключ партнера)
- Value – название филиала (название партнера)
Вызов метода Branches GET http://localhost:9000/TourSearchOwin/Branches?
Возвращаемый результат метода Branches (в формате JSON) [{
"Key": 12848,
"Value": "Филиал 1"
},
{
"Key": 12849,
"Value": "Филиал 2"
},
{
"Key": 12850,
"Value": "Филиал 3"
}]
|
Загрузка ведущих менеджеров (Users) начиная с релиза 15.3
Метод производит выгрузку ведущих менеджеров.
- Формат запроса:
- GET .../TourSearchOwin/Users?
- Принимаемые параметры GET запроса ( * – обязательный):
- ids – массив ключей ведущих менеджеров
- branchKey – ключ филиала бронирования, к которому они привязаны
- Возвращаемый результат:
- Key – ключ ведущего менеджера
- Value – полное имя ведущего менеджера
Вызов метода Users GET http://localhost:9000/TourSearchOwin/Users?
Возвращаемый результат метода Users (в формате JSON) [{
"Key": 1532,
"Value": "Иванов И."
},
{
"Key": 12849,
"Value": "Петров П."
}]
|
Расчет путевки (CalculateReservation)
Метод производит расчет стоимости путевки.
- Формат запроса:
- POST .../TourSearchOwin/CalculateReservation?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Принимаемые параметры POST запроса:
- TourProgramId * – ключ турпрограммы
- BeginDate * – дата начала тура
- Duration * – продолжительность тура
- Currency * – код валюты
- initialPrice * – объект изначальная цена
- price * – цена
- currency * – код валюты
- Services * – массив услуг
- Service * – объект услуги (отель/круиз, авиаперелет, трансфер или др.)
- ServiceType * – тип услуги (поле sv_key из таблицы service)
- Code * – код услуги
- SubCode1 * – доп. описание 1 услуги
- SubCode2 * – доп. описание 2 услуги
- Packet * – ключ пакета услуги
- Partner * – ключ партнера услуги
- Day * – день предоставления услуги
- DurationInNight * – продолжительность услуги в ночах
- City * – ключ города
- Country * – страна услуги
- Attributes * – битовая маска атрибутов услуг (Значение по умолчанию 0. Дальше в зависимости от признака услуги, может принимать значениz:
- Service * – объект услуги (отель/круиз, авиаперелет, трансфер или др.)
None = 0,если услуга удаляемая, эта настройка находится в программе туров,
Delete = 1,
CodeEdit = 2,
SubCode1Edit = 4,
CityEdit = 8,
PartnerEdit = 16,
BadCheck = 32,
Invisible = 64, отображаемая
DurationEdit = 128,
FullEdit = Delete | CodeEdit | SubCode1Edit | SubCode2Edit | CityEdit | PartnerEdit | DurationEdit,
Host = 256,
HostChangeCode2 = Host | 512,
HostChangeCode1 = Host | 1024,
HostChangeCode = Host | 2048,
HostChangePartner = Host | 4096,
HostChangePacket = Host | 8192,
Depended = 16384,
DependedCode2 = Depended | 512,
DependedCode1 = Depended | 1024,
DependedCode = Depended | 2048,
DependedCity = Depended | 4096,
DependedCountry = Depended | 8192,
FullDepended = Depended | DependedCode2 | DependedCode1 | DependedCode | DependedCity | DependedCountry,
NotCalculate = 32768,не рассчитываемая,
SubCode2Edit = 65536,
GDSService = 131072, от внешней системы)
- *IsRemovable – (не обрабатывается)
- *Type – тип услуги в путевке. Может принимать значения:
None (0) – не установлено,
Base (1) – базовая услуга. Основные услуги в корзине, проживание, перелет.
Optional (2) – Дополнительная услуга,
NYDinner (4) – Новогодний ужин,
FlightAdditionalPayment (8) – Доплата на перелет,
TourWebDifference (16) – Разница в СПО,
AddedByCalculator (32) – Добавленная при рассчете путевки,
AddedByReservationBuilder (64) – добавленная услуга при формировании состава путевки,
BaseChanged (128) – базовая измененная услуга,
HotelAdditionalPayment (256) – доплата на отель
- IsHooded * – признак скрытая услуга
- IsNotCalculated * – признак не рассчитываемая услуга
- BeginDateTimeString * – дата и время начала услуги
- EndDateTimeString * – дата и время окончания услуги
- TemplateId * – порядок расположения шаблона услуги в внутри самой услуги в программе тура
- Cost * – цена услуги
- ByPax * – цена за человека
- QuotaStatus * – объект статус квотирования
- PlacesStatus * – статус по квотам (есть места / нет мест / под запрос)
- FreePlaces * – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces * – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- Index * – индекс услуги
- IsRoute * – признак маршрутная услуга (Перелет, автобусный переезд, жд переезд, трансфер, экскурсия)
- ServiceTemplateIndex * – индекс шаблона услуги (Порядок расположения услуги в программе тура. Не отображается в программе туров,это просто порядковый номер услуги в путевке)
- RemoteId * – информация об услуге во внешней системе
- IsCommission * – признак, комиссионная ли услуга
- BaseFlightsParams * – параметры рассчитанных авиаперелетов Обязательный параметр, если в путевке есть услуга авиаперелета
- CityArrival * – ключ города прибытия прямого перелета
- FlightCode * – ключ прямого авиаперелета
- TariffKey * – ключ тарифа прямого авиаперелета
- PartnerId * – ключ партнера прямого авиаперелета
- CityArrival * – ключ города прибытия обратного перелета
- FlightCode * – ключ обратного авиаперелета
- TariffKey * – ключ тарифа обратного авиаперелета
- PartnerId * – ключ партнера обратного авиаперелета
- TouristNumbersList * – массив туристов, привязанных к услуге
- Tourists * – массив туристов. Для того, чтобы узнать, какие поля обязательные для туриста, мы можем обратиться к методу 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 * – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) Может быть с пустым значением
- Возвращаемый результат:
- 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 – код национальной валюты
Вызов метода CalculateReservation POST http://localhost:9000/TourSearchOwin/CalculateReservation? 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": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)"
}
Возвращаемый результат метода CalculateReservation (в формате JSON) {
"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,
"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": "рб"
}
|
Бронирование путевки (CreateReservation)
Метод производит бронирование путевки.
При бронировании проверяется корректность заполнения обязательных полей туристов (регулируется общими настройками, либо в справочнике Страны). В случае, если обязательные поля не заполнены, возвращается ошибка с сообщением, бронь не создается.
- Формат запроса:
- PUT .../TourSearchOwin/CreateReservation/1?
- Принимаемые параметры 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 услуги
- 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 * – массив туристов, привязанных к услуге
- Service * – объект услуги (отель/круиз, авиаперелет, трансфер или др.)
- Tourists * – массив туристов. Для того, чтобы узнать, какие поля обязательные для туриста, мы можем обратиться к методу 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 * – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) Может быть с пустым значением
- Возвращаемый результат:
- 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 – количество дней услуги
- 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 – атрибут результата бронирования
- ValidationResult – объект с ошибками и флагом валидности путевки
- Reservation – объект путевки
Вызов метода CreateReservation PUT http://localhost:9000/TourSearchOwin/CreateReservation/1? 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",
"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,
"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": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)"
}
|
Возвращаемый результат метода CreateReservation (в формате JSON) {
"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,
"DiscSumBfrAnn": null,
"PriceBfrAnn": null,
"RazmerP": 0,
"LeadDepartment": 0,
"MainManEmail": "test@megatec.ru",
"MainManComment": "",
"DupUserKey": 6,
"BTKey": 1,
"ConfirmedDate": null,
"PrtDogKey": 11,
"CTDepartureKey": 1,
"PDTType": 0,
"NationalCurrencyPrice": null,
"NationalCurrencyDiscountSum": null,
"NationalCurrencyPayed": null,
"CurrencyKey": null,
"CurrencyRate": null,
"ClientKey": null,
"Partner": {
"$id": 2,
"Key": 10762,
"FullName": "Агентство",
"Name": "Агентство"
},
"Services": [{
"$id": 3,
"DGCod": "AU10101003",
"TurDate": "2021-01-01T00:00:00",
"Key": 202463,
"PaketKey": 209,
"TRKey": 100000038,
"SVKey": 1,
"Name": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс",
"Day": 1,
"Code": 570,
"SubCode1": 67,
"SubCode2": 1,
"Men": 2,
"Days": 0,
"CNKey": 90,
"CTKey": 35,
"PartnerKey": 10760,
"Brutto": 162.2,
"Wait": null,
"Warning": 0,
"TimeBeg": "1899-01-01T14:00:00",
"Control": 1,
"Attribute": 65695,
"DateBeg": "2021-01-01T00:00:00",
"DateEnd": "2021-01-01T00:00:00",
"Discount": 14.8,
"Comment": null,
"DGKey": 40335,
"Blocked": null,
"NameLat": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс",
"Long": 9,
"TRFId": 0,
"CreateDate": "2020-10-12T15:02:29.013",
"CalculatePriceDate": "2020-10-12T15:02:29.013",
"ShowOrder": 1,
"Connections": [{
"$ref": 1
}
]
}, {
"$id": 4,
"DGCod": "AU10101003",
"TurDate": "2021-01-01T00:00:00",
"Key": 202462,
"PaketKey": 209,
"TRKey": 100000038,
"SVKey": 3,
"Name": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион",
"Day": 1,
"Code": 702,
"SubCode1": 1113,
"SubCode2": 2,
"Men": 2,
"Days": 8,
"CNKey": 90,
"CTKey": 35,
"PartnerKey": 10760,
"Brutto": 519.6,
"Wait": null,
"Warning": 0,
"TimeBeg": "1899-01-01T16:30:00",
"Control": 1,
"Attribute": 65695,
"DateBeg": "2021-01-01T00:00:00",
"DateEnd": "2021-01-08T00:00:00",
"Discount": 47.4,
"Comment": null,
"DGKey": 40335,
"Blocked": null,
"NameLat": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион",
"Long": 9,
"TRFId": 0,
"CreateDate": "2020-10-12T15:02:29.013",
"CalculatePriceDate": "2020-10-12T15:02:29.013",
"ShowOrder": 2,
"Connections": [{
"$ref": 1
}
]
}, {
"$id": 5,
"DGCod": "AU10101003",
"TurDate": "2021-01-01T00:00:00",
"Key": 202461,
"PaketKey": 209,
"TRKey": 100000038,
"SVKey": 1,
"Name": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс",
"Day": 9,
"Code": 572,
"SubCode1": 67,
"SubCode2": 35,
"Men": 2,
"Days": 0,
"CNKey": 460,
"CTKey": 1,
"PartnerKey": 10760,
"Brutto": 195.2,
"Wait": null,
"Warning": 0,
"TimeBeg": "1899-01-01T14:00:00",
"Control": 1,
"Attribute": 65695,
"DateBeg": "2021-01-09T00:00:00",
"DateEnd": "2021-01-09T00:00:00",
"Discount": 17.8,
"Comment": null,
"DGKey": 40335,
"Blocked": null,
"NameLat": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс",
"Long": 9,
"TRFId": 0,
"CreateDate": "2020-10-12T15:02:29.013",
"CalculatePriceDate": "2020-10-12T15:02:29.013",
"ShowOrder": 3,
"Connections": [{
"$ref": 1
}
]
}
],
"Turists": [{
"$id": 6,
"DGCod": "AU10101003",
"Key": 88653,
"TurDate": "2021-01-01T00:00:00",
"NameRus": "IVANOV",
"NameLat": "IVANOV",
"ShortName": "I.",
"Sex": 0,
"FNameRus": "IVAN",
"FNameLat": "IVAN",
"SNameRus": "",
"SNameLat": "",
"BirthDay": "1980-01-01T00:00:00",
"BirthCountry": null,
"BirthCity": "Москва",
"Citizen": "",
"PostIndex": null,
"PostCity": null,
"PostStreet": null,
"PostBild": null,
"PostFlat": null,
"Phone": "",
"PhoneCode": null,
"PasportType": "",
"PasportNum": "",
"PasportDate": null,
"PasportDateEnd": null,
"PasportByWhom": "",
"Place": null,
"IsAnketa": null,
"PaspRuser": "",
"PaspRuNum": "",
"PaspRuDate": null,
"PaspRuByWhom": "",
"ClientId": null,
"IsMain": 1,
"DGKey": 40335,
"RealSex": 0,
"Email": "",
"EnableSmsNotifications": 0,
"CitizenId": "",
"Connections": [{
"$ref": 1
}
]
}, {
"$id": 7,
"DGCod": "AU10101003",
"Key": 88652,
"TurDate": "2021-01-01T00:00:00",
"NameRus": "PETROV",
"NameLat": "PETROV",
"ShortName": "P.",
"Sex": 0,
"FNameRus": "PETR",
"FNameLat": "PETR",
"SNameRus": "",
"SNameLat": "",
"BirthDay": "1981-01-01T00:00:00",
"BirthCountry": null,
"BirthCity": "Москва",
"Citizen": "",
"PostIndex": null,
"PostCity": null,
"PostStreet": null,
"PostBild": null,
"PostFlat": null,
"Phone": "",
"PhoneCode": null,
"PasportType": "",
"PasportNum": "",
"PasportDate": null,
"PasportDateEnd": null,
"PasportByWhom": "",
"Place": null,
"IsAnketa": null,
"PaspRuser": "",
"PaspRuNum": "",
"PaspRuDate": null,
"PaspRuByWhom": "",
"ClientId": null,
"IsMain": 0,
"DGKey": 40335,
"RealSex": 0,
"Email": "",
"EnableSmsNotifications": 0,
"CitizenId": "",
"Connections": [{
"$ref": 1
}
]
}
],
"TuristServices": [{
"$id": 8,
"TUKey": 88653,
"DLKey": 202463,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3770,
"Connections": [{
"$ref": 1
}, {
"$ref": 3
}, {
"$ref": 6
}
]
}, {
"$id": 9,
"TUKey": 88652,
"DLKey": 202463,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3768,
"Connections": [{
"$ref": 1
}, {
"$ref": 3
}, {
"$ref": 7
}
]
}, {
"$id": 10,
"TUKey": 88653,
"DLKey": 202462,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3771,
"Connections": [{
"$ref": 1
}, {
"$ref": 4
}, {
"$ref": 6
}
]
}, {
"$id": 11,
"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,
"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": []
"DogovorMessages": [{
"$id": 11,
"Date": "2020-10-09T09:16:39.99",
"Text": "Тайм-лимит забронированного перелета: 13.10.2020 21:59",
"Remark": "TimeLimit",
"Connections": [{
"$ref": 1
}
]
},
"ValidationResultSummary": {
"ValidationResult": {
"Errors": [],
"IsValid": true
},
"ValidationResultAttributes": 0
}
}
|
Выгрузка информации о путевке (GetReservation)
Метод выводит информацию о бронированной путевке.
- Формат запроса:
- GET .../TourSearchOwin/GetReservation?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Authorization * – token_type + access_token (полученные из метода .../TourSearchOwin/Token?)
- Принимаемые параметры GET запроса ( * – обязательный):
- dgCode * – номер путевки:
- Возвращаемый результат:
- $id – внутренний идентификатор для установки связей между сущностями,
- Code – код путевки
- TurDate – дата заезда
- TRKey – ключ тура
- CNKey – ключ страны
- CTKey – ключ города
- NMen – количество туристов по путевке
- Price – стоимость путевки за вычетом скидки (комиссии)
- Payed – оплаченная сумма по путевке
- NDay – продолжительность тура в днях
- MainMan – ФИО лица, заключившего договор
- MainManPhone – номер телефона лица, заключившего договор
- MainManAddress – адрес лица, заключившего договор
- MainManPassport – паспортные данные лица, заключившего договор
- PartnerKey – ключ партнера, оформившего договор
- Operator – ФИО создателя договора
- Discount – величина скидки на одного человека
- DiscountSum – абсолютная величина скидки
- SORCode – ключ статус путевки, возможные значения: 0-в работе, 1-не определён, 2-аннулирован, 3-wait лист, 7-ок.
- CrDate – дата и время создания путевки
- Rate – код валюты путевки
- Advertise – ключ источника рекламы
- Locked – блокировка путевки: 1 – если заблокирована
- CauseDisc – ключ основания для скидки
- PPaymentDate – максимальная дата внесения предоплаты
- PaymentDate – максимальная дата полной оплаты
- Procent – информация о предоплате: 1 – предоплата в %; 0 – предоплата в у.е.
- TurDateBfrAnnul – значение даты заезда до аннуляции путевки (при аннуляции дата заезда заменяется на 31.12.1899)
- ARKey – ключ причины аннуляции путевки
- Key – ключ договора
- CodePartner – значение ключевого поля из таблицы партнеров
- FilialKey – ключ филиала фирмы-владельца, пользователем которого была забронирована путевка
- IsOutDoc – статус выдачи документов
- Notes – сообщение поставщику
- DiscSumBfrAnn – числовое значение скидки перед аннуляцией путевки
- PriceBfrAnn – стоимость путевки перед ее аннуляцией
- RazmerP – размер предоплаты
- LeadDepartment – ключ отдела, ведущего данный тур
- MainManEmail – адрес е-mail из данных лица, заключившего договор
- MainManComment – примечание из данных лица, заключившего договор
- DupUserKey – ключ представителя партнера, которым был оформлен договор
- BTKey – ключ системы бронирования, из которой был оформлен договор
- ConfirmedDate – дата подтверждения путевки покупателю
- PrtDogKey – договор партнера, по которому оформлена путевка
- CTDepartureKey – ключ города начала поездки
- PDTType – тип договора, по которому оформлена путевка
- NationalCurrencyPrice – стоимость путевки в национальной валюте
- NationalCurrencyDiscountSum – значение скидки в национальной валюте
- NationalCurrencyPayed – сумма платежей по путевке, зафиксированная в национальной валюте
- CurrencyKey – ключ национальной валюты путевки
- CurrencyRate – курс национальной валюты путевки
- ClientKey – ключ частника, которым был оформлен договор
- Partner – информация о партнере покупателе, привязанным к путевке
- $id – внутренний идентификатор для установки связей между сущностями
- Key – ключ партнера покумателя
- FullName – полное имя партнера
- Name – имя партнера
- Services – коллекция услуг в данной путевке
- $id – внутренний идентификатор для установки связей между сущностями
- DGCod – номер путевки
- TurDate – дата начала тура
- Key – ключ услуги
- PaketKey – ключ пакета
- TRKey – клют тура
- SVKey – ключ типа услуги
- Name – наименование услуги
- Day – порядковый номер дня тура, в который предоставляется услуга
- Code – ключ кода услуги
- SubCode1 – ключ доп.описания 1 услуги
- SubCode2 – ключ доп.описания 2 услуги
- Men – количество человек, пользующихся услугой по путевке
- Days – количество дней услуги
- CNKey – ключ страны услуги
- CTKey – ключ города услуги
- PartnerKey – ключ партнера, предоставляющего услугу
- 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
Вызов метода CostOfferDescriptions GET http://localhost:9000/TourSearchOwin/GetReservation?dgCode=AU10101003
Content-Type: application/json
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR-
GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4-
9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9-
CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA
Возвращаемый результат метода GetReservation (в формате JSON) {
"$id": 1,
"Code": "AU10101003",
"TurDate": "2021-01-01T00:00:00",
"TRKey": 100000038,
"CNKey": 90,
"CTKey": 35,
"NMen": 2,
"Price": 877,
"Payed": 0,
"NDay": 9,
"MainMan": "",
"MainManPhone": "",
"MainManAddress": "",
"MainManPassport": "",
"PartnerKey": 10762,
"Operator": "Megatec ",
"Discount": 40,
"DiscountSum": 80,
"SORCode": 3,
"CrDate": "2020-10-12T15:02:29.013",
"Rate": "$",
"Advertise": 0,
"Locked": null,
"CauseDisc": null,
"PPaymentDate": null,
"PaymentDate": "2020-10-14T00:00:00",
"Procent": 1,
"TurDateBfrAnnul": null,
"ARKey": 0,
"Key": 40335,
"CodePartner": null,
"FilialKey": 1,
"IsOutDoc": 0,
"Notes": null,
"DiscSumBfrAnn": null,
"PriceBfrAnn": null,
"RazmerP": 0,
"LeadDepartment": 0,
"MainManEmail": "test@megatec.ru",
"MainManComment": "",
"DupUserKey": 6,
"BTKey": 1,
"ConfirmedDate": null,
"PrtDogKey": 11,
"CTDepartureKey": 1,
"PDTType": 0,
"NationalCurrencyPrice": null,
"NationalCurrencyDiscountSum": null,
"NationalCurrencyPayed": null,
"CurrencyKey": null,
"CurrencyRate": null,
"ClientKey": null,
"Partner": {
"$id": 2,
"Key": 10762,
"FullName": "Агентство",
"Name": "Агентство"
},
"Services": [{
"$id": 3,
"DGCod": "AU10101003",
"TurDate": "2021-01-01T00:00:00",
"Key": 202463,
"PaketKey": 209,
"TRKey": 100000038,
"SVKey": 1,
"Name": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс",
"Day": 1,
"Code": 570,
"SubCode1": 67,
"SubCode2": 1,
"Men": 2,
"Days": 0,
"CNKey": 90,
"CTKey": 35,
"PartnerKey": 10760,
"Brutto": 162.2,
"Wait": null,
"Warning": 0,
"TimeBeg": "1899-01-01T14:00:00",
"Control": 1,
"Attribute": 65695,
"DateBeg": "2021-01-01T00:00:00",
"DateEnd": "2021-01-01T00:00:00",
"Discount": 14.8,
"Comment": null,
"DGKey": 40335,
"Blocked": null,
"NameLat": "А_П::Москва/Вена/00444, DME-VIE, 14:00-16:30/C Бизнес класс",
"Long": 9,
"TRFId": 0,
"CreateDate": "2020-10-12T15:02:29.013",
"CalculatePriceDate": "2020-10-12T15:02:29.013",
"ShowOrder": 1,
"Connections": [{
"$ref": 1
}
]
}, {
"$id": 4,
"DGCod": "AU10101003",
"TurDate": "2021-01-01T00:00:00",
"Key": 202462,
"PaketKey": 209,
"TRKey": 100000038,
"SVKey": 3,
"Name": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион",
"Day": 1,
"Code": 702,
"SubCode1": 1113,
"SubCode2": 2,
"Men": 2,
"Days": 8,
"CNKey": 90,
"CTKey": 35,
"PartnerKey": 10760,
"Brutto": 519.6,
"Wait": null,
"Warning": 0,
"TimeBeg": "1899-01-01T16:30:00",
"Control": 1,
"Attribute": 65695,
"DateBeg": "2021-01-01T00:00:00",
"DateEnd": "2021-01-08T00:00:00",
"Discount": 47.4,
"Comment": null,
"DGKey": 40335,
"Blocked": null,
"NameLat": "HOTEL::Вена/Albatros-1*,8 ночей/Double(Standart),2 Adult/HB Полупансион",
"Long": 9,
"TRFId": 0,
"CreateDate": "2020-10-12T15:02:29.013",
"CalculatePriceDate": "2020-10-12T15:02:29.013",
"ShowOrder": 2,
"Connections": [{
"$ref": 1
}
]
}, {
"$id": 5,
"DGCod": "AU10101003",
"TurDate": "2021-01-01T00:00:00",
"Key": 202461,
"PaketKey": 209,
"TRKey": 100000038,
"SVKey": 1,
"Name": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс",
"Day": 9,
"Code": 572,
"SubCode1": 67,
"SubCode2": 35,
"Men": 2,
"Days": 0,
"CNKey": 460,
"CTKey": 1,
"PartnerKey": 10760,
"Brutto": 195.2,
"Wait": null,
"Warning": 0,
"TimeBeg": "1899-01-01T14:00:00",
"Control": 1,
"Attribute": 65695,
"DateBeg": "2021-01-09T00:00:00",
"DateEnd": "2021-01-09T00:00:00",
"Discount": 17.8,
"Comment": null,
"DGKey": 40335,
"Blocked": null,
"NameLat": "А_П::Вена/Москва/00444, VIE-SV1, 14:00-16:45/C Бизнес класс",
"Long": 9,
"TRFId": 0,
"CreateDate": "2020-10-12T15:02:29.013",
"CalculatePriceDate": "2020-10-12T15:02:29.013",
"ShowOrder": 3,
"Connections": [{
"$ref": 1
}
]
}
],
"Turists": [{
"$id": 6,
"DGCod": "AU10101003",
"Key": 88653,
"TurDate": "2021-01-01T00:00:00",
"NameRus": "IVANOV",
"NameLat": "IVANOV",
"ShortName": "I.",
"Sex": 0,
"FNameRus": "IVAN",
"FNameLat": "IVAN",
"SNameRus": "",
"SNameLat": "",
"BirthDay": "1980-01-01T00:00:00",
"BirthCountry": null,
"BirthCity": "Москва",
"Citizen": "",
"PostIndex": null,
"PostCity": null,
"PostStreet": null,
"PostBild": null,
"PostFlat": null,
"Phone": "",
"PhoneCode": null,
"PasportType": "",
"PasportNum": "",
"PasportDate": null,
"PasportDateEnd": null,
"PasportByWhom": "",
"Place": null,
"IsAnketa": null,
"PaspRuser": "",
"PaspRuNum": "",
"PaspRuDate": null,
"PaspRuByWhom": "",
"ClientId": null,
"IsMain": 1,
"DGKey": 40335,
"RealSex": 0,
"Email": "",
"EnableSmsNotifications": 0,
"CitizenId": "",
"Connections": [{
"$ref": 1
}
]
}, {
"$id": 7,
"DGCod": "AU10101003",
"Key": 88652,
"TurDate": "2021-01-01T00:00:00",
"NameRus": "PETROV",
"NameLat": "PETROV",
"ShortName": "P.",
"Sex": 0,
"FNameRus": "PETR",
"FNameLat": "PETR",
"SNameRus": "",
"SNameLat": "",
"BirthDay": "1981-01-01T00:00:00",
"BirthCountry": null,
"BirthCity": "Москва",
"Citizen": "",
"PostIndex": null,
"PostCity": null,
"PostStreet": null,
"PostBild": null,
"PostFlat": null,
"Phone": "",
"PhoneCode": null,
"PasportType": "",
"PasportNum": "",
"PasportDate": null,
"PasportDateEnd": null,
"PasportByWhom": "",
"Place": null,
"IsAnketa": null,
"PaspRuser": "",
"PaspRuNum": "",
"PaspRuDate": null,
"PaspRuByWhom": "",
"ClientId": null,
"IsMain": 0,
"DGKey": 40335,
"RealSex": 0,
"Email": "",
"EnableSmsNotifications": 0,
"CitizenId": "",
"Connections": [{
"$ref": 1
}
]
}
],
"TuristServices": [{
"$id": 8,
"TUKey": 88653,
"DLKey": 202463,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3770,
"Connections": [{
"$ref": 1
}, {
"$ref": 3
}, {
"$ref": 6
}
]
}, {
"$id": 9,
"TUKey": 88652,
"DLKey": 202463,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3768,
"Connections": [{
"$ref": 1
}, {
"$ref": 3
}, {
"$ref": 7
}
]
}, {
"$id": 10,
"TUKey": 88652,
"DLKey": 202462,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3767,
"Connections": [{
"$ref": 1
}, {
"$ref": 4
}, {
"$ref": 7
}
]
}, {
"$id": 11,
"TUKey": 88653,
"DLKey": 202462,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3771,
"Connections": [{
"$ref": 1
}, {
"$ref": 4
}, {
"$ref": 6
}
]
}, {
"$id": 12,
"TUKey": 88653,
"DLKey": 202461,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3772,
"Connections": [{
"$ref": 1
}, {
"$ref": 5
}, {
"$ref": 6
}
]
}, {
"$id": 13,
"TUKey": 88652,
"DLKey": 202461,
"NumDoc": null,
"NumRoom": 0,
"Seat": null,
"Area": null,
"DocDate": null,
"Key": 3769,
"Connections": [{
"$ref": 1
}, {
"$ref": 5
}, {
"$ref": 7
}
]
}
],
"DogovorMessages": [{
"$id": 14,
"Date": "2020-10-09T09:16:39.99",
"Text": "Тайм-лимит забронированного перелета: 14.10.2020 21:59",
"Remark": "TimeLimit",
"Connections": [{
"$ref": 1
}
]
}
]
}
|
Выгрузка информации о ценовых блоках (CostOfferDescriptions)
Метод принимает на вход ключи ценовых блоков и возвращает, прикреплённое к ним описание.
- Формат запроса:
- GET .../TourSearchOwin/CostOfferDescriptions?
- Принимаемые параметры ( * – обязательный):
- COKeysString * – ключи ценовых блоков через запятую
- Возвращаемый результат:
- CostOfferImageInfo – коллекция объектов из двух полей:
- IdCostOffer – ключ ценового блока
- InfoText – описание ценового блока
- CostOfferImageInfo – коллекция объектов из двух полей:
Вызов метода CostOfferDescriptions GET http://localhost:9000/TourSearchOwin/CostOfferDescriptions?COKeysString=15143
Возвращаемый результат метода CostOfferDescriptions (в формате JSON) [
{
"CostOfferImageInfo": {
"IdCostOffer": 15143,
"InfoText": "СПО до 01.01.2020"
},
}
]
|
Получение капчи (GetCaptcha)
Метод возвращает капчу (используется при регистрации частного лица).
- Формат запроса:
- GET .../TourSearchOwin/GetCaptcha?
- Принимаемые параметры ( * – обязательный):
- sessionId * – Id сессии
- Возвращаемый результат:
- FileContents – файл капчи в бинарном виде
- ContentType – расширение файла (image/jpeg)
- FileDownloadName – имя файла
Вызов метода GetCaptcha GET http://localhost:9000/TourSearchOwin/GetCaptcha?sessionId=cd5yr3wftltmorphuzwx0krh
Возвращаемый результат метода GetCaptcha (в формате JSON) {
"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": ""
}
|
Проверка капчи (CheckCaptcha)
Метод проверяет введенную капчу (используется при регистрации частного лица).
- Формат запроса:
- GET .../TourSearchOwin/CheckCaptcha?
- Принимаемые параметры ( * – обязательный):
- captchaText * – текст капчи
- sessionId * – Id сессии
- Возвращаемый результат:
- true/false – результат проверки (false – капча или Id сессии неверные, true – капча верна)
Вызов метода CheckCaptcha GET http://localhost:9000/TourSearchOwin/CheckCaptcha?captchaText=vf8an&sessionId=cd5yr3wftltmorphuzwx0krh
Возвращаемый результат метода CheckCaptcha (в формате JSON) {
true
}
|
Проверка e-mail (CheckMail)
Метод проверяет e-mail при регистрации частного лица на существование такого же e-mail в базе данных.
- Формат запроса:
- GET .../TourSearchOwin/CheckMail?
- Принимаемые параметры ( * – обязательный):
- mail * – e-mail пользователя
- Возвращаемый результат:
- true/false – результат проверки (false – пользователь с таким e-mail уже существует, true – пользователь с таким e-mail нет в базе данных)
Вызов метода CheckMail GET http://localhost:9000/TourSearchOwin/CheckMail?mail=test@megatec.ru
Возвращаемый результат метода CheckMail (в формате JSON) {
true
}
|
Проверка туриста (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 – квартира.
Вызов метода checkTourist http://localhost:9000/TourSearchOwin/checkTourist?dogovorNumber=AU25120001&passport=1234567
Возвращаемый результат метода checkTourist (в формате JSON) {
"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"
}
}
|
Список значений параметра гражданства (Citizenships)
Метод служит для получения списка значений параметра гражданства.
- Формат запроса:
- GET .../TourSearchOwin/Citizenships?
- Принимаемые параметры ( * – обязательный):
- pageSize * – размер выдачи
- pageNumber * – порядковый номер страницы выдачи
- term * – подстрочный фильтр для отбора (пустой по умолчанию)
- Возвращаемый результат:
- Key – ключ страны
- Name – название гражданства
Вызов метода Citizenships http://localhost:9000/TourSearchOwin/Citizenships?pageSize=50&pageNumber=1&term=
Возвращаемый результат метода Citizenships (в формате JSON) {
{
"Key": 90,
"Name": "Австрия"
},
{
"Key": 222,
"Name": "Англия"
},
{
"Key": 376,
"Name": "Андорра"
},
{
"Key": 375,
"Name": "Беларусь"
},
{
"Key": 3,
"Name": "Бельгия"
}
}
|
Выгрузка постоянного клиента (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 – информация о дисконтной карте
Вызов метода Client http://localhost:9000/TourSearchOwin/Client?clientId=7314
Возвращаемый результат метода Client (в формате JSON) {
"$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": []
}
|
Выгрузка описаний ценовых блоков (CostOfferDescriptions)
Метод выгружает описания ценовых блоков.
- Формат запроса:
- GET .../TourSearchOwin/CostOfferDescriptions?
- Принимаемые параметры ( * – обязательный):
- COKeysString * – ключи ценовых блоков
- Возвращаемый результат:
- IdCostOffer – Id ценового блока
- InfoText – описание ценового блока
Вызов метода CostOfferDescriptions http://localhost:9000/TourSearchOwin/CostOfferDescriptions?COKeysString=16834,16828
Возвращаемый результат метода CostOfferDescriptions (в формате JSON) {
"costOffersImageInformation": [
{
"IdCostOffer": 16834,
"InfoText": "Информация для онлайна 2"
},
{
"IdCostOffer": 16828,
"InfoText": "Информация для онлайна"
},
]
}
|
Выгрузка описания по стране (CountryInfo)
Метод выгружает описание по стране.
- Формат запроса:
- GET .../TourSearchOwin/CountryInfo?
- Принимаемые параметры ( * – обязательный):
- countryKey * – ключ страны
- Возвращаемый результат:
- информация по выбранной стране
Вызов метода CountryInfo http://localhost:9000/TourSearchOwin/CountryInfo?countryKey=90
Возвращаемый результат метода CountryInfo (в формате JSON) {
"<p>Информация о стране</p>\n"
}
|
Выгрузка картинки по отелю (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)
- Images – объект картинок
Вызов метода HotelImages http://localhost:9000/TourSearchOwin/HotelImages?hotelKeys=8660&hotelKeys=178
Возвращаемый результат метода HotelImages (в формате JSON) [
{
"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
}
]
|
Вызов метода HotelImages http://localhost:9000/TourSearchOwin/HotelImages?hotelKey=178
Возвращаемый результат метода HotelImages (в формате JSON) {
"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°"
}
|
Отображение картинки в браузере (GetImage)
Данный метод реализован не на API, а внутри самого приложения (Canary или TourSearchClient) и отображает картинку, полученную в методе HotelImages.
- Формат запроса:
- Принимаемые параметры ( * – обязательный):
- code * – ключ отеля
- type * – размер картинки (возможные значения: small1, small160x90, medium, big)
- name * – название файла (берется из метода HotelImages)
- imageType * – тип картинки (возможные значения: hotels, tours)
- Возвращаемый результат:
- изображение картинки отеля
Вызов метода GetImage http://localhost/Canary/Image/GetImage?code=134049&type=small160x90&name=PalaceResort.webp&imageType=hotels
Возвращаемый результат метода GetImage и виде картинки |
Выгрузка картинки по туру (TourImages)
Метод выгружает картинки по туру.
- Формат запроса:
- GET .../TourSearchOwin/TourImages?
- Принимаемые параметры ( * – обязательный):
- tourKeys * – ключ тура (можно передать несколько ключей тура, каждый раз указывая параметр tourKeys)
- Возвращаемый результат:
- Images – объект картинок
- Key – ключ картинки
- Description – описание картинки
- Priority – приоритет
- Name – название файла
- TourKey – ключ тура
- Images – объект картинок
Вызов метода TourImages http://localhost:9000/TourSearchOwin/TourImages?tourKey=100001132
Возвращаемый результат метода TourImages (в формате JSON) {
"Images": [
{
"Key": 52,
"Description": "Московский планетарий",
"Priority": 1,
"Name": "Планетарий.jpg",
"TourKey": 100001132
},
{
"Key": 51,
"Description": "Вид из космоса",
"Priority": 2,
"Name": "Вид из космоса.jpg",
"TourKey": 100001132
}
]
}
|
Отображение картинки в браузере (GetImage)
Данный метод реализован не на API, а внутри самого приложения (Canary или TourSearchClient) и отображает картинку, полученную в методе TourImages.
- Формат запроса:
- Принимаемые параметры ( * – обязательный):
- code * – ключ тура
- type * – размер картинки (возможные значения: small1, small160x90, medium, big)
- name * – название файла (берется из метода TourImages)
- imageType * – тип картинки (возможные значения: hotels, tours)
- Возвращаемый результат:
- изображение картинки отеля
Вызов метода GetImage http://localhost/Canary/Image/GetImage?code=005485049&type=small160x90&name=TheBestTour.webp&imageType=tours
Возвращаемый результат метода GetImage и виде картинки |
Регистрация частного лица (PersonalRegistration)
Метод производит регистрацию частного лица.
- Формат запроса:
- GET .../TourSearchOwin/PersonalRegistration?
- Принимаемые параметры ( * – обязательный):
- name * – имя
- surname * – фамилия
- phone * – телефон
- login * – e-mail (он же является логином). Предварительно нужно вызывать метод проверки e-mail CheckMail
- password * – пароль (при упрощенной регистрации пароль не передается, а формируется системой автоматически)
- citizen * – гражданство (возможна передача пустого значения)
- country * – страна (возможна передача пустого значения)
- city * – город (возможна передача пустого значения)
- address * – адрес (возможна передача пустого значения)
- comment * – комментарий (возможна передача пустого значения)
- captchaText * – текст капчи. Предварительно нужно вызывать метод получения капчи GetCaptcha
- sessionId * – Id сессии (возможна передача произвольного значения)
- Возвращаемый результат:
- SxotpFhg – сформированный (при упрощенной регистрации) или заданный пользователем пароль
Вызов метода PersonalRegistration http://localhost:9000/TourSearchOwin/PersonalRegistration?name=Иван&surname=Иванов&phone=+79991234568&login=test1222@mail.ru
&citizen=&country=&city=&address=&comment=&captchaText=v7jnj&sessionId=43angzdfbc5h2wud1lp1301j
Возвращаемый результат метода PersonalRegistration (в формате JSON) {
"SxotpFhg"
}
|
Выгрузка плана рассадки (TransportPlan)
Метод выгружает план рассадки транспортного средства.
- Формат запроса:
- GET .../TourSearchOwin/TransportPlan?
- Принимаемые параметры ( * – обязательный):
- code * – код услуги
- dateBegin * – дата начала услуги
- serviceType * – класс услуги
- transportKey * – ключ транспорта
- Возвращаемый результат:
- TransportKey – ключ транспорта
- Title – название
- AreasCount – количество зон (уровней)
- RowsCount – количество рядов
- ColumnsCount – количество колонок
- BusySeats – информация о занятых местах
- Cells – блок не заполняется
- Row – ряд
- Column – колонка
- Area – уровень
- Type – тип места (1 - свободно, 5 - занято)
- Name – номер места
- UserSeats – блок не заполняется
- BlockSeat – блок не заполняется
Вызов метода TransportPlan http://localhost:9000/TourSearchOwin/TransportPlan?code=1527&dateBegin=07.03.2021&serviceType=14&transportKey=31
&citizen=&country=&city=&address=&comment=&captchaText=v7jnj&sessionId=43angzdfbc5h2wud1lp1301j
Возвращаемый результат метода TransportPlan (в формате JSON) {
"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": {}
}
|
Выгрузка списка всех стран (Countries)
Метод производит выгрузку всех стран (используется для регистрации частного лица).
- Формат запроса:
- GET .../TourSearchOwin/Countries?
- Принимаемые параметры ( * – обязательный):
- term * – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Key – ключ страны
- Name – название
Вызов метода Countries http://localhost:9000/TourSearchOwin/Countries?term=
Возвращаемый результат метода Countries (в формате JSON) [
{
"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": "Япония"
}
]
|
Выгрузка списка всех городов (Cities)
Метод производит выгрузку всех городов (используется для регистрации частного лица).
- Формат запроса:
- GET .../TourSearchOwin/Cities?
- Принимаемые параметры ( * – обязательный):
- countryKey * – ключ страны, по которой выгружать города (при значении -1 выгружаются все города)
- term * – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Key – ключ города
- Name – название
Вызов метода Cities http://localhost:9000/TourSearchOwin/Cities?countryKey=460&term=
Возвращаемый результат метода Cities (в формате JSON) [
{
"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": "Ясный"
}
]
|
Выгрузка городов отправления в оформлении клиентов (RegistrationClientsDepartureCities)
Метод производит выгрузку городов отправления в оформлении клиентов.
- Формат запроса:
- GET .../TourSearchOwin/RegistrationClientsDepartureCities?
- Принимаемые параметры ( * – обязательный):
- term * – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- withoutFlight – перевод для ключа -1 (Без перелета)
- Возвращаемый результат:
- Key – ключ города
- Name – название
- IsExist – информация о том, есть ли в этом городе отправления актуальные программы туров (true/false)
Вызов метода RegistrationClientsDepartureCities http://localhost:9000/TourSearchOwin/RegistrationClientsDepartureCities?term=&withoutFlight=Без перелета
Возвращаемый результат метода RegistrationClientsDepartureCities (в формате JSON) [
{
"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
}
]
|
Выгрузка стран в оформлении клиентов (RegistrationClientsDestination)
Метод производит выгрузку стран в оформлении клиентов.
- Формат запроса:
- GET .../TourSearchOwin/RegistrationClientsDestination?
- Принимаемые параметры ( * – обязательный):
- departureCity * – ключ города отправления (из контроллера .../TourSearchOwin/RegistrationClientsDepartureCities?)
- term * – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- Возвращаемый результат:
- Name – название
- Key – ключ страны
- DestinationType – тип результата (всегда возвращается в JSON = 1, в xml = country)
- IsExist – информация о том, есть ли в этой стране актуальные программы туров (true/false)
Вызов метода RegistrationClientsDestination http://localhost:9000/TourSearchOwin/RegistrationClientsDestination?departureCity=1&term=
Возвращаемый результат метода RegistrationClientsDestination (в формате JSON) [
{
"Name": "Австрия",
"Key": 90,
"DestinationType": 1,
"IsExist": true
},
{
"Name": "Англия",
"Key": 222,
"DestinationType": 1,
"IsExist": true
},
{
"Name": "Беларусь",
"Key": 375,
"DestinationType": 1,
"IsExist": true
}
]
|
Выгрузка турпрограмм в оформлении клиентов (RegistrationClientsTourPrograms)
Метод производит выгрузку турпрограмм в оформлении клиентов.
- Формат запроса:
- GET .../TourSearchOwin/RegistrationClientsTourPrograms?
- Принимаемые параметры ( * – обязательный):
- departureCity * – ключ города отправления (из контроллера .../TourSearchOwin/RegistrationClientsDepartureCities?)
- destination * – ключ страны (из контроллера .../TourSearchOwin/RegistrationClientsDestination?)
- destinationType * – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
- term * – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
- individualTitle – перевод для программы тура с ключом 0 (Индивидуально)
- Возвращаемый результат:
- Key – ключ программы туров
- Name – название программы туров
- Rate – валюта тура
Вызов метода RegistrationClientsTourPrograms http://localhost:9000/TourSearchOwin/RegistrationClientsTourPrograms?departureCity=1&destination=90&destinationType=1&individualTitle=Индивидуально&term=
Возвращаемый результат метода RegistrationClientsTourPrograms (в формате JSON) [
{
"Key": 0,
"Name": "Индивидуально",
"Rate": ""
},
{
"Key": 100003415,
"Name": "Aviabooking",
"Rate": "EU"
},
{
"Key": 100003416,
"Name": "Общая проверка системы",
"Rate": "EU"
}
]
|
Выгрузка дат заезда в оформлении клиентов (RegistrationClientsTourDate)
Метод производит выгрузку дат заезда в оформлении клиентов.
- Формат запроса:
- GET .../TourSearchOwin/RegistrationClientsTourDate?
- Принимаемые параметры ( * – обязательный):
- tourKey * – ключ программы тура
- Возвращаемый результат:
- массив дат
Вызов метода RegistrationClientsTourDate http://localhost:9000/TourSearchOwin/RegistrationClientsTourDate?tourKey=100006755
Возвращаемый результат метода RegistrationClientsTourDate (в формате JSON) [
"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"
]
|
Поиск туров в оформлении клиентов (Search)
Метод возвращает наиболее дешевое предложения по определенному туру.
- Формат запроса:
- GET .../TourSearchOwin/RegistrationClient/Search?
- Принимаемые параметры ( * – обязательный):
- DepartureCityKeys * – ключ города отправления (из контроллера .../TourSearchOwin/RegistrationClientsDepartureCities?)
- Dates * – дата заезда (из контроллера .../TourSearchOwin/RegistrationClientsTourDate?)
- Durations * – продолжительность
- PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
- PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
- isFromBasket * – всегда false
- isFillSecondaryFilters – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
- DestinationType * – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
- DestinationKey * – идентификатор страны прибытия (из контроллера .../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 – условия бронирования программы туров
- StartDate – дата начала тура
- Duration – продолжительность тура (в днях)
- DurationInNight – продолжительность проживания (в ночах)
- Types – идентификатор типа туров
- Cost – цена тура
- Rate – код валюты тура
- 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 – название
- Tariff – информация о тарифе перелета
- FlightSetting – внутренняя информация о перелете из программы туров
- ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
- PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- FlightId – идентификатор перелета (внутренняя информация из программы туров)
- FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- DepartureCity – город отправления
- NotRouteServices – массив коллекций немаршрутных услуг (например если две экскурсии будут являться одним элементом массива, то это будет говорить о том, что эти экскурсии можно будет выбрать в выпадающем списке)
- ServiceName – название типа услуги
- City – объект город
- Key – ключ города
- Value – название города
- Country – объект страна
- Key – ключ страны
- Value – название страны
- Code – объект код услуги
- Key – ключ услуги
- Value – название услуги
- ByScheduler – флаг услуга по расписанию или нет
- Details – объект детализация услуги
- SubCode1 – объект доп. описание 1
- Key – ключ доп. описания 1
- Value – название доп. описания 1
- SubCode2 – объект доп. описание 2
- Key – ключ доп. описания 2
- Value – название доп. описания 2
- Date – дата услуги
- IsShowTransportPlan – признак показывать ли план рассадки (для автобусов)
- Cost – цена
- QuotaStatus – объект информация по квотам
- PlacesStatus – статус по квотам (есть места / нет мест / под запрос)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – идентификатор партнера
- ByPax – признак цены за человека
- Partner – объект партнер (не заполняется)
- Key – ключ (не заполняется)
- Value – название (не заполняется)
- SubCode1 – объект доп. описание 1
- ParentId – идентификатор родительской услуги (для вложенных услуг)
- PartnerBasedOnServiceTemplateId – ключ шаблона услуги, по которой приоритетно выбирается партнер текущей услуги
- Id – идентификатор услуги
- SvKey – ключ типа услуги
- IsSubCode1 – наличие доп. описания 1
- IsSubCode2 – наличие доп. описания 2
- IsPartnerBasedOn – услуга с подбором приоритетного поставщика услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- EndDateTime – дата окончания услуги
- IsHooded – скрытая ли услуга
- IsDeleted – удаляемая ли услуга
- IsNotCalculate – не рассчитываемая ли услуга
- PacketId – пакет услуги
- Index – индекс услуги
- MinCostServicesComposition – массив состав услуг минимальной цены
- Key – ключ
- TemplateId – идентификатор шаблона
- PatternId – идентификатор вкладки
- SettingId – идентификатор услуги
- Value – значение
- ServiceType – тип услуги
- Code – ключ услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- PacketId – пакет услуги
- PartnerId – партнер услуги
- CountryId – страна услуги
- CityId – город услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- COAndSpecialsInfo – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков
- AppliedCostOffersKeys – коллекция идентификаторов всех применённых ценовых блоков к одной цене
- AppliedSpeciasInfo – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция
- SpecialKey – ключ акции
- SpecialName – название акции
- SpecialType – тип акции
- NewPrice – цена после применения акции
- OldPrice – цена до применения акции
- ShowOnline – нужно ли показывать акцию в поиске
- UntilDate – акция действует при совершении покупки до указанной даты
- Condition – json форма условия применения акции. Данное поле включает в себя следующие значения в зависимости от типа акции:
- NightsFrom (для типа PayStay) – ночей от
- NightsTo (для типа PayStay) – ночей до
- NightValue (для типа PayStay) – значение ночи, которое соответствует заданному периоду
- OperationType (для типа PayStay) – тип действия
- SpecialNightType (для типа PayStay) – тип бесплатной ночи
- DurationFrom (для типа KickBack) – ночей от
- DurationTo (для типа KickBack) – ночей до
- Value (для типа KickBack) – значение продолжительности, равное заданному периоду
- OperationType (для типа KickBack) – тип действия
- NightsFrom (для типа EarlyBird) – ночей от
- NightsTo (для типа EarlyBird) – ночей до
- Discount (для типа EarlyBird) – размер скидки
- OperationType (для типа EarlyBird) – тип действия
- COBySubCode – список применённых идентификаторов ценовых блоков по SubCode1 и SubCode2
- SpecialsBySubCode – список применённых акций по SubCode1 и SubCode2
- SubCode1 – объект доп. описание 1
- SubCode2 – объект доп. описание 2
- Key – ключ
- FlightWeight –
- LinkingFlightsRules – объект правил связывания
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- airlines – авиакомпании
- flightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- checkPlusMinus1CharterRule – объект Отличие номера рейса на 1
- FlightSettingPairs – массив чартеров, для которых это правило будет выполняться
- enabled – флаг включен/выключен
- notCombineDifferentTariffGroupRule – объект не комбинировать рейсы от разных классов перелетов
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentPartnerRule – объект не комбинировать рейсы от разных партнеров
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- departureCityEqualsArrivalCityRule – объект Город вылета = городу прилета
- FlightSettingPairs – чартеры, для которых это будет выполняться
- enabled – флаг включен/выключен
- combineOnlySpecificChartersRule – объект не комбинировать различные классы перелетов
- settings – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- RouteSubVariants – подварианты услуг (используется в основном поиске)
- SecondaryFiltersResult – результаты доп. фильтров
- TourTypes – типы тура
- Id – ключ типа тура
- Name – название типа тура
- ParentId – родительский элемент типа тура (если есть)
- Type – тип справочника (используется для внутренних целей)
- TourPrograms – информация по каждой турпрограмме
- Key – ключ турпрограммы
- Name – название турпрограммы
- TourUrl – ссылка на тур
- BookingConditions – условия бронирования
- IsLandOnly – признак только наземное обслуживание
- IsRestrictMultiHotels – ограничивать ли расчёт многоотельных туров категориями отелей
- IsHotelTemplates – есть ли вообще отели в данной турпрограмме
- IsRouteServices – есть ли маршрутные услуги
- MultiHotelDelta – Значение отклонения звездности последующих отелей от первого отеля в многоотельном туре. По умолчанию 0. Звездность определяется числом, заданном в поле порядок при печати.
- Rate – валюта тура
- DateStart – нижняя граница дат заезда по программе тура
- DateEnd – верхняя граница дат заеда по программе тура
- Status – статус турпрограммы
- Key – ключ
- Value – значение
- Templates – шаблоны услуг
- $id – шаблон 1
- $id – шаблон 2
- Types – типы тура
- Id – ключ типа тура
- Name – название типа тура
- ParentId – родительский элемент типа тура (если есть)
- Type – тип справочника (используется для внутренних целей)
- LinkingFlightsRules – правила связывания перелетов
- notCombineDifferentAirlineRule –
- airlines –
- flightSettings –
- enabled –
- checkPlusMinus1CharterRule –
- FlightSettingPairs –
- enabled –
- notCombineDifferentTariffGroupRule –
- FlightSettings –
- enabled –
- notCombineDifferentPartnerRule –
- FlightSettings –
- enabled –
- departureCityEqualsArrivalCityRule –
- FlightSettingPairs –
- enabled –
- combineOnlySpecificChartersRule –
- settings –
- enabled –
- notCombineDifferentAirlineRule –
- Type – тип справочника (используется для внутренних целей)
- TourDurations – продолжительность тура
- TourDates – список дат заездов в турпрограмме
- HotelCities – город в дополнительных фильтрах
- ' –
- HotelResorts – курорты в дополнительных фильтрах
- ' –
- HotelCategories – категории отеля в дополнительных фильтрах
- ' –
- Hotels – отели в дополнительных фильтрах
- ' –
- Pansions – питания в дополнительных фильтрах
- ' –
- Airlines – авиакомпании в дополнительных фильтрах
- ' –
- FlightTariffs – класс перелета в дополнительных фильтрах
- ' –
- DepartureCities – города вылета в дополнительных фильтрах
- ' –
- DepartureAirports – аэропорты вылета в дополнительных фильтрах
- ' –
- ArrivalCities – города прибытия в дополнительных фильтрах
- ' –
- ArrivalAirports – аэропорты прибытия в дополнительных фильтрах
- ' –
- HotelTypes – признаки отелей в дополнительных фильтрах
- ' –
- HotelCities – город в дополнительных фильтрах
- TourTypes – типы тура
Вызов метода RegistrationClient/Search 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=
Возвращаемый результат метода RegistrationClient/Search (в формате JSON) {
"CheckMessages": null,
"Message": {
"Key": 0,
"Value": null
},
"Result": [
{
"Key": 100000004,
"Name": "Общая проверка системы",
"TourUrl": "www.megatec.ru",
"BookingConditions": "<p>Условия бронирования тура.<\/p>",
"StartDate": "2018-02-25T00:00:00",
"Duration": 4,
"DurationInNight": 3,
"Types": [2],
"Cost": 260,
"Rate": "EU",
"CityDepature": {
"Key": 1,
"Value": "Москва"
},
"Country": {
"Key": 90,
"Value": "Австрия"
},
"Services": [
{
"DepartureCity": {
"Key": 1,
"Value": "Москва"
},
"DepartureCountry": {
"Key": 460,
"Value": "Россия"
},
"ArrivalCity": {
"Key": 35,
"Value": "Вена"
},
"ArrivalCountry": {
"Key": 90,
"Value": "Австрия"
},
"DepartureAirport": {
"Key": "SVO4",
"Value": "Шереметьево-24"
},
"ArrivalAirport": {
"Key": "VIE1",
"Value": "Vena1"
},
"Airline": {
"Key": "BA7",
"Value": "BRITISH AIRWAYS"
},
"Aircraft": {
"Key": "319",
"Value": "AIRBUS "
},
"Flight": {
"Key": 882,
"Value": "4444"
},
"DepartureTime": "10:00:00",
"ArrivalTime": "12:00:00",
"EndDateTime": "2018-02-25T12:00:00",
"FlightDetails": [ {
"Tariff": {
"Key": 89,
"Code": "Y",
"Name": "Экономический класс"
},
"Cost": 10,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12668,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"FlightSetting": {
"ServiceId": 3,
"PatternId": 13,
"FlightId": 13
},
"FlightSourceMode": 1,
"Id": 3,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-02-25T10:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 0
},
{
"Hotel": {
"Key": 709,
"Value": "Am Brilliantengrund"
},
"City": {
"Key": 35,
"Value": "Вена"
},
"Stars": {
"Key": -1,
"Value": null
},
"Resort": {
"Key": -1,
"Value": null
},
"ImageURL": "",
"Http": null,
"Description": "",
"Country": {
"Key": 90,
"Value": "Австрия"
},
"HotelDetails": [ {
"HotelRoom": 46463,
"Room": {
"Key": 129,
"Value": "DBL"
},
"RoomCategory": {
"Key": 3493,
"Value": "Cosy"
},
"AccomodationType": {
"Key": 1256,
"Value": "2+1_K",
"AdultCount": 2,
"ChildCount": 1
},
"Pansion": {
"Key": 4,
"Value": "Завтрак"
},
"Cost": 19.47,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12667,
"ByPax": false,
"Partner": {
"Key": 12667,
"Value": "Партнер-покупатель1"
}
}],
"HotelTypes": [ {
"Key": 5,
"Value": "Рекомендуемые"
}],
"Id": 1,
"SvKey": 3,
"IsSubCode1": true,
"IsSubCode2": true,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 3,
"BeginDateTime": "2018-02-25T12:00:00",
"EndDateTime": "2018-02-28T12:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 1
},
{
"DepartureCity": {
"Key": 35,
"Value": "Вена"
},
"DepartureCountry": {
"Key": 90,
"Value": "Австрия"
},
"ArrivalCity": {
"Key": 1,
"Value": "Москва"
},
"ArrivalCountry": {
"Key": 460,
"Value": "Россия"
},
"DepartureAirport": {
"Key": "VIE1",
"Value": "Vena1"
},
"ArrivalAirport": {
"Key": "DME",
"Value": "Домодедово"
},
"Airline": {
"Key": "7U",
"Value": "Авиаэнерго"
},
"Aircraft": {
"Key": "727",
"Value": "Boeing"
},
"Flight": {
"Key": 774,
"Value": "222"
},
"DepartureTime": "00:00:00",
"ArrivalTime": "00:00:00",
"EndDateTime": "2018-02-28T00:00:00",
"FlightDetails": [ {
"Tariff": {
"Key": 89,
"Code": "Y",
"Name": "Экономический класс"
},
"Cost": 0,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 10760,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"FlightSetting": {
"ServiceId": 4,
"PatternId": 5,
"FlightId": 4
},
"FlightSourceMode": 1,
"Id": 4,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 4,
"DurationInNight": 0,
"BeginDateTime": "2018-02-28T00:00:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 779,
"Index": 4
}
],
"NotRouteServices": [
[ {
"ServiceName": "страховка",
"City": null,
"Country": 6245,
"Code": {
"Key": 297,
"Value": "Страховка от несчастного случая"
},
"ByScheduler": false,
"Details": [ {
"SubCode1": {
"Key": 18,
"Value": "2"
},
"SubCode2": {
"Key": null,
"Value": ""
},
"Date": null,
"IsShowTransportPlan": true,
"Cost": 16,
"QuotaStatus": {
"PlacesStatus": 1,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12668,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"ParentId": null,
"PartnerBasedOnServiceTemplateId": null,
"Id": 10,
"SvKey": 6,
"IsSubCode1": true,
"IsSubCode2": true,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 3,
"BeginDateTime": "2018-02-25T00:00:00",
"EndDateTime": "2018-02-28T00:00:00",
"IsHooded": false,
"IsDeleted": true,
"IsNotCalculate": true,
"PacketId": 882,
"Index": 2
}],
[ {
"ServiceName": "экскурсия",
"City": {
"Key": 1046,
"Value": "Санто-Доминго"
},
"Country": {
"Key": 6245,
"Value": "Испания"
},
"Code": {
"Key": 743,
"Value": "4"
},
"ByScheduler": false,
"Details": [ {
"SubCode1": {
"Key": 37,
"Value": "Мини-автобус 10 чел."
},
"SubCode2": {
"Key": null,
"Value": ""
},
"Date": null,
"IsShowTransportPlan": false,
"Cost": 85.22,
"QuotaStatus": {
"PlacesStatus": 1,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12667,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}],
"ParentId": null,
"PartnerBasedOnServiceTemplateId": null,
"Id": 7,
"SvKey": 4,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": true,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2018-02-25T00:00:00",
"EndDateTime": "2018-02-26T00:00:00",
"IsHooded": false,
"IsDeleted": true,
"IsNotCalculate": true,
"PacketId": 779,
"Index": 3
}]
],
"MinCostServicesComposition": [
{
"Key": {
"TemplateId": 3,
"PatternId": 13,
"SettingId": 13
},
"Value": {
"ServiceType": 1,
"Code": 882,
"SubCode1": 89,
"SubCode2": 1,
"PacketId": 779,
"PartnerId": 12668,
"CountryId": 90,
"CityId": 35,
"Day": 1,
"DurationInNight": 0
}
},
{
"Key": {
"TemplateId": 1,
"PatternId": 0,
"SettingId": 0
},
"Value": {
"ServiceType": 3,
"Code": 709,
"SubCode1": 46463,
"SubCode2": 4,
"PacketId": 779,
"PartnerId": 12667,
"CountryId": 90,
"CityId": 35,
"Day": 1,
"DurationInNight": 3
}
},
{
"Key": {
"TemplateId": 4,
"PatternId": 5,
"SettingId": 4
},
"Value": {
"ServiceType": 1,
"Code": 774,
"SubCode1": 89,
"SubCode2": 35,
"PacketId": 779,
"PartnerId": 10760,
"CountryId": 460,
"CityId": 1,
"Day": 4,
"DurationInNight": 0
}
}
],
"FlightWeight": 2,
"LinkingFlightsRules": {
"notCombineDifferentAirlineRule": {
"airlines": ["AY2"],
"flightSettings": [],
"enabled": true
},
"checkPlusMinus1CharterRule": {
"FlightSettingPairs": [],
"enabled": false
},
"notCombineDifferentTariffGroupRule": {
"FlightSettings": [],
"enabled": true
},
"notCombineDifferentPartnerRule": {
"FlightSettings": [],
"enabled": false
},
"departureCityEqualsArrivalCityRule": {
"FlightSettingPairs": [],
"enabled": false
},
"combineOnlySpecificChartersRule": {
"settings": [],
"enabled": false
}
},
"RouteSubVariants": []
}
],
"SecondaryFiltersResult": {
"TourTypes": [ {
"Id": 2,
"Name": "Стандартный тур",
"ParentId": null,
"Type": "TourType"
}],
"TourPrograms": [
{
"Key": 100000004,
"Name": "Общая проверка системы",
"TourUrl": "www.megatec.ru",
"BookingConditions": "<p>Условия бронирования тура.<\/p>",
"IsLandOnly": false,
"IsRestrictMultiHotels": false,
"IsHotelTemplates": true,
"IsRouteServices": true,
"MultiHotelDelta": 0,
"Rate": "EU",
"DateStart": "2018-01-30T00:00:00Z",
"DateEnd": "2018-02-27T00:00:00Z",
"Status": {
"Key": 3,
"Value": "Доступен для продажи"
},
"Templates": [
{"$id": "5"},
{"$id": "6"},
{"$id": "7"},
{"$id": "8"},
{"$id": "9"}
],
"Types": [ {
"Id": 2,
"Name": "Стандартный тур",
"ParentId": null,
"Type": "TourType"
}],
"LinkingFlightsRules": {
"notCombineDifferentAirlineRule": {
"airlines": ["AY2"],
"flightSettings": [],
"enabled": true
},
"checkPlusMinus1CharterRule": {
"FlightSettingPairs": [],
"enabled": false
},
"notCombineDifferentTariffGroupRule": {
"FlightSettings": [],
"enabled": true
},
"notCombineDifferentPartnerRule": {
"FlightSettings": [],
"enabled": false
},
"departureCityEqualsArrivalCityRule": {
"FlightSettingPairs": [],
"enabled": false
},
"combineOnlySpecificChartersRule": {
"settings": [],
"enabled": false
}
},
"Type": "TourProgram"
}
],
"TourDurations": [4],
"TourDates": ["2018-02-25T00:00:00"],
"HotelCities": [ {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
}],
"HotelResorts": [ {
"Key": -1,
"CountryKey": 0,
"Name": "Не указан",
"NameLat": null,
"Type": "Resort"
}],
"HotelCategories": [
{
"Key": 23,
"Name": "1*",
"PrintNumber": 1,
"Type": "HotelCatigory"
},
{
"Key": 56,
"Name": "2*",
"PrintNumber": 2,
"Type": "HotelCatigory"
},
{
"Key": 66,
"Name": "4*Boutique",
"PrintNumber": null,
"Type": "HotelCatigory"
}
],
"Hotels": [
{
"Key": 705,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"City": {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
},
"Resort": null,
"Name": "Continental",
"Category": {
"Key": 23,
"Name": "1*",
"PrintNumber": 1,
"Type": "HotelCatigory"
},
"TimeFrom": null,
"TimeTo": null,
"HTTP": null,
"Stars": "1*",
"TimeIsEmpty": true,
"NameLat": "Continental",
"Address": null,
"IsCruise": 0,
"Phone": null,
"Code": null,
"Type": "Hotel"
},
{
"Key": 178,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"City": {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
},
"Resort": null,
"Name": "Ananas",
"Category": {
"Key": 56,
"Name": "2*",
"PrintNumber": 2,
"Type": "HotelCatigory"
},
"TimeFrom": "1900-01-01T11:00:00",
"TimeTo": "1900-01-01T12:00:00",
"HTTP": "http://booking.panteon.ru/TourPrograms/Home/Tour/?tourKey=100000007",
"Stars": "2*",
"TimeIsEmpty": false,
"NameLat": "Ananas",
"Address": null,
"IsCruise": 0,
"Phone": "(+43/1) 546200",
"Code": null,
"Type": "Hotel"
},
{
"Key": 707,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"City": {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
},
"Resort": null,
"Name": "Beim Theresianum",
"Category": {
"Key": 66,
"Name": "4*Boutique",
"PrintNumber": null,
"Type": "HotelCatigory"
},
"TimeFrom": null,
"TimeTo": null,
"HTTP": null,
"Stars": "4*Boutique",
"TimeIsEmpty": true,
"NameLat": "Beim Theresianum",
"Address": null,
"IsCruise": 0,
"Phone": null,
"Code": null,
"Type": "Hotel"
},
{
"Key": 709,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"City": {
"key": 35,
"Country": {
"key": 90,
"name": "Австрия",
"Code": "AUS",
"CitizenName": "Австрия",
"CitizenNameLat": "AUSTRIA",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 1,
"WebImage": "/pics/animate/austria.gif",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Вена",
"Code": "VIE",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
},
"Resort": null,
"Name": "Am Brilliantengrund",
"Category": null,
"TimeFrom": null,
"TimeTo": null,
"HTTP": null,
"Stars": "",
"TimeIsEmpty": true,
"NameLat": "Am Brilliantengrund",
"Address": null,
"IsCruise": 0,
"Phone": null,
"Code": null,
"Type": "Hotel"
}
],
"Pansions": [
{
"Key": 46,
"Code": "RO",
"Name": "RO",
"NameLat": null,
"Type": "Pansion"
},
{
"Key": 4,
"Code": "BB2",
"Name": "Завтрак",
"NameLat": null,
"Type": "Pansion"
},
{
"Key": 2,
"Code": "HB",
"Name": "Полупансион",
"NameLat": null,
"Type": "Pansion"
}
],
"Airlines": [
{
"Key": 8,
"Code": "BA7",
"Name": "BRITISH AIRWAYS",
"NameLat": "en_BRITISH AIRWAYS",
"Type": "AirLine"
},
{
"Key": 3,
"Code": "7U",
"Name": "Авиаэнерго",
"NameLat": "en_Авиаэнерго",
"Type": "AirLine"
}
],
"FlightTariffs": [ {
"Key": 89,
"Code": "Y",
"Name": "Экономический класс",
"NameLat": "Coach economy",
"Group": null,
"Type": "AirService"
}],
"DepartureCities": [ {
"key": 1,
"Country": {
"key": 460,
"name": "Россия",
"Code": null,
"CitizenName": "Россия",
"CitizenNameLat": "Russia",
"PassportMinDurCheckFrom": 0,
"CheckINN": true,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 0,
"WebImage": "",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Москва",
"Code": "MOW",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
}],
"DepartureAirports": [ {
"Key": 52,
"Code": "SVO4",
"Name": "Шереметьево-24",
"NameLat": "Шереметьево-",
"CityKey": 1,
"CountryKey": 460,
"Letter": "S",
"Site": 0,
"Type": "Airport"
}],
"ArrivalCities": [ {
"key": 1,
"Country": {
"key": 460,
"name": "Россия",
"Code": null,
"CitizenName": "Россия",
"CitizenNameLat": "Russia",
"PassportMinDurCheckFrom": 0,
"CheckINN": true,
"PassportMinDur": null,
"INNName": "ИНН",
"Web": 0,
"WebImage": "",
"WebHTTP": "",
"AnkLang": 0,
"Type": "Country"
},
"name": "Москва",
"Code": "MOW",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Type": "City"
}],
"ArrivalAirports": [ {
"Key": 12,
"Code": "DME",
"Name": "Домодедово",
"NameLat": "Домодедово",
"CityKey": 1,
"CountryKey": 460,
"Letter": "D",
"Site": 0,
"Type": "Airport"
}],
"HotelTypes": [
{
"key": 94,
"name": "Молодежный отдых",
"Type": "HotelType"
},
{
"key": 5,
"name": "Рекомендуемые",
"Type": "HotelType"
}
]
}
}
|
Поиск туров онлайн (TourForWeb)
Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод возвращает наиболее дешевые предложения, найденные по предоставленным параметрам и сгруппированные по отелям в порядке возрастания цены. В зависимости от параметров запроса, дополнительных фильтров формат запроса имеет отличия. Метод используется при работе веб-приложения Canary.
- Обычный формат запроса GET:
- GET .../TourSearchOwin/TourForWeb/search/simple?
- Принимаемые параметры ( * – обязательный):
- DepartureCityKeys * – идентификатор города отправления (полученный из метода .../TourSearchOwin/departureCities?)
- Dates * – массив дат заезда (полученные из метода .../TourSearchOwin/TourDate?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- Durations * – массив продолжительностей (полученные из метода .../TourSearchOwin/Duration?). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
- PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
- PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
- HotelScheme * – объект схемы отеля
- TourKey – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура
- TourDuration – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях
- ShowToursWithoutHotels – показывать ли туры без проживания
- isFromBasket * – происходит ли обращение из корзины или из поиска туров (true/false).
- isFillSecondaryFilters – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
- DestinationType * – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
- DestinationKey * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
- AdultCount * – количество взрослых
- CurrencyName * – код валюты
- AviaQuota * – информация о квотах на авиаперелет (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- HotelQuota * – информация о квотах на отель (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- BusTransferQuota – информация о квотах на автобусный переезд (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
- TourType – тип тура
- CityIds – идентификатор города
- TimeDepartureFrom – время отправления с (по умолчанию возвращается 00:00)
- TimeDepartureTo – время отправления по (по умолчанию возвращается 23:59)
- TimeArrivalFrom – время прибытия с (по умолчанию возвращается 00:00)
- TimeArrivalTo – время прибытия по (по умолчанию возвращается 23:59)
- SearchId – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5.
- MatrixAlgoritm – используется ли дополнительный фильтр «Таблица цен»
- SearchMaxPriceAlgoritm –
- wrongLicenseFileUpperTitle – проверка файла лицензии
- RemoteHotelMode – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4.
- Возвращаемый результат:
- Result – результаты поиска
- Key – идентификатор программы тура
- Name – название программы тура
- TourUrl – ссылка на программу тура
- BookingConditions – условия бронирования программы туров
- DefaultManagers – менеджер по-умолчанию
- Manager – обозначение менеджера
- Branches – филиал
- DetermineTheBranchOnCity – признак определения филиала в зависимости от города начала поездки
- StartDate – дата начала тура
- Duration – продолжительность тура (в днях)
- DurationInNight – продолжительность проживания (в ночах)
- Types – идентификатор типа туров
- Cost – цена тура
- Rate – код валюты тура
- 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 – время прилета
- TotalTimeOfFlight – полное время перелета
- FlightDetails – детали авиаперелета
- Tariff – информация о тарифе перелета
- Key – идентификатор
- Code – код тарифа
- Name – наименование тарифа
- IsCommission – признак, комиссионная ли услуга
- Cost – разница в стоимости с самым дешевым вариантом
- QuotaStatus – информация о квоте
- PlacesStatus – статус по квотам (есть места / нет мест / под запрос)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – ключ партнера
- ByPax – цена за человека (true/false)
- Partner – информация о партнере
- Key – идентификатор
- Value – наименование
- Tariff – информация о тарифе перелета
- FlightSetting – информация о шаблоне услуги авиаперелета
- ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
- PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- FlightId – идентификатор внешнего перелета
- FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- EndDateTime – дата окончания услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- 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 – статус по квотам (есть места / нет мест / под запрос)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – ключ партнера
- ByPax – цена за человека (true/false)
- Partner – информация о партнере
- Key – идентификатор
- Value – наименование
- Tariff – информация о тарифе перелета
- FlightSetting – внутренняя информация о перелете из программы туров
- ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
- PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- FlightId – идентификатор перелета (внутренняя информация из программы туров)
- FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- EndDateTime – дата окончания услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- Hotel – отель
- Key – ключ отеля
- Value – наименование отеля
- City – город
- Key – ключ города
- Value – наименование города
- Stars – категория отеля
- Key – ключ категории отеля
- Value – наименование категории отеля
- StarsGlobalCode – глобальный код категории отеля
- Key – глобальный ключ категории отеля
- Value – наименование категории отеля
- Resort – курорт
- Key – ключ курорта
- Value – наименование курорта
- ImageURL – ссылка на лого отеля
- Http – ссылка на сайт отеля
- Description – описание
- Latitude – GPS координаты: географическая широта
- Longitude – GPS координаты: географическая долгота
- Country – страна
- Key – ключ страны
- Value – наименование страны
- HotelDetails – массив данных отель
- HotelRoom – категория номера
- Room – номер
- Key – ключ номера
- Value – наименование номера
- RoomCategory – тип номера
- Key – ключ типа номера
- Value – наименование типа номера
- AccomodationType – тип размещения
- Key – ключ типа размещения
- Value – наименование типа размещения
- AdultCount – количество взрослых
- ChildCount – количество детей
- Pansion – тип питания
- Key – ключ типа питания
- Value – наименование типа питания
- PansionGlobalCode – глобальный код типа питания
- Key – ключ типа питания
- Value – наименование типа питания
- RemoteId – не используется
- Cost – разница в стоимости с самым дешевым вариантом
- QuotaStatus – информация о квоте
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- PartnerId – ключ партнера
- ByPax – цена за человека (true/false)
- Partner – информация о партнере
- Key – идентификатор
- Value – название
- HotelTypes – признаки отелей в дополнительных фильтрах
- Key – ключ
- Value – значение
- RemoteId – не используется
- COAndSpecialsInfo – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков
- AppliedCostOffersKeys – коллекция идентификаторов всех применённых ценовых блоков к одной цене
- AppliedSpeciasInfo – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- EndDateTime – дата окончания услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- DepartureCity – город отправления
- NotRouteServices – массив коллекций немаршрутных услуг (например если две экскурсии будут являться одним элементом массива, то это будет говорить о том, что эти экскурсии можно будет выбрать в выпадающем списке)
- MinCostServicesComposition – массив состав услуг минимальной цены
- Key – ключ
- TemplateId – идентификатор шаблона
- PatternId – идентификатор вкладки
- SettingId – идентификатор услуги
- Value – значение
- ServiceType – тип услуги
- Code – ключ услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- PacketId – пакет услуги
- PartnerId – партнер услуги
- CountryId – страна услуги
- CityId – город услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- GDSProviderId – ключ провайдера из внешней системы
- COAndSpecialsInfo – формирует, фильтрует и выдаёт списки применённых акций и ценовых блоков
- AppliedCostOffersKeys – коллекция идентификаторов всех применённых ценовых блоков к одной цене
- AppliedSpeciasInfo – коллекция всех применённых акций к одной цене, содержит информацию об условиях, с которыми применилась каждая акция
- COBySubCode – список применённых идентификаторов ценовых блоков по SubCode1 и SubCode2
- SpecialsBySubCode – список применённых акций по SubCode1 и SubCode2
- Key – ключ
- FlightWeight – общий вес перелетов маршрута
- LinkingFlightsRules – объект правил связывания
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- airlines – авиакомпании
- flightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- checkPlusMinus1CharterRule – объект Отличие номера рейса на 1
- FlightSettingPairs – массив чартеров, для которых это правило будет выполняться
- enabled – флаг включен/выключен
- notCombineDifferentTariffGroupRule – объект не комбинировать рейсы от разных классов перелетов
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentPartnerRule – объект не комбинировать рейсы от разных партнеров
- FlightSettings – массив ключей ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- departureCityEqualsArrivalCityRule – объект Город вылета = городу прилета
- FlightSettingPairs – чартеры, для которых это будет выполняться
- enabled – флаг включен/выключен
- combineOnlySpecificChartersRule – объект не комбинировать различные классы перелетов
- settings – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
- enabled – флаг включен/выключен
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- RouteSubVariants – подварианты услуг (используется в основном поиске)
- Routes – массив возможных маршрутов в данной программе туров
- IsRemoteHotels – удаленные отели
- SecondaryFiltersResult – результаты доп. фильтров
- TourTypes – типы тура
- Id – ключ типа тура
- Name – название типа тура
- ParentId – родительский элемент типа тура (если есть)
- Type – тип справочника (используется для внутренних целей)
- TourPrograms – информация по каждой турпрограмме
- Key – ключ турпрограммы
- Name – название турпрограммы
- TourUrl – ссылка на тур
- BookingConditions – условия бронирования
- DefaultManagers – менеджер по-умолчанию
- Manager – обозначение менеджера
- Branches – филиал
- DetermineTheBranchOnCity – признак определения филиала в зависимости от города начала поездки
- IsLandOnly – признак только наземное обслуживание
- IsApplyMarginAddCostToRemoteService –
- IsRestrictMultiHotels – ограничивать ли расчёт многоотельных туров категориями отелей
- IsHotelTemplates – есть ли вообще отели в данной турпрограмме
- IsRouteServices – есть ли маршрутные услуги
- IsAviaBooking –
- MultiHotelDelta – Значение отклонения звездности последующих отелей от первого отеля в многоотельном туре. По умолчанию 0. Звездность определяется числом, заданном в поле порядок при печати.
- Rate – валюта тура
- RateId – идентификатор валюты тура
- DateStart – нижняя граница дат заезда по программе тура
- DateEnd – верхняя граница дат заезда по программе тура
- DateList – список дат заездов
- UpdateDate – дата обновления
- Status – статус турпрограммы
- Key – ключ
- Value – значение
- Templates – шаблоны услуг
- $id – шаблон 1
- $id – шаблон 2
- Types – типы тура
- Id – ключ типа тура
- Name – название типа тура
- ParentId – родительский элемент типа тура (если есть)
- Type – тип справочника (используется для внутренних целей)
- 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 – флаг включен/выключен
- IsMultiHotel –
- Type – тип справочника (используется для внутренних целей)
- TourDurations – продолжительность тура
- TourDates – список дат заездов в турпрограмме
- HotelCities – город в дополнительных фильтрах
- key – ключ города
- Country – страна
- key – ключ страны
- name – наименование страны
- Code – код страны
- DigitCode – цифровой код
- Alpha2Code –
- Alpha3Code –
- CitizenName – наименование страны
- CitizenNameLat – наименование страны латиницей
- PassportMinDurCheckFrom –
- CheckINN – проверка ИНН
- PassportMinDur –
- INNName – наименование поля ИНН
- Web –
- WebImage – логотип страны
- WebHTTP – сайт
- AnkLang –
- Key – ключ страны
- Type – тип (страна)
- name – наименование города
- Code – код города
- Web –
- RSKey –
- WebImage –
- IsDeparture –
- Key – ключ города
- Type – тип (город)
- HotelResorts – курорты в дополнительных фильтрах
- CountryKey – ключ
- Name – наименование
- NameLat – наименование латиницей
- Key – ключ
- Type – тип (курорт)
- HotelCategories – категории отеля в дополнительных фильтрах
- Name – наименование категории
- PrintNumber – номер для печати
- GlobalCode – глобальный код
- Key – ключ
- Type – тип (категория отеоля)
- Hotels – отели в дополнительных фильтрах
- Country – страна
- key – ключ страны
- name – наименование страны
- Code – код страны
- DigitCode – цифровой код
- Alpha2Code –
- Alpha3Code –
- CitizenName – наименование страны
- CitizenNameLat – наименование страны латиницей
- PassportMinDurCheckFrom –
- CheckINN – проверка ИНН
- PassportMinDur –
- INNName –
- Web –
- WebImage – логотип страны
- WebHTTP – сайт
- AnkLang –
- Key – ключ страны
- Type – тип (страна)
- Country – страна
- Сity – город
- key – ключ города
- Country – страна
- key – ключ страны
- name – наименование страны
- Code – код страны
- DigitCode – цифровой код
- Alpha2Code –
- Alpha3Code –
- CitizenName – наименование страны
- CitizenNameLat – наименование страны латиницей
- PassportMinDurCheckFrom –
- CheckINN – проверка ИНН
- PassportMinDur –
- INNName –
- Web –
- WebImage – логотип страны
- WebHTTP – сайт
- AnkLang –
- Key – ключ страны
- Type – тип (страна)
- name – наименование города
- Code – код города
- Web –
- RSKey –
- WebImage –
- IsDeparture –
- Key – ключ города
- Type – тип (город)
- Resort – курорт
- ResortKey – ключ курорта
- Name – наименование
- Category – категория
- Name – наименование категории
- PrintNumber – ключ для печати
- GlobalCode – глобальный код
- Key – ключ
- Type – тип (категория отеля)
- CategoryKey – ключ категории
- TimeFrom – время с
- TimeTo – время по
- HTTP": сайт
- Stars – категория
- TimeIsEmpty – вышло ли время
- NameLat – наименование латиницей
- Address – адрес
- IsCruise – имеется круиз
- Phone – телефон
- Email – E-mail
- Fax – факс
- Code – код
- Site – сайт
- Descript – описание
- PayHourNote – час оплаты
- EarlyCheckInSurcharge – доплаты за ранний заезд
- LateCheckOutSurcharge – доплата за поздний выезд
- Latitude – GPS координаты: географическая широта (обрабатывается с релиза 15.6)
- Longitude – GPS координаты: географическая долгота (обрабатывается с релиза 15.6)
- DescExcur –
- DescSport –
- DescHealth –
- DescService –
- Key – ключ
- Type – тип (отель)
- Pansions – питание
- Code – код питания
- Name – наименование питания
- NameLat – наименование питания латиницей
- GlobalCode – глобальный код
- Key – ключ
- Type – тип (питание)
- Airlines – авиакомпании в дополнительных фильтрах
- Key – ключ авиакомпании
- Code – код авиакомпании
- ICAO – код ИКАО
- Name – наименование авиакомпании
- NameLat – наименование авиакомпании латиницей
- Type – тип (авиакомпания)
- FlightTariffs – класс перелета в дополнительных фильтрах
- Key – ключ
- Code – код
- Name – наименование
- NameLat – наименование латиницей
- Group – группа
- Type – тип (авиаперелет)
- DepartureCities – города вылета в дополнительных фильтрах
- key – ключ города
- Country – страна
- key – ключ страны
- name – наименование страны
- Code – код страны
- DigitCode – цифровой код
- Alpha2Code –
- Alpha3Code –
- CitizenName – наименование страны
- CitizenNameLat – наименование страны латиницей
- PassportMinDurCheckFrom –
- CheckINN – проверка ИНН
- PassportMinDur –
- INNName –
- Web –
- WebImage – логотип страны
- WebHTTP – сайт
- AnkLang –
- Key – ключ страны
- Type – тип (страна)
- name – наименование города
- Code – код города
- Web –
- RSKey –
- WebImage –
- IsDeparture –
- Key – ключ города
- Type – тип (город)
- DepartureAirports – аэропорты вылета в дополнительных фильтрах
- Key – ключ
- Code – код аэропорта
- Name – наименование аэропорта
- NameLat – наименование аэропорта латиницей
- CityKey – ключ города
- CountryKey – ключ страны
- Letter – присвоенный символд
- Site – сайт
- Type – тип (аэропорт)
- ArrivalCities – города прибытия в дополнительных фильтрах
- key – ключ города
- Country – страна
- key – ключ страны
- name – наименование страны
- Code – код страны
- DigitCode – цифровой код
- Alpha2Code –
- Alpha3Code –
- CitizenName – наименование страны
- CitizenNameLat – наименование страны латиницей
- PassportMinDurCheckFrom –
- CheckINN – проверка ИНН
- PassportMinDur –
- INNName –
- Web –
- WebImage – логотип страны
- WebHTTP – сайт
- AnkLang –
- Key – ключ страны
- Type – тип (страна)
- name – наименование города
- Code – код города
- Web –
- RSKey –
- WebImage –
- IsDeparture –
- Key – ключ города
- Type – тип (город)
- ArrivalAirports – аэропорты прибытия в дополнительных фильтрах
- Key – ключ аэропорта
- Code – код аэропорта
- Name – наименование аэропорта
- NameLat – наименование аэропорта латиницей
- CityKey – ключ города
- CountryKey – ключ страны
- Letter – буква аэропорта
- Site – сайт
- Type – тип (аэропорт)
- HotelTypes – признаки отелей в дополнительных фильтрах
- key – ключ
- name – обозначение
- Type – тип (отель)
- ComplexHotelIds –
- Message – сообщение
- Key – ключ
- Value – значение
- HotelCities – город в дополнительных фильтрах
- TourTypes – типы тура
- Result – результаты поиска
Вызов метода TourForWeb GET http://dev4-04:9000/TourSearchOwin/TourForWeb/search/simple?DepartureCityKeys=1&Dates=25.10.2021
&Durations=5&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&ShowToursWithoutHotels=-
1&isFromBasket=false&isFillSecondaryFilters=false&DestinationType=1&DestinationKey=90&AdultCount=
2&CurrencyName=%D1%80%D0%B1&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&TourType=-1&CityIds=-1&
TimeDepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00&TimeArrivalTo=23
%3A59&SearchId=2&MatrixAlgoritm=false&wrongLicenseFileUpperTitle=Incorrect+license+file.&
RemoteHotelMode=0&_=1633953386754 HTTP/1.1
Возвращаемый результат метода TourForWeb (в формате JSON) {
"Result": [
{
"Key": 100011112,
"Name": "EFREHolland",
"TourUrl": null,
"BookingConditions": null,
"DefaultManagers": [],
"Manager": 106,
"Branches": [],
"DetermineTheBranchOnCity": false,
"StartDate": "2021-10-18T00:00:00",
"Duration": 6,
"DurationInNight": 5,
"Types": [
45
],
"Cost": 620,
"Rate": "рб",
"CityDepature": {
"Key": 312,
"Value": "Астрахань"
},
"CountryId": 1,
"Services": [
{
"DepartureCity": {
"Key": 312,
"Value": "Астрахань"
},
"DepartureCountry": {
"Key": 460,
"Value": "Россия"
},
"ArrivalCity": {
"Key": 62,
"Value": "Амстердам"
},
"ArrivalCountry": {
"Key": 1,
"Value": "Голландия"
},
"DepartureAirport": {
"Key": "ASF",
"Value": "Астрахань"
},
"ArrivalAirport": {
"Key": "EH9",
"Value": "AMST"
},
"Airline": {
"Id": 43,
"Value": "МАУ",
"Key": "PS"
},
"Aircraft": {
"Key": "133",
"Value": "13131313"
},
"Flight": {
"Key": 2111,
"Value": "9117"
},
"DepartureTime": "17:05:00",
"ArrivalTime": "20:05:00",
"TotalTimeOfFlight": 420,
"FlightDetails": [
{
"Tariff": {
"Key": 339,
"Code": "14",
"Name": "14"
},
"IsCommission": true,
"Cost": 0,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12685,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}
],
"FlightSetting": {
"ServiceId": 1,
"PatternId": 30,
"FlightId": 30
},
"FlightSourceMode": 1,
"Id": 1,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 1,
"DurationInNight": 0,
"BeginDateTime": "2021-10-18T17:05:00",
"EndDateTime": "2021-10-18T20:05:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 1462,
"Index": 0
},
{
"DepartureCity": {
"Key": 62,
"Value": "Амстердам"
},
"DepartureCountry": {
"Key": 1,
"Value": "Голландия"
},
"ArrivalCity": {
"Key": 312,
"Value": "Астрахань"
},
"ArrivalCountry": {
"Key": 460,
"Value": "Россия"
},
"DepartureAirport": {
"Key": "EH9",
"Value": "AMST"
},
"ArrivalAirport": {
"Key": "ASF",
"Value": "Астрахань"
},
"Airline": {
"Id": 304,
"Value": "АЭРОФЛОТ",
"Key": "AUF"
},
"Aircraft": {
"Key": "330",
"Value": "aerobus A-330"
},
"Flight": {
"Key": 2080,
"Value": "9000"
},
"DepartureTime": "09:59:00",
"ArrivalTime": "12:59:00",
"TotalTimeOfFlight": -60,
"FlightDetails": [
{
"Tariff": {
"Key": 339,
"Code": "14",
"Name": "14"
},
"IsCommission": true,
"Cost": 0,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12685,
"ByPax": true,
"Partner": {
"Key": 0,
"Value": null
}
}
],
"FlightSetting": {
"ServiceId": 2,
"PatternId": 1,
"FlightId": 0
},
"FlightSourceMode": 1,
"Id": 2,
"SvKey": 1,
"IsSubCode1": true,
"IsSubCode2": false,
"IsPartnerBasedOn": false,
"Day": 2,
"DurationInNight": 0,
"BeginDateTime": "2021-10-19T09:59:00",
"EndDateTime": "2021-10-19T12:59:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 1462,
"Index": 1
},
{
"Hotel": {
"Key": 238,
"Value": "Hotel 4"
},
"City": {
"Key": 62,
"Value": "Амстердам"
},
"Stars": {
"Key": 23,
"Value": "1*++"
},
"StarsGlobalCode": {
"Key": 23,
"Value": "1*"
},
"Resort": {
"Key": -1,
"Value": null
},
"ImageURL": "",
"Http": "https://aniconrus.ru/ru/",
"Description": "",
"Latitude": null,
"Longitude": null,
"Country": {
"Key": 1,
"Value": "Голландия"
},
"HotelDetails": [
{
"HotelRoom": 1085918,
"Room": {
"Key": 141,
"Value": "2AD"
},
"RoomCategory": {
"Key": 2905,
"Value": "Double"
},
"AccomodationType": {
"Key": 1172,
"Value": "2AD",
"AdultCount": 2,
"ChildCount": 0
},
"Pansion": {
"Key": 1,
"Value": "Полный пансион"
},
"PansionGlobalCode": {
"Key": 1,
"Value": null
},
"RemoteId": null,
"Cost": 0,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"PartnerId": 12685,
"ByPax": true,
"Partner": {
"Key": 12685,
"Value": " ПКЦ"
}
}
],
"HotelTypes": [
{
"Key": 290,
"Value": "ALEXXZ"
}
],
"RemoteId": null,
"COAndSpecialsInfo": {
"AppliedCostOffersKeys": [
21706
],
"AppliedSpeciasInfo": null
},
"Id": 3,
"SvKey": 3,
"IsSubCode1": true,
"IsSubCode2": true,
"IsPartnerBasedOn": false,
"Day": 2,
"DurationInNight": 4,
"BeginDateTime": "2021-10-19T12:59:00",
"EndDateTime": "2021-10-23T12:59:00",
"IsHooded": false,
"IsDeleted": false,
"IsNotCalculate": false,
"PacketId": 1462,
"Index": 2
}
],
"NotRouteServices": [],
"MinCostServicesComposition": [
{
"Key": {
"TemplateId": 1,
"PatternId": 30,
"SettingId": 30
},
"Value": {
"ServiceType": 1,
"Code": 2111,
"SubCode1": 339,
"SubCode2": 312,
"PacketId": 1462,
"PartnerId": 12685,
"CountryId": 1,
"CityId": 62,
"Day": 1,
"DurationInNight": 0,
"GDSProviderId": null,
"COAndSpecialsInfo": {
"AppliedCostOffersKeys": null,
"AppliedSpeciasInfo": null
},
"COBySubCode": [
21756
],
"SpecialsBySubCode": null
}
},
{
"Key": {
"TemplateId": 2,
"PatternId": 1,
"SettingId": 0
},
"Value": {
"ServiceType": 1,
"Code": 2080,
"SubCode1": 339,
"SubCode2": 62,
"PacketId": 1462,
"PartnerId": 12685,
"CountryId": 460,
"CityId": 312,
"Day": 2,
"DurationInNight": 0,
"GDSProviderId": null,
"COAndSpecialsInfo": {
"AppliedCostOffersKeys": null,
"AppliedSpeciasInfo": null
},
"COBySubCode": [
21705
],
"SpecialsBySubCode": null
}
},
{
"Key": {
"TemplateId": 3,
"PatternId": 0,
"SettingId": 0
},
"Value": {
"ServiceType": 3,
"Code": 238,
"SubCode1": 1085918,
"SubCode2": 1,
"PacketId": 1462,
"PartnerId": 12685,
"CountryId": 1,
"CityId": 62,
"Day": 2,
"DurationInNight": 4,
"GDSProviderId": null,
"COAndSpecialsInfo": {
"AppliedCostOffersKeys": null,
"AppliedSpeciasInfo": null
},
"COBySubCode": [
21706
],
"SpecialsBySubCode": null
}
}
],
"FlightWeight": 2,
"LinkingFlightsRules": {
"notCombineDifferentAirlineRule": {
"airlines": [],
"flightSettings": [],
"enabled": false
},
"checkPlusMinus1CharterRule": {
"FlightSettingPairs": [],
"enabled": false
},
"notCombineDifferentTariffGroupRule": {
"FlightSettings": [],
"enabled": false
},
"notCombineDifferentPartnerRule": {
"FlightSettings": [],
"enabled": false
},
"departureCityEqualsArrivalCityRule": {
"FlightSettingPairs": [],
"enabled": false
},
"combineOnlySpecificChartersRule": {
"settings": [],
"enabled": false
}
},
"RouteSubVariants": [],
"Routes": 15,
"IsRemoteHotels": false
],
"SecondaryFiltersResult": {
"TourTypes": [
{
"Id": 45,
"Name": "Индивидуальный тур",
"ParentId": null,
"Type": "TourType"
}
],
"TourPrograms": [
{
"Key": 100011112,
"Name": "EFREHolland",
"TourUrl": null,
"BookingConditions": null,
"DefaultManagers": [],
"Manager": 106,
"Branches": [],
"DetermineTheBranchOnCity": false,
"IsLandOnly": false,
"IsApplyMarginAddCostToRemoteService": true,
"IsRestrictMultiHotels": false,
"IsHotelTemplates": true,
"IsRouteServices": true,
"IsAviaBooking": false,
"MultiHotelDelta": 0,
"Rate": "рб",
"RateId": 14,
"DateStart": "2021-08-01T00:00:00Z",
"DateEnd": "2021-12-31T00:00:00Z",
"DateList": [],
"UpdateDate": "2021-10-01T14:56:14.44",
"Status": {
"Key": 3,
"Value": "Доступен для продажи"
},
"Templates": [
{
"$id": "1"
},
{
"$id": "2"
},
{
"$id": "3"
}
],
"Types": [
{
"Id": 45,
"Name": "Индивидуальный тур",
"ParentId": null,
"Type": "TourType"
}
],
"LinkingFlightsRules": {
"notCombineDifferentAirlineRule": {
"airlines": [],
"flightSettings": [],
"enabled": false
},
"checkPlusMinus1CharterRule": {
"FlightSettingPairs": [],
"enabled": false
},
"notCombineDifferentTariffGroupRule": {
"FlightSettings": [],
"enabled": false
},
"notCombineDifferentPartnerRule": {
"FlightSettings": [],
"enabled": false
},
"departureCityEqualsArrivalCityRule": {
"FlightSettingPairs": [],
"enabled": false
},
"combineOnlySpecificChartersRule": {
"settings": [],
"enabled": false
}
},
"IsMultiHotel": false,
"Type": "TourProgram"
}
],
"TourDurations": [
6
],
"TourDates": [
"2021-10-18T00:00:00"
],
"HotelCities": [
{
"key": 62,
"Country": {
"key": 1,
"name": "Голландия",
"Code": "Hol",
"DigitCode": "528",
"Alpha2Code": "NL",
"Alpha3Code": "NLD",
"CitizenName": "Голландия",
"CitizenNameLat": "Holland",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": 0,
"INNName": "ИНН",
"Web": 0,
"WebImage": "ыяфаыуа",
"WebHTTP": "",
"AnkLang": 0,
"Key": 1,
"Type": "Country"
},
"name": "Амстердам",
"Code": "AMS",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Key": 62,
"Type": "City"
}
],
"HotelResorts": [
{
"CountryKey": -1,
"Name": "Не указан",
"NameLat": null,
"Key": -1,
"Type": "Resort"
}
],
"HotelCategories": [
{
"Name": "1*++",
"PrintNumber": 23,
"GlobalCode": "1*",
"Key": 23,
"Type": "HotelCategory"
}
],
"Hotels": [
{
"Country": {
"key": 1,
"name": "Голландия",
"Code": "Hol",
"DigitCode": "528",
"Alpha2Code": "NL",
"Alpha3Code": "NLD",
"CitizenName": "Голландия",
"CitizenNameLat": "Holland",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": 0,
"INNName": "ИНН",
"Web": 0,
"WebImage": "ыяфаыуа",
"WebHTTP": "",
"AnkLang": 0,
"Key": 1,
"Type": "Country"
},
"City": {
"key": 62,
"Country": {
"key": 1,
"name": "Голландия",
"Code": "Hol",
"DigitCode": "528",
"Alpha2Code": "NL",
"Alpha3Code": "NLD",
"CitizenName": "Голландия",
"CitizenNameLat": "Holland",
"PassportMinDurCheckFrom": 0,
"CheckINN": false,
"PassportMinDur": 0,
"INNName": "ИНН",
"Web": 0,
"WebImage": "ыяфаыуа",
"WebHTTP": "",
"AnkLang": 0,
"Key": 1,
"Type": "Country"
},
"name": "Амстердам",
"Code": "AMS",
"Web": 0,
"RSKey": 0,
"WebImage": null,
"IsDeparture": 1,
"Key": 62,
"Type": "City"
},
"Resort": null,
"ResortKey": 0,
"Name": "Hotel 4",
"Category": {
"Name": "1*++",
"PrintNumber": 23,
"GlobalCode": "1*",
"Key": 23,
"Type": "HotelCategory"
},
"CategoryKey": 23,
"TimeFrom": null,
"TimeTo": null,
"HTTP": "https://aniconrus.ru/ru/",
"Stars": "1*++",
"TimeIsEmpty": true,
"NameLat": "Hotel 4",
"Address": "",
"IsCruise": 0,
"Phone": null,
"Email": "",
"Fax": null,
"Code": null,
"Site": 0,
"Descript": "",
"PayHourNote": null,
"EarlyCheckInSurcharge": 0,
"LateCheckOutSurcharge": 0,
"Latitude": null,
"Longitude": null,
"DescExcur": "",
"DescSport": "",
"DescHealth": "",
"DescService": "",
"Key": 238,
"Type": "Hotel"
}
],
"Pansions": [
{
"Code": "FB",
"Name": "Полный пансион",
"NameLat": null,
"GlobalCode": null,
"Key": 1,
"Type": "Pansion"
}
],
"Airlines": [
{
"Key": 43,
"Code": "PS",
"ICAO": null,
"Name": "МАУ",
"NameLat": "en_Ukrainian Airlanes",
"Type": "AirLine"
},
{
"Key": 304,
"Code": "AUF",
"ICAO": null,
"Name": "АЭРОФЛОТ",
"NameLat": null,
"Type": "AirLine"
}
],
"FlightTariffs": [
{
"Key": 339,
"Code": "14",
"Name": "14",
"NameLat": null,
"Group": null,
"Type": "AirService"
}
],
"DepartureCities": [
{
"key": 312,
"Country": {
"key": 460,
"name": "Россия",
"Code": "RU",
"DigitCode": "643",
"Alpha2Code": "RU",
"Alpha3Code": "RUS",
"CitizenName": "Россия",
"CitizenNameLat": null,
"PassportMinDurCheckFrom": 0,
"CheckINN": true,
"PassportMinDur": 0,
"INNName": "ИНН",
"Web": 0,
"WebImage": "",
"WebHTTP": "",
"AnkLang": 0,
"Key": 460,
"Type": "Country"
},
"name": "Астрахань",
"Code": "",
"Web": 0,
"RSKey": null,
"WebImage": null,
"IsDeparture": 1,
"Key": 312,
"Type": "City"
}
],
"DepartureAirports": [
{
"Key": 168,
"Code": "ASF",
"Name": "Астрахань",
"NameLat": null,
"CityKey": 312,
"CountryKey": 460,
"Letter": null,
"Site": null,
"Type": "Airport"
}
],
"ArrivalCities": [
{
"key": 312,
"Country": {
"key": 460,
"name": "Россия",
"Code": "RU",
"DigitCode": "643",
"Alpha2Code": "RU",
"Alpha3Code": "RUS",
"CitizenName": "Россия",
"CitizenNameLat": null,
"PassportMinDurCheckFrom": 0,
"CheckINN": true,
"PassportMinDur": 0,
"INNName": "ИНН",
"Web": 0,
"WebImage": "",
"WebHTTP": "",
"AnkLang": 0,
"Key": 460,
"Type": "Country"
},
"name": "Астрахань",
"Code": "",
"Web": 0,
"RSKey": null,
"WebImage": null,
"IsDeparture": 1,
"Key": 312,
"Type": "City"
}
],
"ArrivalAirports": [
{
"Key": 168,
"Code": "ASF",
"Name": "Астрахань",
"NameLat": null,
"CityKey": 312,
"CountryKey": 460,
"Letter": null,
"Site": null,
"Type": "Airport"
}
],
"HotelTypes": [
{
"key": 290,
"name": "ALEXXZ",
"Type": "HotelType"
}
],
"ComplexHotelIds": []
},
"Message": {
"Key": 0,
"Value": null
}
}
|
- Формат запроса GET с таблицей цен:
- GET .../TourSearchOwin/TourForWeb/search/matrix?
- Принимаемые параметры ( * – обязательный):
Аналогичны стандартному запросу (simple)
- Возвращаемый результат:
- CellsForMatrix – ячейки таблицы
- Key – ключ
- StartDate – дата начала
- Duration – продолжительность
- DurationInNight – количество ночей
- Cost – цена
- CitiesWithMinimalCosts – города с минимальной ценой
- DepartureCityKey – ключ города отправления
- ArrivalCityKey – ключ города прибытия
- DepartureCityName – наименование города отправления
- ArrivalCityName – наименование города прибытия
- RouteMinimalPrice – минимальная цена маршрута
- TourMinimalAndMaximalCost – минимальная и максимальная цены тура
- MinimalPrice – минимальная цена
- MaximalPrice – максимальная цена
- CellsForMatrix – ячейки таблицы
Вызов метода TourForWeb GET http://localhost:9000/TourSearchOwin/TourForWeb/search/matrix?DepartureCityKeys=1&Dates=18.10.2021
&Durations=6&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&ShowToursWithoutHotels=
-1&isFromBasket=false&isFillSecondaryFilters=false&DestinationType=1&DestinationKey=90&AdultCount=
2&CurrencyName=%D1%80%D0%B1&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&TourType=-1&CityIds=35&
TimeDepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00&TimeArrivalTo=23%3A59&
SearchId=1&MatrixAlgoritm=true&wrongLicenseFileUpperTitle=Incorrect+license+file.&RemoteHotelMode=0&_
=1634028589340
Возвращаемый результат метода TourForWeb (в формате JSON) {
"CellsForMatrix": [
{
"Key": 100011079,
"StartDate": "2021-10-18T00:00:00",
"Duration": 6,
"DurationInNight": 5,
"Cost": 1218
}
],
"CitiesWithMinimalCosts": [
{
"DepartureCityKey": 1,
"ArrivalCityKey": 35,
"DepartureCityName": "Москва",
"ArrivalCityName": "Вена",
"RouteMinimalPrice": 1218
}
],
"TourMinimalAndMaximalCost": {
"MinimalPrice": 1218,
"MaximalPrice": 53227
}
}
|
- Формат запроса GET с минимальной и максимальной ценой:
- GET .../TourSearchOwin/TourForWeb/search/minMaxPrices?
- Принимаемые параметры ( * – обязательный):
Аналогичны стандартному запросу (simple)
- Возвращаемый результат:
- MinimalPrice – минимальная цена
- MaximalPrice – максимальная цена
Вызов метода TourForWeb GET http://localhost:9000/TourSearchOwin/TourForWeb/search/minMaxPrices?DepartureCityKeys=1&Dates=18.10.2021
&Durations=6&PageNumber=1&PageSize=20&HotelScheme=&TourKey=&TourDuration=&ShowToursWithoutHotels=
-1&isFromBasket=false&isFillSecondaryFilters=false&DestinationType=1&DestinationKey=90&AdultCount=
2&CurrencyName=%D1%80%D0%B1&AviaQuota=5&HotelQuota=5&BusTransferQuota=5&TourType=-1&CityIds=35&Time
DepartureFrom=00%3A00&TimeDepartureTo=23%3A59&TimeArrivalFrom=00%3A00&TimeArrivalTo=23%3A59&SearchId
=1&SearchMaxPriceAlgoritm=false&MatrixAlgoritm=true&wrongLicenseFileUpperTitle=Incorrect+license+file.
&RemoteHotelMode=0&_
=1634028589340
Возвращаемый результат метода TourForWeb (в формате JSON) {
"MinimalPrice": 1218,
"MaximalPrice": 285618
}
|
Проверка дублирующих туристов (CheckDoubleDogovor)
Метод проверяет есть ли дублирующие туристы в существующих путевках. Проверка на дублирование регулируется настройкой Предупреждать при дублировании туристов.
- Формат запроса POST:
- POST .../TourSearchOwin/CheckDoubleDogovor
- Принимаемые параметры ( * – обязательный):
- TourProgramId – ключ турпрограммы
- BeginDate – дата начала тура
- Duration – продолжительность тура
- Currency – код валюты
- Services – массив услуг авиаперелетов для получения доплат
- Service – объект услуга авиаперелет
- ServiceType – тип услуги
- Code – код услуги
- SubCode1 – доп. описание 1 услуги
- SubCode2 – доп. описание 2 услуги
- Packet – ключ пакета услуги
- Partner – ключ партнера услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- City – ключ города
- Country – страна услуги
- Attributes – битовая маска атрибутов услуг
- IsRemovable – (не обрабатывается)
- Type – тип услуги в путевке (базовая дополнительная)
- IsHooded – признак скрытая услуга
- IsNotCalculated – признак не рассчитываемая услуга
- BeginDateTimeString – дата и время начала услуги
- EndDateTimeString – дата и время окончания услуги
- TemplateId – шаблон услуги
- Cost – цена услуги
- ByPax – цена за человека
- QuotaStatus – объект статус квотирования
- PlacesStatus – статус по квотам (есть места-1 / нет мест-2 / под запрос-4)
- FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
- IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
- Index – индекс услуги
- IsRoute – признак маршрутная услуга
- ServiceTemplateIndex – индекс шаблона услуги
- RemoteId – информация об услуге во внешней системе
- IsCommission – признак, комиссионная ли услуга
- BaseFlightsParams – параметры рассчитанных авиаперелетов
- CityArrival – ключ города прибытия прямого перелета
- FlightCode – ключ прямого авиаперелета
- TariffKey – ключ тарифа прямого авиаперелета
- PartnerId – ключ партнера прямого авиаперелета
- TouristNumbersList – массив туристов, привязанных к услуге
- Service – объект услуга авиаперелет
- Tourists – массив туристов
- IsMain – главный турист
- Number – порядковый номер туриста
- AgeType – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
- MaleFemaleSex – пол (0 – мужской, 1 – женский)
- FirstName – имя (лат)
- LastName – фамилия (лат)
- Patronymic – отчество (лат)
- FirstNameRus – имя (рус)
- LastNameRus – фамилия (рус)
- PatronymicRus – отчество (рус)
- InternationalPassportSeries – серия загранпаспорта
- InternationalPassportNumber – номер загранпаспорта
- InternationalPassportDateOfIssue – дата выдачи загранпаспорта (YYYY-MM-DDThh:mm:ssz)
- InternationalPassportDateOfIssueString – дата выдачи загранпаспорта в строковом формате (DD.MM.YYYY)
- InternationalPassportDateOfExpiry – дата окончания действия загранпаспорта (YYYY-MM-DDThh:mm:ssz)
- InternationalPassportDateOfExpiryString – дата окончания действия загранпаспорта в строковом формате (DD.MM.YYYY)
- internationalPassportByWhom – кем выдан загранпаспорт
- PassportSeries – серия паспорта
- PassportNumber – номер паспорта
- PassportDateOfIssue – дата выдачи паспорта (YYYY-MM-DDThh:mm:ssz)
- PassportDateOfIssueString – дата выдачи паспорта в строковом формате (DD.MM.YYYY)
- PassportByWhom – кем выдан паспорт
- Citizenship – название страны
- Phone – телефон
- Email – e-mail
- BirthDay – дата рождения (YYYY-MM-DDThh:mm:ssz)
- BirthDayString – дата рождения в строковом формате (DD.MM.YYYY)
- BirthPlace – место рождения
- CitizenID – ID туриста (задается в карточке постоянного клиента)
- Age – количество полных лет на момент окончания тура
- TechnicalProblemsDuringUpdateFlights – технические проблемы при обновлении рейсов
- TimeLimit – лимит времени
- CountryKey – ключ страны
- OwnerId – ключ ведущего менеджера (начиная с релиза 15.3). Если 0, то берется по умолчанию. Если по умолчанию не указан, то берется создатель тура.
- Day – день
- Day2 – дня
- Days – дней
- Night – ночь
- Night2 – ночи
- Nights – ночей
- adultsCountOverServiceLimit – Количество взрослых туристов превышает лимит услуги
- incorrectChildrenInf – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)
- Возвращаемый результат:
- Errors – описание ошибки
- Warnings – предупреждение
- States – статус
- IsValid – результат проверки подключения (true/false)
Вызов метода CheckDoubleDogovor POST http://localhost:9000/TourSearchOwin/CheckDoubleDogovor
{
"TourProgramId": 100011112,
"BeginDate": "2021-10-18T17:05:00",
"Duration": 6,
"Currency": "рб",
"Services": [
{
"Service": {
"ServiceType": 3,
"Code": 238,
"SubCode1": 1085918,
"SubCode2": 1,
"Packet": 1462,
"Partner": 12685,
"Day": 2,
"DurationInNight": 4,
"City": 62,
"Country": 1,
"Attributes": 0,
"IsRemovable": false,
"Type": 1,
"IsHooded": false,
"IsNotCalculated": false,
"BeginDateTimeString": "2021-10-19T14:59:00",
"EndDateTimeString": "2021-10-23T14:59:00",
"TemplateId": 3,
"Cost": 0,
"ByPax": true,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"Index": 2,
"IsRoute": true,
"ServiceTemplateIndex": 2,
"RemoteId": null,
"IsCommission": true,
"BaseFlightsParams": [
{
"CityArrival": 62,
"FlightCode": 2111,
"TariffKey": 339,
"PartnerId": 12685
},
{
"CityArrival": 312,
"FlightCode": 2080,
"TariffKey": 339,
"PartnerId": 12685
}
]
},
"TouristNumbersList": [
1,
2
]
},
{
"Service": {
"ServiceType": 1,
"Code": 2111,
"SubCode1": 339,
"SubCode2": 312,
"Packet": 1462,
"Partner": 12685,
"Day": 1,
"DurationInNight": 0,
"City": 62,
"Country": 1,
"Attributes": 0,
"IsRemovable": false,
"Type": 1,
"IsHooded": false,
"IsNotCalculated": false,
"BeginDateTimeString": "2021-10-18T17:10:00",
"EndDateTimeString": "2021-10-18T20:20:00",
"TemplateId": 1,
"Cost": 0,
"ByPax": true,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"Index": 0,
"IsRoute": true,
"ServiceTemplateIndex": 0,
"IsCommission": true,
"BaseFlightsParams": [
{
"CityArrival": 62,
"FlightCode": 2111,
"TariffKey": 339,
"PartnerId": 12685
},
{
"CityArrival": 312,
"FlightCode": 2080,
"TariffKey": 339,
"PartnerId": 12685
}
]
},
"TouristNumbersList": [
1,
2
]
},
{
"Service": {
"ServiceType": 1,
"Code": 2080,
"SubCode1": 339,
"SubCode2": 62,
"Packet": 1462,
"Partner": 12685,
"Day": 2,
"DurationInNight": 0,
"City": 312,
"Country": 460,
"Attributes": 0,
"IsRemovable": false,
"Type": 1,
"IsHooded": false,
"IsNotCalculated": false,
"BeginDateTimeString": "2021-10-19T09:59:00",
"EndDateTimeString": "2021-10-19T12:59:00",
"TemplateId": 2,
"Cost": 0,
"ByPax": true,
"QuotaStatus": {
"PlacesStatus": 4,
"FreePlaces": 0,
"IsFewPlaces": false
},
"Index": 1,
"IsRoute": true,
"ServiceTemplateIndex": 1,
"IsCommission": true,
"BaseFlightsParams": [
{
"CityArrival": 62,
"FlightCode": 2111,
"TariffKey": 339,
"PartnerId": 12685
},
{
"CityArrival": 312,
"FlightCode": 2080,
"TariffKey": 339,
"PartnerId": 12685
}
]
},
"TouristNumbersList": [
1,
2
]
}
],
"Tourists": [
{
"IsMain": true,
"Number": 1,
"AgeType": 0,
"MaleFemaleSex": 0,
"FirstName": "ETYETY",
"LastName": "REYERYETY",
"Patronymic": "",
"FirstNameRus": "ETYETY",
"LastNameRus": "REYERYETY",
"PatronymicRus": "",
"InternationalPassportSeries": "",
"InternationalPassportNumber": "",
"InternationalPassportDateOfIssue": "",
"InternationalPassportDateOfIssueString": "",
"InternationalPassportDateOfExpiry": "",
"InternationalPassportDateOfExpiryString": "",
"internationalPassportByWhom": "",
"PassportSeries": "",
"PassportNumber": "",
"PassportDateOfIssue": "",
"PassportDateOfIssueString": "",
"PassportByWhom": "",
"Citizenship": "",
"Phone": "",
"Email": "",
"BirthDay": "1987-04-09T19:00:00.000Z",
"BirthDayString": "10.04.1987",
"BirthPlace": "",
"CitizenID": "",
"Age": 34
},
{
"IsMain": false,
"Number": 2,
"AgeType": 0,
"MaleFemaleSex": 0,
"FirstName": "ETYETY",
"LastName": "ETYTY",
"Patronymic": "",
"FirstNameRus": "ETYETY",
"LastNameRus": "ETYTY",
"PatronymicRus": "",
"InternationalPassportSeries": "",
"InternationalPassportNumber": "",
"InternationalPassportDateOfIssue": "",
"InternationalPassportDateOfIssueString": "",
"InternationalPassportDateOfExpiry": "",
"InternationalPassportDateOfExpiryString": "",
"internationalPassportByWhom": "",
"PassportSeries": "",
"PassportNumber": "",
"PassportDateOfIssue": "",
"PassportDateOfIssueString": "",
"PassportByWhom": "",
"Citizenship": "",
"Phone": "",
"Email": "",
"BirthDay": "1987-04-09T19:00:00.000Z",
"BirthDayString": "10.04.1987",
"BirthPlace": "",
"CitizenID": "",
"Age": 34
}
],
"TechnicalProblemsDuringUpdateFlights": false,
"TimeLimit": null,
"CountryKey": 1,
"OwnerId": 106,
"Day": "день",
"Day2": "дня",
"Days": "дней",
"Night": "ночь",
"Night2": "ночи",
"Nights": "ночей",
"adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги",
"incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)"
}
Возвращаемый результат метода CheckDoubleDogovor (в формате JSON) {
"Errors": [],
"Warnings": null,
"States": null,
"IsValid": true
}
|
Дополнительные методы
Выгрузка измененных турпрограмм (TourProgram) начиная с релиза 15.3
Метод производит выгрузку измененных турпрограмм, в которых были сделаны изменения с указанной даты и времени и повлияли на маршруты в турпрограмме. К таким изменениям относятся изменения страны и города начала поездки, страны и города по туру, типа тура. Изменения цен по услугам не приводят к обновлению турпрограмме, такие турпрограммы в ответе не будут указаны. Турпрограммы, по которым статус Доступен для продажи сменился на другой за период, указанный в запросе, в ответе тоже не будут указаны.
- Формат запроса:
- GET .../TourSearchOwin/TourProgram?
- Принимаемые параметры GET запроса ( * – обязательный):
- fromDateTime – дата (в формате dd.MM.yyyy HH:mm:ss), начиная с которой будут выгружаться изменения,
- Возвращаемый результат:
- Key – ключ программы туров
- Name – название программы туров
- UpdateDate – дата последнего изменения программы туров (или связанных с ней компонентов)
- routes – массив возможных маршрутов в данной программе туров
- departureCountryKey – страна начала поездки (для каждой страны начала поездки в одной программе тура будет отдельный маршрут)
- departureCityKey – город начала поездки (для каждого города начала поездки в одной программе тура будет отдельный маршрут)
- destinationCountryKeys – страны по туру (если в туре несколько услуг класса отель и они в разных странах, то будут возвращаться все страны отелей)
- destinationCityKeys – города по туру (если в туре отели в нескольких городах, то будут возвращаться все города отелей)
- tourTypeKeys – типы туров для данной программы туров
Вызов метода TourProgram GET http://localhost:9000/TourSearchOwin/TourProgram?fromDateTime=20.08.2022 00:00:00
Возвращаемый результат метода TourProgram (в формате JSON) [{
"key": 100002353,
"name": "Турпрограмма в Австрию",
"updateDate": "2018-09-25T13:48:13.847",
"routes": [{
"departureCountryKey": 5,
"departureCityKey": 218,
"destinationCountryKeys": [80],
"destinationCityKeys": [19,
1051,
113],
"tourTypeKeys": [52]
},
{
"departureCountryKey": 5,
"departureCityKey": 766,
"destinationCountryKeys": [80],
"destinationCityKeys": [19,
1051,
113],
"tourTypeKeys": [52]
}]
},
{
"Key": 100004452,
"Name": "Турпрограмма в Англию"
"UpdateDate": "2018-06-30T10:09:35.22"
"routes": [{
"departureCountryKey": -1,
"departureCityKey": -1,
"destinationCountryKeys": [80],
"destinationCityKeys": [19],
"tourTypeKeys": [52,
35]
}]
}]
|
Проверка построения маршрутов турпрограммы (CheckTourProgram)
Метод производит построение маршрутов турпрограмм (вызывается из проверки тура). Метод проверяет маршруты по турпрограммам с любым статусом (не только по статусу Доступен для подажи).
- Формат запроса:
- GET .../TourSearchOwin/CheckTourProgram?
- Принимаемые параметры GET запроса ( * – обязательный):
- tourKey – ключ турпрограммы
- Возвращаемый результат:
- Message – сообщение Начинаем строить маршрут.
- Message – сообщение Маршрутов по данной программе тура построилось – количество
- Message – сообщение Построено каркасов маршрутов (без конкретных отелей) – количество
Вызов метода CheckTourProgram GET http://localhost:9000/TourSearchOwin/CheckTourProgram?tourKey=100007837
Возвращаемый результат метода CheckTourProgram (в формате JSON) [
{
"Message": "[startingMakingRouteUpper]",
"MessageType": 0
},
{
"Message": "[routeCarcassesBuildWithoutSpecificHotelsUpper] - 10",
"MessageType": 1
},
{
"Message": "[routesMadeByThisTourProgrammUpper] - 10",
"MessageType": 1
}
]
|
Получение разметки формы для новой формы быстрого поиска (GetJavascriptFile)
Метод получает разметку формы для новой формы быстрого поиска.
- Формат запроса:
- GET .../TourSearchOwin/GetJavascriptFile/Get?
- Принимаемые параметры GET запроса ( * – обязательный):
- name – имя файла
- Возвращаемый результат:
- полученный файл
Вызов метода GetJavascriptFile/Get GET http://localhost:9000/TourSearchOwin/GetJavascriptFile/Get?name=demoSearch.js
Возвращаемый результат метода GetJavascriptFile/Get (в формате JSON) [
полученный файл demoSearch.js
]
|
Проверка подключения к внешним системам (GDSCheckConnection)
Метод производит проверку подключения к внешней системе.
- Формат запроса:
- POST .../TourSearchOwin/GDSCheckConnection?
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Принимаемые параметры POST запроса ( * – обязательный):
- adapterTypeName – адаптер
- id – ключ адаптера
- apiAddress – api-адрес
- settings – набор настроек (у каждого адаптера индивидуальный)
- Key – _Login
- Value – логин
- Key – _Password
- Value – пароль
- Key – _UserID
- Value – ID пользователя
- licenseDateExpiry – дата окончания лицензии
- Возвращаемый результат:
- Errors – описание ошибки
- Warnings – предупреждение
- States – статус
- IsValid – результат проверки подключения (true/false)
Вызов метода GDSCheckConnection POST http://localhost:9000/TourSearchOwin/GDSCheckConnection? HTTP/1.1
Content-Type: application/json
{
"adapterTypeName": "TravelBoxAdapter",
"id": 5565,
"apiAddress": "http://dev24.desertadventur.com/",
"settings": [{
"Key": "TravelBox_Login",
"Value": "Login"
}, {
"Key": "TravelBox_Password",
"Value": "Password"
}, {
"Key": "TravelBox_UserID",
"Value": "12345"
}, {
"Key": "TravelBox_CompanyCode",
"Value": "DA_UAE"
}, {
"Key": "TravelBox_Division",
"Value": "FIT_UAE"
}, {
"Key": "TravelBox_Department",
"Value": "FIT- Local"
}, {
"Key": "TravelBox_TouroperatorCode",
"Value": "54321"
}, {
"Key": "TravelBox_MaxResponses",
"Value": "200"
}, {
"Key": "TravelBox_AvailRatesOnly",
"Value": "AvailRatesOnly"
}, {
"Key": "TravelBox_CacheTimelife",
"Value": "10"
}
],
"licenseDateExpiry": "01.01.2022"
}
Возвращаемый результат метода GDSCheckConnection (в формате JSON) [{
"Errors": [],
"Warnings": null,
"States": null,
"IsValid": true
}]
|
Подтверждения оплаты полиса в ЕВРОИНС
Для подтверждения оплаты метод будет обращаться к внешним службам для подтверждения платежа.
Страховая компания ЕВРОИНС
- Формат запроса:
- POST .../TourSearchOwin/EuroinsConfirmPay
- Принимаемые параметры headers ( * – обязательный):
- Content-Type * – application/json
- Принимаемые параметры POST запроса ( * – обязательный):
- policyId * – ID полиса
- code * – код партнера
- Возвращаемый результат:
- success: true – подтверждено (код 200)
- error – описание ошибки (код 400)
Вызов метода EuroinsConfirmPay POST localhost:9000/TourSearchOwin/EuroinsConfirmPay
Content-Type: application/json { "policyId": "134574", "code": "oqxKQXlOInSJqLl" } </syntaxhighlight> Возвращаемый результат метода EuroinsConfirmPay (в формате JSON) Код 200:
{
"success": true
}
Код 400:
{
"error": "Не удалось выполнить действие"
}
|
Приложения
Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)
Параметры ServiceType – это ключ типа услуги, Сode – ключ услуги, SubCode1 и SubCode2, возвращаемые при API-запросах – это параметры дополнительных описаний двух типов, индивидуальных для каждой услуги.
Ключ типа услуги (ServiceType) | Наименование типа услуги | Ключ услуги (Code) | Доп. описание 1 (SubCode1) | Таблица БД со значениями SubCode1 | Доп. описание 2 (SubCode2) | Таблица БД со значениями SubCode2 |
---|---|---|---|---|---|---|
1 | Авиаперелет | индивидуальный ключ услуги | Тариф | AirService | отсутствует | отсутствует |
2 | Трансфер | индивидуальный ключ услуги | Вид транспорта | Transport | отсутствует | отсутствует |
3 | Отель/Круиз | индивидуальный ключ услуги | Вид проживания (Тип номера + Категория номера + Тип размещения) | HotelRooms (Rooms + RoomCategory + Accmdmentype) | Тип питания | Pansion |
4 | Экскурсия | индивидуальный ключ услуги | Вид транспорта | Transport | отсутствует | отсутствует |
5 | Виза | индивидуальный ключ услуги | отсутствует | отсутствует | отсутствует | отсутствует |
6 | Страховка | индивидуальный ключ услуги | Доп. описание 1 | AddDescript1 | Доп. описание 2 | AddDescript2 |
8 | Доп услуга в отеле/круизе | индивидуальный ключ услуги | Вид проживания (Тип номера + Категория номера + Тип размещения) | HotelRooms (Rooms + RoomCategory + Accmdmentype) | Доп. описание 2 | AddDescript2 |
14 | Автобусный переезд | индивидуальный ключ услуги | Место посадки | BusTransferPoints | Вид транспорта | Transport |
99 | Любая пользовательская услуга | индивидуальный ключ услуги | Доп. описание 1 | AddDescript1 | Доп. описание 2 | AddDescript2 |