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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Расчет путевки (CalculateReservation))
(Установка)
 
(не показано 56 промежуточных версий 4 участников)
Строка 12: Строка 12:
 
Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br />
 
Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br />
 
После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/"название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/Settings'')
 
После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/"название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/Settings'')
 +
 +
==Swagger==
 +
Работу методов можно проверить с помощью Swagger по пути: ''http://localhost:9000/TourSearchOwin/SwaggerUI''
  
 
==Список методов==
 
==Список методов==
Строка 17: Строка 20:
 
Последовательность вызова методов сервиса<br />
 
Последовательность вызова методов сервиса<br />
 
[[Файл:mb_273.png|1000px|Последовательность вызова методов сервиса]]
 
[[Файл:mb_273.png|1000px|Последовательность вызова методов сервиса]]
 +
 +
===Информация о состоянии службы поиска (statusCache)===
 +
Метод выводит информацию о состоянии службы поиска при ее загрузке.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/statusCache?
 +
* Принимаемые параметры:
 +
** нет принимаемых параметров
 +
* Возвращаемый результат:
 +
** '''Initialized''' – информация о том, загружена ли служба или нет ('''false''' – инициализация кешей не завершена, '''true''' – инициализация кешей завершена)
 +
** '''Status''' – состояние службы. Возможные значения: ''Запущена инициализация кэшей'', ''Инициализация кэшей завершена''
 +
** '''CacheName''' – информация о том, какой именно кеш сейчас считается (название)
 +
** '''Iteration''' – порядковый номер считаемого справочника кеша
 +
** '''CacheCount''' – общее количество кешей
 +
** '''ProcessMessage''' – детализация. Информацию можно разделить на 3 блока:
 +
*** Загрузка всех справочных данных, кроме расчета маршрутов и актуальных фильтров. В этом случае сообщение будет ''Загрузка кэшей из БД''
 +
*** Расчет маршрутов. ''CacheName'' – ''HotelScheme'', сообщение будет ''tours load: 956 / 1234''
 +
*** Расчет актуальных фильтров. ''CacheName'' – ''ActualFilters'', сообщение будет ''Actual filter processed: 783012 / 3865687"''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода Settings
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/statusCache
 +
</syntaxhighlight>
 +
Возвращаемый результат метода statusCache (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
    "Initialized": false,
 +
    "Status": "Запущена инициализация кэшей",
 +
    "CacheName": "ToursSearchView",
 +
    "Iteration": 10,
 +
    "CacheCount": 112,
 +
    "ProcessMessage": "Загрузка кэшей из БД"
 +
}
 +
{
 +
    "Initialized": false,
 +
    "Status": "Запущена инициализация кэшей",
 +
    "CacheName": "HotelScheme",
 +
    "Iteration": 109,
 +
    "CacheCount": 112,
 +
    "ProcessMessage": "tours load: 956 / 1234"
 +
}
 +
{
 +
    "Initialized": false,
 +
    "Status": "Запущена инициализация кэшей",
 +
    "CacheName": "ActualFilters",
 +
    "Iteration": 112,
 +
    "CacheCount": 112,
 +
    "ProcessMessage": "Actual filter processed: 783012 / 3865687"
 +
}
 +
{
 +
    "Initialized": true,
 +
    "Status": "Инициализация кэшей завершена",
 +
    "CacheName": null,
 +
    "Iteration": 0,
 +
    "CacheCount": 0,
 +
    "ProcessMessage": null
 +
}
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
  
 
===Авторизация (Token)===
 
===Авторизация (Token)===
Строка 105: Строка 170:
 
*** ''<add key="enableActualFilters" value="true" />'' - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован"
 
*** ''<add key="enableActualFilters" value="true" />'' - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован"
 
*** ''<add key="enableActualFilters" value="false" />'' - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован".
 
*** ''<add key="enableActualFilters" value="false" />'' - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован".
 
+
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
 +
** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null)
 +
** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null)
 +
** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null)
 +
** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null)
 +
** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null)
 +
** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null)
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
Строка 182: Строка 253:
 
   "ShowHotelImagesInSearch": true
 
   "ShowHotelImagesInSearch": true
 
   "CacheReadyMessage": "Кеш инициализирован"
 
   "CacheReadyMessage": "Кеш инициализирован"
 +
    "nodeId": 2147483647,
 +
    "FullPaymentPeriod": null,
 +
    "FullPaymentCheckin": 5,
 +
    "PrePaymentPeriod": null,
 +
    "PrePaymentCheckin": 10,
 +
    "PrePaymentPercent": 50.0,
 +
    "PrePaymentCu": null
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</TD></TR></TABLE>
 
</TD></TR></TABLE>
 
</div></div><br />
 
</div></div><br />
 
  
 
===Выгрузка списка валют в онлайне (Currency)===
 
===Выгрузка списка валют в онлайне (Currency)===
Строка 257: Строка 334:
 
** GET .../TourSearchOwin/CurrencyRates
 
** GET .../TourSearchOwin/CurrencyRates
 
* Принимаемые параметры:
 
* Принимаемые параметры:
** нет принимаемых параметров
+
** '''dateFrom''' – начальная дата, от которой вывести список курсов валют, в формате DD.MM.YYYY, необязательный параметр (если не указан, берется за текущий день)
 +
** '''dateTo''' – конечная дата, до которой вывести список курсов валют, в формате DD.MM.YYYY, необязательный параметр (если не указан, берется за текущий день)
 +
** '''otherBaseCurrencyId''' – идентификатор любой валюты, эмулирующей работу национальной валюты, необязательный параметр. Если заполнен, то в результатах выдачи параметр ''baseCurrencyId'' будет заменяться на валюту из параметра ''otherBaseCurrencyId'' (обрабатывается с релиза 15.9).
 +
 
 
* Возвращаемый результат:
 
* Возвращаемый результат:
 
** '''baseCurrencyId''' – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке ''basketCurrency'' в конфигурационном файле (обрабатывается с релиза 15.6)
 
** '''baseCurrencyId''' – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке ''basketCurrency'' в конфигурационном файле (обрабатывается с релиза 15.6)
 
** '''currencyId''' – идентификатор валюты, курс которой приводится
 
** '''currencyId''' – идентификатор валюты, курс которой приводится
 
** '''rate''' – курс валюты (отношение '''currencyId''' к '''baseCurrencyId''')
 
** '''rate''' – курс валюты (отношение '''currencyId''' к '''baseCurrencyId''')
 +
** '''date''' – дата, на которую был зарегистрирован выводимый курс валюты
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 268: Строка 349:
 
Вызов метода CurrencyRates
 
Вызов метода CurrencyRates
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
http://localhost:9000/TourSearchOwin/CurrencyRates
+
http://localhost:9000/TourSearchOwin/CurrencyRates?dateFrom=18.09.2024&dateTo=19.09.2024
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода CurrencyRates (в формате JSON)
 
Возвращаемый результат метода CurrencyRates (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
{
+
[
  "version": "1.08",
+
    {
  "currencyRates":   [
+
        "BaseCurrencyId": 14,
            {
+
        "CurrencyId": 1,
        "baseCurrencyId": 2,
+
        "Rate": 91.429200,
        "currencyId": 1,
+
        "Date": "18.09.2024"
        "rate": 65.256054
+
    },
      },
+
    {
            {
+
        "BaseCurrencyId": 14,
        "baseCurrencyId": 2,
+
        "CurrencyId": 2,
        "currencyId": 3,
+
        "Rate": 101.505700,
        "rate": 71.168955
+
        "Date": "18.09.2024"
      }
+
    },
  ]
+
    {
}
+
        "BaseCurrencyId": 14,
 +
        "CurrencyId": 1,
 +
        "Rate": 91.671200,
 +
        "Date": "19.09.2024"
 +
    },
 +
    {
 +
        "BaseCurrencyId": 14,
 +
        "CurrencyId": 2,
 +
        "Rate": 102.039000,
 +
        "Date": "19.09.2024"
 +
    }
 +
]
  
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 508: Строка 600:
 
** '''Name''' – название страны
 
** '''Name''' – название страны
 
** '''Key''' – идентификатор страны
 
** '''Key''' – идентификатор страны
** '''DestinationType''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
+
** '''DestinationType''' – тип результата (внутренний параметр, не изменяемый, всегда возвращается значение = 1)
 
** '''IsExist''' – не используется
 
** '''IsExist''' – не используется
 
** '''Data''' – массив данных для контекстного поиска
 
** '''Data''' – массив данных для контекстного поиска
Строка 690: Строка 782:
 
** '''departureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'')
 
** '''departureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'')
 
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
 
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
** '''Type *''' – тип результата (всегда возвращается в JSON = 1, в xml = country)
+
** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
 
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны
 
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны
 
** '''terms''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
 
** '''terms''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
Строка 696: Строка 788:
 
** '''Key''' – идентификатор типа тура
 
** '''Key''' – идентификатор типа тура
 
** '''Name''' – название типа тура
 
** '''Name''' – название типа тура
** '''ParentId''' – идентификатор группы, к которой относится данный типа тура (если тип тура не относится к группе, то возвращается ''null'')
+
** '''ParentId''' – идентификатор группы, к которой относится данный тип тура (если тип тура не относится к группе, то возвращается ''null'')
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 736: Строка 828:
 
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны
 
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны
 
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
 
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
** '''Type *''' – тип результата (всегда возвращается в JSON = 1, в xml = country)
+
** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
 
** '''tourTypes *''' – идентификатор типа тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны
 
** '''tourTypes *''' – идентификатор типа тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны
 
* Возвращаемый результат:
 
* Возвращаемый результат:
Строка 772: Строка 864:
 
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны
 
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны
 
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
 
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
** '''Type *''' – тип результата (всегда возвращается в JSON = 1, в xml = country)
+
** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
 
** '''tourDate *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
 
** '''tourDate *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
 
** '''tourTypes *''' – идентификатор типа(ов) тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны
 
** '''tourTypes *''' – идентификатор типа(ов) тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны
Строка 812: Строка 904:
 
** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false)
 
** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false)
 
** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
 
** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
** '''DestinationType *''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
+
** '''DestinationType *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
 
** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
 
** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
 
** '''AdultCount *''' – количество взрослых
 
** '''AdultCount *''' – количество взрослых
Строка 824: Строка 916:
 
** '''Groups''' – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля)
 
** '''Groups''' – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля)
 
** '''HotelScheme''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры:  
 
** '''HotelScheme''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры:  
*** '''TemplateId''' – идентификатор шаблона услуги,  
+
*** '''TemplateId''' – идентификатор шаблона услуги (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Key->TemplateId),  
*** '''DurationInNight''' – продолжительность отеля в ночах,  
+
*** '''DurationInNight''' – продолжительность отеля в ночах (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->DurationInNight),  
*** '''Code''' – ключ отеля,  
+
*** '''Code''' – ключ отеля (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->Code),  
*** '''PacketKey''' – ключ пакета,  
+
*** '''PacketKey''' – ключ пакета (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PacketId),
*** '''PartnerKey''' – ключ партнера
+
*** '''PartnerKey''' – ключ партнера (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PartnerId),
*** '''GDSProviderId''' – ключ провайдера из внешней системы
+
*** '''GDSProviderId''' – ключ провайдера из внешней системы (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->GDSProviderId),
*** '''TotalTourDuration''' – общая продолжительность тура в днях
+
*** '''TotalTourDuration''' – общая продолжительность тура в днях (этот параметр можно взять из контроллера Tour->Result->Duration)
 
** '''BusTransferPointKeys''' – данный признак проставляется в ''true'' в том случае, когда происходит запрос вариантов проживания (кнопка ''Варианты'') в автобусных переездах
 
** '''BusTransferPointKeys''' – данный признак проставляется в ''true'' в том случае, когда происходит запрос вариантов проживания (кнопка ''Варианты'') в автобусных переездах
 
** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура
 
** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура
Строка 865: Строка 957:
 
** '''IsGroupingTourAlreadyMerge''' – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. ''IsGroupingTourAlreadyMerge=false'' – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. ''IsGroupingTourAlreadyMerge=true'' – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4.
 
** '''IsGroupingTourAlreadyMerge''' – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. ''IsGroupingTourAlreadyMerge=false'' – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. ''IsGroupingTourAlreadyMerge=true'' – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4.
 
** '''SearchId''' – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5.
 
** '''SearchId''' – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5.
 +
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
 
   
 
   
  
Строка 877: Строка 970:
 
*** '''TourUrl''' – ссылка на программу тура
 
*** '''TourUrl''' – ссылка на программу тура
 
*** '''BookingConditions''' – условия бронирования программы туров
 
*** '''BookingConditions''' – условия бронирования программы туров
 +
*** '''DefaultManagers''' – список выбранных менеджеров в туре
 +
*** '''Manager''' – ключ менеджера по умолчанию в туре
 +
*** '''Branches''' – список ключей филиалов бронирования
 +
*** '''DetermineTheBranchOnCity''' – признак, определять филиал в зависимости от города начала поездки
 +
*** '''IndividualFlightSelection''' – признак, включены ли индивидуальные настройки подбора перелетов
 +
*** '''RestrictionDateArrival''' – признак, ограничение даты прилета по базовому рейсу в индивидуальных настройках подбора перелетов
 +
*** '''PriceUpdateForView''' – признак обновления цен в индивидуальных настройках подбора перелетов (true – включен, false – выключен)
 +
*** '''SelectFlightAutomatically''' – признак выбирать рейс автоматически, если не выбран пользователем в индивидуальных настройках подбора перелетов
 +
*** '''BaggageSearchOtherFares''' – признак поиска багажа в других тарифах в индивидуальных настройках подбора перелетов
 +
*** '''Luggage''' – значение багажа в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
 +
*** '''LuggageForView''' – значение багажа в блоке настроек, влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
 +
*** '''LuggageForPrice''' – значение багажа в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
 +
*** '''FlightClass''' – класс перелета в индивидуальных настройках подбора перелетов (economy – Эконом, premiumEconomy 2 Премиум-эконом, business – Бизнес, first – Первый)
 +
*** '''Directs''' – значение пересадок в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, onlyDirectFlights – только прямые рейсы)
 +
*** '''DirectsForView''' – значение пересадок в блоке влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect)
 +
*** '''DirectsForPrice''' – значение пересадок в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect)
 +
*** '''DepartureTimeLimit''' – ограничение времени вылета: «Вылет не позже» в формате hh:mm
 +
*** '''SortingForView''' – сортировка в индивидуальных настройках подбора перелетов (cheap – сначала дешевые, fast – сначала быстрые, optimal – оптимальные)
 
*** '''StartDate''' – дата начала тура
 
*** '''StartDate''' – дата начала тура
 +
*** '''MaxConnectionTime''' – длительность пересадок в индивидуальных настройках подбора перелетов в формате hh:mm
 +
*** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null)
 +
*** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null)
 +
*** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null)
 +
*** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null)
 +
*** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null)
 +
*** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null)
 
*** '''Duration''' – продолжительность тура (в днях)
 
*** '''Duration''' – продолжительность тура (в днях)
 
*** '''DurationInNight''' – продолжительность проживания (в ночах)
 
*** '''DurationInNight''' – продолжительность проживания (в ночах)
 
*** '''Types''' – идентификатор типа туров
 
*** '''Types''' – идентификатор типа туров
*** '''Cost''' – цена тура
+
*** '''Price''' –  цена тура с учетом скидки в валюте поиска
 +
*** '''Cost''' – цена тура в валюте поиска
 
*** '''Rate''' – код валюты тура
 
*** '''Rate''' – код валюты тура
 +
*** '''Penalties''' – внутреннее поле, не используется
 
*** '''CityDepature''' – город отправления
 
*** '''CityDepature''' – город отправления
 
**** '''Key''' – идентификатор города отправления
 
**** '''Key''' – идентификатор города отправления
Строка 956: Строка 1076:
 
***** '''Key''' – ключ города
 
***** '''Key''' – ключ города
 
***** '''Value''' – название города
 
***** '''Value''' – название города
**** '''Country''' – ключ страны
+
**** '''Country''' – объект страна
 +
***** '''Key''' – ключ страны
 +
***** '''Value''' – название страны
 
**** '''Code''' – объект код услуги
 
**** '''Code''' – объект код услуги
 
***** '''Key''' – ключ услуги
 
***** '''Key''' – ключ услуги
Строка 1062: Строка 1184:
 
***** '''enabled''' – флаг включен/выключен
 
***** '''enabled''' – флаг включен/выключен
 
*** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске)
 
*** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске)
 +
*** '''Routes''' – количество маршрутов для данного варианта поиска (к примеру, если будет несколько вариантов
 +
*** '''IsRemoteHotels''' – признак, есть ли внешние отели в данном варианте
 +
*** '''IsTourImages''' – признак, есть ли картинки тура
 +
*** '''MaskKeys''' – маска фильтра категории номеров
 
** '''SecondaryFiltersResult''' – результаты доп. фильтров
 
** '''SecondaryFiltersResult''' – результаты доп. фильтров
 
*** '''TourTypes''' – типы тура
 
*** '''TourTypes''' – типы тура
Строка 1139: Строка 1265:
 
**** '''HotelTypes''' – признаки отелей в дополнительных фильтрах  
 
**** '''HotelTypes''' – признаки отелей в дополнительных фильтрах  
 
***** '''''' –  
 
***** '''''' –  
 +
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 1166: Строка 1293:
 
         "TourUrl": "www.megatec.ru",
 
         "TourUrl": "www.megatec.ru",
 
         "BookingConditions": "<p>Условия бронирования тура.<\/p>",
 
         "BookingConditions": "<p>Условия бронирования тура.<\/p>",
 +
        "DefaultManagers": [],
 +
        "Manager": 169,
 +
        "Branches": [],
 +
        "DetermineTheBranchOnCity": false,
 +
        "IndividualFlightSelection": true,
 +
        "RestrictionDateArrival": false,
 +
        "PriceUpdateForView": false,
 +
        "SelectFlightAutomatically": false,
 +
        "BaggageSearchOtherFares": false,
 +
        "Luggage": "withoutLuggage",
 +
        "LuggageForView": "all",
 +
        "LuggageForPrice": "all",
 +
        "FlightClass": "economy",
 +
        "Directs": "all",
 +
        "DirectsForView": "all",
 +
        "DirectsForPrice": "all",
 +
        "DepartureTimeLimit": "",
 +
        "SortingForView": "cheap",
 
         "StartDate": "2018-02-25T00:00:00",
 
         "StartDate": "2018-02-25T00:00:00",
 +
        "MaxConnectionTime": 0
 +
        "FullPaymentPeriod": 5,
 +
        "FullPaymentCheckin": null,
 +
        "PrePaymentPeriod": null,
 +
        "PrePaymentCheckin": 5,
 +
        "PrePaymentCu": null,
 +
        "PrePaymentPercent": 10.0,
 
         "Duration": 4,
 
         "Duration": 4,
 
         "DurationInNight": 3,
 
         "DurationInNight": 3,
 
         "Types": [2],
 
         "Types": [2],
 +
        "Price": 260,
 
         "Cost": 260,
 
         "Cost": 260,
 +
        "Penalties": null,
 
         "Rate": "EU",
 
         "Rate": "EU",
 
         "CityDepature":          {
 
         "CityDepature":          {
Строка 1301: Строка 1455:
 
                     "Value": "Завтрак"
 
                     "Value": "Завтрак"
 
                   },
 
                   },
 +
                  "AbsolutePenalties": null,
 
                   "Cost": 19.47,
 
                   "Cost": 19.47,
 
                   "QuotaStatus":                  {
 
                   "QuotaStatus":                  {
Строка 1417: Строка 1572:
 
               "ServiceName": "страховка",
 
               "ServiceName": "страховка",
 
               "City": null,
 
               "City": null,
               "Country": 6245,
+
               "Country":               {
 +
                  "Key": 90,
 +
                  "Value": "Австрия"
 +
              },
 
               "Code":                {
 
               "Code":                {
 
                   "Key": 297,
 
                   "Key": 297,
Строка 1470: Строка 1628:
 
                   "Value": "Санто-Доминго"
 
                   "Value": "Санто-Доминго"
 
               },
 
               },
               "Country": 6245,
+
               "Country":               {
 +
                  "Key": 90,
 +
                  "Value": "Австрия"
 +
              },
 
               "Code":                {
 
               "Code":                {
 
                   "Key": 743,
 
                   "Key": 743,
Строка 1605: Строка 1766:
 
             }
 
             }
 
         },
 
         },
         "RouteSubVariants": []
+
         "RouteSubVariants": [],
 +
        "Routes": 1,
 +
        "IsRemoteHotels": false,
 +
        "IsTourImages": false,
 +
        "MaskKeys": null
 
       }
 
       }
 
   ],
 
   ],
Строка 2122: Строка 2287:
 
</TD></TR></TABLE>
 
</TD></TR></TABLE>
 
</div></div><br />
 
</div></div><br />
 +
 +
* Детализация параметра serviceDescriptions из url:
 +
** '''TemplateId''' – идентификатор шаблона услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Key->TemplateId)
 +
** '''PatternId''' – идентификатор паттерна услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Key->PatternId)
 +
** '''SettingId''' – идентификатор услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Key->SettingId)
 +
** '''ServiceType''' – тип услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->ServiceType)
 +
** '''Code''' – код услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->Code)
 +
** '''SubCode1''' – доп. описание 1 услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->SubCode1)
 +
** '''SubCode2''' – доп. описание 2 услуги (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->SubCode2)
 +
** '''CountryId''' – ключ страны (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->CountryId)
 +
** '''CityId''' – ключ города (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->CityId)
 +
** '''PacketId''' – ключ пакета (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->PacketId)
 +
** '''PartnerId''' – ключ партнера (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->PartnerId)
 +
** '''Day''' – день предоставления (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->Day)
 +
** '''DurationInNight''' – продолжительность в ночах (этот параметр можно взять из контроллера Tour->Result->RouteSubVariants->CostServicesComposition->Value->DurationInNight)
 +
 +
Пример: serviceDescriptions=1_0_0_3_107274_1400134_1526_460_1_1830_14752_1_8
  
 
===Выгрузка транспортного плана (TransportPlan) до релиза 15.7 включительно===
 
===Выгрузка транспортного плана (TransportPlan) до релиза 15.7 включительно===
Строка 2559: Строка 2741:
 
* Принимаемые параметры ( '''*''' – обязательный):
 
* Принимаемые параметры ( '''*''' – обязательный):
 
** '''DepartureCityKeys *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/departureCities?'')
 
** '''DepartureCityKeys *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/departureCities?'')
** '''DestinationType *''' – тип результата (параметр не изменяемый, когда результат возвращается в JSON, то значение будет = 1, когда результат возвращается в xml, то значение будет = country). Зависит от программы, которая возвращает результат.
+
** '''DestinationType *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1)
 
** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
 
** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'')
 
** '''Dates *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
 
** '''Dates *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
Строка 2569: Строка 2751:
 
** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все")
 
** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все")
 
** '''BusTransferQuota''' – информация о квотах на автобусный переезд (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все")
 
** '''BusTransferQuota''' – информация о квотах на автобусный переезд (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все")
** '''HotelScheme *''' – объект схемы отеля
+
** '''HotelScheme *''' – объект схемы отеля (при работе с авиабукингом передается конструкция такого вида ''HotelScheme=[{"TemplateId":"}]'')
 
*** '''TemplateId''' – идентификатор шаблона услуги
 
*** '''TemplateId''' – идентификатор шаблона услуги
 
*** '''DurationInNight''' – продолжительность отеля в ночах
 
*** '''DurationInNight''' – продолжительность отеля в ночах
Строка 2581: Строка 2763:
 
** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false).
 
** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false).
 
** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
 
** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется.
** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура
+
** '''TourKey''' – ключ программы тура
** '''TourDuration''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: продолжительность тура в днях
+
** '''TourDuration''' – продолжительность тура в днях
 
** '''RemoteHotelMode''' – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4.
 
** '''RemoteHotelMode''' – признак того, производится поиск только локальных отелей или и от внешних поставщиков тоже (только локальные отели – 0, только внешние отели – 2, локальные и внешние отели – 1). Если признак отсутствует – поиск будет только по локальным отелям. Обрабатывается начиная с релиза 15.4.
 +
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
* Возвращаемый результат:
 
* Возвращаемый результат:
Строка 2595: Строка 2778:
 
*** '''TourUrl''' – ссылка на программу тура
 
*** '''TourUrl''' – ссылка на программу тура
 
*** '''BookingConditions''' – условия бронирования программы туров
 
*** '''BookingConditions''' – условия бронирования программы туров
 +
*** '''DefaultManagers''' – список выбранных менеджеров в туре
 +
*** '''Manager''' – ключ менеджера по умолчанию в туре
 +
*** '''Branches''' – список ключей филиалов бронирования
 +
*** '''DetermineTheBranchOnCity''' – признак, определять филиал в зависимости от города начала поездки
 +
*** '''IndividualFlightSelection''' – признак, включены ли индивидуальные настройки подбора перелетов
 +
*** '''RestrictionDateArrival''' – признак, ограничение даты прилета по базовому рейсу в индивидуальных настройках подбора перелетов
 +
*** '''PriceUpdateForView''' – признак обновления цен в индивидуальных настройках подбора перелетов (true – включен, false – выключен)
 +
*** '''SelectFlightAutomatically''' – признак выбирать рейс автоматически, если не выбран пользователем в индивидуальных настройках подбора перелетов
 +
*** '''BaggageSearchOtherFares''' – признак поиска багажа в других тарифах в индивидуальных настройках подбора перелетов
 +
*** '''Luggage''' – значение багажа в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
 +
*** '''LuggageForView''' – значение багажа в блоке настроек, влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
 +
*** '''LuggageForPrice''' – значение багажа в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа)
 +
*** '''FlightClass''' – класс перелета в индивидуальных настройках подбора перелетов (economy – Эконом, premiumEconomy 2 Премиум-эконом, business – Бизнес, first – Первый)
 +
*** '''Directs''' – значение пересадок в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, onlyDirectFlights – только прямые рейсы)
 +
*** '''DirectsForView''' – значение пересадок в блоке влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect)
 +
*** '''DirectsForPrice''' – значение пересадок в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect)
 +
*** '''DepartureTimeLimit''' – ограничение времени вылета: «Вылет не позже» в формате hh:mm
 +
*** '''SortingForView''' – сортировка в индивидуальных настройках подбора перелетов (cheap – сначала дешевые, fast – сначала быстрые, optimal – оптимальные)
 +
*** '''StartDate''' – дата начала тура
 +
*** '''MaxConnectionTime''' – длительность пересадок в индивидуальных настройках подбора перелетов в формате hh:mm
 +
*** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null)
 +
*** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null)
 +
*** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null)
 +
*** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null)
 +
*** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null)
 +
*** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null)
 +
*** '''Duration''' – продолжительность тура (в днях)
 +
*** '''DurationInNight''' – продолжительность проживания (в ночах)
 +
*** '''Types''' – идентификатор типа туров
 +
*** '''Price''' –  цена тура с учетом скидки в валюте поиска
 +
*** '''Cost''' – цена тура в валюте поиска
 +
*** '''Rate''' – код валюты тура
 +
*** '''Penalties''' – внутреннее поле, не используется
 
*** '''StartDate''' – дата начала тура
 
*** '''StartDate''' – дата начала тура
 
*** '''Duration''' – продолжительность тура (в днях)
 
*** '''Duration''' – продолжительность тура (в днях)
Строка 2674: Строка 2890:
 
***** '''Key''' – ключ города
 
***** '''Key''' – ключ города
 
***** '''Value''' – название города
 
***** '''Value''' – название города
**** '''Country''' – ключ страны
+
**** '''Country''' – объект страна
 +
***** '''Key''' – ключ страны
 +
***** '''Value''' – название страны
 
**** '''Code''' – объект код услуги
 
**** '''Code''' – объект код услуги
 
***** '''Key''' – ключ услуги
 
***** '''Key''' – ключ услуги
Строка 2781: Строка 2999:
 
*** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске)
 
*** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске)
 
** '''SecondaryFiltersResult''' – доп. фильтры (не используется при вызове из корзины)
 
** '''SecondaryFiltersResult''' – доп. фильтры (не используется при вызове из корзины)
 +
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
  
Строка 2808: Строка 3027:
 
         "TourUrl": "www.megatec.ru",
 
         "TourUrl": "www.megatec.ru",
 
         "BookingConditions": "Условия бронирования тура",
 
         "BookingConditions": "Условия бронирования тура",
         "StartDate": "2018-03-31T00:00:00",
+
        "DefaultManagers": [],
         "Duration": 8,
+
        "Manager": 169,
         "DurationInNight": 7,
+
        "Branches": [],
         "Types": [2],
+
        "DetermineTheBranchOnCity": false,
         "Cost": 122,
+
        "IndividualFlightSelection": true,
 +
        "RestrictionDateArrival": false,
 +
        "PriceUpdateForView": false,
 +
        "SelectFlightAutomatically": false,
 +
        "BaggageSearchOtherFares": false,
 +
        "Luggage": "withoutLuggage",
 +
        "LuggageForView": "all",
 +
        "LuggageForPrice": "all",
 +
        "FlightClass": "economy",
 +
        "Directs": "all",
 +
        "DirectsForView": "all",
 +
        "DirectsForPrice": "all",
 +
        "DepartureTimeLimit": "",
 +
        "SortingForView": "cheap",
 +
         "StartDate": "2018-02-25T00:00:00",
 +
        "MaxConnectionTime": 0
 +
        "FullPaymentPeriod": 5,
 +
        "FullPaymentCheckin": null,
 +
        "PrePaymentPeriod": null,
 +
        "PrePaymentCheckin": 5,
 +
        "PrePaymentCu": null,
 +
        "PrePaymentPercent": 10.0,
 +
         "Duration": 4,
 +
         "DurationInNight": 3,
 +
         "Types": [2],
 +
        "Price": 260,
 +
         "Cost": 260,
 +
        "Penalties": null,
 
         "Rate": "EU",
 
         "Rate": "EU",
 
         "CityDepature":          {
 
         "CityDepature":          {
Строка 3244: Строка 3490:
 
* Принимаемые параметры ( '''*''' – обязательный):
 
* Принимаемые параметры ( '''*''' – обязательный):
 
** '''countryId *''' – ключ страны, для которой будут выгружаться настройки
 
** '''countryId *''' – ключ страны, для которой будут выгружаться настройки
 +
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
 +
 
* Возвращаемый результат:
 
* Возвращаемый результат:
 
** '''TouristFieldsSettings''' – массив полей с информацией о туристах (из админки Мастер-Web)  
 
** '''TouristFieldsSettings''' – массив полей с информацией о туристах (из админки Мастер-Web)  
Строка 3283: Строка 3531:
 
** '''ChildAgeSetting''' – максимальный возраст ребенка, когда он считается ребенком (лет)
 
** '''ChildAgeSetting''' – максимальный возраст ребенка, когда он считается ребенком (лет)
 
** '''InfantAgeSetting''' – максимальный возраст младенца (месяцев)
 
** '''InfantAgeSetting''' – максимальный возраст младенца (месяцев)
 +
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 3574: Строка 3823:
 
Метод производит выгрузку услуг доплат к авиаперелетам.
 
Метод производит выгрузку услуг доплат к авиаперелетам.
 
* Формат запроса:
 
* Формат запроса:
** POST .../TourSearchOwin/GetFlightsAdditionalServices?
+
** POST .../TourSearchOwin/GetFlightsAdditionalServices?nodeId=2147483647
 +
, где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
* Принимаемые параметры headers ( '''*''' – обязательный):
 
* Принимаемые параметры headers ( '''*''' – обязательный):
Строка 3650: Строка 3900:
 
*** '''ServiceName''' – название услуги
 
*** '''ServiceName''' – название услуги
 
*** '''City''' – объект город
 
*** '''City''' – объект город
*** '''Country''' – ключ страны
+
*** '''Country''' – объект страна
 +
**** '''Key''' – ключ страны
 +
**** '''Value''' – название страны
 
*** '''Code''' – объект код услуги
 
*** '''Code''' – объект код услуги
 
**** '''Key''' – ключ услуги
 
**** '''Key''' – ключ услуги
Строка 3699: Строка 3951:
 
Вызов метода GetHotelsAdditionalServices
 
Вызов метода GetHotelsAdditionalServices
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices? HTTP/1.1
+
POST http://localhost:9000/TourSearchOwin/GetFlightsAdditionalServices?nodeId=2147483647 HTTP/1.1
 
Content-Type: application/json
 
Content-Type: application/json
 
{
 
{
Строка 3840: Строка 4092:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Возвращаемый результат метода GetHotelsAdditionalServices (в формате JSON)
+
Возвращаемый результат метода GetFlightsAdditionalServices (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
[{
 
[{
 
"ServiceName": "Доплаты к авиаперелетам",
 
"ServiceName": "Доплаты к авиаперелетам",
 
"City": null,
 
"City": null,
"Country": 90,
+
        "Country":                {
 +
                  "Key": 90,
 +
                  "Value": "Австрия"
 +
},
 
"Code": {
 
"Code": {
 
"Key": 357,
 
"Key": 357,
Строка 3902: Строка 4157:
 
Метод производит выгрузку услуг доплат к отелям.
 
Метод производит выгрузку услуг доплат к отелям.
 
* Формат запроса:
 
* Формат запроса:
** POST .../TourSearchOwin/GetHotelsAdditionalServices?
+
** POST .../TourSearchOwin/GetHotelsAdditionalServices?nodeId=2147483647
 +
, где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
* Принимаемые параметры headers ( '''*''' – обязательный):
 
* Принимаемые параметры headers ( '''*''' – обязательный):
Строка 4050: Строка 4306:
 
Вызов метода GetHotelsAdditionalServices
 
Вызов метода GetHotelsAdditionalServices
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices? HTTP/1.1
+
POST http://localhost:9000/TourSearchOwin/GetHotelsAdditionalServices?nodeId=2147483647 HTTP/1.1
 
Content-Type: application/json
 
Content-Type: application/json
  
Строка 4186: Строка 4442:
 
"ServiceName": "Доплаты к отелям",
 
"ServiceName": "Доплаты к отелям",
 
"City": null,
 
"City": null,
"Country": 90,
+
                "Country":                {
 +
                  "Key": 90,
 +
                  "Value": "Австрия"
 +
},
 
"Code": {
 
"Code": {
 
"Key": 364,
 
"Key": 364,
Строка 4244: Строка 4503:
 
Метод производит расчет услуг с индивидуальным выбором у туристов.
 
Метод производит расчет услуг с индивидуальным выбором у туристов.
 
* Формат запроса:
 
* Формат запроса:
** POST .../TourSearchOwin/CalculateIndividualServiceCosts?
+
** POST .../TourSearchOwin/CalculateIndividualServiceCosts?nodeId=2147483647
 +
, где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
* Принимаемые параметры headers ( '''*''' – обязательный):
 
* Принимаемые параметры headers ( '''*''' – обязательный):
Строка 4306: Строка 4566:
 
**** '''Brutto''' – брутто
 
**** '''Brutto''' – брутто
 
**** '''Discount''' – скидка
 
**** '''Discount''' – скидка
 +
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 4312: Строка 4573:
 
Вызов метода CalculateIndividualServiceCosts
 
Вызов метода CalculateIndividualServiceCosts
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
POST http://localhost:9000/TourSearchOwin/CalculateIndividualServiceCosts? HTTP/1.1
+
POST http://localhost:9000/TourSearchOwin/CalculateIndividualServiceCosts?nodeId=2147483647 HTTP/1.1
 
Content-Type: application/json
 
Content-Type: application/json
  
Строка 6265: Строка 6526:
 
Метод производит расчет стоимости путевки.
 
Метод производит расчет стоимости путевки.
 
* Формат запроса:
 
* Формат запроса:
** POST .../TourSearchOwin/CalculateReservation?
+
** POST .../TourSearchOwin/CalculateReservation?nodeId=2147483647
 +
, где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
* Принимаемые параметры headers ( '''*''' – обязательный):
 
* Принимаемые параметры headers ( '''*''' – обязательный):
Строка 6397: Строка 6659:
 
** '''at *''' – на (перевод) ''Может быть с пустым значением''
 
** '''at *''' – на (перевод) ''Может быть с пустым значением''
 
** '''incorrectChildrenInf *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) ''Может быть с пустым значением''
 
** '''incorrectChildrenInf *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) ''Может быть с пустым значением''
 +
** '''DiscountCardId *''' – ID основания для скидки (дисконтной карты) полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка основания для скидки (CheckCauseDiscount)|CheckCauseDiscount]] ''Может быть с пустым значением''
 +
** '''PromocodeId *''' – ID промокода полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка промокода (CheckPromocode)|CheckPromocode]] ''Может быть с пустым значением''
 +
  
 
* Возвращаемый результат:
 
* Возвращаемый результат:
Строка 6435: Строка 6700:
 
** '''DurationInNights''' – продолжительность тура в ночах
 
** '''DurationInNights''' – продолжительность тура в ночах
 
** '''NationalCurrency''' – код национальной валюты
 
** '''NationalCurrency''' – код национальной валюты
 +
** '''PromoDiscount''' – числовое значение скидки полученное после ввода промокода, либо дисконтной карты
 +
** '''PromoTotalDiscount''' – значение скидки в валюте тура
 +
** '''PromoNationalDiscount''' – значение скидки в национальной валюте
 +
** '''PromoIsDiscountPercent''' – обозначение типа скидки в процентах. Значение может быть:
 +
***'''true''' – скидка по промокоду, либо дисконтной карты предоставляется в процентах
 +
*** '''false''' – скидка по промокоду, либо дисконтной карты предоставляется в фиксированном значении, согласно валюте тура
 +
** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
 +
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 6441: Строка 6714:
 
Вызов метода CalculateReservation
 
Вызов метода CalculateReservation
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
POST http://localhost:9000/TourSearchOwin/CalculateReservation? HTTP/1.1
+
POST http://localhost:9000/TourSearchOwin/CalculateReservation?nodeId=2147483647 HTTP/1.1
 
Content-Type: application/json
 
Content-Type: application/json
  
Строка 6615: Строка 6888:
 
"at": "на",
 
"at": "на",
 
"incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)"
 
"incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)"
 +
        "PromocodeId":"",
 +
        "DiscountCardId":"95"
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 6639: Строка 6914:
 
"Discount": 0.0,
 
"Discount": 0.0,
 
"TotalDiscount": 0.0,
 
"TotalDiscount": 0.0,
 +
                "PromoDiscount": 50.0,
 +
                "PromoTotalDiscount": 10.0,
 +
                "PromoNationalDiscount": 10.0,
 +
                "PromoIsDiscountPercent": true,
 
"ServiceTourists": [{
 
"ServiceTourists": [{
 
"ServiceType": 1,
 
"ServiceType": 1,
Строка 6694: Строка 6973:
  
 
* Формат запроса:
 
* Формат запроса:
** PUT .../TourSearchOwin/CreateReservation/1?
+
** PUT .../TourSearchOwin/CreateReservation/1?nodeId=2147483647
 +
, где ''nodeId'' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]
  
 
* Принимаемые параметры headers ( '''*''' – обязательный):
 
* Принимаемые параметры headers ( '''*''' – обязательный):
Строка 6787: Строка 7067:
 
** '''adultsCountOverServiceLimit *''' – Количество взрослых туристов превышает лимит услуги (перевод) ''Может быть с пустым значением''
 
** '''adultsCountOverServiceLimit *''' – Количество взрослых туристов превышает лимит услуги (перевод) ''Может быть с пустым значением''
 
** '''incorrectChildrenInf *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) ''Может быть с пустым значением''
 
** '''incorrectChildrenInf *''' – Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание) (перевод) ''Может быть с пустым значением''
 +
** '''OrderInfoUrl''' – Адрес окна путевки в личном кабинете
 +
** '''DogovorComment''' – Комментарий к путевке (сохраняется как сообщения в истории путевки) ''Может быть с пустым значением''
 +
** '''DiscountCardId ''' – ID основания для скидки (дисконтной карты) полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка основания для скидки (CheckCauseDiscount)|CheckCauseDiscount]] ''Может быть с пустым значением''
 +
** '''PromocodeId ''' – ID промокода полученное в методе [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Проверка промокода (CheckPromocode)|CheckPromocode]] ''Может быть с пустым значением''
 +
 +
  
 
* Возвращаемый результат:
 
* Возвращаемый результат:
Строка 6861: Строка 7147:
 
**** '''SubCode2''' – ключ доп.описания 2 услуги
 
**** '''SubCode2''' – ключ доп.описания 2 услуги
 
**** '''Men''' – количество человек, пользующихся услугой по путевке
 
**** '''Men''' – количество человек, пользующихся услугой по путевке
**** '''Days''' – количество дней услуги
+
**** '''Days''' – количество дней услуги (для услуги Отель ("SVKey": 3) количество ночей услуги)
 
**** '''CNKey''' – ключ страны услуги
 
**** '''CNKey''' – ключ страны услуги
 
**** '''CTKey''' – ключ города услуги
 
**** '''CTKey''' – ключ города услуги
Строка 6871: Строка 7157:
 
**** '''Control''' – ключ статуса услуги (ссылка на таблицу Controls),
 
**** '''Control''' – ключ статуса услуги (ссылка на таблицу Controls),
 
**** '''Attribute''' – атрибут услуги
 
**** '''Attribute''' – атрибут услуги
**** '''DateBeg''' – дата начала действия услуги
+
**** '''DateBeg''' – дата начала действия услуги в днях (для отеля - в ночах)
**** '''DateEnd''' – дата окончания действия услуги
+
**** '''DateEnd''' – дата окончания действия услуги в днях (для отеля - в ночах)
 
**** '''Discount''' – размер скидки по услуге
 
**** '''Discount''' – размер скидки по услуге
 
**** '''Comment''' – комментарий к услуге
 
**** '''Comment''' – комментарий к услуге
Строка 6959: Строка 7245:
 
Вызов метода CreateReservation
 
Вызов метода CreateReservation
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
PUT http://localhost:9000/TourSearchOwin/CreateReservation/1? HTTP/1.1
+
PUT http://localhost:9000/TourSearchOwin/CreateReservation/1?nodeId=2147483647 HTTP/1.1
 
Content-Type: application/json
 
Content-Type: application/json
 
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
 
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
Строка 7183: Строка 7469:
 
     "Nights": "ночей",
 
     "Nights": "ночей",
 
     "adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги",
 
     "adultsCountOverServiceLimit": "Количество взрослых туристов превышает лимит услуги",
     "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)"
+
     "incorrectChildrenInf": "Возраст детей не соответствует допустимому в выбранном варианте размещения (см. Услуги: Проживание)",
 +
    "OrderInfoUrl": "http://localhost/MasterWeb/OrderInfo.aspx",
 +
    "DogovorComment": ""
 +
    "PromocodeId":"301",
 +
    "DiscountCardId":""
 +
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 7603: Строка 7894:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка информации о путевке (GetReservation)===
+
===Бронирование путевки с упрощенными входными параметрами (CreateReservationExternalSystem)===
Метод выводит информацию о бронированной путевке.
+
Метод производит бронирование путевки с упрощенными входными параметрами. <br />
 +
При бронировании проверяется корректность заполнения обязательных полей туристов. В случае, если обязательные поля не заполнены, возвращается ошибка с сообщением, бронь не создается.
 +
Данный метод разработан индивидуально для одного из клиентов. В обычном режиме нужно пользоваться всегда методом [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Бронирование путевки (CreateReservation)|Бронирование путевки (CreateReservation)]]
  
* Формат запроса:
+
*Формат запроса:
** GET .../TourSearchOwin/GetReservation?
+
** PUT .../TourSearchOwin/CreateReservationExternalSystem/1?
  
* Принимаемые параметры headers ( '''*''' – обязательный):
+
*Принимаемые параметры headers ('''*''' – обязательный):
 
** '''Content-Type *''' – application/json
 
** '''Content-Type *''' – application/json
** '''Authorization *''' – token_type + access_token (полученные из метода .../TourSearchOwin/Token?)  
+
** '''Authorization *''' – token_type + access_token (полученные из метода .../TourSearchOwin/Token?)
 +
 
 +
*Принимаемые параметры PUT запроса:
 +
** '''BeginDate *''' – дата начала тура (YYYY-MM-DDThh:mm)
 +
** '''Duration *''' – продолжительность тура в днях
 +
** '''Currency *''' – код валюты
 +
** '''TourProgramId''' – идентификатор турпрограммы (необязательный, по умолчанию 0)
 +
** '''Services *''' – массив услуг, в данном случае будет содержать только услугу отель
 +
*** '''Code *''' – идентификатор отеля во внешней системе, сравниваются с промежуточной базой данных статического адаптера [[Megatec Integration Service:Индивидуальные особенности адаптеров TravelLine (Россия)|MIS TravelLine (Россия)]]
 +
*** '''Cost *''' – стоимость проживания за весь период
 +
*** '''Packet *''' – идентификатор пакета, сравниваются с промежуточной базой данных статического адаптера [[Megatec Integration Service:Индивидуальные особенности адаптеров TravelLine (Россия)|MIS TravelLine (Россия)]]
 +
*** '''SubCode1 *''' – идентификатор типа номера, сравниваются с промежуточной базой данных статического адаптера [[Megatec Integration Service:Индивидуальные особенности адаптеров TravelLine (Россия)|MIS TravelLine (Россия)]]
 +
** '''Tourists *''' – массив туристов
 +
*** '''FirstName *''' – имя туриста
 +
*** '''LastName *''' – фамилия туриста
 +
*** '''Patronymic *''' – отчество туриста
 +
*** '''MaleFemaleSex *''' – пол (0 – мужской, 1 – женский)
 +
*** '''AgeType *''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
 +
*** '''Age *''' – количество полных лет на момент окончания тура
 +
*** '''Phone *''' – телефон (обязателен для первого туриста)
 +
*** '''Email *''' – e-mail (обязателен для первого туриста)
 +
** '''DogovorComment *''' – комментарий к путевке (ограничение 254 символа, при превышении разбивается на части)
 +
[[Файл:Am 063.png|left]]<br />
 +
1. В случае, если в теле запроса указываются ID несинхронизированных отелей, пакета, типа номера, то создаются фиктивные данные, которые необходимо изменить в услуге экрана ''Путевка'' (пример: Отель – ApiHotel, пакет – ApiPacket, тип номера – ApiRoom(ApiRoomCategory),ApiAccmdmen)<br />
 +
2. Тип питания всегда будет создаваться фиктивный и его необходимо изменить в услуге экрана ''Путевка'' (пример: Тип питания – ApiPansion)<br /><br /><br />
 +
*Возвращаемый результат:
 +
** '''Reservation''' – объект путевки
 +
*** '''$id''' – внутренний идентификатор для установки связей между сущностями,
 +
*** '''Code''' – код путевки
 +
*** '''TurDate''' – дата начала тура
 +
*** '''TRKey''' – идентификатор тура
 +
*** '''CNKey''' – идентификатор страны
 +
*** '''CTKey''' – идентификатор города
 +
*** '''NMen''' – количество туристов
 +
*** '''Price''' – стоимость путевки
 +
*** '''Payed''' – оплаченная сумма
 +
*** '''NDay''' – продолжительность тура в днях
 +
*** '''MainMan''' – контактное лицо
 +
*** '''MainManPhone''' – телефон контактного лица
 +
*** '''MainManAddress''' – адрес лица, заключившего договор
 +
*** '''MainManPassport''' – паспортные данные контактного лица
 +
*** '''PartnerKey''' – идентификатор партнера
 +
*** '''Operator''' – оператор, оформивший путевку
 +
*** '''Discount''' – размер скидки
 +
*** '''DiscountSum''' – сумма скидки
 +
*** '''SORCode''' – ключ статус путевки, возможные значения: 0-в работе, 1-не определён, 2-аннулирован, 3-wait лист, 7-ок.
 +
*** '''CrDate''' – дата создания путевки
 +
*** '''Rate''' – код валюты путевки
 +
*** '''Advertise''' – идентификатор рекламного источника
 +
*** '''Locked''' – статус блокировки путевки
 +
*** '''CauseDisc''' – код основания скидки
 +
*** '''PPaymentDate''' – дата предоплаты
 +
*** '''PaymentDate''' – максимальная дата полной оплаты
 +
*** '''Procent''' – предоплата в %
 +
*** '''TurDateBfrAnnul''' – дата начала тура до аннуляции
 +
*** '''ARKey''' – идентификатор причины аннуляции
 +
*** '''Key''' – идентификатор договора
 +
*** '''CodePartner''' – идентификатор партнера
 +
*** '''FilialKey''' – идентификатор филиала
 +
*** '''IsOutDoc''' – статус выдачи документов
 +
*** '''Notes''' – примечания
 +
*** '''DiscSumBfrAnn''' – сумма скидки перед аннуляцией
 +
*** '''PriceBfrAnn''' – цена путевки перед аннуляцией
 +
*** '''RazmerP''' – размер предоплаты
 +
*** '''LeadDepartment''' – идентификатор ведущего отдела
 +
*** '''MainManEmail''' – e-mail контактного лица
 +
*** '''MainManComment''' – комментарий контактного лица
 +
*** '''DupUserKey''' – идентификатор представителя агента
 +
*** '''BTKey''' – идентификатор системы бронирования
 +
*** '''ConfirmedDate''' – дата подтверждения путевки
 +
*** '''PrtDogKey''' – идентификатор договора партнера
 +
*** '''CTDepartureKey''' – идентификатор города отправления
 +
*** '''PDTType''' – тип договора путевки
 +
*** '''NationalCurrencyPrice''' – цена в национальной валюте
 +
*** '''NationalCurrencyDiscountSum''' – сумма скидки в национальной валюте
 +
*** '''NationalCurrencyPayed''' – оплаченная сумма в национальной валюте
 +
*** '''CurrencyKey''' – идентификатор валюты
 +
*** '''CurrencyRate''' – курс валюты
 +
*** '''ClientKey''' – идентификатор клиента
 +
*** '''AgencyPrice''' – цена для агентства
 +
*** '''Partner''' – информация о партнере
 +
**** '''$id''' – идентификатор записи
 +
**** '''Key''' – идентификатор партнера
 +
**** '''FullName''' – полное название партнера
 +
**** '''Name''' – краткое название партнера
 +
*** '''Services''' – список услуг
 +
**** '''$id''' – внутренний идентификатор для установки связей между сущностями
 +
**** '''DGCod''' – номер путевки
 +
**** '''TurDate''' – дата начала тура
 +
**** '''Key''' – ключ услуги
 +
**** '''PaketKey''' – ключ пакета
 +
**** '''TRKey''' – клют тура
 +
**** '''SVKey''' – ключ типа услуги
 +
**** '''Name''' – наименование услуги
 +
**** '''Day''' – порядковый номер дня тура, в который предоставляется услуга
 +
**** '''Code''' – ключ кода услуги
 +
**** '''SubCode1''' – ключ доп.описания 1 услуги
 +
**** '''SubCode2''' – ключ доп.описания 2 услуги
 +
**** '''Men''' – количество человек, пользующихся услугой по путевке
 +
**** '''Days''' – количество дней услуги
 +
**** '''CNKey''' – ключ страны услуги
 +
**** '''CTKey''' – ключ города услуги
 +
**** '''PartnerKey''' – ключ партнера, предоставляющего услугу
 +
**** '''Brutto''' – стоимость услуги брутто
 +
**** '''Wait''' – признак услуги ''Снимать квоту при бронировании''
 +
**** '''Warning''' – неиспользуемое поле
 +
**** '''TimeBeg''' – поле используется для сортировки услуг в путевке
 +
**** '''Control''' – ключ статуса услуги (ссылка на таблицу Controls),
 +
**** '''Attribute''' – атрибут услуги
 +
**** '''DateBeg''' – дата начала действия услуги
 +
**** '''DateEnd''' – дата окончания действия услуги
 +
**** '''Discount''' – размер скидки по услуге
 +
**** '''Comment''' – комментарий к услуге
 +
**** '''DGKey''' – ключ договора,
 +
**** '''Blocked''' – признак блокировки услуги (''0'' – не блокирована, ''1'' – блокирована)
 +
**** '''NameLat''' – наименование услуги (латинский)
 +
**** '''Long''' – продолжительность тура в днях
 +
**** '''TRFId''' – ключ тарифа
 +
**** '''CreateDate''' – дата создания услуги в путевке
 +
**** '''CalculatePriceDate''' – дата расчета цены
 +
**** '''ShowOrder''' – порядок при сортировке
 +
**** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id''
 +
***** '''$ref''' – связь с внутренним идентификатором ''$id''
 +
*** '''Turists''' – список туристов
 +
**** '''$id''' – внутренний идентификатор для установки связей между сущностями
 +
**** '''DGCod''' – номер путевки, к которому привязан турист
 +
**** '''Key''' – ключ туриста
 +
**** '''TurDate''' – дата начала тура
 +
**** '''NameRus''' – фамилия туриста (русское)
 +
**** '''NameLat''' – фамилия туриста (латинское)
 +
**** '''ShortName''' – имя и отчество туриста в формате ''И.О.''
 +
**** '''Sex''' – пол туриста (признак): ''Null'' или ''0'' – Муж; ''1'' – Жен; ''2'' – Child (ребенок); ''3'' – Infant (младенец)
 +
**** '''FNameRus''' – имя туриста (русское)
 +
**** '''FNameLat''' – имя туриста (латинское)
 +
**** '''SNameRus''' – отчество туриста (русское)
 +
**** '''SNameLat''' – отчество туриста (латинское)
 +
**** '''BirthDay''' – дата рождения туриста
 +
**** '''BirthCountry''' – страна рождения туриста
 +
**** '''BirthCity''' – город рождения туриста
 +
**** '''Citizen''' – гражданство туриста
 +
**** '''PostIndex''' – почтовый индекс
 +
**** '''PostCity''' – адрес проживания туриста (город)
 +
**** '''PostStreet''' – адрес проживания туриста (улица)
 +
**** '''PostBild''' – адрес проживания туриста (номер дома)
 +
**** '''PostFlat''' – адрес проживания туриста (номер квартиры)
 +
**** '''Phone''' – номер телефона туриста
 +
**** '''PhoneCode''' – код телефона туриста
 +
**** '''PasportType''' – серия заграничного паспорта
 +
**** '''PasportNum''' – номер заграничного паспорта
 +
**** '''PasportDate''' – дата выдачи заграничного паспорта
 +
**** '''PasportDateEnd''' – дата окончания срока действия заграничного паспорта
 +
**** '''PasportByWhom''' – кем выдан заграничный паспорт
 +
**** '''Place''' – место рождения
 +
**** '''IsAnketa''' – выдавалась ли анкета
 +
**** '''PaspRuser''' – серия общегражданского паспорта
 +
**** '''PaspRuNum''' – номер общегражданского паспорта
 +
**** '''PaspRuDate''' – дата выдачи общегражданского паспорта
 +
**** '''PaspRuByWhom''' – кем выдан общегражданский паспорт
 +
**** '''ClientId''' – ключ в таблице клиентов
 +
**** '''IsMain''' – признак главного туриста по путевке
 +
**** '''DGKey''' – ключ кутевки
 +
**** '''RealSex''' – реальный пол туриста: ''Null'' или ''0'' – Муж; ''1'' – Жен
 +
**** '''Email''' – е-mail туриста
 +
**** '''EnableSmsNotifications''' – согласен получать уведомления по СМС
 +
**** '''CitizenId''' – идентификатор туриста
 +
**** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id''
 +
***** '''$ref''' – связь с внутренним идентификатором ''$id''
 +
*** '''TuristServices''' – коллекция связей туриста с услугой
 +
**** '''$id''' – внутренний идентификатор для установки связей между сущностями
 +
**** '''TUKey''' – ключ туриста
 +
**** '''DLKey''' – ключ услуги
 +
**** '''NumDoc''' – номер документа (авиабилета)
 +
**** '''NumRoom''' – номер комнаты (каюты)
 +
**** '''Seat''' – номер места (в номере отеля, каюты) или место в транспорте
 +
**** '''Area''' – зона (палуба) в отеле, круизе
 +
**** '''DocDate''' – дата документа (авиабелета)
 +
**** '''Key''' – первичный ключ связки
 +
**** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id''
 +
***** '''$ref''' – связь с внутренним идентификатором ''$id''
 +
*** '''DogovorMessages''' – сообщение по путевке покупателю
 +
**** '''id''' – внутренний идентификатор для установки связей между сущностями
 +
**** '''Date''' – дата создание сообщения
 +
**** '''Text''' – текст сообщения
 +
**** '''Remark''' – код сообщения
 +
**** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id''
 +
***** '''$ref''' – связь с внутренним идентификатором ''$id''
 +
** '''ValidationResultSummary''' – объект статус результата бронирования
 +
*** '''ValidationResult''' – объект с ошибками и флагом валидности путевки
 +
**** '''Errors''' – массив ошибок бронирования
 +
**** '''IsValid''' – признак валидности бронирования
 +
*** '''ValidationResultAttributes''' – атрибут результата бронирования
 +
 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:1200px">Пример запроса
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода CreateReservationExternalSystem
 +
<syntaxhighlight lang="java" enclose="div">
 +
PUT http://localhost:9000/TourSearchOwin/CreateReservationExternalSystem/1?
 +
Content-Type: application/json
 +
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAObjhnb1q7EOpYmBFLH9T4AAAAAACAAAAAAAQZgAAAAEAACAAAACi2OgeCgKM2UVjnd-_y7WK9Tp90D7uiyDzOpQNy2PUrQAAAAAOgAAAAAIAACAAAABBwMz7N-
 +
lZMFS0R9BqYXrNkVEL0ORSd2IpZ95J78cBHDABAABoZQCpqlwdHPASxLfQj-sRBv1S-kkGRC3g6wMlF_UjzI4PGIv_x5SdDwdIqoveXSyxshY88VidzcMRZjk2HJFjUJrcG_e8FfKpzUZUuFvq1dASzSm83JNgdqNaPjnjqSpffBEfD-zA1L77wMgN9_d70lVTh8PlxXkx_fxQI3D0Dcymqz-Q7ymsWM9HMDlmQ2BllmjBisc8UaYLT3VvmAvI1uDL08FFT1Rx9LFMi2B36OGZQgUoona0KuY48x5Xhbx5yeLAKdvqqEDViG35z7H8_gVU8T5TR08PDJvxvAe24lV1rBGidGNZqPL4meuSrh1hUl9j2vmFfhdGIyBhz7B9Z1Q2iDNfL6j-YfNEcuj8SGTMm5pfObAdcjH5CKI4T-
 +
QWcvE6HUfRs0UzAf2eF1bXQAAAAGMNV8S-M1ckRYpUCIVNPCLWi4g9HR0oIIJIRCMpu3hAJPM1xlNSaaYabu-il-PwoOthHujA2PZXtXj9-o3wpEA
 +
{
 +
    "BeginDate": "2024-12-16T14:00",
 +
    "Duration": 4,
 +
    "Currency": "рб",
 +
    "TourProgramId": 0,
 +
    "Services": [
 +
        {
 +
            "Code": "8746",
 +
            "Cost": 9900,
 +
            "Packet": "359679",
 +
            "SubCode1": "356847"
 +
        }
 +
    ],
 +
    "Tourists": [
 +
        {
 +
            "FirstName": "Иван",
 +
            "LastName": "Иванов",
 +
            "Patronymic": "Иванович",
 +
            "MaleFemaleSex": 0,
 +
            "AgeType": 0,
 +
            "Age": 18,
 +
            "Phone": "79876543232",
 +
            "Email": "emailqwerty123@example.com"
 +
        },
 +
        {
 +
            "FirstName": "Петр",
 +
            "LastName": "Петров",
 +
            "Patronymic": "Петрович",
 +
            "MaleFemaleSex": 0,
 +
            "AgeType": 0,
 +
            "Age": 18
 +
        }
 +
    ],
 +
    "DogovorComment": "Это тестовая путевка. Клиент указывает детали отеля и размещения."
 +
}
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
  
* Принимаемые параметры GET запроса ( '''*''' – обязательный):
 
** '''dgCode *''' – номер путевки:
 
 
* Возвращаемый результат:
 
** '''$id''' – внутренний идентификатор для установки связей между сущностями,
 
** '''Code''' – код путевки
 
** '''TurDate''' – дата заезда
 
** '''TRKey''' – ключ тура
 
** '''CNKey''' – ключ страны
 
** '''CTKey''' – ключ города
 
** '''NMen''' – количество туристов по путевке
 
** '''Price''' – стоимость путевки за вычетом скидки (комиссии)
 
** '''Payed''' – оплаченная сумма по путевке
 
** '''NDay''' – продолжительность тура в днях
 
** '''MainMan''' – ФИО лица, заключившего договор
 
** '''MainManPhone''' – номер телефона лица, заключившего договор
 
** '''MainManAddress''' – адрес лица, заключившего договор
 
** '''MainManPassport''' – паспортные данные лица, заключившего договор
 
** '''PartnerKey''' – ключ партнера, оформившего договор
 
** '''Operator''' – ФИО создателя договора
 
** '''Discount''' – величина скидки на одного человека
 
** '''DiscountSum''' – абсолютная величина скидки
 
** '''SORCode''' – ключ статус путевки, возможные значения: 0-в работе, 1-не определён, 2-аннулирован, 3-wait лист, 7-ок.
 
** '''CrDate''' – дата и время создания путевки
 
** '''Rate''' – код валюты путевки
 
** '''Advertise''' – ключ источника рекламы
 
** '''Locked''' – блокировка путевки: ''1'' – если заблокирована
 
** '''CauseDisc''' – ключ основания для скидки
 
** '''PPaymentDate''' – максимальная дата внесения предоплаты
 
** '''PaymentDate''' – максимальная дата полной оплаты
 
** '''Procent''' – информация о предоплате: ''1'' – предоплата в %; ''0'' – предоплата в у.е.
 
** '''TurDateBfrAnnul''' – значение даты заезда до аннуляции путевки (при аннуляции дата заезда заменяется на 31.12.1899)
 
** '''ARKey''' – ключ причины аннуляции путевки
 
** '''Key''' – ключ договора
 
** '''CodePartner''' – значение ключевого поля из таблицы партнеров
 
** '''FilialKey''' – ключ филиала фирмы-владельца, пользователем которого была забронирована путевка
 
** '''IsOutDoc''' – статус выдачи документов
 
** '''Notes''' – сообщение поставщику
 
** '''DiscSumBfrAnn''' – числовое значение скидки перед аннуляцией путевки
 
** '''PriceBfrAnn''' – стоимость путевки перед ее аннуляцией
 
** '''RazmerP''' – размер предоплаты
 
** '''LeadDepartment''' – ключ отдела, ведущего данный тур
 
** '''MainManEmail''' – адрес е-mail из данных лица, заключившего договор
 
** '''MainManComment''' – примечание из данных лица, заключившего договор
 
** '''DupUserKey''' – ключ представителя партнера, которым был оформлен договор
 
** '''BTKey''' – ключ системы бронирования, из которой был оформлен договор
 
** '''ConfirmedDate''' – дата подтверждения путевки покупателю
 
** '''PrtDogKey''' – договор партнера, по которому оформлена путевка
 
** '''CTDepartureKey''' – ключ города начала поездки
 
** '''PDTType''' – тип договора, по которому оформлена путевка
 
** '''NationalCurrencyPrice''' – стоимость путевки в национальной валюте
 
** '''NationalCurrencyDiscountSum''' – значение скидки в национальной валюте
 
** '''NationalCurrencyPayed''' – сумма платежей по путевке, зафиксированная в национальной валюте
 
** '''CurrencyKey''' – ключ национальной валюты путевки
 
** '''CurrencyRate''' – курс национальной валюты путевки
 
** '''ClientKey''' – ключ частника, которым был оформлен договор
 
** '''Partner''' – информация о партнере покупателе, привязанным к путевке
 
*** '''$id''' – внутренний идентификатор для установки связей между сущностями
 
*** '''Key''' – ключ партнера покумателя
 
*** '''FullName''' – полное имя партнера
 
*** '''Name''' – имя партнера
 
** '''Services''' – коллекция услуг в данной путевке
 
*** '''$id''' – внутренний идентификатор для установки связей между сущностями
 
*** '''DGCod''' – номер путевки
 
*** '''TurDate''' – дата начала тура
 
*** '''Key''' – ключ услуги
 
*** '''PaketKey''' – ключ пакета
 
*** '''TRKey''' – клют тура
 
*** '''SVKey''' – ключ типа услуги
 
*** '''Name''' – наименование услуги
 
*** '''Day''' – порядковый номер дня тура, в который предоставляется услуга
 
*** '''Code''' – ключ кода услуги
 
*** '''SubCode1''' – ключ доп.описания 1 услуги
 
*** '''SubCode2''' – ключ доп.описания 2 услуги
 
*** '''Men''' – количество человек, пользующихся услугой по путевке
 
*** '''Days''' – количество дней услуги
 
*** '''CNKey''' – ключ страны услуги
 
*** '''CTKey''' – ключ города услуги
 
*** '''PartnerKey''' – ключ партнера, предоставляющего услугу
 
*** '''Brutto''' – стоимость услуги брутто
 
*** '''Wait''' – признак услуги ''Снимать квоту при бронировании''
 
*** '''Warning''' – неиспользуемое поле
 
*** '''TimeBeg''' – поле используется для сортировки услуг в путевке
 
*** '''Control''' – ключ статуса услуги (ссылка на таблицу Controls),
 
*** '''Attribute''' – атрибут услуги
 
*** '''DateBeg''' – дата начала действия услуги
 
*** '''DateEnd''' – дата окончания действия услуги
 
*** '''Discount''' – размер скидки по услуге
 
*** '''Comment''' – комментарий к услуге
 
*** '''DGKey''' – ключ договора,
 
*** '''Blocked''' – признак блокировки услуги (''0'' – не блокирована, ''1'' – блокирована)
 
*** '''NameLat''' – наименование услуги (латинский)
 
*** '''Long''' – продолжительность тура в днях
 
*** '''TRFId''' – ключ тарифа
 
*** '''CreateDate''' – дата создания услуги в путевке
 
*** '''CalculatePriceDate''' – дата расчета цены
 
*** '''ShowOrder''' – порядок при сортировке
 
*** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id''
 
**** '''$ref''' – связь с внутренним идентификатором ''$id''
 
** '''Turists''' – коллекция туристов в данной путевке
 
*** '''$id''' – внутренний идентификатор для установки связей между сущностями
 
*** '''DGCod''' – номер путевки, к которому привязан турист
 
*** '''Key''' – ключ туриста
 
*** '''TurDate''' – дата начала тура
 
*** '''NameRus''' – фамилия туриста (русское)
 
*** '''NameLat''' – фамилия туриста (латинское)
 
*** '''ShortName''' – имя и отчество туриста в формате ''И.О.''
 
*** '''Sex''' – пол туриста (признак): ''Null'' или ''0'' – Муж; ''1'' – Жен; ''2'' – Child (ребенок); ''3'' – Infant (младенец)
 
*** '''FNameRus''' – имя туриста (русское)
 
*** '''FNameLat''' – имя туриста (латинское)
 
*** '''SNameRus''' – отчество туриста (русское)
 
*** '''SNameLat''' – отчество туриста (латинское)
 
*** '''BirthDay''' – дата рождения туриста
 
*** '''BirthCountry''' – страна рождения туриста
 
*** '''BirthCity''' – город рождения туриста
 
*** '''Citizen''' – гражданство туриста
 
*** '''PostIndex''' – почтовый индекс
 
*** '''PostCity''' – адрес проживания туриста (город)
 
*** '''PostStreet''' – адрес проживания туриста (улица)
 
*** '''PostBild''' – адрес проживания туриста (номер дома)
 
*** '''PostFlat''' – адрес проживания туриста (номер квартиры)
 
*** '''Phone''' – номер телефона туриста
 
*** '''PhoneCode''' – код телефона туриста
 
*** '''PasportType''' – серия заграничного паспорта
 
*** '''PasportNum''' – номер заграничного паспорта
 
*** '''PasportDate''' – дата выдачи заграничного паспорта
 
*** '''PasportDateEnd''' – дата окончания срока действия заграничного паспорта
 
*** '''PasportByWhom''' – кем выдан заграничный паспорт
 
*** '''Place''' – место рождения
 
*** '''IsAnketa''' – выдавалась ли анкета
 
*** '''PaspRuser''' – серия общегражданского паспорта
 
*** '''PaspRuNum''' – номер общегражданского паспорта
 
*** '''PaspRuDate''' – дата выдачи общегражданского паспорта
 
*** '''PaspRuByWhom''' – кем выдан общегражданский паспорт
 
*** '''ClientId''' – ключ в таблице клиентов
 
*** '''IsMain''' – признак главного туриста по путевке
 
*** '''DGKey''' – ключ кутевки
 
*** '''RealSex''' – реальный пол туриста: ''Null'' или ''0'' – Муж; ''1'' – Жен
 
*** '''Email''' – е-mail туриста
 
*** '''EnableSmsNotifications''' – согласен получать уведомления по СМС
 
*** '''CitizenId''' – идентификатор туриста
 
*** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id''
 
**** '''$ref''' – связь с внутренним идентификатором ''$id''
 
** '''TuristServices''' – коллекция связей туриста с услугой
 
*** '''$id''' – внутренний идентификатор для установки связей между сущностями
 
*** '''TUKey''' – ключ туриста
 
*** '''DLKey''' – ключ услуги
 
*** '''NumDoc''' – номер документа (авиабилета)
 
*** '''NumRoom''' – номер комнаты (каюты)
 
*** '''Seat''' – номер места (в номере отеля, каюты) или место в транспорте
 
*** '''Area''' – зона (палуба) в отеле, круизе
 
*** '''DocDate''' – дата документа (авиабелета)
 
*** '''Key''' – первичный ключ связки
 
*** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id''
 
**** '''$ref''' – связь с внутренним идентификатором ''$id''
 
** '''DogovorMessages''' – сообщение по путевке покупателю
 
*** '''id''' – внутренний идентификатор для установки связей между сущностями
 
*** '''Date''' – дата создание сообщения
 
*** '''Text''' – текст сообщения
 
*** '''Remark''' – код сообщения
 
*** '''Connections''' – коллекция связей с сущностями через внутренний идентификатор ''$id''
 
**** '''$ref''' – связь с внутренним идентификатором ''$id''
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:1200px">Пример ответа
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
 
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
Вызов метода CostOfferDescriptions
+
Возвращаемый результат метода CreateReservationExternalSystem (в формате JSON)
<syntaxhighlight lang="java" enclose="div">
 
GET http://localhost:9000/TourSearchOwin/GetReservation?dgCode=AU10101003
 
Content-Type: application/json
 
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
 
EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR-
 
GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4-
 
9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9-
 
CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA
 
</syntaxhighlight>
 
Возвращаемый результат метода GetReservation (в формате JSON)
 
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
{
 
{
     "$id": 1,
+
     "Reservation": {
    "Code": "AU10101003",
+
        "$id": 1,
    "TurDate": "2021-01-01T00:00:00",
+
        "Code": "RU27010037",
    "TRKey": 100000038,
+
        "TurDate": "2025-01-27T12:00:00",
    "CNKey": 90,
+
        "TRKey": 0,
    "CTKey": 35,
+
        "CNKey": 460,
    "NMen": 2,
+
        "CTKey": 1,
    "Price": 877,
+
        "NMen": 2,
    "Payed": 0,
+
        "Price": 9900.0,
    "NDay": 9,
+
        "Payed": 0.0,
    "MainMan": "",
+
        "NDay": 4,
    "MainManPhone": "",
+
        "MainMan": "Тестовый Представитель",
    "MainManAddress": "",
+
        "MainManPhone": "+79139992222",
    "MainManPassport": "",
+
        "MainManAddress": "",
    "PartnerKey": 10762,
+
        "MainManPassport": "11111 2222222222222",
    "Operator": "Megatec ",
+
        "PartnerKey": 12667,
    "Discount": 40,
+
        "Operator": "Allservises A.A.",
    "DiscountSum": 80,
+
        "Discount": 17.0,
    "SORCode": 3,
+
        "DiscountSum": 0.0,
    "CrDate": "2020-10-12T15:02:29.013",
+
        "SORCode": 0,
    "Rate": "$",
+
        "CrDate": "2025-01-24T17:26:17.25",
    "Advertise": 0,
+
        "Rate": "рб",
    "Locked": null,
+
        "Advertise": 0,
    "CauseDisc": null,
+
        "Locked": null,
    "PPaymentDate": null,
+
        "CauseDisc": 0,
    "PaymentDate": "2020-10-14T00:00:00",
+
        "PPaymentDate": null,
    "Procent": 1,
+
        "PaymentDate": "2025-01-26T00:00:00",
    "TurDateBfrAnnul": null,
+
        "Procent": 1,
    "ARKey": 0,
+
        "TurDateBfrAnnul": null,
    "Key": 40335,
+
        "ARKey": 0,
    "CodePartner": null,
+
        "Key": 54010,
    "FilialKey": 1,
+