Мастер-Тур(15):API для разработки онлайн поиска и бронирования — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Выгрузка списка городов (ActualizeCities))
 
(не показаны 293 промежуточные версии 10 участников)
Строка 1: Строка 1:
<span style="color:red;font-size:120%">Статья находится на стадии разработки.</span><br />
 
 
 
Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}.
 
Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}.
  
Строка 9: Строка 7:
  
 
==Введение==
 
==Введение==
Данный web-сервис разработан для разработки собственного сайта туроператору на основе API.
+
Данный 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)===
 
===Выгрузка настроек службы поиска (Settings)===
 
Метод производит выгрузку настроек службы поиска.
 
Метод производит выгрузку настроек службы поиска.
 
* Формат запроса:
 
* Формат запроса:
** .../TourSearchOwin/Settings?
+
** GET .../TourSearchOwin/Settings?
 
* Принимаемые параметры:
 
* Принимаемые параметры:
 
** нет принимаемых параметров
 
** нет принимаемых параметров
 
* Возвращаемый результат:
 
* Возвращаемый результат:
** '''ChildAgesSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Панель администрирования#Общие настройки|максимальный возраст ребенка]] (массив возрастов, при которых турист будет считаться ребенком
+
** '''ChildAgesSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|максимальный возраст ребенка]] (массив возрастов, при которых турист будет считаться ребенком
** '''DurationSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Панель администрирования#Общие настройки|максимальная продолжительность тура]] (массив продолжительностей, доступных в фильтрах для поиска)
+
** '''DurationSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|максимальная продолжительность тура]] (массив продолжительностей, доступных в фильтрах для поиска)
 
** '''RoundServiceSetting''' – признак округления цены (количество знаков после запятой)
 
** '''RoundServiceSetting''' – признак округления цены (количество знаков после запятой)
 
** '''CacheReady''' – статус готовности службы поиска к работе (true/false)
 
** '''CacheReady''' – статус готовности службы поиска к работе (true/false)
Строка 45: Строка 97:
 
** '''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="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 51: Строка 111:
 
Вызов метода Settings
 
Вызов метода Settings
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/Settings
+
GET http://localhost:9000/TourSearchOwin/Settings
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода Settings (в формате JSON)
 
Возвращаемый результат метода Settings (в формате JSON)
Строка 116: Строка 176:
 
   "MaxSearchDatesCountClient": 10,
 
   "MaxSearchDatesCountClient": 10,
 
   "MaxDurationsCountClient": 14
 
   "MaxDurationsCountClient": 14
 +
  "UseHotelCategoryGlobalCodeInDopFilter": false
 +
  "UsePansionGlobalCodeInDopFilter": false
 +
  "CheckTouristDataInBasket": true
 +
  "SimpleRegistration": false
 +
  "ShowHotelImagesInSearch": true
 +
  "CacheReadyMessage": "Кеш инициализирован"
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 121: Строка 187:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка списка валют (Currency)===
+
 
 +
===Выгрузка списка валют в онлайне (Currency)===
 
Метод возвращает список используемых валют.
 
Метод возвращает список используемых валют.
 
* Формат запроса:
 
* Формат запроса:
** .../TourSearchOwin/Currency
+
** GET .../TourSearchOwin/Currency
 
* Принимаемые параметры:
 
* Принимаемые параметры:
 
** нет принимаемых параметров
 
** нет принимаемых параметров
Строка 133: Строка 200:
 
** '''IsNational''' – признак валюты «Национальная»
 
** '''IsNational''' – признак валюты «Национальная»
 
** '''IsoCode''' – ISO код валюты
 
** '''IsoCode''' – ISO код валюты
 +
** '''IsShowInSearch''' – признак показывать ли валюту в поиске
 +
** '''Symbol''' – символ валюты (обрабатывается с 15.7)
 
** '''Key''' – идентификатор валюты
 
** '''Key''' – идентификатор валюты
** '''IsShowInSearch''' – признак показывать ли валюту в поиске
+
 
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 141: Строка 210:
 
Вызов метода Currency
 
Вызов метода Currency
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/Currency
+
GET http://localhost:9000/TourSearchOwin/Currency
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода Currency (в формате JSON)
 
Возвращаемый результат метода Currency (в формате JSON)
Строка 152: Строка 221:
 
       "IsNational": false,
 
       "IsNational": false,
 
       "IsoCode": "EUR",
 
       "IsoCode": "EUR",
       "Key": 2,
+
      "IsShowInSearch": true,
       "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
 
   },
 
   },
 
       {
 
       {
Строка 161: Строка 347:
 
       "IsNational": true,
 
       "IsNational": true,
 
       "IsoCode": "RUR",
 
       "IsoCode": "RUR",
       "Key": 14,
+
       "IsShowInSearch": true,
       "IsShowInSearch": true
+
      "Symbol": "₽",
 +
       "Key": 14
 
   },
 
   },
 
       {
 
       {
Строка 170: Строка 357:
 
       "IsNational": false,
 
       "IsNational": false,
 
       "IsoCode": "USD",
 
       "IsoCode": "USD",
       "Key": 1,
+
      "IsShowInSearch": true,
      "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="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода convertFilterPrice
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/AllCurencies/convertFilterPrice?SourceRateKey=2&TargetRateKey=1&MinPrice=10&MaxPrice=200
 +
</syntaxhighlight>
 +
Возвращаемый результат метода convertFilterPrice (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
    "m_Item1": 12.035142616440004814057046576,
 +
    "m_Item2": 240.70285232880009628114093152
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</TD></TR></TABLE>
 
</TD></TR></TABLE>
Строка 181: Строка 410:
 
Метод производит выгрузку услуг с признаком «Квотируемая»
 
Метод производит выгрузку услуг с признаком «Квотируемая»
 
* Формат запроса:
 
* Формат запроса:
** .../TourSearchOwin/QuotedServices
+
** GET .../TourSearchOwin/QuotedServices
 
* Принимаемые параметры:
 
* Принимаемые параметры:
 
** нет принимаемых параметров
 
** нет принимаемых параметров
Строка 191: Строка 420:
 
** '''IsDuration''' – наличие продолжительности у услуги
 
** '''IsDuration''' – наличие продолжительности у услуги
 
** '''IsCity''' – наличие города у услуги
 
** '''IsCity''' – наличие города у услуги
** '''IsSubCode1''' – признак наличия ''SubCode1'' у услуги (вид проживания у отеля, тариф у авиаперелета)
+
** '''IsSubCode1''' – признак наличия [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|SubCode1]] у услуги
** '''IsSubCode2''' – признак наличия ''SubCode2'' у услуги (тип питания у отеля)
+
** '''IsSubCode2''' – признак наличия [[#Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)|SubCode2]] у услуги  
 
** '''Quoted''' – признак квотируемости услуги
 
** '''Quoted''' – признак квотируемости услуги
 
** '''CheckGeoPoint''' – наличие геоточек у услуги
 
** '''CheckGeoPoint''' – наличие геоточек у услуги
 
** '''IsRoute''' – признак маршрутной услуги
 
** '''IsRoute''' – признак маршрутной услуги
** '''LittlePercent''' – число в %, при которых будет считаться количество мест «Мало»
 
** '''LittlePlace''' – число, при котором будет считаться количество мест «Мало»
 
** '''LittleAnd''' – признак наличия мест «Мало» – будем ли учитывать количество мест вместе с процентным соотношением между общим и оставшимся количеством мест
 
 
** '''IsPartnerBasedOn''' – признак сопоставления партнера услуги в зависимости от отеля
 
** '''IsPartnerBasedOn''' – признак сопоставления партнера услуги в зависимости от отеля
 
** '''Control''' – идентификатор статуса услуги
 
** '''Control''' – идентификатор статуса услуги
Строка 207: Строка 433:
 
Вызов метода QuotedServices
 
Вызов метода QuotedServices
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/QuotedServices
+
GET http://localhost:9000/TourSearchOwin/QuotedServices
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода QuotedServices (в формате JSON)
 
Возвращаемый результат метода QuotedServices (в формате JSON)
Строка 224: Строка 450:
 
       "CheckGeoPoint": true,
 
       "CheckGeoPoint": true,
 
       "IsRoute": true,
 
       "IsRoute": true,
      "LittlePercent": null,
 
      "LittlePlace": 10,
 
      "LittleAnd": true,
 
 
       "IsPartnerBasedOn": false,
 
       "IsPartnerBasedOn": false,
 
       "Control": 1
 
       "Control": 1
Строка 242: Строка 465:
 
       "CheckGeoPoint": true,
 
       "CheckGeoPoint": true,
 
       "IsRoute": true,
 
       "IsRoute": true,
      "LittlePercent": 99,
 
      "LittlePlace": 5,
 
      "LittleAnd": false,
 
 
       "IsPartnerBasedOn": false,
 
       "IsPartnerBasedOn": false,
 
       "Control": 1
 
       "Control": 1
Строка 253: Строка 473:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка городов отправления (departureCities)===
+
===Выгрузка актуальных городов отправления (departureCities)===
 
Метод производит выгрузку всех доступных городов отправления для поискового запроса.
 
Метод производит выгрузку всех доступных городов отправления для поискового запроса.
 
* Формат запроса:
 
* Формат запроса:
** .../TourSearchOwin/departureCities?  
+
** GET .../TourSearchOwin/departureCities?  
 
* Принимаемые параметры:
 
* Принимаемые параметры:
 
** нет принимаемых параметров
 
** нет принимаемых параметров
Строка 268: Строка 488:
 
Вызов метода departureCities
 
Вызов метода departureCities
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/departureCities
+
GET http://localhost:9000/TourSearchOwin/departureCities
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода departureCities (в формате JSON)
 
Возвращаемый результат метода departureCities (в формате JSON)
Строка 290: Строка 510:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка списка стран (Destination)===
+
===Выгрузка актуальных стран (Destination)===
 
Метод производит выгрузку всех доступных направлений туроператора.
 
Метод производит выгрузку всех доступных направлений туроператора.
 
* Формат запроса:
 
* Формат запроса:
** .../TourSearchOwin/Destination?
+
** GET .../TourSearchOwin/Destination?
* Принимаемые параметры ( * – обязательный):
+
* Принимаемые параметры ( '''*''' – обязательный):
** '''pageNumber''' – номер страницы ???
+
** '''departureCities *''' – идентификатор города(ов) отправления (из контроллера [[#Выгрузка актуальных городов отправления (departureCities)|''.../TourSearchOwin/departureCities?'']])
** '''term *''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
+
** '''type''' – настройка easySearchFilter (0/не указано - настройка выключена, 1 - настройка включена)
** '''showAll''' – ??? (true/false)
+
** '''term''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
** '''departureCities *''' – идентификатор города отправления (из контроллера ''.../TourSearchOwin/departureCities?'')
 
 
* Возвращаемый результат:
 
* Возвращаемый результат:
 
** '''Name''' – название страны
 
** '''Name''' – название страны
 
** '''Key''' – идентификатор страны
 
** '''Key''' – идентификатор страны
** '''DestinationType''' – ??? (всегда возвращается в JSON = 1, в xml = country)
+
** '''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="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 309: Строка 537:
 
Вызов метода Destination
 
Вызов метода Destination
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/Destination?pageNumber=1&term=&showAll=false&departureCities=1
+
 
 +
GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода Destination (в формате JSON)
 
Возвращаемый результат метода Destination (в формате JSON)
Строка 315: Строка 544:
 
[
 
[
 
       {
 
       {
       "Name": "Болгария",
+
       "Data": null,
       "Key": 359,
+
      "DestinationType": 1,
       "DestinationType": 1
+
      "IsExist": false,
 +
       "Key": 90,
 +
       "Name": "Австрия"
 +
   
 +
   
 
   },
 
   },
 
       {
 
       {
       "Name": "Индия",
+
       "Data": null,
       "Key": 26,
+
      "DestinationType": 1,
       "DestinationType": 1
+
      "IsExist": false,
 +
       "Key": 53,
 +
       "Name": "Тайланд"
 +
     
 +
     
 
   },
 
   },
 
       {
 
       {
       "Name": "Финляндия",
+
       "Data": null,
       "Key": 64,
+
      "DestinationType": 1,
       "DestinationType": 1
+
      "IsExist": false,
 +
       "Key": 460,
 +
       "Name": "Россия"
 +
     
 +
     
 
   }
 
   }
 +
]
 +
GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1&type=1
 +
</syntaxhighlight>
 +
Возвращаемый результат метода Destination (в формате JSON) с включенной настройкой easySearchFilter
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
{
 +
  "Name": "Австрия",
 +
  "Key": 90,
 +
  "DestinationType": 1,
 +
  "IsExist": false,
 +
  "Data":
 +
        [
 +
        {
 +
          "CityKey": 35,
 +
          "CityName": "Вена",
 +
          "HotelKey": 178,
 +
          "HotelName": "Ananas, 5+++*",
 +
          "ResortKey": 232,
 +
          "ResortName": "Малина"
 +
        },
 +
        {
 +
          "CityKey": 35,
 +
          "CityName": "Вена",
 +
          "HotelKey": 20748,
 +
          "HotelName": "Dev, 1-4*Boutique",
 +
          "ResortKey": 0,
 +
          "ResortName": ""
 +
        },
 +
      ],
 +
}
 +
{
 +
  "Name": "Тайланд",
 +
  "Key": 53,
 +
  "DestinationType": 1,
 +
  "IsExist": false,
 +
  "Data":
 +
        [
 +
          {
 +
            "CityKey": 415,
 +
            "CityName": "Пхукет",
 +
            "HotelKey": 5263,
 +
            "HotelName": "7Q Hotel, HV",
 +
            "ResortKey": 123,
 +
            "ResortName": "Пхукет"
 +
          }
 +
        ],
 +
},
 +
{
 +
  "Name": "Россия",
 +
  "Key": 460,
 +
  "DestinationType": 1,
 +
  "IsExist": false,
 +
  "Data":
 +
        [
 +
          {
 +
            "CityKey": 295,
 +
            "CityName": "Санкт-Петербург",
 +
            "HotelKey": 20365,
 +
            "HotelName": "Бристоль, 3*",
 +
            "ResortKey": 0,
 +
            "ResortName": ""
 +
          }
 +
        ],
 +
},
 +
{
 +
  "Name": "ОАЭ",
 +
  "Key": 2,
 +
  "DestinationType": 1,
 +
  "IsExist": false,
 +
  "Data":
 +
        [
 +
          {
 +
          "CityKey": 12,
 +
          "CityName": "ДУБАЙ",
 +
          "HotelKey": 1257,
 +
          "HotelName": "Avari, APTH3",
 +
          "ResortKey": 0,
 +
          "ResortName": ""
 +
          },
 +
      ],
 +
}
 
]
 
]
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 334: Строка 657:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка списка городов (ActualizeCities)===
+
===Выгрузка актуальных городов (ActualizeCities)===
 
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.
 
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.
 
* Формат запроса:
 
* Формат запроса:
** .../TourSearchOwin/ActualizeCities?
+
** GET .../TourSearchOwin/ActualizeCities?
* Принимаемые параметры ( * – обязательный):
+
* Принимаемые параметры ( '''*''' – обязательный):
** '''cityKeys *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/departureCities?'')
+
** '''cityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'')
 
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
 
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
** '''Name *''' – название страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
+
** '''term''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
** '''term *''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
 
 
* Возвращаемый результат:
 
* Возвращаемый результат:
 
** '''Key''' – идентификатор города
 
** '''Key''' – идентификатор города
Строка 352: Строка 674:
 
Вызов метода ActualizeCities
 
Вызов метода ActualizeCities
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/ActualizeCities?cityKeys=1&Key=90&Name=Австрия&term=
+
GET http://localhost:9000/TourSearchOwin/ActualizeCities?cityKeys=1&Key=90
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода ActualizeCities (в формате JSON)
 
Возвращаемый результат метода ActualizeCities (в формате JSON)
Строка 374: Строка 696:
 
</div></div><br />
 
</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 />
  
===Выгрузка списка категорий отелей (GetHotelCategories)===
+
===Выгрузка актуальных продолжительностей (Duration)===
Метод возвращает список категорий отелей (примеры: 3*, 4*, Apts и т.д.).
+
Метод производит выгрузку доступных продолжительностей для поискового запроса.
 
* Формат запроса:
 
* Формат запроса:
** ?action=GetHotelCategories
+
** GET .../TourSearchOwin/Duration?
* Принимаемые параметры:
+
* Принимаемые параметры ( '''*''' – обязательный):
** '''id''' – идентификатор категории отеля (опциональный, передача в запрос нескольких id не обрабатывается, в этом случае возвращаются все результаты. Если указан, то запрашивается только одна запись)
+
** '''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="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода Duration
 +
<syntaxhighlight lang="java" enclose="div">
 +
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>
 +
Возвращаемый результат метода Duration (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
  7,
 +
  8,
 +
  10,
 +
  12,
 +
  15,
 +
  18
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</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.
 +
 +
 
 
* Возвращаемый результат:
 
* Возвращаемый результат:
** '''id''' – идентификатор категории отеля
+
** '''CheckMessages''' – сообщения для логики проверки тура (не используется)
** '''name''' – название категории отеля
+
** '''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>
Вызов метода GetHotelCategories
+
Вызов метода Tour
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/searchApi?action=GetHotelCategories
+
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>
Возвращаемый результат метода GetHotelCategories (в формате JSON)
+
Возвращаемый результат метода Tour (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
{
 
{
   "version": "1.0",
+
   "CheckMessages": null,
   "hotelCategories":    [
+
  "Message":    {
 +
      "Key": 0,
 +
      "Value": null
 +
  },
 +
   "Result":    [
 
             {
 
             {
         "id": 59,
+
         "Key": 100000004,
         "name": "5*"
+
         "Name": "Общая проверка системы",
      },
+
        "TourUrl": "www.megatec.ru",
             {
+
        "BookingConditions": "<p>Условия бронирования тура.<\/p>",
         "id": 58,
+
        "StartDate": "2018-02-25T00:00:00",
         "name": "4*"
+
        "Duration": 4,
      },
+
        "DurationInNight": 3,
             {
+
        "Types": [2],
         "id": 57,
+
        "Cost": 260,
         "name": "3*"
+
        "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"
 +
        }
 +
      ]
 +
  }
 +
}
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</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="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода TransportPlan
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/TransportPlan?code=1311&dateBegin=17.04.2018&serviceType=14&transportKey=39
 +
</syntaxhighlight>
 +
Возвращаемый результат метода TransportPlan (в формате JSON)
 +
<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>
Строка 418: Строка 2232:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка списка отелей (GetHotels)===
+
===Выгрузка транспортного плана (TransportPlan) начиная с релиза 15.8===
Метод возвращает список всех доступных отелей, на которые есть актуальные цены.
+
Метод производит выгрузку транспортного плана.
 
* Формат запроса:
 
* Формат запроса:
** ?action=GetHotels
+
** GET .../TourSearchOwin/TransportPlan?
* Принимаемые параметры:
+
* Принимаемые параметры ( '''*''' – обязательный):
** '''id''' – идентификатор отеля (опциональный, передача в запрос нескольких id не обрабатывается, в этом случае возвращаются все результаты. Если указан, то запрашивается только одна запись)
+
** '''code''' – код услуги
 +
** '''dateBegin''' – дата услуги
 +
** '''serviceType''' – тип услуги
 +
** '''transportKey''' – ключ справочника транспорт
 +
 
 +
* Возвращаемый результат:
 +
** '''VehiclePlans''' – массив параметров зон плана
 +
*** '''Key''' – ключ зоны
 +
*** '''TransportKey''' – ключ из справочника транспорт
 +
*** '''Row''' – количество рядов
 +
*** '''AreaNumber''' – номер уровня
 +
*** '''Name''' – название уровня
 +
*** '''PlanOrientation''' – ориентация плана (''false'' - горизонтальная, ''true'' - вертикальная)
 +
*** '''Column''' – количество столбцов
 +
*** '''IsAirCraft''' – является ли планом самолета (''false'' - нет, ''true'' - является)
 +
*** '''Type''' – не используется
 +
** '''Seats''' – массив параметров посадочного места
 +
*** '''Key''' – ключ места
 +
*** '''SeatType''' – тип места (None = 0, Seat = 1, Pass/comment = 2, Block = 4, Busy = 5)
 +
*** '''Index''' – индекс места
 +
*** '''Number''' – название ячейки с местом
 +
*** '''Type''' – тип "место"
 +
*** '''VPKey''' – ключ зоны
 +
*** '''Border''' – обводка границы (комбинация цифр, где 0 - нет обводки, 1 - обводка в 1 px, 2 - обводка в 2 px)
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода TransportPlan
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/TransportPlan?code=1776&dateBegin=28.03.2022&serviceType=14&transportKey=35
 +
</syntaxhighlight>
 +
Возвращаемый результат метода TransportPlan (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
"VehiclePlans":
 +
[
 +
  {
 +
    "Key": 291,
 +
    "TransportKey": 35,
 +
    "Row": 2,
 +
    "AreaNumber": 1,
 +
    "Name": "Зона 1",
 +
    "PlanOrientation": false,
 +
    "Column": 3,
 +
    "IsAirCraft": false,
 +
    "Type": "VehiclePlans"
 +
  },
 +
  {
 +
    "Key": 292,
 +
    "TransportKey": 35,
 +
    "Row": 3,
 +
    "AreaNumber": 2,
 +
    "Name": "Зона 2",
 +
    "PlanOrientation": true,
 +
    "Column": 2,
 +
    "IsAirCraft": false,
 +
    "Type": "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>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
===Получение дат заезда по турпрограмме===
 +
Работает начиная с релиза 15.8.
 +
Метод возвращает даты заезда по ключу турпрограммы.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/TransportPlan?
 +
* Принимаемые параметры ( '''*''' – обязательный):
 +
** '''tourProgramKey *''' – ключ турпрограммы
 +
 
 
* Возвращаемый результат:
 
* Возвращаемый результат:
** '''id''' – идентификатор отеля
+
** '''Массив дат заезда по туру'''
** '''name''' – название отеля
+
 
** '''hotelCategoryId''' – идентификатор категории отеля
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
** '''resortId''' – идентификатор города, в котором расположен отель
+
<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>
Вызов метода GetHotels
+
Вызов метода  
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/searchApi?action=GetHotels
+
GET http://localhost:9000/TourSearchOwin/TransportPlan?tourProgramKey=100001221&dateBegin=06.09.2023&serviceType=14
 
</syntaxhighlight>
 
</syntaxhighlight>
Возвращаемый результат метода GetHotels (в формате JSON)
+
Возвращаемый результат метода (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
{
 
{
  "version": "1.0",
+
    "plan": {
  "hotels":   [
+
        "VehiclePlans": [
 
             {
 
             {
        "id": 672,
+
                "Key": 10,
        "name": "'Opal",
+
                "TransportKey": 24,
        "hotelCategoryId": 59,
+
                "Row": 10,
        "resortId": 0
+
                "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"
 +
            },
 
             {
 
             {
        "id": 106,
+
                "Key": 408,
        "name": "OPERA LAFAYETTE",
+
                "SeatType": 0,
        "hotelCategoryId": 23,
+
                "Index": 2,
        "resortId": 42
+
                "Number": "",
      },
+
                "Type": "Seat",
 +
                "VPKey": 10,
 +
                "Border": "0000"
 +
            },
 
             {
 
             {
        "id": 683,
+
                "Key": 409,
        "name": "Altstadt Vienna",
+
                "SeatType": 1,
        "hotelCategoryId": 23,
+
                "Index": 3,
        "resortId": 0
+
                "Number": "3",
      },
+
                "Type": "Seat",
 +
                "VPKey": 10,
 +
                "Border": "0000"
 +
            },
 
             {
 
             {
        "id": 702,
+
                "Key": 410,
        "name": "Albatros",
+
                "SeatType": 1,
        "hotelCategoryId": 57,
+
                "Index": 4,
        "resortId": 0
+
                "Number": "4",
      },
+
                "Type": "Seat",
 +
                "VPKey": 10,
 +
                "Border": "0000"
 +
            },
 
             {
 
             {
        "id": 709,
+
                "Key": 411,
        "name": "Am Brilliantengrund",
+
                "SeatType": 1,
        "hotelCategoryId": 23,
+
                "Index": 5,
        "resortId": 40
+
                "Number": "5",
      },
+
                "Type": "Seat",
 +
                "VPKey": 10,
 +
                "Border": "0000"
 +
            },
 
             {
 
             {
        "id": 2362,
+
                "Key": 412,
        "name": "Gastehaus Franz Riml",
+
                "SeatType": 1,
        "hotelCategoryId": 58,
+
                "Index": 6,
        "resortId": 0
+
                "Number": "6",
      }          
+
                "Type": "Seat",
  ]
+
                "VPKey": 10,
 +
                "Border": "0000"
 +
            }
 +
        ]
 +
    },
 +
    "routeCity": "Москва - Казань"
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 484: Строка 2574:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка видов питания (GetMeals)===
+
===Выгрузка первоначального варианта в корзину для бронирования (Tour)===
Метод возвращает список видов питания (примеры: HB, BB, без питания и т.д.).
+
Метод поиска, который возвращает варианты только по данной турпрограмме и схеме отеля.
 
* Формат запроса:
 
* Формат запроса:
** ?action=GetMeals
+
** GET .../TourSearchOwin/Tour?
* Принимаемые параметры:
+
* Принимаемые параметры ( '''*''' – обязательный):
** '''id''' – идентификатор вида питания (опциональный, передача в запрос нескольких id не обрабатывается, в этом случае возвращаются все результаты. Если указан, то запрашивается только одна запись)
+
** '''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.
 +
 
 
* Возвращаемый результат:
 
* Возвращаемый результат:
** '''id''' – идентификатор вида питания
+
** '''CheckMessages''' – сообщения для логики проверки тура (не используется)
** '''name''' – название вида питания
+
** '''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>
Вызов метода GetMeals
+
Вызов метода Tour (первоначальный вариант Tour в корзине для бронирования)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/searchApi?action=GetMeals
+
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>
Возвращаемый результат метода GetMeals (в формате JSON)
+
Возвращаемый результат метода Tour (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
{
 
{
   "version": "1.0",
+
   "CheckMessages": null,
   "meals":    [
+
  "Message":    {
 +
      "Key": 0,
 +
      "Value": null
 +
  },
 +
   "Result":    [
 
             {
 
             {
         "id": 1,
+
         "Key": 100003404,
         "name": "Пансион"
+
        "Name": "Удалить этот тур",
      },
+
        "TourUrl": "www.megatec.ru",
             {
+
        "BookingConditions": "Условия бронирования тура",
        "id": 2,
+
        "StartDate": "2018-03-31T00:00:00",
        "name": "Полупансион"
+
        "Duration": 8,
      },
+
        "DurationInNight": 7,
             {
+
        "Types": [2],
         "id": 4,
+
        "Cost": 122,
         "name": "Завтрак буфет"
+
        "Rate": "EU",
      },
+
        "CityDepature":          {
             {
+
            "Key": 1,
         "id": 11,
+
            "Value": "Москва"
         "name": "Шведский стол"
+
        },
 +
        "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>
 
</syntaxhighlight>
 
</TD></TR></TABLE>
 
</TD></TR></TABLE>
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка списка валют (GetCurrencies)===
+
===Выгрузка услуг доплат к отелям (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>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
===Поиск рейсов из внешней системы (GetGDSFlights)===
 +
Метод производит поиск рейсов из внешней системы.
 
* Формат запроса:
 
* Формат запроса:
** ?action=GetCurrencies
+
** POST .../TourSearchOwin/GetGDSFlights?
* Принимаемые параметры:
+
 
** '''id''' – идентификатор валюты (опциональный, передача в запрос нескольких id не обрабатывается, в этом случае возвращаются все результаты. Если указан, то запрашивается только одна запись)
+
* Принимаемые параметры 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''' – информация о валидации
** '''name''' – название валюты
+
*** '''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>
Вызов метода GetCurrencies
+
Вызов метода GetGDSFlights
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/searchApi?action=GetCurrencies
+
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>
Возвращаемый результат метода GetCurrencies (в формате JSON)
+
Возвращаемый результат метода GetGDSFlights (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 +
[
 
{
 
{
  "version": "1.0",
+
    "validationResult": {
  "currencies":   [
+
        "Errors": [],
             {
+
        "Warnings": null,
        "id": 1,
+
        "States": null,
        "name": "USD"
+
        "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": {
        "id": 2,
+
        "packetId": 197,
        "name": "EUR"
+
        "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": [
 
             {
 
             {
         "id": 3,
+
              "Tariff": {
        "name": "RUR"
+
                "Key": 113,
      },
+
                "Code": "NSU",
             {
+
                "Name": "Экономический класс(внешняя система)"
        "id": 9,
+
              },
        "name": "UAH"
+
              "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>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
 
 +
===Загрузка ведущих менеджеров (Users) начиная с релиза 15.3===
 +
Метод производит выгрузку ведущих менеджеров.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/Users?
 +
* Принимаемые параметры GET запроса ( '''*''' – обязательный):
 +
** '''ids''' – массив ключей ведущих менеджеров
 +
** '''branchKey''' – ключ филиала бронирования, к которому они привязаны
 +
 
 +
* Возвращаемый результат:
 +
** '''Key''' – ключ ведущего менеджера
 +
** '''Value''' – полное имя ведущего менеджера
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода Users
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/Users?
 +
</syntaxhighlight>
 +
Возвращаемый результат метода Users (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
"Key": 1532,
 +
"Value": "Иванов И."
 +
},
 +
{
 +
"Key": 12849,
 +
"Value": "Петров П."
 +
}]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
 
 +
===Расчет путевки (CalculateReservation)===
 +
Метод производит расчет стоимости путевки.
 +
* Формат запроса:
 +
** POST .../TourSearchOwin/CalculateReservation?
 +
 
 +
* Принимаемые параметры 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="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода CalculateReservation
 +
<syntaxhighlight lang="java" enclose="div">
 +
POST http://localhost:9000/TourSearchOwin/CalculateReservation? 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>
 +
Возвращаемый результат метода CalculateReservation (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
"IsValid": true,
 +
"ErrorMessage": "",
 +
"CalculatedReservation": {
 +
"TourKey": 100003404,
 +
"BeginDate": "2018-04-16T00:00:00",
 +
"Duration": 8,
 +
"Currency": "EU",
 +
"CalculatedServicesPrice": 122.0,
 +
"ChangedPrice": 34.0,
 +
"Price": 156.0,
 +
"TotalPrice": 156.0,
 +
"IsDiscountIsPercent": true,
 +
"NationalChangedPrice": 2411.3038000000000000000000023,
 +
"NationalTotalDiscount": 0.0,
 +
"NationalTotalPrice": 11063.629200000000000000000011,
 +
"NatinoalCalculatedServicesPrice": 8652.325400000000000000000008,
 +
"NationalPrice": 11063.629200000000000000000011,
 +
"Discount": 0.0,
 +
"TotalDiscount": 0.0,
 +
"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>
 
</syntaxhighlight>
Строка 572: Строка 7634:
 
</div></div><br />
 
</div></div><br />
  
 +
===Выгрузка информации о путевке (GetReservation)===
 +
Метод выводит информацию о бронированной путевке.
  
===Выгрузка курсов валют (GetCurrencyRates)===
 
Метод возвращает список курсов валют, актуальных на дату запроса.
 
 
* Формат запроса:
 
* Формат запроса:
** ?action=GetCurrencyRates
+
** GET .../TourSearchOwin/GetReservation?
* Принимаемые параметры:
+
 
** нет принимаемых параметров
+
* Принимаемые параметры headers ( '''*''' – обязательный):
 +
** '''Content-Type *''' – application/json
 +
** '''Authorization *''' – token_type + access_token (полученные из метода .../TourSearchOwin/Token?)
 +
 
 +
* Принимаемые параметры GET запроса ( '''*''' – обязательный):
 +
** '''dgCode *''' – номер путевки:
 +
 
 
* Возвращаемый результат:
 
* Возвращаемый результат:
** '''baseCurrencyId''' – идентификатор национальной валюты
+
** '''$id''' – внутренний идентификатор для установки связей между сущностями,
** '''currencyId''' – идентификатор валюты, курс которой приводится
+
** '''Code''' – код путевки
** '''rate''' – курс валюты (отношение '''currencyId''' к '''baseCurrencyId''')
+
** '''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="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>
Вызов метода GetCurrencyRates
+
Вызов метода CostOfferDescriptions
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/searchApi?action=GetCurrencyRates
+
GET http://localhost:9000/TourSearchOwin/GetReservation?dgCode=AU10101003
 +
Content-Type: application/json
 +
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
 +
EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR-
 +
GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4-
 +
9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9-
 +
CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA
 
</syntaxhighlight>
 
</syntaxhighlight>
Возвращаемый результат метода GetCurrencyRates (в формате JSON)
+
Возвращаемый результат метода GetReservation (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
{
 
{
  "version": "1.0",
+
    "$id": 1,
  "currencyRates":   [
+
    "Code": "AU10101003",
             {
+
    "TurDate": "2021-01-01T00:00:00",
        "baseCurrencyId": 2,
+
    "TRKey": 100000038,
        "currencyId": 1,
+
    "CNKey": 90,
        "rate": 65.256054
+
    "CTKey": 35,
      },
+
    "NMen": 2,
             {
+
    "Price": 877,
        "baseCurrencyId": 2,
+
    "Payed": 0,
        "currencyId": 3,
+
    "NDay": 9,
        "rate": 71.168955
+
    "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>
 +
</TD></TR></TABLE>
 +
</div></div><br />
  
 +
===Выгрузка информации о ценовых блоках (CostOfferDescriptions)===
 +
Метод принимает на вход ключи ценовых блоков и возвращает, прикреплённое к ним описание.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/CostOfferDescriptions?
 +
* Принимаемые параметры ( * – обязательный):
 +
** '''COKeysString''' * – ключи ценовых блоков через запятую
 +
* Возвращаемый результат:
 +
** '''CostOfferImageInfo''' – коллекция объектов из двух полей:
 +
*** '''IdCostOffer''' – ключ ценового блока
 +
*** '''InfoText''' – описание ценового блока
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода CostOfferDescriptions
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/CostOfferDescriptions?COKeysString=15143
 +
</syntaxhighlight>
 +
Возвращаемый результат метода CostOfferDescriptions (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
      {
 +
      "CostOfferImageInfo":    {
 +
          "IdCostOffer": 15143,
 +
          "InfoText": "СПО до 01.01.2020"
 +
  },
 +
  }
 +
]
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</TD></TR></TABLE>
 
</TD></TR></TABLE>
 
</div></div><br />
 
</div></div><br />
  
==Поиск туров (GetTours)==
+
 
Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод возвращает наиболее дешевые предложения, найденные по предоставленным параметрам и сгруппированные по отелям в порядке возрастания цены. Количество туров в выдаче регулируется параметром '''count'''.
+
===Получение капчи (GetCaptcha)===
 +
Метод возвращает капчу (используется при регистрации частного лица).
 
* Формат запроса:
 
* Формат запроса:
** ?action=GetTours&count=int&countryId=int&departCityId=int&dateFrom=date&dateTo=date&adults=int&kids=int&nightsMin=int&nightsMax=int&currencyId=int
+
** GET .../TourSearchOwin/GetCaptcha?
 +
* Принимаемые параметры ( * – обязательный):
 +
** '''sessionId''' * – Id сессии
 +
* Возвращаемый результат:
 +
** '''FileContents''' – файл капчи в бинарном виде
 +
** '''ContentType''' – расширение файла (image/jpeg)
 +
** '''FileDownloadName''' – имя файла
  
* Принимаемые параметры ( '''*''' – обязательный):
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
** '''offerId''' – уникальный идентификатор ранее найденного предложения. В случае, если данный параметр задан, все остальные параметры не обязательны и не принимаются в расчет, метод возвращает одну запись.
+
<div class="mw-collapsible-content">
** '''count *''' – максимальное количество предложений в выдаче.
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
** '''countryId *''' – идентификатор страны.
+
Вызов метода GetCaptcha
** '''departCityId *''' – идентификатор города вылета.
+
<syntaxhighlight lang="java" enclose="div">
** '''dateFrom *''' – начальная дата в диапазоне дат вылета в формате dd.MM.yyyy (пример: 31.12.2016).
+
GET http://localhost:9000/TourSearchOwin/GetCaptcha?sessionId=cd5yr3wftltmorphuzwx0krh
** '''dateTo *''' – конечная дата в диапазоне дат вылета в формате dd.MM.yyyy (пример: 31.12.2016).
+
</syntaxhighlight>
** '''adults *''' – количество взрослых.
+
Возвращаемый результат метода GetCaptcha (в формате JSON)
** '''kids *''' – количество детей.
+
<syntaxhighlight lang="java" enclose="div">
** '''kidsAges''' – количество полных лет каждому ребёнку, передается в виде строки, перечисление через запятую (пример: 3,6).
+
{
** '''nightsMin *''' – минимальное количество дней в туре.
+
    "FileContents": "iVBORw0KGgoAAAANSUhEUgAAALQAAAAyCAYAAAD1JPH3AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA
** '''nightsMax *''' – максимальное количество дней в туре.
+
    xiSURBVHhe7Z1NyE1tF8eNZMZEyUBGEikDAwNFKRSFMsCEMkDyOUG+Hgw8UkiPvHjLq1uRdBsgMVEGxERGGHGPmBkantdvd9Z51n3tdX3ts/c+5+Bfq/ucfa7Ptf5rXWtf1z
** '''resorts''' – идентификаторы городов, перечисление через запятую.
+
    7nntLpdFb8lL+qyqtXry4/f/78H+szLanlYjI+Pv6fsbGx/1qfjZJMTEz8ff369f/x1/q8LfkVdKkFQvOiEt69e9eZMmVKIQ8fPuxeLcNX7vv374WEQN3Xr18Xr58+fdpr58aNG8
** '''hotelCategories''' – идентификаторы категорий отелей, перечисление через запятую.
+
    W1UQXzOnXqVG9ug8CLFy8KXd66dat7JR8/fvwo2kFitqTs+/fvOx8+fOheqR/JhLYGDjmFYNeuXSuuWfCVw6iID5rAKJ0xbNmypXgPGdqEdqxRg2/cd+/eLXR56dKl4n2V+UFObI
** '''hotels''' – идентификаторы отелей, перечисление через запятую.
+
    GEbAkuXrzYs+f9+/e7V+tFMqF9A4dokBSyhZBaToOyKPvcuXM9J+IvY/j8+XPxvg24jjVKCEVh9Cu6DZXLhc/59+7d29Pjhg0bulfrRV8px+8Cy7FGBW4U9iG1XAwh5//69Wvn6N
** '''meals''' – идентификаторы видов питания, перечисление через запятую.
+
    GjnbVr13Y+fvzYvVov/hC6BdSRrhBBc1Y3gY7CIaSWi2HQzt84oZnUqEW1fuDOt450hXrUhyQaKSQf5dy/ChonNArVOfevjpcvXxYiqCNiUc+9b/CRXGNQuf8gnehPytEH3GgM2n
** '''currencyId *''' – валюта, в которой будут выданы цены, а также валюта для входящих параметров '''priceMin''' и '''priceMax''' (если они есть).
+
    Jgi+RcI08VtL3809/58+cH4kSCkSJ03Z6PkfU2ZC7aIm9q/gyBILmAOm0QWcBO2LFjxzqrV6/u7Nu3r9W+BY0R2iIeE6w6ySaWT8gIAfpxEtqAcFVv2mJISS0ERGs9F/b/NcH7wa,
** '''priceMin''' – Цена тура от.
+
    "ContentType": "image/jpeg",
** '''priceMax''' – Цена тура до.
+
    "FileDownloadName": ""
** '''hotelIsNotInStop''' – при значении 1 в результатах не должно быть отелей в стопе (отели со статусом «под запрос» допустимы). При значении 0 в результат должны попадать как отели в стопе, так и отели с наличием мест и с местами по запросу.
+
}
** '''ticketsIncluded *''' – при значении 1 в результатах должны быть только туры с включенной стоимостью перелета («только отель» недопустимы). При значении 0 в результат должны попадать как туры без перелета, так и туры с перелетом.
+
</syntaxhighlight>
** '''hasTickets''' – при значении 1 в результатах должны быть туры только с реальным наличием билетов в перелете (не должно быть туров со стопом на перелете, перелеты со статусом «под запрос» недопустимы). При значении 0 в результат должны попадать как туры без билетов на рейс, так и туры с наличием билетов и с билетами по запросу.
+
</TD></TR></TABLE>
** '''excludeUsualTours''' – при значении 1 из результатов должны быть исключены туры, являющиеся обычными турами (не являющиеся многоотельными). При значении 0 или отсутствии данного параметра такие туры должны быть включены в результат.
+
</div></div><br />
** '''excludeCombined''' – при значении 1 из результатов должны быть исключены туры, являющиеся многоотельными. При значении 0 или отсутствии данного параметра такие туры должны быть включены в результат.
 
** '''showToursWithoutHotels''' – при значении 1 в результатах поиска вместе с обычными турами должны подбираться туры без проживания (без услуги отель в составе тура). При значении 0 или отсутствии данного параметра такие туры должны быть исключены из результата поиска. ''Параметр обрабатывается, начиная с релиза 15.2''.
 
  
* Возвращаемый результат ( '''*''' – обязательный):
+
===Проверка капчи (CheckCaptcha)===
** '''offerId *''' – уникальный идентификатор предложения, по которому в дальнейшем можно провести актуализацию тура.
+
Метод проверяет введенную капчу (используется при регистрации частного лица).
** '''tourName *''' – название программы тура.
+
* Формат запроса:
** '''hotelId *''' – идентификатор отеля.
+
** GET .../TourSearchOwin/CheckCaptcha?
** '''hotelUrl''' – ссылка на страницу с описанием отеля.
+
* Принимаемые параметры ( * – обязательный):
** '''resortId *''' – идентификатор города, в котором расположен отель.
+
** '''captchaText''' * – текст капчи
** '''hotelCategoryId *''' – идентификатор категории отеля.
+
** '''sessionId''' * – Id сессии
** '''mealId *''' – идентификатор вида питания.
+
* Возвращаемый результат:
** '''htPlaceName *''' – название типа размещения в номере (примеры: 2 ADL + 1 CH (2-12), 2 ADL + INF).
+
** '''true/false''' – результат проверки (false капча или Id сессии неверные, true капча верна)
** '''roomTypeName''' – название категории номера (примеры: standard, deluxe, family, deluxe super ocean view).
 
** '''tourDate *''' – дата начала тура в формате dd.MM.yyyy (пример: 31.12.2016).
 
** '''tourEndDate''' дата окончания тура (дата прилета) в формате dd.MM.yyyy (пример: 31.12.2016).
 
** '''nights *''' – продолжительность тура в днях.
 
** '''price *''' цена тура в валюте, которая была указана во входном параметре '''currencyId'''.
 
** '''hotelIsInStop *''' – наличие мест в отеле, допустимы значения: 0 – есть места, 1 – нет мест, 2 – запрос.
 
** '''ticketsIncluded *''' включена ли стоимость билетов в стоимость тура, допустимы значения: 0 – не включена (тур только отель), 1 – включена (пакетный тур).
 
** '''hasEconomTicketsDpt *''' – наличие билетов эконом класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута '''ticketsIncluded''' = 0 значение данного параметра будет проигнорировано. Группы перелетов задаются в настройке [[Мастер-Тур(15):Установка#Установка службы поиска|flightTariffGroups]].
 
** '''hasEconomTicketsRtn *''' – наличие обратных билетов эконом класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута '''ticketsIncluded''' = 0 значение данного параметра будет проигнорировано. Группы перелетов задаются в настройке [[Мастер-Тур(15):Установка#Установка службы поиска|flightTariffGroups]].
 
** '''hasBusinessTicketsDpt *''' – наличие билетов бизнес класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута '''ticketsIncluded''' = 0 значение данного параметра будет проигнорировано. Группы перелетов задаются в настройке [[Мастер-Тур(15):Установка#Установка службы поиска|flightTariffGroups]].
 
** '''hasBusinessTicketsRtn *''' наличие обратных билетов бизнес класса, допустимы значения: 0 нет мест, 1 есть места, 2 – запрос. При значении атрибута '''ticketsIncluded''' = 0 значение данного параметра будет проигнорировано. Группы перелетов задаются в настройке [[Мастер-Тур(15):Установка#Установка службы поиска|flightTariffGroups]].
 
** '''tourUrl *''' – ссылка на корзину (при переходе по которой можно забронировать тур).
 
** '''spoUrl''' – ссылка на описание тура (указывается в программе тура).
 
** '''fewPlacesInHotel''' – числовое значение мест в отеле. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''fewTicketsDptY''' – числовое значение мест прямого перелета эконом класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''fewTicketsRtnY''' – числовое значение мест обратного перелета эконом класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''fewTicketsDptB''' – числовое значение мест прямого перелета бизнес класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''fewTicketsRtnB''' – числовое значение мест обратного перелета бизнес класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''flags''' – если тур многоотельный, возвращается код '''1024'''. Во всех остальных случаях возвращается '''0'''.
 
** '''description''' – указывается информация о проживании. Если тур многоотельный, то указывается информация обо всех отелях в туре (пример: 1 н., Resort1, Hotel1, Standard, BB; 3 н., Resort2, Hotel2, Standard, BB; 2 н., Resort3, Hotel3, Standard, BB).
 
** '''receivingParty''' – параметр не обрабатывается.
 
** '''earlyBookingValidTill''' – параметр не обрабатывается.
 
  
 
<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>
Вызов метода GetTours
+
Вызов метода CheckCaptcha
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/searchApi?action=GetTours&count=20&countryId=22&departCityId=1
+
GET http://localhost:9000/TourSearchOwin/CheckCaptcha?captchaText=vf8an&sessionId=cd5yr3wftltmorphuzwx0krh
&dateFrom=10.08.2016&dateTo=10.08.2016&ticketsIncluded=0&adults=2&kids=0&nightsMin=7&nightsMax=7&currencyId=1
 
 
</syntaxhighlight>
 
</syntaxhighlight>
Возвращаемый результат метода GetTours (в формате JSON)
+
Возвращаемый результат метода CheckCaptcha (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
{
 
{
  "version": "1.0",
+
    true
  "tours": [  {
 
      "offerId": 256,
 
      "tourName": "Тур в Португалии_авиа",
 
      "hotelId": 3239,
 
      "hotelUrl": "www.tophotels.com/NapHotel",
 
      "resortId": 45,
 
      "hotelCategoryId": 64,
 
      "mealId": 38,
 
      "htPlaceName": "2 Adult",
 
      "roomTypeName": "Sea View",
 
      "tourDate": "10.08.2016",
 
      "tourEndDate": "17.08.2016",
 
      "nights": 7,
 
      "price": 1036,
 
      "hotelIsInStop": 2,
 
      "ticketsIncluded": 1,
 
      "hasEconomTicketsDpt": 1,
 
      "hasEconomTicketsRtn": 2,
 
      "hasBusinessTicketsDpt": 0,
 
      "hasBusinessTicketsRtn": 1,
 
      "tourUrl": "http://localhost/TourSearchClient/Basket?departureCities=1&destination=1_22&tour=161&date=10.08.16&duration=8&hotelScheme=1_7_3239_221_10760
 
&adultCount=2&hotelQuota=7&aviaQuota=7&serviceDescriptions=2_1_586_89_1_22_33_221_10760_1_0,
 
1_3_3239_1148_38_22_33_221_10760_1_7,3_1_587_89_33_460_1_221_10760_8_0&currency=USD",
 
      "fewPlacesInHotel": 5,
 
      "fewTicketsDptY": 8,
 
      "fewTicketsRtnY": 8,
 
      "fewTicketsDptB": null,
 
      "fewTicketsRtnB": null,
 
      "spoUrl": "wiki.megatec.ru",
 
      "flags": 0,
 
      "description": "5 н., Порту, 3* Paradisos, Standart, BB",
 
      "receivingParty": "",
 
      "earlyBookingValidTill": ""
 
  }]
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 727: Строка 8317:
 
</div></div><br />
 
</div></div><br />
  
==Актуализация тура (ActualizeTour)==
+
===Проверка e-mail (CheckMail)===
Метод служит для получения окончательной цены тура (со всеми обязательными доплатами и сборами), списка включенных в стоимость тура услуг, а также вариантов перелета, возможных дополнительных услуг и доплат по ним. Метод должен возвращать цену самой дешевой конфигурации запрашиваемого предложения. Для корректной работы метода необходимо, чтобы '''offerId''' был уникален для предложений с разным составом группы туристов, даже в случае если все прочие параметры предложений совпадают.
+
Метод проверяет e-mail при регистрации частного лица на существование такого же e-mail в базе данных.
 
* Формат запроса:
 
* Формат запроса:
** ?action=ActualizeTour
+
** GET .../TourSearchOwin/CheckMail?
 
* Принимаемые параметры ( * – обязательный):
 
* Принимаемые параметры ( * – обязательный):
** '''offerId *''' – уникальный идентификатор ранее найденного предложения.
+
** '''mail''' * – e-mail пользователя
** '''currencyId *''' валюта, в которой рассчитывается цена и доплаты.
+
* Возвращаемый результат:
* Возвращаемый результат ( * – обязательный):
+
** '''true/false''' – результат проверки (false пользователь с таким e-mail уже существует, true пользователь с таким e-mail нет в базе данных)
** '''price *''' – актуализированная цена тура в валюте, которая была указана во входном параметре '''currencyId'''.
 
** '''ticketsIsIncluded *''' – включена ли стоимость билетов в стоимость тура, допустимы значения: 0 – не включена (тур только отель), 1 – включена (пакетный тур).
 
** '''hotelIsInStop''' – наличие мест в отеле, допустимы значения: 0 – есть места, 1 – нет мест, 2 – запрос.
 
** '''hasEconomTicketsDpt *''' – наличие билетов эконом класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута '''ticketsIncluded''' = 0 значение данного параметра будет проигнорировано.
 
** '''hasEconomTicketsRtn *''' – наличие обратных билетов эконом класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута '''ticketsIncluded''' = 0 значение данного параметра будет проигнорировано.
 
** '''hasBusinessTicketsDpt *''' – наличие билетов бизнес класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута '''ticketsIncluded''' = 0 значение данного параметра будет проигнорировано.
 
** '''hasBusinessTicketsRtn *''' – наличие обратных билетов бизнес класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута '''ticketsIncluded''' = 0 значение данного параметра будет проигнорировано.
 
** '''fewPlacesInHotel''' – числовое значение мест в отеле. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''fewEconomTicketsDpt''' – числовое значение мест прямого перелета эконом класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''fewEconomTicketsRtn''' – числовое значение мест обратного перелета эконом класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''fewBusinessTicketsDpt''' числовое значение мест прямого перелета бизнес класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''fewBusinessTicketsRtn''' числовое значение мест обратного перелета бизнес класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
 
** '''tourUrl''' – ссылка на корзину (при переходе по которой можно забронировать тур).
 
** '''services''' – список услуг, которые могут быть в туре
 
*** '''id *''' – идентификатор услуги, уникальный в рамках данного предложения.
 
*** '''type *''' – Тип услуги. Может принимать одно из следующих значений:
 
**** '''HotelInfo''' – отель
 
**** '''Insurance''' – страховка
 
**** '''DptTransport''' – перелет туда
 
**** '''RtnTransport''' – перелет обратно
 
**** '''MidDptTransport''' – промежуточный перелет туда (при пересадке)
 
**** '''MidRtnTransport''' – промежуточный перелет обратно (при пересадке)
 
**** '''AdditionalService ''' – дополнительная услуга
 
**** '''Transfer''' – трансфер
 
**** '''Excursion''' – экскурсия
 
**** '''Visa''' – виза
 
*** '''name *''' – наименование услуги
 
*** '''isIncluded *''' – включена ли данная услуга в стоимость текущей конфигурации тура, допустимы значения: 0 – не включена, 1 – включена.
 
*** '''description''' – описание услуги в произвольной форме (не обрабатывается).
 
*** '''surcharge''' – стоимость услуги.
 
*** '''flightCompatibleIds''' – совместимые перелеты. Идентификаторы услуг перелетов, представленных в секции '''services''', которые могут применяться совместно с текущей услугой перелета. Для перелета туда заполняется '''id''' перелетов обратно и наоборот. Применяется и является обязательным только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''.
 
*** '''flightClass''' – класс перелета. Группы перелетов для классов задаются в настройке [[Мастер-Тур(15):Установка#Установка службы поиска|flightTariffGroups]]. Применяется и является обязательным только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''. Может принимать одно из следующих значений:
 
**** '''ECONOM''' – эконом
 
**** '''BUSINESS''' – бизнес
 
*** '''flightAvailability''' – наличие билетов, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. Применяется и является обязательным только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''.
 
*** '''flightPlacesCount''' – параметр не обрабатывается, всегда возвращается -1.
 
*** '''flightAirportFrom''' – код аэропорта вылета. Применяется и является обязательным только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''.
 
*** '''flightAirportTo''' – код аэропорта прилета. Применяется и является обязательным только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''.
 
*** '''flightNum''' – код авиакомпании и номер рейса. Применяется и является обязательным только для услуг типа: '''DptTransport''', '''RtnTransport'''.
 
*** '''flightAirline''' – код авиакомпании. Применяется только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''.
 
*** '''flightStartDateTime''' – Дата и время вылета в формате dd.MM.yyyy HH:mm (пример: 31.12.2016 14:30). Применяется только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''.
 
*** '''flightEndDateTime''' – Дата и время прилета в формате dd.MM.yyyy HH:mm (пример: 31.12.2016 14:30). Применяется только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''.
 
*** '''flightAircraft''' – тип самолета. Применяется только для услуг типа: '''DptTransport''', '''RtnTransport''', '''MidDptTransport''', '''MidRtnTransport'''.
 
  
 
<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>
Вызов метода ActualizeTour
+
Вызов метода CheckMail
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/searchApi?action=ActualizeTour&offerID=256&currencyId=1
+
GET http://localhost:9000/TourSearchOwin/CheckMail?mail=test@megatec.ru
 
</syntaxhighlight>
 
</syntaxhighlight>
Возвращаемый результат метода ActualizeTour (в формате JSON)
+
Возвращаемый результат метода CheckMail (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
{
 
{
  "version": "1.0",
+
    true
  "actualizedTour":    {
 
      "price": 1036,
 
      "ticketsIsIncluded": 1,
 
      "hotelIsInStop": 2,
 
      "hasEconomTicketsDpt": 1,
 
      "hasEconomTicketsRtn": 2,
 
      "hasBusinessTicketsDpt": 0,
 
      "hasBusinessTicketsRtn": 1,
 
      "fewPlacesInHotel": 5,
 
      "fewEconomTicketsDpt": 8,
 
      "fewEconomTicketsRtn": 8,
 
      "fewBusinessTicketsDpt": null,
 
      "fewBusinessTicketsRtn": null,
 
      "tourUrl": "http://localhost/TourSearchClient/Basket?departureCities=1&destination=1_22&tour=161&date=10.08.16&duration=8&hotelScheme=1_7_3239_221_10760
 
&adultCount=2&hotelQuota=7&aviaQuota=7&serviceDescriptions=2_1_586_89_1_22_33_221_10760_1_0,
 
1_3_3239_1148_38_22_33_221_10760_1_7,3_1_587_89_33_460_1_221_10760_8_0&currency=USD",
 
      "services":      [
 
                  {
 
            "id": 0,
 
            "type": "DptTransport",
 
            "name": "А_П::Москва/Лиссабон/3G001, DME-LUS, 11:00-13:00/Y Экономический класс",
 
            "isIncluded": 1,
 
            "description": "",
 
            "surcharge": 100,
 
            "flightCompatibleIds": "2",
 
            "flightClass": "ECONOM",
 
            "flightAvailability": 1,
 
            "flightPlacesCount": -1,
 
            "flightAirportFrom": "DME",
 
            "flightAirportTo": "LUS",
 
            "flightNum": "3G 001",
 
            "flightAirline": "3G",
 
            "flightStartDateTime": "10.08.2016 11:00",
 
            "flightEndDateTime": "10.08.2016 13:00",
 
            "flightAircraft": "310"
 
        },
 
                  {
 
            "id": 1,
 
            "type": "HotelInfo",
 
            "name": "HOTEL::Лиссабон/Отель в Лиссабоне-4,7 ночей/Double(Sea View),2 Adult/TT NewP",
 
            "isIncluded": 1,
 
            "description": "",
 
            "surcharge": 836,
 
            "flightCompatibleIds": null,
 
            "flightClass": null,
 
            "flightAvailability": -1,
 
            "flightPlacesCount": -1,
 
            "flightAirportFrom": null,
 
            "flightAirportTo": null,
 
            "flightNum": null,
 
            "flightAirline": null,
 
            "flightStartDateTime": null,
 
            "flightEndDateTime": null,
 
            "flightAircraft": null
 
        },
 
                  {
 
            "id": 2,
 
            "type": "RtnTransport",
 
            "name": "А_П::Лиссабон/Москва/3G002, LUS-DME, 20:00-21:00/Y Экономический класс",
 
            "isIncluded": 1,
 
            "description": "",
 
            "surcharge": 100,
 
            "flightCompatibleIds": "0",
 
            "flightClass": "ECONOM",
 
            "flightAvailability": 2,
 
            "flightPlacesCount": -1,
 
            "flightAirportFrom": "LUS",
 
            "flightAirportTo": "DME",
 
            "flightNum": "3G 002",
 
            "flightAirline": "3G",
 
            "flightStartDateTime": "17.08.2016 20:00",
 
            "flightEndDateTime": "17.08.2016 21:00",
 
            "flightAircraft": "310"
 
        }
 
      ]
 
  }
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 871: Строка 8342:
 
</div></div><br />
 
</div></div><br />
  
==Проверка туриста (checkTourist)==
+
===Проверка туриста (checkTourist)===
 
Метод служит для получения информации о путевке по номеру путевки и номеру паспорта туриста.
 
Метод служит для получения информации о путевке по номеру путевки и номеру паспорта туриста.
 
* Формат запроса:
 
* Формат запроса:
** /checkTourist
+
** GET .../TourSearchOwin/checkTourist?
 
* Принимаемые параметры ( * – обязательный):
 
* Принимаемые параметры ( * – обязательный):
 
** '''dogovorNumber *''' – номер путевки.
 
** '''dogovorNumber *''' – номер путевки.
Строка 961: Строка 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.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с 15 версии


Содержание

Введение

Данный 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 – название
        • FlightSetting – внутренняя информация о перелете из программы туров
          • ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
          • PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
          • FlightId – идентификатор перелета (внутренняя информация из программы туров)
        • FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
        • Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
        • SvKey – ключ типа услуги
        • IsSubCode1 – признак наличия доп. описания 1
        • IsSubCode2 – признак наличия доп. описания 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
            • 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 – название (не заполняется)
        • 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
      • 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 – признаки отелей в дополнительных фильтрах
          • '
Пример

Вызов метода 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)
Пример

Вызов метода 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)
  • 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 – название
        • FlightSetting – внутренняя информация о перелете из программы туров
          • ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
          • PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
          • FlightId – идентификатор перелета (внутренняя информация из программы туров)
        • FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
        • Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
        • SvKey – ключ типа услуги
        • IsSubCode1 – признак наличия доп. описания 1
        • IsSubCode2 – признак наличия доп. описания 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
            • 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 – название (не заполняется)
        • 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
      • 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 – доп. фильтры (не используется при вызове из корзины)


Пример

Вызов метода 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 туриста
    • PassportDurationOfExpiry – объект минимальный срок действия загранпаспорта туриста
      • StartPoint – точка отсчета
      • Duration – минимальная продолжительность
    • ChildAgeSetting – максимальный возраст ребенка, когда он считается ребенком (лет)
    • InfantAgeSetting – максимальный возраст младенца (месяцев)
Пример

Вызов метода 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 – массив туристов, привязанных к услуге
    • 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 – название (не заполняется)
      • 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 – массив туристов, привязанных к услуге
    • 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 – название (не заполняется)
      • 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 – локализация
  • Возвращаемый результат:
    • 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 – максимальное время в пути обратно
Пример

Вызов метода 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
        • 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
        • IsSubCode2 – признак наличия доп. описания 2
        • IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
        • Day – день предоставления услуги
        • DurationInNight – продолжительность услуги в ночах
        • BeginDateTime – дата предоставления услуги
        • EndDateTime – дата окончания услуги
        • IsHooded – признак скрытая услуга
        • IsDeleted – признак удаляемая услуга
        • IsNotCalculate – признак не рассчитываемая услуга
        • PacketId – ключ пакета
        • Index – порядковый номер услуги
Пример

Вызов метода 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 – из внешний системы)
      • 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 – код города прибытия


Пример

Вызов метода 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:

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 * – массив туристов, привязанных к услуге
    • 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 – атрибут результата бронирования
Пример запроса

Вызов метода 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 – описание ценового блока
Пример

Вызов метода 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 * – номер паспорта туриста (заграничного или общегражданского).
  • Возвращаемый результат:
    • isDogovortrue, если путевка найдена по номеру путевки, false, если не найдена.
    • isAnnulatedtrue, если путевка аннулирована, false, если не аннулирована.
    • dogovorStatus – статус путевки
    • isPaytrue, если путевка полностью оплачена, false, если не оплачена или оплачена частично.
    • dogovorDateBegin – дата начала заезда.
    • dogovorDateEnd – дата окончания заезда.
    • dogovorDateCreate – дата создания путевки.
    • isTouristDogovorCreatetrue, если турист (по номеру паспорта) является главным туристом в путевке.
    • 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)
Пример краткой информации отеля

Вызов метода 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 – ключ тура
Пример

Вызов метода 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 – название
        • FlightSetting – внутренняя информация о перелете из программы туров
          • ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
          • PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
          • FlightId – идентификатор перелета (внутренняя информация из программы туров)
        • FlightSourceMode – локальный или внешний перелет (внутренняя информация из программы туров)
        • Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
        • SvKey – ключ типа услуги
        • IsSubCode1 – признак наличия доп. описания 1
        • IsSubCode2 – признак наличия доп. описания 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
            • 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 – название (не заполняется)
        • 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
      • 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 – признаки отелей в дополнительных фильтрах
          • '
Пример

Вызов метода 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 – наименование
        • 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 – наименование
        • 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 – порядковый номер услуги
      • 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
      • 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 – значение
Пример

Вызов метода 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 – максимальная цена
Пример

Вызов метода 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 – массив туристов, привязанных к услуге
    • 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