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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Выгрузка первоначального варианта в корзину для бронирования (Tour))
Строка 5206: Строка 5206:
 
</div></div><br />
 
</div></div><br />
  
 +
==Параметры SubCode1 и SubCode2==
 +
 +
Параметры SubCode1 и SubCode2, возвращаемые при API-запросах это параметры дополнительных описаний двух типов, индивидуальных для каждой услуги.
 +
 +
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" width="1500px"
 +
 +
|- style="background-color:#F2F2F2"
 +
 +
! width="9%" | Ключ типа услуги
 +
! width="13%" | Наименование типа услуги
 +
! width="13%" | Значение Code
 +
! width="13%" | Значение SubCode1
 +
! width="13%" | Таблица БД со значениями SubCode1
 +
! width="13%" | Значение 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
 +
 +
|}
  
 
[[Category:Мастер-Тур(15)]]
 
[[Category:Мастер-Тур(15)]]

Версия 12:15, 5 августа 2019

Версия статьи от 5-08-2019.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с 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 – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
Пример

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


Выгрузка списка валют (Currency)

Метод возвращает список используемых валют.

  • Формат запроса:
    • GET .../TourSearchOwin/Currency
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Code – код валюты
    • Name – наименование валюты
    • IsMain – признак валюты «Главная»
    • IsNational – признак валюты «Национальная»
    • IsoCode – ISO код валюты
    • Key – идентификатор валюты
    • IsShowInSearch – признак показывать ли валюту в поиске
Пример

Вызов метода Currency

GET http://localhost:9000/TourSearchOwin/Currency

Возвращаемый результат метода Currency (в формате JSON)

[
      {
      "Code": "EU",
      "Name": "Euro",
      "IsMain": false,
      "IsNational": false,
      "IsoCode": "EUR",
      "Key": 2,
      "IsShowInSearch": true
   },
      {
      "Code": "рб",
      "Name": "Рубль",
      "IsMain": false,
      "IsNational": true,
      "IsoCode": "RUR",
      "Key": 14,
      "IsShowInSearch": true
   },
      {
      "Code": "$",
      "Name": "US Dollar",
      "IsMain": true,
      "IsNational": false,
      "IsoCode": "USD",
      "Key": 1,
      "IsShowInSearch": true
   }
]


Выгрузка квотируемых услуг системы (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?)
    • term – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
  • Возвращаемый результат:
    • Name – название страны
    • Key – идентификатор страны
    • DestinationType – тип результата (всегда возвращается в JSON = 1, в xml = country)
Пример

Вызов метода Destination

GET http://localhost:9000/TourSearchOwin/Destination?departureCities=1

Возвращаемый результат метода Destination (в формате JSON)

[
      {
      "Name": "Болгария",
      "Key": 359,
      "DestinationType": 1
   },
      {
      "Name": "Индия",
      "Key": 26,
      "DestinationType": 1
   },
      {
      "Name": "Финляндия",
      "Key": 64,
      "DestinationType": 1
   }
]


Выгрузка списка городов (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)
    • 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 – ключ партнера
    • 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 – ключ города начала поездки (дополнительный фильтр)
  • Возвращаемый результат:
    • 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 – ключ страны
        • 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 – продолжительность услуги в ночах
      • 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
        • Rate
        • DateStart
        • DateEnd
        • Status
          • Key
          • Value
        • Templates
          • $id
          • $id
        • 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
        • XmlSettings – xml
        • 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": 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": 6245,
               "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
               }
            },
            "XmlSettings": "информация о туре в формате xml",
            "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)

Метод производит выгрузку транспортного плана.

  • Формат запроса:
    • 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": {
		
	}
}


Выгрузка первоначального варианта в корзину для бронирования (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 – ключ партнера
    • PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
    • PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
    • isFromBasket * – происходит ли обращение из корзины или из поиска туров (true/false).
    • isFillSecondaryFilters * – заполнены ли дополнительные фильтры (true/false)
    • TourKey – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля или авиаперелета: ключ программы тура
    • TourDuration – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля или авиаперелета: продолжительность тура в днях
  • Возвращаемый результат:
    • 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 – ключ страны
        • 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 – продолжительность услуги в ночах
      • 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"}]
&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 – объект фамилия туриста (лат)
        • Code – код поля
        • HeaderText – название поля
        • IsVisible – видимость поля
        • IsRequired – признак обязательности заполнения поля
        • IsEdit – признак редактируемости поля
        • 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":    {
      "lastname":       {
         "Code": "lastname",
         "HeaderText": "Фамилия<font color=\"red\">*<\/font>",
         "IsVisible": true,
         "IsRequired": true,
         "IsEdit": true,
         "Translit": 1,
         "LetterCase": 2
      },
      "patronymic":       {
         "Code": "patronymic",
         "HeaderText": "Отчество",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 2
      },
      "sex":       {
         "Code": "sex",
         "HeaderText": "Пол<font color=\"red\">*<\/font>",
         "IsVisible": true,
         "IsRequired": false,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 0
      },
      "firstname":       {
         "Code": "firstname",
         "HeaderText": "Имя<font color=\"red\">*<\/font>",
         "IsVisible": true,
         "IsRequired": true,
         "IsEdit": true,
         "Translit": 1,
         "LetterCase": 2
      },
      "passportbywhom":       {
         "Code": "passportbywhom",
         "HeaderText": "Кем выдан",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "birthplace":       {
         "Code": "birthplace",
         "HeaderText": "Место рождения",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "birthdate":       {
         "Code": "birthdate",
         "HeaderText": "Дата рождения<br />(dd.MM.yyyy)",
         "IsVisible": true,
         "IsRequired": false,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 0
      },
      "patronymicrus":       {
         "Code": "patronymicrus",
         "HeaderText": "Отчество",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 3
      },
      "lastnamerus":       {
         "Code": "lastnamerus",
         "HeaderText": "Нац. паспорт: Фамилия",
         "IsVisible": false,
         "IsRequired": true,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 0
      },
      "citizenid":       {
         "Code": "citizenid",
         "HeaderText": "ID туриста1",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": true,
         "Translit": 2,
         "LetterCase": 2
      },
      "passport":       {
         "Code": "passport",
         "HeaderText": "Загран-паспорт: Паспорт<br />(серия/номер)",
         "IsVisible": true,
         "IsRequired": false,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 2
      },
      "passportrus":       {
         "Code": "passportrus",
         "HeaderText": "серия/номер",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "ismain":       {
         "Code": "ismain",
         "HeaderText": "<img src=\"images/mw_main_tourist.gif\" border=\"0\" alt=\"Главный турист\" />",
         "IsVisible": true,
         "IsRequired": true,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "passportdate":       {
         "Code": "passportdate",
         "HeaderText": "Загран-паспорт: дата выдачи",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "firstnamerus":       {
         "Code": "firstnamerus",
         "HeaderText": "Нац. паспорт: Имя",
         "IsVisible": false,
         "IsRequired": true,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 0
      },
      "passportbywhomrus":       {
         "Code": "passportbywhomrus",
         "HeaderText": "Паспорт: кем выдан",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "citizenship":       {
         "Code": "citizenship",
         "HeaderText": "Гражданство",
         "IsVisible": true,
         "IsRequired": false,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 0
      },
      "passportdaterus":       {
         "Code": "passportdaterus",
         "HeaderText": "Нац. паспорт:дата выдачи",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "phone":       {
         "Code": "phone",
         "HeaderText": "Телефон",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "number":       {
         "Code": "number",
         "HeaderText": "№",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      },
      "passportdateend":       {
         "Code": "passportdateend",
         "HeaderText": "Действителен до<br />(dd.MM.yyyy)",
         "IsVisible": true,
         "IsRequired": false,
         "IsEdit": true,
         "Translit": 0,
         "LetterCase": 0
      },
      "email":       {
         "Code": "email",
         "HeaderText": "Email",
         "IsVisible": false,
         "IsRequired": false,
         "IsEdit": false,
         "Translit": 0,
         "LetterCase": 0
      }
   },
   "PassportDurationOfExpiry":    {
      "StartPoint": 0,
      "Duration": null
   },
   "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 – статус по квотам (есть места / нет мест / под запрос)
          • FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
          • IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
        • Index – индекс услуги
        • IsRoute – признак маршрутная услуга
        • ServiceTemplateIndex – индекс шаблона услуги
      • TouristNumbersList – массив туристов, привязанных к услуге
    • Tourists – массив туристов
      • IsMain – главный турист
      • Number – порядковый номер туриста
      • AgeType – тип туриста (взрослый, ребенок, инфант)
      • MaleFemaleSex – пол
      • FirstName – имя (лат)
      • LastName – фамилия (лат)
      • Patronymic – отчество (лат)
      • FirstNameRus – имя (рус)
      • LastNameRus – фамилия (рус)
      • PatronymicRus – отчество (рус)
      • InternationalPassportSeries – серия загранпаспорта
      • InternationalPassportNumber – номер загранпаспорта
      • InternationalPassportDateOfIssue – дата выдачи загранпаспорта
      • InternationalPassportDateOfIssueString – дата выдачи загранпаспорта в строке
      • InternationalPassportDateOfExpiry – дата окончания действия загранпаспорта
      • InternationalPassportDateOfExpiryString – дата окончания действия загранпаспорта в строке
      • internationalPassportByWhom – кем выдан загранпаспорт
      • PassportSeries – серия паспорта
      • PassportNumber – номер паспорта
      • PassportDateOfIssue – дата выдачи паспорта
      • PassportDateOfIssueString – дата выдачи паспорта в строке
      • PassportByWhom – кем выдан паспорт
      • Citizenship – название страны
      • Phone – телефон
      • Email – e-mail
      • BirthDay – дата рождения (YYYY-MM-DDThh:mm:ssz)
      • BirthDayString – дата рождения в строковом формате (DD.MM.YYYY)
      • BirthPlace – место рождения
      • CitizenID – гражданство
      • Age – количество полных лет на момент окончания тура
  • Возвращаемый результат:
    • Массив – массив объектов доплат к авиаперелетам
      • ServiceName – название услуги
      • City – объект город
      • Country – ключ страны
      • Code – объект код услуги
        • Key – ключ услуги
        • Value – название услуги
      • ByScheduler – признак по расписанию
      • Details - объект детализация
        • SubCode1 – объект доп. описание1
          • Key – ключ
          • Value – название
        • SubCode2 – объект доп. описание2
          • Key – ключ
          • Value – название
        • Date – дата услуги
        • IsShowTransportPlan – признак показать транспортный план (для автобусов)
        • Cost – цена
        • QuotaStatus – объект статус квотирования
          • PlacesStatus – статус по квотам (есть места / нет мест / под запрос)
          • 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": 90,
	"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 – дата и время начала услуги
        • EndDateTimeString – дата и время окончания услуги
        • TemplateId – шаблон услуги
        • Cost – цена услуги
        • ByPax – цена за человека
        • QuotaStatus – объект статус квотирования
          • PlacesStatus – статус по квотам (есть места / нет мест / под запрос)
          • FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
          • IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
        • Index – индекс услуги
        • IsRoute – признак маршрутная услуга
        • ServiceTemplateIndex – индекс шаблона услуги
        • RemoteId – (в доплатах не используется)
      • TouristNumbersList – массив туристов, привязанных к услуге
    • Tourists – массив туристов
      • IsMain – главный турист
      • Number – порядковый номер туриста
      • AgeType – тип туриста (взрослый, ребенок, инфант)
      • MaleFemaleSex – пол
      • FirstName – имя (лат)
      • LastName – фамилия (лат)
      • Patronymic – отчество (лат)
      • FirstNameRus – имя (рус)
      • LastNameRus – фамилия (рус)
      • PatronymicRus – отчество (рус)
      • InternationalPassportSeries – серия загранпаспорта
      • InternationalPassportNumber – номер загранпаспорта
      • InternationalPassportDateOfIssue – дата выдачи загранпаспорта
      • InternationalPassportDateOfIssueString – дата выдачи загранпаспорта в строке
      • InternationalPassportDateOfExpiry – дата окончания действия загранпаспорта
      • InternationalPassportDateOfExpiryString – дата окончания действия загранпаспорта в строке
      • internationalPassportByWhom – кем выдан загранпаспорт
      • PassportSeries – серия паспорта
      • PassportNumber – номер паспорта
      • PassportDateOfIssue – дата выдачи паспорта
      • PassportDateOfIssueString – дата выдачи паспорта в строке
      • PassportByWhom – кем выдан паспорт
      • Citizenship – название страны
      • Phone – телефон
      • Email – e-mail
      • BirthDay – дата рождения
      • BirthDayString – дата рождения в строковом формате
      • 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 – статус по квотам (есть места / нет мест / под запрос)
          • 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": 90,
		"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
	}
}]


Загрузка филиалов (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 – тип услуги
        • Code – код услуги
        • SubCode1 – доп. описание 1 услуги
        • SubCode2 – доп. описание 2 услуги
        • Packet – ключ пакета услуги
        • Partner – ключ партнера услуги
        • Day – день предоставления услуги
        • DurationInNight – продолжительность услуги в ночах
        • City – ключ города
        • Country – страна услуги
        • Attributes – битовая маска атрибутов услуг
        • IsRemovable – (не обрабатывается)
        • Type – тип услуги в путевке (базовая дополнительная)
        • 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 – массив туристов
      • IsMain – главный турист
      • Number – порядковый номер туриста
      • AgeType – тип туриста (взрослый, ребенок, инфант)
      • MaleFemaleSex – пол
      • FirstName – имя (лат)
      • LastName – фамилия (лат)
      • Patronymic – отчество (лат)
      • FirstNameRus – имя (рус)
      • LastNameRus – фамилия (рус)
      • PatronymicRus – отчество (рус)
      • InternationalPassportSeries – серия загранпаспорта
      • InternationalPassportNumber – номер загранпаспорта
      • InternationalPassportDateOfIssue – дата выдачи загранпаспорта
      • InternationalPassportDateOfIssueString – дата выдачи загранпаспорта в строке
      • InternationalPassportDateOfExpiry – дата окончания действия загранпаспорта
      • InternationalPassportDateOfExpiryString – дата окончания действия загранпаспорта в строке
      • internationalPassportByWhom – кем выдан загранпаспорт
      • PassportSeries – серия паспорта
      • PassportNumber – номер паспорта
      • PassportDateOfIssue – дата выдачи паспорта
      • PassportDateOfIssueString – дата выдачи паспорта в строке
      • PassportByWhom – кем выдан паспорт
      • Citizenship – название страны
      • Phone – телефон
      • Email – e-mail
      • BirthDay – дата рождения
      • BirthDayString – дата рождения в строковом формате
      • 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 – дата начала тура
    • 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 – статус по квотам (есть места / нет мест / под запрос)
          • FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
          • IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
        • Index – индекс услуги
        • IsRoute – признак маршрутная услуга
        • ServiceTemplateIndex – индекс шаблона услуги
        • RemoteId – информация об услуге в удаленной системе
        • IsCommission – признак, комиссионная ли услуга
        • BaseFlightsParams – параметры рассчитанных авиаперелетов
          • CityArrival – ключ города прибытия прямого перелета
          • FlightCode – ключ прямого авиаперелета
          • TariffKey – ключ тарифа прямого авиаперелета
          • PartnerId – ключ партнера прямого авиаперелета
          • CityArrival – ключ города прибытия обратного перелета
          • FlightCode – ключ обратного авиаперелета
          • TariffKey – ключ тарифа обратного авиаперелета
          • PartnerId – ключ партнера обратного авиаперелета
      • TouristNumbersList – массив туристов, привязанных к услуге
    • Tourists – массив туристов
      • IsMain – главный турист
      • Number – порядковый номер туриста
      • AgeType – тип туриста (взрослый, ребенок, инфант)
      • MaleFemaleSex – пол
      • FirstName – имя (лат)
      • LastName – фамилия (лат)
      • Patronymic – отчество (лат)
      • FirstNameRus – имя (рус)
      • LastNameRus – фамилия (рус)
      • PatronymicRus – отчество (рус)
      • InternationalPassportSeries – серия загранпаспорта
      • InternationalPassportNumber – номер загранпаспорта
      • InternationalPassportDateOfIssue – дата выдачи загранпаспорта
      • InternationalPassportDateOfIssueString – дата выдачи загранпаспорта в строке
      • InternationalPassportDateOfExpiry – дата окончания действия загранпаспорта
      • InternationalPassportDateOfExpiryString – дата окончания действия загранпаспорта в строке
      • internationalPassportByWhom – кем выдан загранпаспорт
      • PassportSeries – серия паспорта
      • PassportNumber – номер паспорта
      • PassportDateOfIssue – дата выдачи паспорта
      • PassportDateOfIssueString – дата выдачи паспорта в строке
      • PassportByWhom – кем выдан паспорт
      • Citizenship – название страны
      • Phone – телефон
      • Email – e-mail
      • BirthDay – дата рождения (YYYY-MM-DDThh:mm:ssz)
      • BirthDayString – дата рождения в строковом формате (DD.MM.YYYY)
      • BirthPlace – место рождения
      • CitizenID – гражданство
      • Age – количество полных лет на момент окончания тура
    • BranchId – ключ филиала бронирования (начиная с релиза 15.3). Если не передан, то филиал бронирования берется из менеджера по умолчанию либо из пользователя, создавшего тур.
    • OwnerId – ключ ведущего менеджера (начиная с релиза 15.3). Если 0, то берется по умолчанию. Если по умолчанию не указан, то берется создатель тура.
    • Day – день (перевод)
    • Day2 – дня (перевод)
    • Days – дней (перевод)
    • Night – ночь (перевод)
    • Night2 – ночи (перевод)
    • Nights – ночей (перевод)
    • adultsCountOverServiceLimit – Количество взрослых туристов превышает лимит услуги (перевод)
    • incorrectChildrenInf – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод)
  • Возвращаемый результат:
    • Reservation – объект забронированной путевки. Объект полностью идентичный записи в базу данных tbl_Dogovor со связками к tbl_DogovorList, tbl_Partners, tbl_Turist. При успешном бронировании происходит переход сразу в Мастер_Web.
    • 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": 100003404,
	"BeginDate": "2018-04-16T00:00:00",
	"Duration": 8,
	"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": 357,
			"SubCode1": 41,
			"SubCode2": null,
			"Packet": 777,
			"Partner": 10760,
			"Day": 1,
			"DurationInNight": 0,
			"City": null,
			"Country": 90,
			"Attributes": 32768,
			"Type": 2,
			"IsHooded": false,
			"IsNotCalculated": true,
			"EndDateTimeString": false,
			"Cost": 24,
			"ByPax": false,
			"QuotaStatus": 0,
			"Index": 0,
			"IsRoute": false,
			"ServiceTemplateIndex": 0
		},
		"TouristNumbersList": [1,
		2]
	}],
	"Tourists": [{
		"IsMain": true,
		"Number": 1,
		"AgeType": 0,
		"MaleFemaleSex": 0,
		"FirstName": "555",
		"LastName": "55",
		"Patronymic": "",
		"FirstNameRus": "555",
		"LastNameRus": "55",
		"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": "666",
		"LastName": "66",
		"Patronymic": "",
		"FirstNameRus": "666",
		"LastNameRus": "66",
		"PatronymicRus": "",
		"InternationalPassportSeries": "",
		"InternationalPassportNumber": "",
		"InternationalPassportDateOfIssue": "",
		"InternationalPassportDateOfIssueString": "",
		"InternationalPassportDateOfExpiry": "",
		"InternationalPassportDateOfExpiryString": "",
		"internationalPassportByWhom": "",
		"PassportSeries": "",
		"PassportNumber": "",
		"PassportDateOfIssue": "",
		"PassportDateOfIssueString": "",
		"PassportByWhom": "",
		"Citizenship": "",
		"Phone": "",
		"Email": "",
		"BirthDay": null,
		"BirthDayString": "",
		"BirthPlace": "",
		"CitizenID": "",
                "Age": null
	}],
	"BranchId": 12848,
        "OwnerId": 135, 
	"Day": "день",
	"Day2": "дня",
	"Days": "дней",
	"Night": "ночь",
	"Night2": "ночи",
	"Nights": "ночей",
	"adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги",
	"incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)"
}


Пример ответа

Возвращаемый результат метода CreateReservation (в формате JSON)

{
	"RemoteReservations": [],
	"Reservation": {
		"$id": "1",
		"Code": "AU01060006",
		"TurDate": "2019-06-01T00:00:00",
		"TRKey": 100000004,
		"CNKey": 90,
		"CTKey": 35,
		"NMen": 2,
		"Price": 156,
		"Payed": 0,
		"NDay": 8,
		"MainMan": "Тестовый Представитель",
		"MainManPhone": "9379992",
		"MainManAddress": "",
		"MainManPassport": "",
		"PartnerKey": 12667,
		"Operator": "Иванов Г.Н.",
		"PrintDogovor": null,
		"PrintVaucher": null,
		"TypeCount": 1,
		"Discount": 8,
		"DiscountSum": 14,
		"Creator": 106,
		"Owner": 95,
		"SORCode": 0,
		"CrDate": "2019-04-16T11:01:20.1",
		"Rate": "EU",
		"Advertise": 0,
		"Locked": null,
		"CauseDisc": null,
		"VisaDate": null,
		"PPaymentDate": null,
		"PaymentDate": "2019-04-18T00:00:00+03:00",
		"TurPutDate": null,
		"Document": "",
		"TurPutPlace": null,
		"Procent": 1,
		"OldTourDate": null,
		"RowID": "AAAAAAGY8fM=",
		"TurDateBfrAnnul": null,
		"ARKey": 0,
		"Key": 43295,
		"CodePartner": null,
		"FilialKey": 1,
		"IsOutDoc": 0,
		"AgentID": null,
		"Transferred": null,
		"Notes": null,
		"InvoiceCost": null,
		"DCRClient": null,
		"DCRPayment": null,
		"IsMakeDiscount": null,
		"DiscSumBfrAnn": null,
		"PriceBfrAnn": null,
		"RazmerP": 0,
		"LeadDepartment": 0,
		"MainManEmail": "kononenko@megatec.ru",
		"MainManComment": "",
		"DupUserKey": 333,
		"BTKey": 1,
		"ConfirmedDate": null,
		"PrtDogKey": 422,
		"CTDepartureKey": 1,
		"SalePrice": null,
		"SaleDiscount": null,
		"PDTType": 0,
		"NationalCurrencyPrice": null,
		"NationalCurrencyDiscountSum": null,
		"DAKey": null,
		"NationalCurrencyPayed": null,
		"CurrencyKey": null,
		"CurrencyRate": null,
		"ProTourFlag": null,
		"ClientKey": null,
		"tbl_Partners": null,
		"tbl_Partners_1": {
			"$id": "2",
			"Key": 12667,
			"FullName": null,
			"Name": null,
			"NameEng": null,
			"BossName": null,
			"Boss": null,
			"Male": null,
			"MainMan": null,
			"MainManPhone": null,
			"Discount": null,
			"Account": null,
			"Address": null,
			"Phones": null,
			"Fax": null,
			"Email": null,
			"CTKey": null,
			"Creator": 0,
			"AgentDogovor": null,
			"Type": null,
			"City": null,
			"WebAgent": null,
			"AgentDate": null,
			"AgentDogovor2": null,
			"AgentDate2": null,
			"Fax1": null,
			"Remark": null,
			"CreateDate": null,
			"UpdateDate": null,
			"Art": null,
			"UserLast": null,
			"COD": null,
			"RowID": "AAAAAAGY8g8=",
			"Filial": 0,
			"DateLastContact": "2019-04-16T11:01:23.237",
			"ExchangePwd": null,
			"GUID": null,
			"ExchangeData": null,
			"DogovorType": 0,
			"ICQ": null,
			"GDSPrefix": null,
			"GDSSuffix": null,
			"Owner": null,
			"IPAddress": null,
			"Deleted": 0,
			"LicenseNumber": null,
			"AdditionalInfo": null,
			"LegalAddress": null,
			"INN": null,
			"ForeignAccInfo": null,
			"KPP": null,
			"CodeOKONH": null,
			"CodeOKPO": null,
			"HomePage": null,
			"PGKey": 0,
			"BlockedForAnnul": 0,
			"PostIndex": null,
			"LegalPostIndex": null,
			"RegisterSeries": null,
			"RegisterNumber": null,
			"WebServiceUrl": null,
			"PrivatePerson": false,
			"pr_sortOrder": 0,
			"PK_RLID": null,
			"PrtTypesToPartners": [],
			"tbl_Costs": [],
			"tbl_Dogovor_asFilial": [],
			"TP_Tours": [],
			"CityDictionary": null,
			"DUP_USER": [],
			"tbl_Dogovor_asPartner": [{
				"$ref": "1"
			}],
			"CostOffers": [],
			"PrtWarns": [],
			"PrtDogs": [],
			"PrtGroups": null,
			"PrtBonuses": [],
			"Communications": [],
			"Discounts": [],
			"PrtDeps": [],
			"BlankRanges": []
		},
		"Rates": null,
		"PrtBonusDetails": [],
		"Communications": [],
		"tbl_DogovorList": [{
			"$id": "3",
			"DGCod": "AU01060006",
			"TurDate": "2019-06-01T00:00:00",
			"Key": 215524,
			"PaketKey": 779,
			"TRKey": 100000004,
			"SVKey": 1,
			"Name": "А_П::Москва/Вена/BA74444, DME-VIE1, 10:01-12:15/C Бизнес класс",
			"Day": 1,
			"Code": 882,
			"SubCode1": 67,
			"SubCode2": 1,
			"Men": 2,
			"Days": 0,
			"CNKey": 90,
			"CTKey": 35,
			"PartnerKey": 12668,
			"Cost": 89.0630566441040256501603135,
			"RealNetto": null,
			"Brutto": 81.63000000000000000000000001,
			"Payed": null,
			"Wait": null,
			"Warning": 0,
			"TimeBeg": "1899-01-01T10:01:00",
			"Control": 4,
			"Creator": 106,
			"Owner": 106,
			"Attribute": 65695,
			"IsPayed": null,
			"DateBeg": "2019-06-01T00:00:00",
			"DateEnd": "2019-06-01T00:00:00",
			"Discount": 7.37,
			"QuoteKey": 0,
			"Agent": 12667,
			"RowId": "AAAAAAGY8fc=",
			"AgentId": 0,
			"Comment": null,
			"Reserved": null,
			"DGKey": 43295,
			"FormulaNetto": null,
			"FormulaBrutto": null,
			"Blocked": null,
			"NameLat": "А_П::Москва/Вена/BA74444, DME-VIE1, 10:01-12:15/C Бизнес класс",
			"PRTDogKey": null,
			"TaxZoneId": null,
			"Long": 8,
			"IsDeleted": null,
			"SalePrice": null,
			"SaleDiscount": null,
			"FormulaDiscount": null,
			"TRFId": 0,
			"CreateDate": "2019-04-16T11:01:20.1",
			"IsSendPartner": null,
			"DogCodePartner": null,
			"ProviderStatuseKey": null,
			"CalculatePriceDate": "2019-04-16T11:01:20.1",
			"RejectComment": null,
			"ShowOrder": 1,
			"NettoDescription": "1д=50$*2чел. (комис, ЦБ \"5656_49\");<br>
                         Курсы валют: $ -> EU = 0,8898 (16.04.2019);<br>Итого: 89,06EU<br>",
			"BruttoDescription": "1д=50$*2чел. (комис, ЦБ \"5656_49\");<br>
                         Курсы валют: $ -> EU = 0,8898 (16.04.2019);<br>Скидка: 8,00%<br>Итого: 81,87EUИтого: 81,63EU",
			"Service": null,
			"TuristService": [{
				"$id": "4",
				"TUKey": 97385,
				"DLKey": 215524,
				"NumDoc": null,
				"NumRoom": 0,
				"Seat": null,
				"Area": null,
				"DocDate": null,
				"RowId": "AAAAAAGY8gc=",
				"Id": 46828,
				"tbl_DogovorList": {
					"$ref": "3"
				},
				"tbl_Turist": {
					"$id": "5",
					"DGCod": "AU01060006",
					"Key": 97385,
					"TurDate": "2019-06-01T00:00:00",
					"NameRus": "IVANOV",
					"NameLat": "IVANOV",
					"ShortName": "I.",
					"Sex": 0,
					"FNameRus": "IVAN",
					"FNameLat": "IVAN",
					"SNameRus": "",
					"SNameLat": "",
					"BirthDay": null,
					"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,
					"Creator": 106,
					"Owner": 95,
					"PaspRuser": "",
					"PaspRuNum": "",
					"PaspRuDate": null,
					"PaspRuByWhom": "",
					"INSurPolis": null,
					"INSurSum": null,
					"Discount": null,
					"TypeDiscount": null,
					"ClientId": null,
					"IsMain": 1,
					"RowId": "AAAAAAGY8gQ=",
					"AgentId": null,
					"DGKey": 43295,
					"RealSex": 0,
					"Email": "",
					"EnableSmsNotifications": 0,
					"InsuredEvent": false,
					"CitizenID": "",
					"TuristService": [{
						"$ref": "4"
					},
					{
						"$id": "6",
						"TUKey": 97385,
						"DLKey": 215523,
						"NumDoc": null,
						"NumRoom": 0,
						"Seat": null,
						"Area": null,
						"DocDate": null,
						"RowId": "AAAAAAGY8gk=",
						"Id": 46829,
						"tbl_DogovorList": {
							"$id": "7",
							"DGCod": "AU01060006",
							"TurDate": "2019-06-01T00:00:00",
							"Key": 215523,
							"PaketKey": 779,
							"TRKey": 100000004,
							"SVKey": 2,
							"Name": "Трансфер::Арльберг/ТРАНСФЕР_2,17:30:00/Coach 14 чел.",
							"Day": 1,
							"Code": 852,
							"SubCode1": 30,
							"SubCode2": 0,
							"Men": 2,
							"Days": 0,
							"CNKey": 90,
							"CTKey": 275,
							"PartnerKey": 11246,
							"Cost": 17.8126113288208051300320627,
							"RealNetto": null,
							"Brutto": 16.53,
							"Payed": null,
							"Wait": null,
							"Warning": 0,
							"TimeBeg": "1899-01-01T17:30:00",
							"Control": 0,
							"Creator": 106,
							"Owner": 106,
							"Attribute": 65695,
							"IsPayed": null,
							"DateBeg": "2019-06-01T00:00:00",
							"DateEnd": "2019-06-01T00:00:00",
							"Discount": 1.47,
							"QuoteKey": 0,
							"Agent": 12667,
							"RowId": "AAAAAAGY8fY=",
							"AgentId": 0,
							"Comment": null,
							"Reserved": null,
							"DGKey": 43295,
							"FormulaNetto": null,
							"FormulaBrutto": null,
							"Blocked": null,
							"NameLat": "Трансфер::Арльберг/ТРАНСФЕР_2,17:30:00/Coach 14 чел.",
							"PRTDogKey": null,
							"TaxZoneId": null,
							"Long": 8,
							"IsDeleted": null,
							"SalePrice": null,
							"SaleDiscount": null,
							"FormulaDiscount": null,
							"TRFId": 0,
							"CreateDate": "2019-04-16T11:01:20.1",
							"IsSendPartner": null,
							"DogCodePartner": null,
							"ProviderStatuseKey": null,
							"CalculatePriceDate": "2019-04-16T11:01:20.1",
							"RejectComment": null,
							"ShowOrder": 2,
							"NettoDescription": "1д=20$ (комис, ЦБ \"Baron Travel _3\");<br>
                                                         Курсы валют: $ -> EU = 0,8898 (16.04.2019);<br>Итого: 17,81EU<br>",
							"BruttoDescription": "1д=20$ (комис, ЦБ \"Baron Travel _3\");<br>
                                                         Курсы валют: $ -> EU = 0,8898 (16.04.2019);<br>Скидка: 8,00%<br>Итого: 16,57EUИтого: 16,53EU",
							"Service": null,
							"TuristService": [{
								"$ref": "6"
							},
							{
								"$id": "8",
								"TUKey": 97384,
								"DLKey": 215523,
								"NumDoc": null,
								"NumRoom": 0,
								"Seat": null,
								"Area": null,
								"DocDate": null,
								"RowId": "AAAAAAGY8fs=",
								"Id": 46824,
								"tbl_DogovorList": {
									"$ref": "7"
								},
								"tbl_Turist": {
									"$id": "9",
									"DGCod": "AU01060006",
									"Key": 97384,
									"TurDate": "2019-06-01T00:00:00",
									"NameRus": "IVANOV",
									"NameLat": "IVANOV",
									"ShortName": "P.",
									"Sex": 0,
									"FNameRus": "PETR",
									"FNameLat": "PETR",
									"SNameRus": "",
									"SNameLat": "",
									"BirthDay": null,
									"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,
									"Creator": 106,
									"Owner": 95,
									"PaspRuser": "",
									"PaspRuNum": "",
									"PaspRuDate": null,
									"PaspRuByWhom": "",
									"INSurPolis": null,
									"INSurSum": null,
									"Discount": null,
									"TypeDiscount": null,
									"ClientId": null,
									"IsMain": 0,
									"RowId": "AAAAAAGY8fo=",
									"AgentId": null,
									"DGKey": 43295,
									"RealSex": 0,
									"Email": "",
									"EnableSmsNotifications": 0,
									"InsuredEvent": false,
									"CitizenID": "",
									"TuristService": [{
										"$id": "10",
										"TUKey": 97384,
										"DLKey": 215524,
										"NumDoc": null,
										"NumRoom": 0,
										"Seat": null,
										"Area": null,
										"DocDate": null,
										"RowId": "AAAAAAGY8f0=",
										"Id": 46825,
										"tbl_DogovorList": {
											"$ref": "3"
										},
										"tbl_Turist": {
											"$ref": "9"
										},
										"VisaTouristServices": [],
										"RemoteFlightsBooksRelations": []
									},
									{
										"$ref": "8"
									},
									{
										"$id": "11",
										"TUKey": 97384,
										"DLKey": 215522,
										"NumDoc": null,
										"NumRoom": 0,
										"Seat": null,
										"Area": null,
										"DocDate": null,
										"RowId": "AAAAAAGY8f8=",
										"Id": 46826,
										"tbl_DogovorList": {
											"$id": "12",
											"DGCod": "AU01060006",
											"TurDate": "2019-06-01T00:00:00",
											"Key": 215522,
											"PaketKey": 779,
											"TRKey": 100000004,
											"SVKey": 3,
											"Name": "HOTEL::Вена/Continental-1-Condotela,5 ночей/
                                                                                         2 Adult(1 bedroom Jacuzzi Suite),2 ADL/HH2 HH для удаления2",
											"Day": 2,
											"Code": 705,
											"SubCode1": 47289,
											"SubCode2": 62,
											"Men": 2,
											"Days": 5,
											"CNKey": 90,
											"CTKey": 35,
											"PartnerKey": 12667,
											"Cost": 44.53152832205201282508015675,
											"RealNetto": null,
											"Brutto": 41.31,
											"Payed": null,
											"Wait": null,
											"Warning": 0,
											"TimeBeg": "1899-01-01T17:00:00",
											"Control": 1,
											"Creator": 106,
											"Owner": 106,
											"Attribute": 65695,
											"IsPayed": null,
											"DateBeg": "2019-06-02T00:00:00",
											"DateEnd": "2019-06-06T00:00:00",
											"Discount": 3.69,
											"QuoteKey": 0,
											"Agent": 12667,
											"RowId": "AAAAAAGY8fU=",
											"AgentId": 0,
											"Comment": null,
											"Reserved": null,
											"DGKey": 43295,
											"FormulaNetto": null,
											"FormulaBrutto": null,
											"Blocked": null,
											"NameLat": "HOTEL::Вена/Continental-1-Condotela,5 ночей/
                                                                                         2 Adult(1 bedroom Jacuzzi Suite),2 ADL/HH2 HH для удаления2",
											"PRTDogKey": 422,
											"TaxZoneId": null,
											"Long": 8,
											"IsDeleted": null,
											"SalePrice": null,
											"SaleDiscount": null,
											"FormulaDiscount": null,
											"TRFId": 0,
											"CreateDate": "2019-04-16T11:01:20.1",
											"IsSendPartner": null,
											"DogCodePartner": null,
											"ProviderStatuseKey": null,
											"CalculatePriceDate": "2019-04-16T11:01:20.1",
											"RejectComment": null,
											"ShowOrder": 3,
											"NettoDescription": "5д*10$ (комис, ЦБ \"Партнер-покупатель1_77\");<br>
                                                                                         Курсы валют: $ -> EU = 0,8898 (16.04.2019);<br>Итого: 44,53EU<br>",
											"BruttoDescription": "5д*10$ (комис, ЦБ \"Партнер-покупатель1_77\");<br>
                                                                                         Курсы валют: $ -> EU = 0,8898 (16.04.2019);<br>Скидка: 8,00%<br>
                                                                                         Итого: 41,44EUИтого: 41,31EU",
											"Service": null,
											"TuristService": [{
												"$id": "13",
												"TUKey": 97385,
												"DLKey": 215522,
												"NumDoc": null,
												"NumRoom": 0,
												"Seat": null,
												"Area": null,
												"DocDate": null,
												"RowId": "AAAAAAGY8gs=",
												"Id": 46830,
												"tbl_DogovorList": {
													"$ref": "12"
												},
												"tbl_Turist": {
													"$ref": "5"
												},
												"VisaTouristServices": [],
												"RemoteFlightsBooksRelations": []
											},
											{
												"$ref": "11"
											}],
											"ProviderStatus": null,
											"DogovorListNeedQuoteds": [],
											"ServiceByDates": [],
											"tbl_Dogovor": {
												"$ref": "1"
											}
										},
										"tbl_Turist": {
											"$ref": "9"
										},
										"VisaTouristServices": [],
										"RemoteFlightsBooksRelations": []
									},
									{
										"$id": "14",
										"TUKey": 97384,
										"DLKey": 215521,
										"NumDoc": null,
										"NumRoom": 0,
										"Seat": null,
										"Area": null,
										"DocDate": null,
										"RowId": "AAAAAAGY8gI=",
										"Id": 46827,
										"tbl_DogovorList": {
											"$id": "15",
											"DGCod": "AU01060006",
											"TurDate": "2019-06-01T00:00:00",
											"Key": 215521,
											"PaketKey": 779,
											"TRKey": 100000004,
											"SVKey": 1,
											"Name": "А_П::Вена/Москва/7U222, VIE1-DME, 18:00-01:01/C Бизнес класс",
											"Day": 7,
											"Code": 774,
											"SubCode1": 67,
											"SubCode2": 35,
											"Men": 2,
											"Days": 0,
											"CNKey": 460,
											"CTKey": 1,
											"PartnerKey": 10760,
											"Cost": 5.3437833986462415390096188102,
											"RealNetto": null,
											"Brutto": 16.53,
											"Payed": null,
											"Wait": null,
											"Warning": 0,
											"TimeBeg": "1899-01-01T18:00:00",
											"Control": 4,
											"Creator": 106,
											"Owner": 106,
											"Attribute": 65695,
											"IsPayed": null,
											"DateBeg": "2019-06-07T00:00:00",
											"DateEnd": "2019-06-08T00:00:00",
											"Discount": 1.47,
											"QuoteKey": 0,
											"Agent": 12667,
											"RowId": "AAAAAAGY8fQ=",
											"AgentId": 0,
											"Comment": null,
											"Reserved": null,
											"DGKey": 43295,
											"FormulaNetto": null,
											"FormulaBrutto": null,
											"Blocked": null,
											"NameLat": "А_П::Вена/Москва/7U222, VIE1-DME, 18:00-01:01/C Бизнес класс",
											"PRTDogKey": 328,
											"TaxZoneId": null,
											"Long": 8,
											"IsDeleted": null,
											"SalePrice": null,
											"SaleDiscount": null,
											"FormulaDiscount": null,
											"TRFId": 0,
											"CreateDate": "2019-04-16T11:01:20.1",
											"IsSendPartner": null,
											"DogCodePartner": null,
											"ProviderStatuseKey": null,
											"CalculatePriceDate": "2019-04-16T11:01:20.1",
											"RejectComment": null,
											"ShowOrder": 4,
											"NettoDescription": "1д=3$*2чел. (комис, ЦБ \"партнер_66\");<br>
                                                                                         Курсы валют: $ -> EU = 0,8898 (16.04.2019);<br>Итого: 5,34EU<br>",
											"BruttoDescription": "1д=10$*2чел. (комис, ЦБ \"партнер_66\");<br>
                                                                                         Курсы валют: $ -> EU = 0,8898 (16.04.2019);<br>Скидка: 8,00%<br>
                                                                                         Итого: 16,57EUИтого: 16,53EU",
											"Service": null,
											"TuristService": [{
												"$id": "16",
												"TUKey": 97385,
												"DLKey": 215521,
												"NumDoc": null,
												"NumRoom": 0,
												"Seat": null,
												"Area": null,
												"DocDate": null,
												"RowId": "AAAAAAGY8g0=",
												"Id": 46831,
												"tbl_DogovorList": {
													"$ref": "15"
												},
												"tbl_Turist": {
													"$ref": "5"
												},
												"VisaTouristServices": [],
												"RemoteFlightsBooksRelations": []
											},
											{
												"$ref": "14"
											}],
											"ProviderStatus": null,
											"DogovorListNeedQuoteds": [],
											"ServiceByDates": [],
											"tbl_Dogovor": {
												"$ref": "1"
											}
										},
										"tbl_Turist": {
											"$ref": "9"
										},
										"VisaTouristServices": [],
										"RemoteFlightsBooksRelations": []
									}],
									"QuestionnaireTouristCases": [],
									"tbl_Dogovor": {
										"$ref": "1"
									}
								},
								"VisaTouristServices": [],
								"RemoteFlightsBooksRelations": []
							}],
							"ProviderStatus": null,
							"DogovorListNeedQuoteds": [],
							"ServiceByDates": [],
							"tbl_Dogovor": {
								"$ref": "1"
							}
						},
						"tbl_Turist": {
							"$ref": "5"
						},
						"VisaTouristServices": [],
						"RemoteFlightsBooksRelations": []
					},
					{
						"$ref": "13"
					},
					{
						"$ref": "16"
					}],
					"QuestionnaireTouristCases": [],
					"tbl_Dogovor": {
						"$ref": "1"
					}
				},
				"VisaTouristServices": [],
				"RemoteFlightsBooksRelations": []
			},
			{
				"$ref": "10"
			}],
			"ProviderStatus": null,
			"DogovorListNeedQuoteds": [],
			"ServiceByDates": [],
			"tbl_Dogovor": {
				"$ref": "1"
			}
		},
		{
			"$ref": "7"
		},
		{
			"$ref": "12"
		},
		{
			"$ref": "15"
		}],
		"tbl_Turist": [{
			"$ref": "5"
		},
		{
			"$ref": "9"
		}]
	},
	"ValidationResultSummary": {
		"ValidationResult": {
			"Errors": [],
			"IsValid": true
		},
		"ValidationResultAttributes": 0
	}
}


Дополнительные методы

Выгрузка измененных турпрограмм (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?

Возвращаемый результат метода 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]
	}]
}]


Параметры SubCode1 и SubCode2

Параметры SubCode1 и SubCode2, возвращаемые при API-запросах это параметры дополнительных описаний двух типов, индивидуальных для каждой услуги.

Ключ типа услуги Наименование типа услуги Значение Code Значение SubCode1 Таблица БД со значениями SubCode1 Значение 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