Web-сервисы: Сервис бронирования — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Achkasov (обсуждение | вклад) |
Porunova (обсуждение | вклад) (→Общие настройки) |
||
(не показано 36 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}. | Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}. | ||
+ | |||
+ | <table style="background-color:#ffffcc;color:black" border="1" cellpadding="10" cellspacing="0"> | ||
+ | <tr> | ||
+ | <td> | ||
+ | Более ранние версии:<br /> | ||
+ | [http://wiki.megatec.ru/index.php?title=%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80-Web:%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81_%D0%B1%D1%80%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&stableid=14107 До версии ПК «Мастер-Web» 2009.2.20.20 включительно]<br /> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br /> | ||
==Введение== | ==Введение== | ||
Строка 13: | Строка 23: | ||
Сервис '''бронирования''' предназначен для '''расчета стоимости совокупности услуг''', с возможностью их '''последующего бронирования''' в базе данных. | Сервис '''бронирования''' предназначен для '''расчета стоимости совокупности услуг''', с возможностью их '''последующего бронирования''' в базе данных. | ||
+ | |||
+ | ===Ссылка на тестовый сервис=== | ||
+ | С работой тестового [http://demo.megatec.ru/DS_Reservation/ServiceProvider.asmx сервиса формирования списка услуг] и [http://demo.megatec.ru/DS_Reservation/ReservationService.asmx сервиса бронирования] вы можете ознакомиться на нашем демо-сервере. | ||
==Установка== | ==Установка== | ||
Строка 18: | Строка 31: | ||
По умолчанию корневым каталогом '''IIS''' является <code>C:/Inetpub/wwwroot</code>. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:<br /> | По умолчанию корневым каталогом '''IIS''' является <code>C:/Inetpub/wwwroot</code>. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:<br /> | ||
1 Зайти в '''Пуск''' ('''Start''') → '''Настройки''' ('''Settings''') → '''Панель управления''' ('''Control Panel''') → '''Администрирование''' ('''Administrative Tools''') | 1 Зайти в '''Пуск''' ('''Start''') → '''Настройки''' ('''Settings''') → '''Панель управления''' ('''Control Panel''') → '''Администрирование''' ('''Administrative Tools''') | ||
+ | |||
[[Файл: am_745.png|x500px|Панель управления]]<br /> | [[Файл: am_745.png|x500px|Панель управления]]<br /> | ||
<br /> | <br /> | ||
Строка 49: | Строка 63: | ||
==Настройки в файле WEB.CONFIG== | ==Настройки в файле WEB.CONFIG== | ||
+ | ===Общие настройки=== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 126: | Строка 141: | ||
| <syntaxhighlight lang="xml" enclose="div"> | | <syntaxhighlight lang="xml" enclose="div"> | ||
<add key="useRoomsExtraPlaces" value="false" /> | <add key="useRoomsExtraPlaces" value="false" /> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 7 | ||
+ | | Настройка, включающая '''режим учета процента при конвертации''' валют. | ||
+ | | '''Коэффициент''', на который умножается конвертируемая сумма. | ||
+ | | <syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="courseMultiplier" value="1,02" /> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 8 | ||
+ | | Настройка указывает на то, что в [[Мастер-Тур:Справочники#Типы номеров|справочнике «Типы номеров»]] в колонке '''Число основных мест''' указано '''общее количество взрослых и детей'''. Дополнительно должно быть прописано и количество детей в соответствующей колонке. | ||
+ | При включенной настройке в случае, если сумма основных и дополнительных мест в [[Мастер-Тур:Справочники#Типы размещения|справочнике «Типы размещений»]] превышает значение в колонке число основных мест, бронирование невозможно. | ||
+ | | | ||
+ | * '''true''' — в колонке число основных мест указано общее количество взрослых и детей (сумма основных и дополнительных мест в размещении не должна превышать значение в колонке число основных мест в номерах); | ||
+ | * '''false''' или '''отсутствие настройки''' — количество взрослых и детей не суммируется (проверка не производится). | ||
+ | | <syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="combinedPlaces" value="true" /> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 9 | ||
+ | | Настройка, включающая проверку прав текущего пользователя на получение доступа к путевке. | ||
+ | | | ||
+ | * '''true''' — включена проверка; | ||
+ | * '''false''' или '''отсутствие настройки''' — проверка отключена. | ||
+ | | <syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="IsAuthDubUser" value="true" /> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
− | == | + | ===Настройки бронирования инфантов=== |
− | |||
− | |||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
|- style="background-color:#F2F2F2" | |- style="background-color:#F2F2F2" | ||
+ | |||
+ | ! width="2%" | № | ||
+ | ! width="28%" | Описание | ||
+ | ! width="35%" | Значение | ||
+ | ! width="35%" | Настройка | ||
+ | |||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
− | | <syntaxhighlight lang=" | + | | 1 |
− | + | | Ключи '''тарифов на авиаперелет''' для размещения '''Младенец''' ('''Infant'''). | |
− | / | + | Настройка используется либо в [[Мастер-Web:Дополнительный модуль Бронирование индивидуального тура|дополнительном модуле «Бронирование индивидуального тура»]], либо для '''исключения тарифов''' при отображении списка рейсов в корзинах бронирования. |
− | + | | '''Ключи тарифов''' - поле '''AS_CODE''' из таблицы <code>'''[AirService]'''</code> через запятую. | |
− | + | | <syntaxhighlight lang="xml" enclose="div"> | |
− | + | <add key="infantCharterClasses" value="132,110" /> | |
− | + | </syntaxhighlight> | |
− | |||
− | |||
− | |||
− | + | |- style="vertical-align:text-top" | |
− | |||
− | |||
− | |||
− | + | | 2 | |
− | + | | '''Взрослые тарифы''' ('''эконом''') авиаперелетов, для которых будет подбираться тариф - '''YCH''' - '''Экономический класс''' ('''детский'''). | |
− | + | | '''Ключи тарифа''' - поле '''AS_CODE''' из таблицы <code>'''[AirService]'''</code> через запятую. | |
− | + | | <syntaxhighlight lang="xml" enclose="div"> | |
− | + | <add key="YCH" value="81,87,89" /> | |
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | ==== | + | |- style="vertical-align:text-top" |
+ | |||
+ | | 3 | ||
+ | | '''Взрослые тарифы''' ('''бизнес''') авиаперелетов, для которых будет подбираться тариф - '''CCH''' - '''Бизнес класс''' ('''детский'''). | ||
+ | | '''Ключи тарифа''' - поле '''AS_CODE''' из таблицы <code>'''[AirService]'''</code> через запятую. | ||
+ | | <syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="CCH" value="67,68,74" /> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ===Настройки добавления доплат к рейсам=== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
|- style="background-color:#F2F2F2" | |- style="background-color:#F2F2F2" | ||
+ | |||
+ | ! width="2%" | № | ||
+ | ! width="28%" | Описание | ||
+ | ! width="35%" | Значение | ||
+ | ! width="35%" | Настройка | ||
+ | |||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
− | | <syntaxhighlight lang=" | + | | 1 |
− | + | | Включение '''отображения блока доплат''' к рейсу. | |
− | / | + | | '''Ключ типа тура''' - поле '''TP_KEY''' из таблицы <code>'''[TipTur]'''</code>, к которому должны привязываться туры, содержащие доплаты к рейсам. |
− | + | | <syntaxhighlight lang="xml" enclose="div"> | |
− | + | <add key="addFlightTourType" value="13" /> | |
− | + | </syntaxhighlight> | |
− | |||
− | |||
− | |||
− | |||
− | + | |- style="vertical-align:text-top" | |
− | |||
− | |||
− | |||
− | + | | 2 | |
− | + | | '''Название доплаты за изменение рейса'''. | |
− | + | | '''Текст''' - название доплаты за изменение рейса, которое будет отображаться в блоке доплат. | |
− | + | | <syntaxhighlight lang="xml" enclose="div"> | |
+ | <add key="changeFlightPaymentName" value="Доплата за выбор рейса" /> | ||
+ | </syntaxhighlight> | ||
− | + | |- style="vertical-align:text-top" | |
− | |||
− | |||
− | |||
− | + | | 3 | |
− | + | | Настройка, '''скрывающая поле с доплатой за изменение рейса''' в блоке доплат. | |
− | + | | '''false''' - поле с доплатой за изменение рейса скрыто; | |
− | + | '''true''' или '''отсутствие настройки''' - поле с доплатой за изменение рейса отображается. | |
+ | | <syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="showFlightVariantDifference" value="true" /> | ||
+ | </syntaxhighlight> | ||
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Для того, что бы получить все связанные дополнительные услуги, необходимо добавить в файл <code>web.config</code> настройку <code><add key="addFlightTourType" value="<span style="color:red">ххх</span>" /></code>, где <span style="color:red">ххх</span> - ключ типа тура, откуда берутся доплаты. Например, ключ типа у текущего тура - 17, а дополнительная услуга топливного сбора лежит в пакете с ключом типа тура 50. Значит, нам надо указать 50 вместо <span style="color:red">ххх</span>. При получении списка услуг необходимо использовать метод <code>GetCalculatedServices</code> сервиса <code>ServiceProvider.asmx</code>. Услуга топливного сбора будет находиться в подразделе <code>AdditionalPayments</code> раздела <code>Service</code> структуры XML. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ===Настройки дополнительного модуля «Бронирование новогодних и рожденственских ужинов»=== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
|- style="background-color:#F2F2F2" | |- style="background-color:#F2F2F2" | ||
− | |||
− | | | + | ! width="2%" | № |
− | + | ! width="28%" | Описание | |
− | + | ! width="35%" | Значение | |
− | + | ! width="35%" | Настройка | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | |- style="vertical-align:text-top" | |
− | |||
− | |||
− | |||
− | + | | 1 | |
− | + | | '''Включение''' дополнительного модуля «Бронирование новогодних и рожденственских ужинов». | |
− | + | | '''Ссылка на дополнительный модуль'''. | |
− | + | | <syntaxhighlight lang="xml" enclose="div"> | |
+ | <add key="happyNewYearServiceManager" value="MasterWebStandard.Extra.HappyNewYearServices.HappyNewYearStandardManager, MasterWebStandard.Extra.HappyNewYearServices" /> | ||
+ | </syntaxhighlight> | ||
− | + | |- style="vertical-align:text-top" | |
− | |||
− | |||
− | |||
− | + | | 2 | |
− | + | | '''Тип тура''' для '''обязательных''' праздничных ужинов. | |
− | + | | '''Ключ типа тура''' - поле '''TP_KEY''' из таблицы <code>'''[TipTur]'''</code> для обязательных ужинов. | |
− | + | | <syntaxhighlight lang="xml" enclose="div"> | |
+ | <add key="requiredNewYearServicesTourTypes" value="12" /> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 3 | ||
+ | | '''Тип тура''' для '''необязательных''' праздничных ужинов. | ||
+ | | '''Ключ типа тура''' - поле '''TP_KEY''' из таблицы <code>'''[TipTur]'''</code> для необязательных ужинов. | ||
+ | | <syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="optionalNewYearServicesTourTypes" value="12" /> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |} | ||
+ | |||
+ | ==Подготовка данных== | ||
+ | |||
+ | [[Файл:am_063.png|left|Предупреждение]]<br /> | ||
+ | С 1 января 2017 года вступили в силу положения Федерального закона от 02.03.2016 № 49-ФЗ «О внесении изменений в отдельные законодательные акты | ||
+ | Российской Федерации в целях совершенствования законодательства, регулирующего туристскую деятельность» (далее – Федеральный закон № 49-ФЗ), в связи | ||
+ | с чем вводится ограничение на осуществление бронирования партнёрами, не указавшими реестровый номер. | ||
+ | Установить дату, начиная с которой данное ограничение начинает функционировать, можно в [[Мастер-Тур:Администрирование системы#Дополнительные настройки|дополнительных настройках]] ПК «Мастер-Тур». | ||
+ | <span style="color:red">Настройка работает, начиная с релиза '''9222SP0'''. | ||
+ | |||
+ | ===Описание формата данных=== | ||
+ | ====MainDependentAccommodation (Доступное основное или зависимое размещение)==== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
− | + | | <syntaxhighlight lang="cpp"> | |
− | /// | + | /// <summary> |
+ | /// Доступное основное или зависимое размещение | ||
/// </summary> | /// </summary> | ||
− | public | + | public class MainDependentAccommodation |
− | } | + | { |
+ | /// <summary> | ||
+ | /// Ключ прайса, к которому относится размещение | ||
+ | /// </summary> | ||
+ | public Int32 PriceKey { get; set; } | ||
+ | /// <summary> | ||
+ | /// Название размещения | ||
+ | /// </summary> | ||
+ | public String AccommodationName { get; set; } | ||
+ | /// <summary> | ||
+ | /// Количество человек | ||
+ | /// </summary> | ||
+ | public Int32 Places { get; set; } | ||
+ | /// <summary> | ||
+ | /// Цена | ||
+ | /// </summary> | ||
+ | public Decimal Price { get; set; } | ||
+ | /// <summary> | ||
+ | /// Валюта цены | ||
+ | /// </summary> | ||
+ | public String Currency { get; set; } | ||
+ | /// <summary> | ||
+ | /// Наличие мест | ||
+ | /// </summary> | ||
+ | public QuotaResultStatus QuotaStatus { get; set; } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
− | ==== | + | ====CalculatedPriceInfo (Информация по расчитанной цене)==== |
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 296: | Строка 359: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Информация по рассчитанной цене |
/// </summary> | /// </summary> | ||
− | public class | + | public class CalculatedPriceInfo |
{ | { | ||
− | /// <summary> | + | /// <summary> |
− | /// | + | /// Прайс-лист |
− | /// </summary> | + | /// </summary> |
− | public | + | public PriceTour PriceTour { get; set; } |
− | /// <summary> | + | /// <summary> |
− | /// | + | /// Дата тура |
− | /// </summary> | + | /// </summary> |
− | public | + | public DateTime TourDate { get; set; } |
− | /// <summary> | + | /// <summary> |
− | /// | + | /// Количество дней по туру |
− | /// </summary> | + | /// </summary> |
− | public | + | public int TotalDays { get; set; } |
− | |||
− | |||
− | |||
− | ==== | + | /// <summary> |
+ | /// Количество ночей по туру | ||
+ | /// </summary> | ||
+ | public int Nights { get; set; } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | |||
+ | ====ReservationParams (Параметры бронирования)==== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 326: | Строка 394: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Параметры бронирования |
/// </summary> | /// </summary> | ||
− | public class | + | public class ReservationParams |
{ | { | ||
− | /// <summary> | + | /// <summary> |
− | /// | + | /// Идентификатор рекламного источника в БД |
− | /// </summary> | + | /// </summary> |
− | public | + | public int AdvertiseID { get; set; } |
− | /// <summary> | + | |
− | /// | + | /// <summary> |
− | /// </summary> | + | /// Идентификатор основания для скидки в БД |
− | public | + | /// </summary> |
− | /// <summary> | + | public int CauseDiscountID { get; set; } |
− | /// | + | |
− | /// </summary> | + | /// <summary> |
− | public | + | /// Идентификатор страны тура |
− | /// <summary> | + | /// </summary> |
− | /// | + | public int CountryID { get; set; } |
− | /// </summary> | + | |
− | public | + | /// <summary> |
− | /// <summary> | + | /// Идентификатор пользователя, бронирующего тур |
− | /// | + | /// </summary> |
− | /// </summary> | + | public int DupUserID { get; set; } |
− | public | + | |
− | + | /// <summary> | |
− | + | /// Имя оператора | |
− | /// < | + | /// </summary> |
− | + | public string OperatorName { get; set; } | |
− | /// | + | |
− | + | /// <summary> | |
− | /// </summary> | + | /// Иденификатор ведущего менеджера по путевке |
− | public int | + | /// </summary> |
− | + | public int OwnerID { get; set; } | |
− | + | ||
− | /// < | + | /// <summary> |
− | + | /// Идентификатор партнера, бронирующего тур | |
− | /// | + | /// </summary> |
− | + | public int PartnerID { get; set; } | |
− | /// </summary> | + | |
− | public int | + | /// <summary> |
− | + | /// Валюта, в котрой производится бронирование | |
− | + | /// (если не задана, то вытягивается из тура) | |
− | /// < | + | /// </summary> |
− | + | public string RateCode { get; set; } | |
− | /// | + | |
− | /// | + | /// <summary> |
− | /// </summary> | + | /// Бронируемая продолжительность |
− | public string RateCode { get; set; } | + | /// (если не задана, то высчитывается на основании услуг) |
− | + | /// </summary> | |
− | + | public int ReserveDuration { get; set; } | |
− | /// < | ||
− | |||
− | /// | ||
− | /// | ||
− | |||
− | |||
− | |||
− | |||
− | /// </summary> | ||
− | public | ||
− | |||
− | |||
− | |||
− | + | /// <summary> | |
+ | /// Дата тура | ||
+ | /// </summary> | ||
+ | public DateTime TourDate { get; set; } | ||
− | ==== | + | /// <summary> |
− | + | /// Идентификатор тура | |
+ | /// </summary> | ||
+ | public int TourID { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Количество туристов по услугам | ||
+ | /// </summary> | ||
+ | public int TouristsCount { get; set; } | ||
+ | }</syntaxhighlight> | ||
+ | |} | ||
+ | |||
+ | ====ReservationResult (Результат расчета стоимости и бронирования комплекса услуг)==== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 401: | Строка 470: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Класс, описывающий результат расчета стоимости и бронирования комплекса услуг |
/// </summary> | /// </summary> | ||
− | /// < | + | public class ReservationResult |
− | /// < | + | { |
− | /// < | + | /// <summary> |
− | /// < | + | /// Стоимость к оплате |
− | /// < | + | /// </summary> |
− | + | public double Brutto { get; set; } | |
− | public | + | |
+ | /// <summary> | ||
+ | /// Процент скидки | ||
+ | /// </summary> | ||
+ | public double DiscountPercent { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Абсолютная величина скидки | ||
+ | /// </summary> | ||
+ | public double DiscountSumm { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Валюта | ||
+ | /// </summary> | ||
+ | public string Rate { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Код сформированной путевки | ||
+ | /// </summary> | ||
+ | public string ReservationCode { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Сообщение об ошибке | ||
+ | /// </summary> | ||
+ | public string ErrorMessage { get; set; } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
− | + | ||
− | ==== | + | ====ReservationInfoParams (Параметры путевки)==== |
− | |||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 422: | Строка 515: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Класс, описывающий параметры путевки |
+ | /// </summary> | ||
+ | public class ReservationInfoParams | ||
+ | { | ||
+ | /// <summary> | ||
+ | /// код путевки | ||
+ | /// </summary> | ||
+ | public string Code { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// значение скидки | ||
+ | /// </summary> | ||
+ | public double Discount { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// стоимость путевки | ||
/// </summary> | /// </summary> | ||
− | + | public double Price { get; set; } | |
− | + | } | |
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
− | + | ||
− | ==== | + | ====ReservationInfo (Описание путевки, включая все услуги и туристов)==== |
− | |||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 441: | Строка 545: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Класс, описывающий путевку, включая все услуги путевки и туристов |
/// </summary> | /// </summary> | ||
− | /// < | + | public class ReservationInfo |
− | /// | + | { |
− | /// | + | /// <summary> |
− | + | /// Название города поездки | |
− | public | + | /// </summary> |
− | + | public string CityName { get; set; } | |
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
/// <summary> | /// <summary> | ||
− | /// | + | /// Код путевки |
/// </summary> | /// </summary> | ||
− | /// < | + | public string Code { get; set; } |
− | /// | + | /// <summary> |
− | /// < | + | /// Название страны поездки |
− | /// | + | /// </summary> |
− | /// | + | public string CountryName { get; set; } |
− | /// < | + | /// <summary> |
− | /// | + | /// Скидка по путевке |
− | /// | + | /// </summary> |
− | /// < | + | public double Discount { get; set; } |
− | /// | + | /// <summary> |
− | /// | + | /// Сумма скидки |
− | /// < | + | /// </summary> |
− | /// | + | public double DiscountSum { get; set; } |
− | /// | + | /// <summary> |
− | + | /// Обобщенный статус путевки | |
− | public | + | /// </summary> |
− | + | public int? DogovorGlobalStatus { get; set; } | |
− | + | /// <summary> | |
− | + | /// Статус путевки | |
− | + | /// </summary> | |
− | + | public int DogovorStatus { get; set; } | |
− | + | /// <summary> | |
− | + | /// Кол-во дней поездки | |
− | + | /// </summary> | |
− | + | public int Ndays { get; set; } | |
− | |||
− | |||
− | < | ||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
/// <summary> | /// <summary> | ||
− | /// | + | /// Количество туристов в путевке |
/// </summary> | /// </summary> | ||
− | /// < | + | public int Nmen { get; set; } |
− | /// < | + | /// <summary> |
− | /// < | + | /// Цена без учета скидки |
− | /// < | + | /// </summary> |
− | public | + | public double Price { get; set; } |
+ | /// <summary> | ||
+ | /// Код валюты путевки | ||
+ | /// </summary> | ||
+ | public string RateCode { get; set; } | ||
+ | /// <summary> | ||
+ | /// Список всеу услуг в путевке | ||
+ | /// </summary> | ||
+ | public List<Service> ReservationServices { get; set; } | ||
+ | /// <summary> | ||
+ | /// Список всех туристов в путевке | ||
+ | /// </summary> | ||
+ | public List<Tourist> ReservationTourists { get; set; } | ||
+ | /// <summary> | ||
+ | /// Дата начала поездки | ||
+ | /// </summary> | ||
+ | public DateTime TurDate { get; set; } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
− | + | ||
− | ====Метод | + | ===Сервис формирования списка услуг («ServiceProvider.asmx»)=== |
+ | |||
+ | ====Метод получения основных и неосновных размещений (GetAvailableAccommodations)==== | ||
=====Сигнатура вызова===== | =====Сигнатура вызова===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 522: | Строка 620: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Возвращает доступные для бронирования размещения |
/// </summary> | /// </summary> | ||
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | ||
− | /// <param name=" | + | /// <param name="priceKey">Ключ обсчитанной цены (ключ прайса)</param> |
− | + | /// <param name="isCheckExtraPlaceQuota:">Проверять ли места на еще одно такое же размещение</param> | |
− | /// <param name=" | + | /// <returns>Список пар [основное размещение; коллекция неосновных]</returns> |
− | /// <returns></returns> | ||
[WebMethod] | [WebMethod] | ||
− | public | + | public List<SerializableKeyValuePair<MainDependentAccommodation, List<MainDependentAccommodation>>> |
+ | GetAvailableAccommodations(String token, Int32 priceKey, Boolean isCheckExtraPlaceQuota) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | ====Метод получения | + | |
− | =====Сигнатура | + | ====Метод получения информации по ключу цены (GetCalculatedPriceInfo)==== |
+ | =====Сигнатура вызова===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 543: | Строка 642: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Получение информации о цене |
/// </summary> | /// </summary> | ||
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | ||
− | /// <param name=" | + | /// <param name="priceKey">Ключ цены</param> |
− | /// <returns> | + | /// <param name="includeTourDescriptionText">Возвращать ли описание тура</param> |
− | public | + | /// <param name="includeBookingConditionsText">Возвращать ли условия бронирования по туру</param> |
+ | /// <returns></returns> | ||
+ | [WebMethod] | ||
+ | public CalculatedPriceInfo GetCalculatedPriceInfo(String token, int priceKey, bool includeTourDescriptionText, bool includeBookingConditionsText) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | ====Метод получения | + | ====Метод получения рассчитанных услуг (GetCalculatedServices)==== |
− | =====Сигнатура | + | =====Сигнатура вызова===== |
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 561: | Строка 663: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Возвращает список рассчитанных услуг по ключу цены |
/// </summary> | /// </summary> | ||
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | ||
− | /// <param name=" | + | /// <param name="priceKey">Ключ обсчитанной цены</param> |
− | /// < | + | /// <returns></returns> |
− | + | [WebMethod] | |
− | + | public List<Service> GetCalculatedServices(String token, int priceKey) | |
− | + | </syntaxhighlight> | |
− | |||
− | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | ====Метод | + | ====Метод получения информации о дополнительных услугах (GetExtraServiceInfo)==== |
− | =====Сигнатура | + | =====Сигнатура вызова===== |
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 583: | Строка 683: | ||
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> | ||
/// <summary> | /// <summary> | ||
− | /// | + | /// Получение информации о дополнительных услугах |
− | |||
/// </summary> | /// </summary> | ||
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | ||
− | /// <param name=" | + | /// <param name="priceKey">Ключ цены</param> |
− | /// < | + | /// <returns></returns> |
− | public | + | [WebMethod] |
+ | public ExtraServiceInfo GetExtraServiceInfo(String token, int priceKey) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | + | ====Метод получения дополнительных услуг (GetNotCalculatedServices)==== | |
− | + | =====Сигнатура вызова===== | |
− | |||
− | ====Метод получения | ||
− | ===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 603: | Строка 700: | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
− | | <syntaxhighlight lang=" | + | | <syntaxhighlight lang="cpp"> |
− | < | + | /// <summary> |
− | + | /// Возвращает список дополнительных услуг по ключу цены. Дополнительные услуги не могут быть отелем или перелётом. | |
− | + | /// </summary> | |
− | + | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | |
− | + | /// <param name="priceKey">Ключ обсчитанной цены</param> | |
− | + | /// <returns></returns> | |
− | + | [WebMethod] | |
− | + | public List<Service> GetNotCalculatedServices(String token, int priceKey) | |
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | ===== | + | |
+ | ====Метод получения вариантов услуги (GetServiceVariants)==== | ||
+ | =====Сигнатура вызова===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 623: | Строка 720: | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
− | | <syntaxhighlight lang=" | + | | <syntaxhighlight lang="cpp"> |
− | < | + | /// <summary> |
− | + | /// Получение вариантов услуги | |
− | + | /// </summary> | |
− | + | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | |
− | + | /// <param name="service">Базовая услуга</param> | |
− | + | /// <param name="dtDate">Дата заезда</param> | |
− | + | /// <param name="duration">Продолжительность тура</param> | |
− | + | /// <param name="allowHidden">Искать ли аналоги для скрытой услуги</param> | |
− | + | /// <param name="allowHotelCodeChange">Можно ли поменять отель</param> | |
− | + | /// <param name="CheckFlightPacket">Проверять ли пакет услуги</param> | |
− | + | /// <param name="checkQuotes">Нужно ли делать проверку квот и удалять варианты без мест</param> | |
− | + | /// <param name="nMen">Количество мест для проверки (если 0, то игнорируем byRoom и userKey</param> | |
− | + | /// <param name="byRoom">Что проверяем. Места или комнаты</param> | |
− | + | /// <param name="userKey">Агент</param> | |
− | + | /// <param name="includeOriginal">Включать в результат базовую услугу</param> | |
− | + | /// <param name="excludeCharterClasses">Исключить из подбора данные классы перелетов</param> | |
− | + | /// <returns>Список услуг</returns> | |
− | + | [WebMethod] | |
− | + | public List<Service> GetServiceVariants(String token, Megatec.Travel.Entities.Service service | |
− | + | , DateTime tourDate | |
− | + | , int tourDuration | |
− | + | , bool allowHidden | |
− | + | , bool allowHotelCodeChange | |
− | + | , bool checkFlightPacket | |
− | + | , bool checkQuotes | |
− | + | , short nMen | |
− | + | , bool byRoom | |
− | + | , int userKey | |
− | + | , bool includeOriginal | |
+ | , string excludeCharterClasses) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | ====Метод | + | ===Сервис бронирования (ReservationService.asmx)=== |
− | ===== | + | ====Метод расчета стоимости услуг (CalculateReservation)==== |
+ | =====Сигнатура вызова===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 664: | Строка 763: | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
− | | <syntaxhighlight lang=" | + | | <syntaxhighlight lang="cpp"> |
− | < | + | /// <summary> |
− | + | /// Метод расчета стоимости услуг | |
− | + | /// </summary> | |
− | + | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | |
− | + | /// <param name="services">Список услуг, по которым рассчитывается стоимость</param> | |
− | + | /// <param name="parameters">Параметры расчета</param> | |
− | + | /// <returns>Результат расчета стоимости</returns> | |
− | < | + | public ReservationResult CalculateReservation(String token, List<Service> services, ReservationParams parameters) |
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | ===== | + | ====Метод бронирования услуг (CreateReservation)==== |
+ | =====Сигнатура вызова===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 682: | Строка 782: | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
− | | <syntaxhighlight lang=" | + | | <syntaxhighlight lang="cpp"> |
− | < | + | /// <summary> |
− | + | /// Метод бронирования | |
− | + | /// </summary> | |
− | + | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | |
− | + | /// <param name="services">Список бронируемых услуг</param> | |
− | + | /// <param name="tourists">Список туристов по путевке</param> | |
− | + | /// <param name="parameters">Параметры бронирования</param> | |
− | + | /// <returns></returns> | |
− | + | [WebMethod] | |
− | + | public ReservationResult CreateReservation(String token, List<Service> services, List<Tourist> tourists, ReservationParams parameters) | |
− | + | </syntaxhighlight> | |
− | + | |} | |
− | + | <br /> | |
− | + | ====Метод получения данных по путевке (GetDogovorInfo)==== | |
− | + | =====Сигнатура метода===== | |
− | + | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | |
− | + | ||
− | + | |- style="background-color:#F2F2F2" | |
− | + | |- style="vertical-align:text-top" | |
− | + | ||
− | + | | <syntaxhighlight lang="cpp"> | |
− | + | /// <summary> | |
− | + | /// Метод получения полной информации по путевке | |
− | + | /// </summary> | |
− | + | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | |
− | + | /// <param name="reservationCode">Код путевки</param> | |
− | + | /// <returns>Полная информация по услугам и туристам в путевке</returns> | |
− | + | public Megatec.Travel.DataObjects.ReservationInfo GetDogovorInfo(String token, String reservationCode) | |
− | + | </syntaxhighlight> | |
− | + | |} | |
− | + | <br /> | |
− | + | ====Метод получения информации по путевке (GetReservationInfo)==== | |
− | + | =====Сигнатура метода===== | |
− | + | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | |
− | + | ||
− | + | |- style="background-color:#F2F2F2" | |
− | + | |- style="vertical-align:text-top" | |
− | + | ||
− | + | | <syntaxhighlight lang="cpp"> | |
− | + | /// <summary> | |
− | + | /// Метод получения HTML-информации по путевке | |
− | + | /// </summary> | |
− | + | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> | |
− | + | /// <param name="reservationCode">Код путевки</param> | |
− | + | /// <param name="partnerKey">Идентификатор покупателя</param> | |
− | + | /// <param name="param">Параметры бронирования</param> | |
− | + | /// <returns>HTML-информация по путевке</returns> | |
− | < | + | public String GetReservationInfo(String token, String reservationCode, Int32 partnerKey, Megatec.Travel.DataObjects.ReservationInfoParams param) |
− | < | + | |
− | < | + | </syntaxhighlight> |
− | < | + | |} |
− | < | + | <br /> |
− | + | ||
− | < | + | ====Метод для сохранения номера путевки (SetReservationCode)==== |
− | + | =====Сигнатура метода===== | |
− | < | + | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" |
− | </ | + | |
− | < | + | |- style="background-color:#F2F2F2" |
− | + | |- style="vertical-align:text-top" | |
− | < | + | |
− | + | | <syntaxhighlight lang="cpp"> | |
− | < | + | /// <summary> |
− | < | + | /// Сохраняет номер путевки субагента в БД агента |
− | < | + | /// (в историю путевки должен записать номер путевки субагента) |
− | < | + | /// </summary> |
− | < | + | /// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param> |
− | + | /// <param name="reservationCode">Номер путевки в БД агента</param> | |
− | < | + | /// <param name="partnerCode">Номер путевки в БД субагента</param> |
− | + | public void SetReservationCode(String token, String reservationCode, String partnerCode) | |
− | < | + | </syntaxhighlight> |
− | </ | + | |} |
− | < | + | <br /> |
− | < | + | |
− | + | ==Работа в системе== | |
− | + | ===Работа с сервисом «ServiceProvider.asmx» (Формирование списка услуг)=== | |
− | + | ====Метод получения основных и неосновных размещений (GetAvailableAccommodations )==== | |
− | < | + | =====Пример SOAP-запроса к сервису===== |
− | < | + | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" |
− | < | + | |
− | < | + | |- style="background-color:#F2F2F2" |
− | + | |- style="vertical-align:text-top" | |
− | + | ||
− | + | | <syntaxhighlight lang="xml"> | |
− | + | <?xml version="1.0" encoding="utf-8"?> | |
− | + | <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | |
− | + | <soap:Body> | |
− | + | <GetAvailableAccommodations xmlns="http://megatec.ru/"> | |
− | + | <token>?</token> | |
− | + | <priceKey>33345</priceKey> | |
− | < | + | <isCheckExtraPlaceQuota>true</isCheckExtraPlaceQuota> |
− | < | + | </GetAvailableAccommodations> |
− | < | + | </soap:Body> |
− | < | + | </soap:Envelope> |
− | < | + | </syntaxhighlight> |
− | + | |} | |
− | < | + | <br /> |
− | + | =====Пример SOAP-ответа сервиса===== | |
− | < | + | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" |
− | + | ||
− | + | |- style="background-color:#F2F2F2" | |
− | + | |- style="vertical-align:text-top" | |
− | + | ||
− | + | | <syntaxhighlight lang="xml"> | |
− | + | <?xml version="1.0" encoding="utf-8"?> | |
− | + | <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | |
− | + | <soap:Body> | |
− | + | <GetAvailableAccommodationsResponse xmlns="http://megatec.ru/"> | |
− | + | <GetAvailableAccommodationsResult> | |
− | + | <SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | |
− | + | <Key> | |
− | + | <PriceKey>33349</PriceKey> | |
− | < | + | <AccommodationName>DBL 1-1 STD</AccommodationName> |
− | + | <Places>2</Places> | |
− | + | <Price>812</Price> | |
− | + | <Currency>$</Currency> | |
− | + | <QuotaStatus>No</QuotaStatus> | |
− | + | </Key> | |
− | + | <Value> | |
− | + | <MainDependentAccommodation xsi:nil="true" /> | |
− | + | <MainDependentAccommodation xsi:nil="true" /> | |
− | + | </Value> | |
− | + | </SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | |
− | + | <SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | |
− | + | <Key> | |
− | + | <PriceKey>33337</PriceKey> | |
− | + | <AccommodationName>DBL 2-0 Sea View</AccommodationName> | |
− | + | <Places>2</Places> | |
− | + | <Price>938</Price> | |
− | + | <Currency>$</Currency> | |
− | + | <QuotaStatus>No</QuotaStatus> | |
− | + | </Key> | |
− | + | <Value> | |
− | + | <MainDependentAccommodation xsi:nil="true" /> | |
− | + | <MainDependentAccommodation xsi:nil="true" /> | |
− | + | </Value> | |
− | + | </SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | |
− | + | <SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | |
− | + | <Key> | |
− | </ | + | <PriceKey>33345</PriceKey> |
− | < | + | <AccommodationName>DBL 1-1 Sea View</AccommodationName> |
− | <ID> | + | <Places>2</Places> |
− | <Name> | + | <Price>740</Price> |
− | + | <Currency>$</Currency> | |
− | < | + | <QuotaStatus>No</QuotaStatus> |
− | < | + | </Key> |
− | + | <Value> | |
+ | <MainDependentAccommodation xsi:nil="true" /> | ||
+ | <MainDependentAccommodation xsi:nil="true" /> | ||
+ | </Value> | ||
+ | </SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | ||
+ | <SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | ||
+ | <Key> | ||
+ | <PriceKey>33353</PriceKey> | ||
+ | <AccommodationName>DBL 0-2 Sea View</AccommodationName> | ||
+ | <Places>1</Places> | ||
+ | <Price>650</Price> | ||
+ | <Currency>$</Currency> | ||
+ | <QuotaStatus>No</QuotaStatus> | ||
+ | </Key> | ||
+ | <Value> | ||
+ | <MainDependentAccommodation xsi:nil="true" /> | ||
+ | <MainDependentAccommodation xsi:nil="true" /> | ||
+ | </Value> | ||
+ | </SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | ||
+ | <SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | ||
+ | <Key> | ||
+ | <PriceKey>33341</PriceKey> | ||
+ | <AccommodationName>DBL 2-0 GV</AccommodationName> | ||
+ | <Places>2</Places> | ||
+ | <Price>1370</Price> | ||
+ | <Currency>$</Currency> | ||
+ | <QuotaStatus>Request</QuotaStatus> | ||
+ | </Key> | ||
+ | <Value> | ||
+ | <MainDependentAccommodation xsi:nil="true" /> | ||
+ | <MainDependentAccommodation xsi:nil="true" /> | ||
+ | </Value> | ||
+ | </SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation> | ||
+ | </GetAvailableAccommodationsResult> | ||
+ | </GetAvailableAccommodationsResponse> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope></syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | ====Метод получения информации по ключу цены (GetCalculatedPriceInfo )==== | ||
+ | =====Пример SOAP-запроса к сервису===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
+ | <soap:Body> | ||
+ | <GetCalculatedPriceInfo xmlns="http://megatec.ru/"> | ||
+ | <token>?</token> | ||
+ | <priceKey>5038425</priceKey> | ||
+ | <includeTourDescriptionText>true</includeTourDescriptionText> | ||
+ | <includeBookingConditionsText>true</includeBookingConditionsText> | ||
+ | </GetCalculatedPriceInfo> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | =====Пример SOAP-ответа сервиса===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
+ | <soap:Body> | ||
+ | <GetCalculatedPriceInfoResponse xmlns="http://megatec.ru/"> | ||
+ | <GetCalculatedPriceInfoResult> | ||
+ | <PriceTour> | ||
+ | <ID>667</ID> | ||
+ | <Name>Test Tour</Name> | ||
+ | <Description /> | ||
+ | <Country> | ||
+ | <ID>90</ID> | ||
+ | <Name>Австрия</Name> | ||
+ | </Country> | ||
+ | <Tour> | ||
+ | <ID>542</ID> | ||
+ | <Name>Test Tour</Name> | ||
<Description /> | <Description /> | ||
− | </ | + | <BookingConditions /> |
− | </ | + | </Tour> |
− | </ | + | <Attribute>0</Attribute> |
− | </ | + | <IncludedServices> Авиаперелет, Трансфер, Проживание(питание: Полупансион), Виза, Страховка, Доп. услуги</IncludedServices> |
− | </soap:Body> | + | </PriceTour> |
− | + | <TourDate>2010-07-02T00:00:00</TourDate> | |
+ | <TotalDays>11</TotalDays> | ||
+ | <Nights>10</Nights> | ||
+ | </GetCalculatedPriceInfoResult> | ||
+ | </GetCalculatedPriceInfoResponse> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | ====Метод получения | + | |
+ | ====Метод получения рассчитанных услуг (GetCalculatedServices)==== | ||
=====Пример SOAP-запроса к сервису===== | =====Пример SOAP-запроса к сервису===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 848: | Строка 1040: | ||
| <syntaxhighlight lang="xml"> | | <syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
− | + | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | |
<soap:Body> | <soap:Body> | ||
− | < | + | <GetCalculatedServices xmlns="http://megatec.ru/"> |
+ | <token>?</token> | ||
<priceKey>5038425</priceKey> | <priceKey>5038425</priceKey> | ||
− | </ | + | </GetCalculatedServices> |
</soap:Body> | </soap:Body> | ||
− | + | </soap:Envelope> | |
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
+ | |||
=====Пример SOAP-ответа сервиса===== | =====Пример SOAP-ответа сервиса===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 868: | Строка 1062: | ||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
<soap:Body> | <soap:Body> | ||
− | < | + | <GetCalculatedServicesResponse xmlns="http://megatec.ru/"> |
− | < | + | <GetCalculatedServicesResult> |
− | <Service xsi:type=" | + | <Service xsi:type="HotelService"> |
− | <ID>- | + | <ID>-159</ID> |
− | <Name> | + | <Name>Отель/Отель 5*+ (Арльберг), Single Standart Взрослый, Полупансион, ,</Name> |
<ExternalID>0</ExternalID> | <ExternalID>0</ExternalID> | ||
<StartDate>0001-01-01T00:00:00</StartDate> | <StartDate>0001-01-01T00:00:00</StartDate> | ||
<EndDate>0001-01-01T00:00:00</EndDate> | <EndDate>0001-01-01T00:00:00</EndDate> | ||
<StartDay>1</StartDay> | <StartDay>1</StartDay> | ||
− | <Duration> | + | <Duration>10</Duration> |
− | <Attribute> | + | <Attribute>390</Attribute> |
<RateBrutto /> | <RateBrutto /> | ||
<Brutto>0</Brutto> | <Brutto>0</Brutto> | ||
<RateNetto /> | <RateNetto /> | ||
<Netto>0</Netto> | <Netto>0</Netto> | ||
− | <NMen> | + | <NMen>1</NMen> |
<Partner> | <Partner> | ||
<ID>10760</ID> | <ID>10760</ID> | ||
Строка 927: | Строка 1121: | ||
<Notes /> | <Notes /> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>3</ID> |
<Name /> | <Name /> | ||
<NameLat /> | <NameLat /> | ||
Строка 936: | Строка 1130: | ||
<ServiceClasses>None</ServiceClasses> | <ServiceClasses>None</ServiceClasses> | ||
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Hotel> |
− | <ID> | + | <ID>3254</ID> |
− | <Name> | + | <Name>Отель 5*+</Name> |
<NameLat /> | <NameLat /> | ||
<Code /> | <Code /> | ||
Строка 944: | Строка 1138: | ||
<Unicode /> | <Unicode /> | ||
<Description /> | <Description /> | ||
− | < | + | <City> |
− | + | <ID>3254</ID> | |
− | + | <Name>Арльберг</Name> | |
− | + | <NameLat /> | |
− | </ | + | <Code /> |
− | < | + | <CodeLat /> |
− | <ID> | + | <Unicode /> |
+ | <Description /> | ||
+ | </City> | ||
+ | </Hotel> | ||
+ | <Room> | ||
+ | <ID>1112</ID> | ||
<Name /> | <Name /> | ||
<NameLat /> | <NameLat /> | ||
Строка 957: | Строка 1156: | ||
<Unicode /> | <Unicode /> | ||
<Description /> | <Description /> | ||
− | + | <RoomType> | |
− | + | <ID>1</ID> | |
− | + | <Name>Single</Name> | |
− | + | <NameLat /> | |
− | + | <Code>SGL</Code> | |
− | + | <CodeLat /> | |
− | </ | + | <Unicode /> |
− | + | <Description /> | |
− | < | + | <PrintOrder>0</PrintOrder> |
− | + | <Places> | |
− | + | <Main>1</Main> | |
− | + | <Extra>1</Extra> | |
− | + | </Places> | |
− | + | </RoomType> | |
− | + | <RoomCategory> | |
− | + | <ID>20</ID> | |
− | + | <Name>Standart</Name> | |
− | + | <NameLat /> | |
− | + | <Code>STD</Code> | |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | <PrintOrder>0</PrintOrder> | |
− | + | </RoomCategory> | |
− | + | <RoomAccomodation> | |
− | + | <ID>320</ID> | |
− | + | <Name>Взрослый</Name> | |
− | + | <NameLat /> | |
− | + | <Code>Взр.</Code> | |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | <Places> | |
− | + | <Main>0</Main> | |
− | + | <Extra>0</Extra> | |
− | + | </Places> | |
− | + | <IsMain>true</IsMain> | |
− | + | <AgeRange AgeFrom="0" AgeTo="0" /> | |
− | + | <AgeRange2 AgeFrom="0" AgeTo="0" /> | |
− | + | <PerRoom>false</PerRoom> | |
− | + | </RoomAccomodation> | |
− | + | </Room> | |
− | + | <Pansion> | |
− | + | <ID>2</ID> | |
− | + | <Name>Полупансион</Name> | |
− | + | <NameLat /> | |
− | + | <Code>HB</Code> | |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | </Pansion> | |
− | + | </Service> | |
− | + | </GetCalculatedServicesResult> | |
− | + | </GetCalculatedServicesResponse> | |
− | |||
− | |||
− | < | ||
− | </ | ||
</soap:Body> | </soap:Body> | ||
</soap:Envelope> | </soap:Envelope> | ||
Строка 1020: | Строка 1215: | ||
|} | |} | ||
<br /> | <br /> | ||
− | =====Пример SOAP- | + | ====Meтод получения получения информации о дополнительных услугах (GetExtraServiceInfo)==== |
+ | =====Пример SOAP-запроса к сервису===== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
Строка 1027: | Строка 1223: | ||
| <syntaxhighlight lang="xml"> | | <syntaxhighlight lang="xml"> | ||
+ | |||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
− | + | <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | |
<soap:Body> | <soap:Body> | ||
− | < | + | <GetExtraServiceInfo xmlns="http://megatec.ru/"> |
− | < | + | <token>?</token> |
− | + | <priceKey>27084</priceKey> | |
− | <ID> | + | </GetExtraServiceInfo> |
− | <Name> | + | </soap:Body> |
− | + | </soap:Envelope> | |
− | < | + | </syntaxhighlight> |
− | + | |} | |
− | + | <br /> | |
− | + | ||
− | + | =====Пример SOAP-ответа сервиса===== | |
− | + | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | |
− | + | ||
− | + | |- style="background-color:#F2F2F2" | |
− | + | |- style="vertical-align:text-top" | |
− | + | ||
− | + | | <syntaxhighlight lang="xml"> | |
− | + | <?xml version="1.0" encoding="utf-8"?> | |
− | + | <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | |
− | + | <soap:Body> | |
− | + | <GetExtraServiceInfoResponse xmlns="http://megatec.ru/"> | |
− | + | <GetExtraServiceInfoResult> | |
− | + | <ExtraServiceInfo> | |
− | < | + | <ID>76</ID> |
− | < | + | <Name>Лондонский Тауэр</Name> |
− | + | <ServiceClass> | |
− | + | <ID>4</ID> | |
− | + | <Name/> | |
− | + | <NameLat/> | |
− | + | <Code/> | |
− | + | <CodeLat/> | |
− | + | <Unicode/> | |
− | </ | + | <Description/> |
− | < | + | <ServiceClasses>None</ServiceClasses> |
− | < | + | </ServiceClass> |
− | < | + | <Attribute>0</Attribute> |
− | + | <CountryKey>222</CountryKey> | |
− | + | <CityKey>25</CityKey> | |
− | + | <IsRequired>true</IsRequired> | |
− | + | <Direction>0</Direction> | |
− | + | <ServiceVariants> | |
− | + | </ExtraServiceInfo> | |
− | + | <ExtraServiceInfo> | |
− | </ | + | <ID>3231</ID> |
− | < | + | <Name>test</Name> |
− | <ID> | + | <ServiceClass> |
− | <Name /> | + | <ID>8</ID> |
− | <NameLat /> | + | <Name/> |
− | <Code /> | + | <NameLat/> |
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <ServiceClasses>None</ServiceClasses> | ||
+ | </ServiceClass> | ||
+ | <Attribute>0</Attribute> | ||
+ | <CountryKey>222</CountryKey> | ||
+ | <CityKey>25</CityKey> | ||
+ | <IsRequired>false</IsRequired> | ||
+ | <Direction>0</Direction> | ||
+ | <ServiceVariants> | ||
+ | <ExtraServiceVariant xsi:type="ExtraAddHotelService"> | ||
+ | <AvailableDate>2015-06-01T00:00:00</AvailableDate> | ||
+ | <Day>1</Day> | ||
+ | <PartnerKey>10760</PartnerKey> | ||
+ | <PacketKey>249</PacketKey> | ||
+ | <Cost>0</Cost> | ||
+ | <IsCostForPerson>true</IsCostForPerson> | ||
+ | <NMen>1</NMen> | ||
+ | <Description1> | ||
+ | <ID>0</ID> | ||
+ | <Name/> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </Description1> | ||
+ | <Description2> | ||
+ | <ID>3</ID> | ||
+ | <Name>test,1/</Name> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </Description2> | ||
+ | <IsPackage>false</IsPackage> | ||
+ | <HasDuration>false</HasDuration> | ||
+ | </ExtraServiceVariant> | ||
+ | <ExtraServiceVariant xsi:type="ExtraAddHotelService"> | ||
+ | <AvailableDate>2015-06-02T00:00:00</AvailableDate> | ||
+ | <Day>2</Day> | ||
+ | <PartnerKey>10760</PartnerKey> | ||
+ | <PacketKey>249</PacketKey> | ||
+ | <Cost>0</Cost> | ||
+ | <IsCostForPerson>true</IsCostForPerson> | ||
+ | <NMen>1</NMen> | ||
+ | <Description1> | ||
+ | <ID>0</ID> | ||
+ | <Name/> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </Description1> | ||
+ | <Description2> | ||
+ | <ID>3</ID> | ||
+ | <Name>test,1/</Name> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </Description2> | ||
+ | <IsPackage>false</IsPackage> | ||
+ | <HasDuration>false</HasDuration> | ||
+ | </ExtraServiceVariant> | ||
+ | </ServiceVariants> | ||
+ | </ExtraServiceInfo> | ||
+ | </GetExtraServiceInfoResult> | ||
+ | </GetExtraServiceInfoResponse> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | ====Метод получения нерассчитанных услуг (GetNotCalculatedServices)==== | ||
+ | =====Пример SOAP-запроса к сервису===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
+ | <soap:Body> | ||
+ | <GetNotCalculatedServices xmlns="http://megatec.ru/"> | ||
+ | <token>?</token> | ||
+ | <priceKey>5038425</priceKey> | ||
+ | </GetNotCalculatedServices> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | =====Пример SOAP-ответа сервиса===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
+ | <soap:Body> | ||
+ | <GetNotCalculatedServicesResponse xmlns="http://megatec.ru/"> | ||
+ | <GetNotCalculatedServicesResult> | ||
+ | <Service xsi:type="ExcursionService"> | ||
+ | <ID>-190</ID> | ||
+ | <Name>Экскурсия::Арльберг/Кладбища Австрии, /Крысиная упряжка /</Name> | ||
+ | <ExternalID>0</ExternalID> | ||
+ | <StartDate>0001-01-01T00:00:00</StartDate> | ||
+ | <EndDate>0001-01-01T00:00:00</EndDate> | ||
+ | <StartDay>1</StartDay> | ||
+ | <Duration>0</Duration> | ||
+ | <Attribute>1</Attribute> | ||
+ | <RateBrutto /> | ||
+ | <Brutto>0</Brutto> | ||
+ | <RateNetto /> | ||
+ | <Netto>0</Netto> | ||
+ | <NMen>0</NMen> | ||
+ | <Partner> | ||
+ | <ID>10760</ID> | ||
+ | <Name /> | ||
+ | <NameLat /> | ||
+ | <Code /> | ||
<CodeLat /> | <CodeLat /> | ||
<Unicode /> | <Unicode /> | ||
<Description /> | <Description /> | ||
− | <IsIncoming>false</IsIncoming> | + | <PartnersGroupID>0</PartnersGroupID> |
+ | <FullName /> | ||
+ | <BossName /> | ||
+ | <Fax /> | ||
+ | <Address /> | ||
+ | <Zip /> | ||
+ | <Email /> | ||
+ | <Phones /> | ||
+ | </Partner> | ||
+ | <Quota>NotChecked</Quota> | ||
+ | <PacketID>250</PacketID> | ||
+ | <City> | ||
+ | <ID>275</ID> | ||
+ | <Name /> | ||
+ | <NameLat /> | ||
+ | <Code /> | ||
+ | <CodeLat /> | ||
+ | <Unicode /> | ||
+ | <Description /> | ||
+ | </City> | ||
+ | <Country> | ||
+ | <ID>90</ID> | ||
+ | <Name /> | ||
+ | <NameLat /> | ||
+ | <Code /> | ||
+ | <CodeLat /> | ||
+ | <Unicode /> | ||
+ | <Description /> | ||
+ | <IsIncoming>false</IsIncoming> | ||
</Country> | </Country> | ||
<Tourists /> | <Tourists /> | ||
Строка 1089: | Строка 1446: | ||
<Notes /> | <Notes /> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>4</ID> |
<Name /> | <Name /> | ||
<NameLat /> | <NameLat /> | ||
Строка 1098: | Строка 1455: | ||
<ServiceClasses>None</ServiceClasses> | <ServiceClasses>None</ServiceClasses> | ||
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Excursion> |
− | <ID> | + | <ID>292</ID> |
− | <Name> | + | <Name>Кладбища Австрии</Name> |
− | <NameLat | + | <NameLat /> |
<Code /> | <Code /> | ||
<CodeLat /> | <CodeLat /> | ||
<Unicode /> | <Unicode /> | ||
<Description /> | <Description /> | ||
− | < | + | <PlaceFrom /> |
− | < | + | <PlaceTo /> |
− | < | + | <TimeBeg>0001-01-01T00:00:00</TimeBeg> |
− | </ | + | <TimeEnd>0001-01-01T00:00:00</TimeEnd> |
− | < | + | </Excursion> |
− | <ID> | + | <Transport> |
+ | <ID>28</ID> | ||
<Name /> | <Name /> | ||
<NameLat /> | <NameLat /> | ||
Строка 1118: | Строка 1476: | ||
<Unicode /> | <Unicode /> | ||
<Description /> | <Description /> | ||
− | + | </Transport> | |
− | + | </Service> | |
− | + | </GetNotCalculatedServicesResult> | |
− | + | </GetNotCalculatedServicesResponse> | |
− | + | </soap:Body> | |
− | + | </soap:Envelope> | |
− | + | </syntaxhighlight> | |
− | + | |} | |
− | + | <br /> | |
− | + | ====Метод получения вариантов услуги (GetServiceVariants)==== | |
− | + | =====Пример SOAP-запроса к сервису===== | |
− | + | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | |
− | + | ||
− | + | |- style="background-color:#F2F2F2" | |
− | + | |- style="vertical-align:text-top" | |
− | + | ||
− | + | | <syntaxhighlight lang="xml"> | |
− | + | <?xml version="1.0" encoding="utf-8"?> | |
− | + | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | |
− | + | <soap:Body> | |
− | + | <GetServiceVariants xmlns="http://megatec.ru/"> | |
− | + | <token>?</token> | |
− | + | <service xsi:type="FlightService"> | |
− | + | <StartDay>1</StartDay> | |
− | + | <Duration>0</Duration> | |
− | + | <Attribute>7</Attribute> | |
− | + | <RateBrutto>$</RateBrutto> | |
− | + | <NMen>1</NMen> | |
− | + | <Partner> | |
− | + | <ID>10762</ID> | |
− | + | </Partner> | |
− | + | <PacketID>248</PacketID> | |
− | + | <City> | |
− | + | <ID>275</ID> | |
− | + | </City> | |
− | + | <Country> | |
− | + | <ID>90</ID> | |
− | + | </Country> | |
− | + | <ServiceClass> | |
− | + | <ID>1</ID> | |
− | + | </ServiceClass> | |
− | + | <Tariff> | |
− | + | <ID>89</ID> | |
− | + | </Tariff> | |
− | + | <Flight> | |
− | + | <ID>523</ID> | |
− | + | </Flight> | |
− | + | </service> | |
− | + | <tourDate>2010-07-02T00:00:00</tourDate> | |
− | + | <tourDuration>11</tourDuration> | |
− | + | <allowHidden>false</allowHidden> | |
− | + | <allowHotelCodeChange>false</allowHotelCodeChange> | |
− | + | <checkFlightPacket>true</checkFlightPacket> | |
− | + | <checkQuotes>true</checkQuotes> | |
+ | <nMen>1</nMen> | ||
+ | <byRoom>false</byRoom> | ||
+ | <userKey>1</userKey> | ||
+ | <includeOriginal>true</includeOriginal> | ||
+ | <excludeCharterClasses /> | ||
+ | </GetServiceVariants> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | =====Пример SOAP-ответа сервиса===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
+ | <soap:Body> | ||
+ | <GetServiceVariantsResponse xmlns="http://megatec.ru/"> | ||
+ | <GetServiceVariantsResult> | ||
<Service xsi:type="FlightService"> | <Service xsi:type="FlightService"> | ||
− | <ID>- | + | <ID>-209</ID> |
− | <Name>А_П::Москва/Арльберг/ | + | <Name>А_П::Москва/Арльберг/P74211, DME-AL, 12:12-15:15/Y Экономический класс/</Name> |
<ExternalID>0</ExternalID> | <ExternalID>0</ExternalID> | ||
<StartDate>0001-01-01T00:00:00</StartDate> | <StartDate>0001-01-01T00:00:00</StartDate> | ||
Строка 1181: | Строка 1563: | ||
<Duration>0</Duration> | <Duration>0</Duration> | ||
<Attribute>7</Attribute> | <Attribute>7</Attribute> | ||
− | <RateBrutto /> | + | <RateBrutto>$</RateBrutto> |
<Brutto>0</Brutto> | <Brutto>0</Brutto> | ||
<RateNetto /> | <RateNetto /> | ||
Строка 1251: | Строка 1633: | ||
</Tariff> | </Tariff> | ||
<Flight> | <Flight> | ||
− | <ID> | + | <ID>525</ID> |
<Name /> | <Name /> | ||
<NameLat /> | <NameLat /> | ||
Строка 1277: | Строка 1659: | ||
</CityTo> | </CityTo> | ||
<AirportFrom> | <AirportFrom> | ||
− | <ID>- | + | <ID>-212</ID> |
<Name /> | <Name /> | ||
<NameLat /> | <NameLat /> | ||
− | <Code> | + | <Code>DME</Code> |
<CodeLat /> | <CodeLat /> | ||
<Unicode /> | <Unicode /> | ||
Строка 1286: | Строка 1668: | ||
</AirportFrom> | </AirportFrom> | ||
<AirportTo> | <AirportTo> | ||
− | <ID>- | + | <ID>-213</ID> |
<Name /> | <Name /> | ||
<NameLat /> | <NameLat /> | ||
Строка 1295: | Строка 1677: | ||
</AirportTo> | </AirportTo> | ||
<Airline> | <Airline> | ||
− | <ID>- | + | <ID>-211</ID> |
<Name /> | <Name /> | ||
<NameLat /> | <NameLat /> | ||
− | <Code> | + | <Code>P7</Code> |
<CodeLat /> | <CodeLat /> | ||
<Unicode /> | <Unicode /> | ||
<Description /> | <Description /> | ||
</Airline> | </Airline> | ||
− | <Number> | + | <Number>4211</Number> |
− | <TimeFrom>1899-01- | + | <TimeFrom>1899-01-01T12:12:00</TimeFrom> |
− | <TimeTo>1899-01- | + | <TimeTo>1899-01-01T15:15:00</TimeTo> |
<DateFrom>0001-01-01T00:00:00</DateFrom> | <DateFrom>0001-01-01T00:00:00</DateFrom> | ||
<DateTo>0001-01-01T00:00:00</DateTo> | <DateTo>0001-01-01T00:00:00</DateTo> | ||
Строка 1312: | Строка 1694: | ||
</Flight> | </Flight> | ||
</Service> | </Service> | ||
− | + | <Service xsi:type="FlightService"> | |
− | + | <ID>-245</ID> | |
− | + | <Name>А_П::Москва/Арльберг/SU1875, SVO1-AL, 20:20-23:30/Y Экономический класс/</Name> | |
− | + | <ExternalID>0</ExternalID> | |
− | </ | + | <StartDate>0001-01-01T00:00:00</StartDate> |
− | + | <EndDate>0001-01-01T00:00:00</EndDate> | |
− | < | + | <StartDay>1</StartDay> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <StartDay>1</StartDay> | ||
<Duration>0</Duration> | <Duration>0</Duration> | ||
− | <Attribute> | + | <Attribute>7</Attribute> |
+ | <RateBrutto /> | ||
+ | <Brutto>0</Brutto> | ||
+ | <RateNetto /> | ||
+ | <Netto>0</Netto> | ||
<NMen>1</NMen> | <NMen>1</NMen> | ||
<Partner> | <Partner> | ||
− | <ID> | + | <ID>10762</ID> |
− | </Partner> | + | <Name /> |
− | <PacketID> | + | <NameLat /> |
+ | <Code /> | ||
+ | <CodeLat /> | ||
+ | <Unicode /> | ||
+ | <Description /> | ||
+ | <PartnersGroupID>0</PartnersGroupID> | ||
+ | <FullName /> | ||
+ | <BossName /> | ||
+ | <Fax /> | ||
+ | <Address /> | ||
+ | <Zip /> | ||
+ | <Email /> | ||
+ | <Phones /> | ||
+ | </Partner> | ||
+ | <Quota>NotChecked</Quota> | ||
+ | <PacketID>248</PacketID> | ||
<City> | <City> | ||
<ID>275</ID> | <ID>275</ID> | ||
+ | <Name /> | ||
+ | <NameLat /> | ||
+ | <Code /> | ||
+ | <CodeLat /> | ||
+ | <Unicode /> | ||
+ | <Description /> | ||
</City> | </City> | ||
<Country> | <Country> | ||
<ID>90</ID> | <ID>90</ID> | ||
+ | <Name /> | ||
+ | <NameLat /> | ||
+ | <Code /> | ||
+ | <CodeLat /> | ||
+ | <Unicode /> | ||
+ | <Description /> | ||
+ | <IsIncoming>false</IsIncoming> | ||
</Country> | </Country> | ||
+ | <Tourists /> | ||
+ | <DetailNetto /> | ||
+ | <DetailBrutto /> | ||
+ | <Notes /> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>1</ID> |
+ | <Name /> | ||
+ | <NameLat /> | ||
+ | <Code /> | ||
+ | <CodeLat /> | ||
+ | <Unicode /> | ||
+ | <Description /> | ||
+ | <ServiceClasses>None</ServiceClasses> | ||
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Tariff> |
− | <ID> | + | <ID>89</ID> |
− | + | <Name>Экономический класс</Name> | |
− | + | <NameLat>Coach economy</NameLat> | |
− | < | + | <Code /> |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | <ServiceClassID>0</ServiceClassID> | |
− | + | <Comment /> | |
− | + | <CreateDate>0001-01-01T00:00:00</CreateDate> | |
− | < | + | </Tariff> |
− | <ID> | + | <Flight> |
− | + | <ID>523</ID> | |
− | + | <Name /> | |
− | + | <NameLat /> | |
− | < | + | <Code /> |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | <CityFrom> | |
− | + | <ID>1</ID> | |
− | + | <Name /> | |
− | + | <NameLat /> | |
− | + | <Code /> | |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | </CityFrom> | |
− | + | <CityTo> | |
− | + | <ID>275</ID> | |
− | <ID> | + | <Name /> |
− | + | <NameLat /> | |
− | + | <Code /> | |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | </CityTo> | |
− | + | <AirportFrom> | |
− | + | <ID>-248</ID> | |
− | + | <Name /> | |
− | + | <NameLat /> | |
− | + | <Code>SVO1</Code> | |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | </AirportFrom> | |
− | + | <AirportTo> | |
− | + | <ID>-249</ID> | |
− | + | <Name /> | |
− | + | <NameLat /> | |
− | + | <Code>AL</Code> | |
− | + | <CodeLat /> | |
− | + | <Unicode /> | |
− | + | <Description /> | |
− | + | </AirportTo> | |
− | < | + | <Airline> |
− | + | <ID>-247</ID> | |
− | + | <Name /> | |
− | + | <NameLat /> | |
− | + | <Code>SU</Code> | |
− | < | + | <CodeLat /> |
− | </ | + | <Unicode /> |
− | + | <Description /> | |
− | + | </Airline> | |
− | + | <Number>1875</Number> | |
− | + | <TimeFrom>1899-01-01T20:20:00</TimeFrom> | |
− | + | <TimeTo>1899-01-01T23:30:00</TimeTo> | |
− | + | <DateFrom>0001-01-01T00:00:00</DateFrom> | |
− | + | <DateTo>0001-01-01T00:00:00</DateTo> | |
− | + | <IsArrival>false</IsArrival> | |
− | + | <Available>No</Available> | |
− | + | </Flight> | |
− | + | </Service> | |
− | + | </GetServiceVariantsResult> | |
− | + | </GetServiceVariantsResponse> | |
− | <Service xsi:type=" | + | </soap:Body> |
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | ===Работа с сервисом «ReservationService.asmx» (Бронирование)=== | ||
+ | ====Метод расчета стоимости услуг (CalculateReservation)==== | ||
+ | =====Пример SOAP-запроса к сервису===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
+ | <soap:Body> | ||
+ | <CalculateReservation xmlns="http://megatec.ru/"> | ||
+ | <token>?</token> | ||
+ | <services> | ||
+ | <Service xsi:type="TransferService"> | ||
<StartDay>1</StartDay> | <StartDay>1</StartDay> | ||
− | <Duration> | + | <Duration>0</Duration> |
− | <Attribute> | + | <Attribute>19975</Attribute> |
<NMen>1</NMen> | <NMen>1</NMen> | ||
<Partner> | <Partner> | ||
<ID>10760</ID> | <ID>10760</ID> | ||
</Partner> | </Partner> | ||
− | |||
<PacketID>250</PacketID> | <PacketID>250</PacketID> | ||
<City> | <City> | ||
Строка 1445: | Строка 1873: | ||
</Country> | </Country> | ||
<ServiceClass> | <ServiceClass> | ||
+ | <ID>2</ID> | ||
+ | </ServiceClass> | ||
+ | <Transfer> | ||
+ | <ID>372</ID> | ||
+ | </Transfer> | ||
+ | <Transport> | ||
<ID>3</ID> | <ID>3</ID> | ||
+ | </Transport> | ||
+ | </Service> | ||
+ | <Service xsi:type="VisaService"> | ||
+ | <StartDay>1</StartDay> | ||
+ | <Duration>0</Duration> | ||
+ | <Attribute>131</Attribute> | ||
+ | <Partner> | ||
+ | <ID>10760</ID> | ||
+ | </Partner> | ||
+ | <PacketID>250</PacketID> | ||
+ | <Country> | ||
+ | <ID>90</ID> | ||
+ | </Country> | ||
+ | <ServiceClass> | ||
+ | <ID>5</ID> | ||
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Visa> |
− | <ID> | + | <ID>157</ID> |
− | </ | + | </Visa> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</Service> | </Service> | ||
− | <Service xsi:type=" | + | <Service xsi:type="InsuranceService"> |
− | <StartDay> | + | <StartDay>1</StartDay> |
− | <Duration> | + | <Duration>11</Duration> |
− | <Attribute> | + | <Attribute>151</Attribute> |
<NMen>1</NMen> | <NMen>1</NMen> | ||
<Partner> | <Partner> | ||
− | <ID> | + | <ID>10763</ID> |
</Partner> | </Partner> | ||
<PacketID>250</PacketID> | <PacketID>250</PacketID> | ||
− | |||
− | |||
− | |||
<Country> | <Country> | ||
<ID>90</ID> | <ID>90</ID> | ||
</Country> | </Country> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>6</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <AddDescription1> |
− | <ID> | + | <ID>6</ID> |
− | </ | + | </AddDescription1> |
− | < | + | <AddDescription2> |
− | <ID> | + | <ID>0</ID> |
− | </ | + | </AddDescription2> |
+ | <Insurance> | ||
+ | <ID>174</ID> | ||
+ | </Insurance> | ||
</Service> | </Service> | ||
− | <Service xsi:type=" | + | <Service xsi:type="AdditionalService"> |
<StartDay>1</StartDay> | <StartDay>1</StartDay> | ||
<Duration>0</Duration> | <Duration>0</Duration> | ||
− | <NMen> | + | <Attribute>3</Attribute> |
+ | <NMen>1</NMen> | ||
<Partner> | <Partner> | ||
− | <ID> | + | <ID>10760</ID> |
</Partner> | </Partner> | ||
− | <PacketID> | + | <Quota>NotChecked</Quota> |
+ | <PacketID>250</PacketID> | ||
+ | <Country> | ||
+ | <ID>90</ID> | ||
+ | </Country> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>1032</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Description> |
− | <ID> | + | <ID>183</ID> |
− | </ | + | </Description> |
− | < | + | <Description1> |
− | <ID> | + | <ID>0</ID> |
− | + | </Description1> | |
− | + | <Description2> | |
− | + | <ID>0</ID> | |
− | + | </Description2> | |
− | |||
− | |||
− | </ | ||
</Service> | </Service> | ||
− | <Service xsi:type=" | + | <Service xsi:type="HotelService"> |
− | <StartDay> | + | <StartDay>1</StartDay> |
− | <Duration> | + | <Duration>10</Duration> |
− | <Attribute> | + | <Attribute>390</Attribute> |
− | <NMen> | + | <NMen>1</NMen> |
<Partner> | <Partner> | ||
− | <ID> | + | <ID>10760</ID> |
</Partner> | </Partner> | ||
− | <PacketID> | + | <Quota>NotChecked</Quota> |
+ | <PacketID>250</PacketID> | ||
+ | <City> | ||
+ | <ID>275</ID> | ||
+ | </City> | ||
+ | <Country> | ||
+ | <ID>90</ID> | ||
+ | </Country> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>3</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Hotel> |
− | <ID> | + | <ID>3254</ID> |
− | </ | + | </Hotel> |
− | < | + | <Room> |
− | <ID> | + | <ID>1112</ID> |
− | < | + | <RoomType> |
− | <ID> | + | <ID>1</ID> |
− | </ | + | </RoomType> |
− | < | + | <RoomCategory> |
− | <ID> | + | <ID>20</ID> |
− | </ | + | </RoomCategory> |
− | </ | + | <RoomAccomodation> |
+ | <ID>320</ID> | ||
+ | </RoomAccomodation> | ||
+ | </Room> | ||
+ | <Pansion> | ||
+ | <ID>2</ID> | ||
+ | </Pansion> | ||
</Service> | </Service> | ||
− | + | <Service xsi:type="TransferService"> | |
− | + | <StartDay>8</StartDay> | |
− | + | <Duration>0</Duration> | |
− | + | <Attribute>19975</Attribute> | |
− | + | <NMen>1</NMen> | |
− | + | <Partner> | |
− | + | <ID>10760</ID> | |
− | + | </Partner> | |
− | + | <PacketID>250</PacketID> | |
− | + | <City> | |
− | + | <ID>275</ID> | |
− | + | </City> | |
− | + | <Country> | |
− | + | <ID>90</ID> | |
− | + | </Country> | |
− | + | <ServiceClass> | |
− | + | <ID>2</ID> | |
− | + | </ServiceClass> | |
− | </ | + | <Transfer> |
− | + | <ID>373</ID> | |
− | < | + | </Transfer> |
− | + | <Transport> | |
− | + | <ID>3</ID> | |
− | + | </Transport> | |
− | + | </Service> | |
− | + | <Service xsi:type="FlightService"> | |
− | + | <StartDay>1</StartDay> | |
− | + | <Duration>0</Duration> | |
− | < | + | <NMen>2</NMen> |
− | + | <Partner> | |
− | + | <ID>27990</ID> | |
− | + | </Partner> | |
− | + | <PacketID>19443</PacketID> | |
− | + | <ServiceClass> | |
− | + | <ID>1</ID> | |
− | + | </ServiceClass> | |
− | + | <Tariff> | |
− | + | <ID>226</ID> | |
− | + | </Tariff> | |
− | + | <Flight> | |
− | + | <ID>17234</ID> | |
− | + | <CityFrom> | |
− | + | <ID>30</ID> | |
− | </ | + | </CityFrom> |
− | + | <CityTo> | |
− | < | + | <ID>65</ID> |
− | + | </CityTo> | |
− | + | </Flight> | |
− | + | </Service> | |
− | + | <Service xsi:type="FlightService"> | |
− | + | <StartDay>8</StartDay> | |
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | <Service xsi:type=" | ||
− | <StartDay> | ||
<Duration>0</Duration> | <Duration>0</Duration> | ||
− | <Attribute> | + | <Attribute>0</Attribute> |
− | <NMen> | + | <NMen>2</NMen> |
<Partner> | <Partner> | ||
− | <ID> | + | <ID>27990</ID> |
</Partner> | </Partner> | ||
− | <PacketID> | + | <PacketID>18920</PacketID> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>1</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Tariff> |
− | <ID> | + | <ID>226</ID> |
− | </ | + | </Tariff> |
− | < | + | <Flight> |
− | <ID> | + | <ID>17235</ID> |
− | + | <CityFrom> | |
− | + | <ID>65</ID> | |
− | + | </CityFrom> | |
− | + | <CityTo> | |
− | + | <ID>30</ID> | |
− | + | </CityTo> | |
− | + | </Flight> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | <ID> | ||
− | </ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
</Service> | </Service> | ||
− | < | + | </services> |
− | + | <parameters> | |
− | + | <AdvertiseID>-1</AdvertiseID> | |
− | + | <CauseDiscountID>-1</CauseDiscountID> | |
− | + | <CountryID>90</CountryID> | |
− | + | <DupUserID>-1</DupUserID> | |
− | + | <OperatorName /> | |
− | + | <OwnerID>-1</OwnerID> | |
− | + | <PartnerID>10764</PartnerID> | |
− | + | <RateCode /> | |
− | + | <ReserveDuration>-1</ReserveDuration> | |
− | + | <TourDate>2010-07-02T00:00:00</TourDate> | |
− | + | <TourID>542</TourID> | |
− | + | <TouristsCount>1</TouristsCount> | |
− | + | </parameters> | |
− | + | </CalculateReservation> | |
− | + | </soap:Body> | |
− | + | </soap:Envelope> | |
− | + | </syntaxhighlight> | |
− | + | |} | |
− | + | <br /> | |
− | + | ||
− | + | =====Пример SOAP-ответа сервиса===== | |
− | + | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | |
− | + | ||
− | + | |- style="background-color:#F2F2F2" | |
− | + | |- style="vertical-align:text-top" | |
− | + | ||
− | + | | <syntaxhighlight lang="xml"> | |
− | + | <?xml version="1.0" encoding="utf-8"?> | |
− | <Service xsi:type=" | + | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
− | <StartDay>1</StartDay> | + | <soap:Body> |
+ | <CalculateReservationResponse xmlns="http://megatec.ru/"> | ||
+ | <CalculateReservationResult> | ||
+ | <Brutto>1646</Brutto> | ||
+ | <DiscountPercent>10</DiscountPercent> | ||
+ | <DiscountSumm>172</DiscountSumm> | ||
+ | <Rate>$</Rate> | ||
+ | <ReservationCode /> | ||
+ | <ErrorMessage /> | ||
+ | </CalculateReservationResult> | ||
+ | </CalculateReservationResponse> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | ====Метод бронирования услуг (CreateReservation)==== | ||
+ | =====Пример SOAP-запроса к сервису===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
+ | <soap:Body> | ||
+ | <CreateReservation xmlns="http://megatec.ru/"> | ||
+ | <token>?</token> | ||
+ | <services> | ||
+ | <Service xsi:type="TransferService"> | ||
+ | <StartDay>1</StartDay> | ||
<Duration>0</Duration> | <Duration>0</Duration> | ||
− | <Attribute> | + | <Attribute>19975</Attribute> |
<NMen>1</NMen> | <NMen>1</NMen> | ||
<Partner> | <Partner> | ||
<ID>10760</ID> | <ID>10760</ID> | ||
</Partner> | </Partner> | ||
− | |||
<PacketID>250</PacketID> | <PacketID>250</PacketID> | ||
+ | <City> | ||
+ | <ID>275</ID> | ||
+ | </City> | ||
<Country> | <Country> | ||
<ID>90</ID> | <ID>90</ID> | ||
Строка 1701: | Строка 2145: | ||
</Tourists> | </Tourists> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>2</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Transfer> |
− | <ID> | + | <ID>372</ID> |
− | </ | + | </Transfer> |
− | < | + | <Transport> |
− | <ID> | + | <ID>3</ID> |
− | </ | + | </Transport> |
− | |||
− | |||
− | |||
</Service> | </Service> | ||
− | <Service xsi:type=" | + | <Service xsi:type="VisaService"> |
<StartDay>1</StartDay> | <StartDay>1</StartDay> | ||
− | <Duration> | + | <Duration>0</Duration> |
− | <Attribute> | + | <Attribute>131</Attribute> |
− | |||
<Partner> | <Partner> | ||
<ID>10760</ID> | <ID>10760</ID> | ||
</Partner> | </Partner> | ||
− | |||
<PacketID>250</PacketID> | <PacketID>250</PacketID> | ||
− | |||
− | |||
− | |||
<Country> | <Country> | ||
<ID>90</ID> | <ID>90</ID> | ||
Строка 1735: | Строка 2171: | ||
</Tourists> | </Tourists> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>5</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Visa> |
− | <ID> | + | <ID>157</ID> |
− | </ | + | </Visa> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</Service> | </Service> | ||
− | <Service xsi:type=" | + | <Service xsi:type="ExcursionService"> |
− | <StartDay> | + | <StartDay>2</StartDay> |
− | <Duration> | + | <Duration>1</Duration> |
− | <Attribute> | + | <Attribute>0</Attribute> |
− | |||
<Partner> | <Partner> | ||
− | <ID> | + | <ID>10771</ID> |
</Partner> | </Partner> | ||
− | <PacketID> | + | <PacketID>682</PacketID> |
<City> | <City> | ||
− | <ID> | + | <ID>35</ID> |
</City> | </City> | ||
<Country> | <Country> | ||
Строка 1777: | Строка 2197: | ||
</Tourists> | </Tourists> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>4</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Excursion> |
− | <ID> | + | <ID>52</ID> |
− | </ | + | </Excursion> |
<Transport> | <Transport> | ||
<ID>3</ID> | <ID>3</ID> | ||
− | </Transport> | + | </Transport> |
</Service> | </Service> | ||
− | <Service xsi:type=" | + | <Service xsi:type="InsuranceService"> |
<StartDay>1</StartDay> | <StartDay>1</StartDay> | ||
− | <Duration> | + | <Duration>11</Duration> |
− | <NMen> | + | <Attribute>151</Attribute> |
+ | <NMen>1</NMen> | ||
<Partner> | <Partner> | ||
− | <ID> | + | <ID>10763</ID> |
</Partner> | </Partner> | ||
− | <PacketID> | + | <PacketID>250</PacketID> |
+ | <Country> | ||
+ | <ID>90</ID> | ||
+ | </Country> | ||
<Tourists> | <Tourists> | ||
<Tourist> | <Tourist> | ||
Строка 1800: | Строка 2224: | ||
</Tourists> | </Tourists> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>6</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <AddDescription1> |
− | <ID> | + | <ID>6</ID> |
− | </ | + | </AddDescription1> |
− | < | + | <AddDescription2> |
− | <ID> | + | <ID>0</ID> |
− | + | </AddDescription2> | |
− | + | <Insurance> | |
− | + | <ID>174</ID> | |
− | + | </Insurance> | |
− | |||
− | |||
− | </ | ||
</Service> | </Service> | ||
− | <Service xsi:type=" | + | <Service xsi:type="AdditionalService"> |
− | <StartDay> | + | <StartDay>1</StartDay> |
<Duration>0</Duration> | <Duration>0</Duration> | ||
− | <Attribute> | + | <Attribute>3</Attribute> |
− | <NMen> | + | <NMen>1</NMen> |
<Partner> | <Partner> | ||
− | <ID> | + | <ID>10760</ID> |
</Partner> | </Partner> | ||
− | <PacketID> | + | <Quota>NotChecked</Quota> |
+ | <PacketID>250</PacketID> | ||
+ | <Country> | ||
+ | <ID>90</ID> | ||
+ | </Country> | ||
<Tourists> | <Tourists> | ||
<Tourist> | <Tourist> | ||
Строка 1830: | Строка 2255: | ||
</Tourists> | </Tourists> | ||
<ServiceClass> | <ServiceClass> | ||
− | <ID> | + | <ID>1032</ID> |
</ServiceClass> | </ServiceClass> | ||
− | < | + | <Description> |
− | <ID> | + | <ID>183</ID> |
− | </ | + | </Description> |
− | < | + | <Description1> |
− | <ID> | + | <ID>0</ID> |
− | + | </Description1> | |
− | + | <Description2> | |
− | + | <ID>0</ID> | |
− | + | </Description2> | |
− | |||
− | |||
− | </ | ||
</Service> | </Service> | ||
− | + | <Service xsi:type="HotelService"> | |
− | + | <StartDay>1</StartDay> | |
− | < | + | <Duration>10</Duration> |
− | <ID> | + | <Attribute>390</Attribute> |
− | < | + | <NMen>1</NMen> |
− | < | + | <Partner> |
− | < | + | <ID>10760</ID> |
− | < | + | </Partner> |
− | </ | + | <Quota>NotChecked</Quota> |
− | < | + | <PacketID>250</PacketID> |
− | < | + | <City> |
− | < | + | <ID>275</ID> |
− | < | + | </City> |
− | </ | + | <Country> |
− | + | <ID>90</ID> | |
− | < | + | </Country> |
− | + | <Tourists> | |
− | + | <Tourist> | |
− | + | <ID>0</ID> | |
− | + | </Tourist> | |
− | + | </Tourists> | |
− | + | <ServiceClass> | |
− | + | <ID>3</ID> | |
− | < | + | </ServiceClass> |
− | < | + | <Hotel> |
− | + | <ID>3254</ID> | |
− | + | </Hotel> | |
− | + | <Room> | |
− | + | <ID>1112</ID> | |
− | + | <RoomType> | |
− | + | <ID>1</ID> | |
− | + | </RoomType> | |
− | + | <RoomCategory> | |
− | + | <ID>20</ID> | |
− | </ | + | </RoomCategory> |
− | + | <RoomAccomodation> | |
− | < | + | <ID>320</ID> |
− | + | </RoomAccomodation> | |
− | + | </Room> | |
− | + | <Pansion> | |
− | + | <ID>2</ID> | |
− | + | </Pansion> | |
− | + | <Notes>some service comment</Notes> | |
− | + | <Brutto>2</Brutto> | |
− | + | <RateBrutto>$</RateBrutto> | |
− | + | <Netto>3</Netto> | |
− | + | <Discount>4</Discount> | |
− | + | </Service> | |
− | + | <Service xsi:type="TransferService"> | |
− | < | + | <StartDay>8</StartDay> |
− | < | + | <Duration>0</Duration> |
− | < | + | <Attribute>19975</Attribute> |
− | < | + | <NMen>1</NMen> |
− | < | + | <Partner> |
− | < | + | <ID>10760</ID> |
− | </ | + | </Partner> |
− | + | <PacketID>250</PacketID> | |
− | </soap:Body> | + | <City> |
− | </soap:Envelope> | + | <ID>275</ID> |
− | </syntaxhighlight> | + | </City> |
− | |} | + | <Country> |
− | <br /> | + | <ID>90</ID> |
− | + | </Country> | |
− | =====Пример SOAP- | + | <Tourists> |
− | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | + | <Tourist> |
− | + | <ID>0</ID> | |
− | |- style="background-color:#F2F2F2" | + | </Tourist> |
+ | </Tourists> | ||
+ | <ServiceClass> | ||
+ | <ID>2</ID> | ||
+ | </ServiceClass> | ||
+ | <Transfer> | ||
+ | <ID>373</ID> | ||
+ | </Transfer> | ||
+ | <Transport> | ||
+ | <ID>3</ID> | ||
+ | </Transport> | ||
+ | </Service> | ||
+ | <Service xsi:type="FlightService"> | ||
+ | <StartDay>1</StartDay> | ||
+ | <Duration>0</Duration> | ||
+ | <NMen>2</NMen> | ||
+ | <Partner> | ||
+ | <ID>27990</ID> | ||
+ | </Partner> | ||
+ | <PacketID>19443</PacketID> | ||
+ | <Tourists> | ||
+ | <Tourist> | ||
+ | <ID>0</ID> | ||
+ | </Tourist> | ||
+ | </Tourists> | ||
+ | <ServiceClass> | ||
+ | <ID>1</ID> | ||
+ | </ServiceClass> | ||
+ | <Tariff> | ||
+ | <ID>226</ID> | ||
+ | </Tariff> | ||
+ | <Flight> | ||
+ | <ID>17234</ID> | ||
+ | <CityFrom> | ||
+ | <ID>30</ID> | ||
+ | </CityFrom> | ||
+ | <CityTo> | ||
+ | <ID>65</ID> | ||
+ | </CityTo> | ||
+ | </Flight> | ||
+ | </Service> | ||
+ | <Service xsi:type="FlightService"> | ||
+ | <StartDay>8</StartDay> | ||
+ | <Duration>0</Duration> | ||
+ | <Attribute>0</Attribute> | ||
+ | <NMen>2</NMen> | ||
+ | <Partner> | ||
+ | <ID>27990</ID> | ||
+ | </Partner> | ||
+ | <PacketID>18920</PacketID> | ||
+ | <Tourists> | ||
+ | <Tourist> | ||
+ | <ID>0</ID> | ||
+ | </Tourist> | ||
+ | </Tourists> | ||
+ | <ServiceClass> | ||
+ | <ID>1</ID> | ||
+ | </ServiceClass> | ||
+ | <Tariff> | ||
+ | <ID>226</ID> | ||
+ | </Tariff> | ||
+ | <Flight> | ||
+ | <ID>17235</ID> | ||
+ | <CityFrom> | ||
+ | <ID>65</ID> | ||
+ | </CityFrom> | ||
+ | <CityTo> | ||
+ | <ID>30</ID> | ||
+ | </CityTo> | ||
+ | </Flight> | ||
+ | </Service> | ||
+ | </services> | ||
+ | <tourists> | ||
+ | <Tourist Sex="Male" BirthDate="1980-02-01T00:00:00" AgeType="Adult" Citizen="" IsMain="true" ExternalID="0"> | ||
+ | <ID>0</ID> | ||
+ | <Name> | ||
+ | <FirstName /> | ||
+ | <SecondName /> | ||
+ | <LastName /> | ||
+ | </Name> | ||
+ | <NameLat> | ||
+ | <FirstName>SEMEN</FirstName> | ||
+ | <SecondName /> | ||
+ | <LastName>IVANOV</LastName> | ||
+ | </NameLat> | ||
+ | </Tourist> | ||
+ | </tourists> | ||
+ | <parameters> | ||
+ | <AdvertiseID>-1</AdvertiseID> | ||
+ | <CauseDiscountID>-1</CauseDiscountID> | ||
+ | <ExternalReservationId>ext res code</ExternalReservationId> | ||
+ | <CountryID>90</CountryID> | ||
+ | <DupUserID>-1</DupUserID> | ||
+ | <OperatorName /> | ||
+ | <OwnerID>-1</OwnerID> | ||
+ | <PartnerID>10764</PartnerID> | ||
+ | <RateCode /> | ||
+ | <ReserveDuration>-1</ReserveDuration> | ||
+ | <TourDate>2010-07-02T00:00:00</TourDate> | ||
+ | <TourID>542</TourID> | ||
+ | <TouristsCount>1</TouristsCount> | ||
+ | </parameters> </CreateReservation> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | =====Пример SOAP-ответа сервиса===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
− | + | ||
− | | <syntaxhighlight lang="xml"> | + | | <syntaxhighlight lang="xml"> |
− | <?xml version="1.0" encoding="utf-8"?> | + | <?xml version="1.0" encoding="utf-8"?> |
− | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://megatec.ru/"> | + | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
− | <soap:Header/> | + | <soap:Body> |
− | <soap:Body> | + | <CreateReservationResponse xmlns="http://megatec.ru/"> |
− | <GetDogovorInfo xmlns="http://megatec.ru/"> | + | <CreateReservationResult> |
− | <token>?</token> | + | <Brutto>1646</Brutto> |
− | <reservationCode>EN40228001</reservationCode> | + | <DiscountPercent>10</DiscountPercent> |
− | </GetDogovorInfo> | + | <DiscountSumm>172</DiscountSumm> |
− | </soap:Body> | + | <Rate>$</Rate> |
− | </soap:Envelope> | + | <ReservationCode>AT 0702007</ReservationCode> |
+ | <ErrorMessage /> | ||
+ | </CreateReservationResult> | ||
+ | </CreateReservationResponse> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | ====Метод получения данных по путевке (GetDogovorInfo)==== | ||
+ | =====Пример SOAP-запроса к сервису===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://megatec.ru/"> | ||
+ | <soap:Header/> | ||
+ | <soap:Body> | ||
+ | <GetDogovorInfo xmlns="http://megatec.ru/"> | ||
+ | <token>?</token> | ||
+ | <reservationCode>EN40228001</reservationCode> | ||
+ | </GetDogovorInfo> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | <br /> | ||
+ | =====Пример SOAP-ответа сервиса===== | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
+ | <soap:Body> | ||
+ | <GetDogovorInfoResponse xmlns="http://megatec.ru/"> | ||
+ | <GetDogovorInfoResult> | ||
+ | <Code>LON8052402</Code> | ||
+ | <TurDate>2018-05-24T00:00:00</TurDate> | ||
+ | <Price>4537</Price> | ||
+ | <Discount>10</Discount> | ||
+ | <DiscountSum>30</DiscountSum> | ||
+ | <DogovorStatus>3</DogovorStatus> | ||
+ | <Nmen>6</Nmen> | ||
+ | <Ndays>6</Ndays> | ||
+ | <CountryName>Англия</CountryName> | ||
+ | <CityName>Лондон</CityName> | ||
+ | <RateCode>USD</RateCode> | ||
+ | <ReservationServices> | ||
+ | <Service xsi:type="HotelService" Brutto="472.5" Netto="450"> | ||
+ | <ID>-150</ID> | ||
+ | <Name> | ||
+ | HOTEL::Лондон/Тестовый отель-1*,5 ночей/DBL(Standart),2A/FB Пансион/ | ||
+ | </Name> | ||
+ | <ExternalID>0</ExternalID> | ||
+ | <StartDate>2018-05-24T00:00:00</StartDate> | ||
+ | <EndDate>2018-05-28T00:00:00</EndDate> | ||
+ | <StartDay>1</StartDay> | ||
+ | <Duration>5</Duration> | ||
+ | <Attribute>670</Attribute> | ||
+ | <RateBrutto/> | ||
+ | <Brutto>472.5</Brutto> | ||
+ | <DetailBrutto/> | ||
+ | <RateNetto/> | ||
+ | <Netto>450</Netto> | ||
+ | <DetailNetto/> | ||
+ | <Discount xsi:nil="true"/> | ||
+ | <NMen>3</NMen> | ||
+ | <Partner> | ||
+ | <ID>10766</ID> | ||
+ | <Name>Консульство</Name> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <PartnersGroupID>0</PartnersGroupID> | ||
+ | <FullName/> | ||
+ | <BossName/> | ||
+ | <Fax/> | ||
+ | <Address/> | ||
+ | <Zip/> | ||
+ | <Email/> | ||
+ | <Phones/> | ||
+ | </Partner> | ||
+ | <Status> | ||
+ | <ID>1</ID> | ||
+ | <Name>Заказ на бронирование</Name> | ||
+ | <NameLat>order for booking</NameLat> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </Status> | ||
+ | <Quota>NotChecked</Quota> | ||
+ | <PacketID>211</PacketID> | ||
+ | <City> | ||
+ | <ID>25</ID> | ||
+ | <Name/> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </City> | ||
+ | <Country> | ||
+ | <ID>222</ID> | ||
+ | <Name/> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <IsIncoming>false</IsIncoming> | ||
+ | </Country> | ||
+ | <Tourists> | ||
+ | <Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="true" ExternalID="0"> | ||
+ | <ID>1</ID> | ||
+ | <Name> | ||
+ | <FirstName>AAA</FirstName> | ||
+ | <LastName>AAA</LastName> | ||
+ | </Name> | ||
+ | <NameLat> | ||
+ | <FirstName>AAA</FirstName> | ||
+ | <LastName>AAA</LastName> | ||
+ | </NameLat> | ||
+ | <LocalPassport IssuedBy="" Series="" Number=""/> | ||
+ | <ForeignPassport IssuedBy="" Series="" Number=""/> | ||
+ | </Tourist> | ||
+ | <Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="false" ExternalID="0"> | ||
+ | <ID>2</ID> | ||
+ | <Name> | ||
+ | <FirstName>BBB</FirstName> | ||
+ | <LastName>BBB</LastName> | ||
+ | </Name> | ||
+ | <NameLat> | ||
+ | <FirstName>BBB</FirstName> | ||
+ | <LastName>BBB</LastName> | ||
+ | </NameLat> | ||
+ | <LocalPassport IssuedBy="" Series="" Number=""/> | ||
+ | <ForeignPassport IssuedBy="" Series="" Number=""/> | ||
+ | </Tourist> | ||
+ | <Tourist Sex="Female" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="false" ExternalID="0"> | ||
+ | <ID>3</ID> | ||
+ | <Name> | ||
+ | <FirstName>CCC</FirstName> | ||
+ | <LastName>CCC</LastName> | ||
+ | </Name> | ||
+ | <NameLat> | ||
+ | <FirstName>CCC</FirstName> | ||
+ | <LastName>CCC</LastName> | ||
+ | </NameLat> | ||
+ | <LocalPassport IssuedBy="" Series="" Number=""/> | ||
+ | <ForeignPassport IssuedBy="" Series="" Number=""/> | ||
+ | </Tourist> | ||
+ | </Tourists> | ||
+ | <Notes/> | ||
+ | <PartnerContractId>0</PartnerContractId> | ||
+ | <LinkingStatus>0</LinkingStatus> | ||
+ | <LinkingServiceKey>0</LinkingServiceKey> | ||
+ | <IsAllNetCostOffers>false</IsAllNetCostOffers> | ||
+ | <IsAllGrossCostOffers>false</IsAllGrossCostOffers> | ||
+ | <ServiceClass> | ||
+ | <ID>3</ID> | ||
+ | <Name>Отель/Круиз</Name> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <ServiceClasses>None</ServiceClasses> | ||
+ | </ServiceClass> | ||
+ | <IsGroup>false</IsGroup> | ||
+ | <Hotel> | ||
+ | <ID>3231</ID> | ||
+ | <Name>Тестовый отель 1*</Name> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <City> | ||
+ | <ID>3231</ID> | ||
+ | <Name>Лондон</Name> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </City> | ||
+ | </Hotel> | ||
+ | <Room> | ||
+ | <ID>1117</ID> | ||
+ | <Name/> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <RoomType> | ||
+ | <ID>2</ID> | ||
+ | <Name>DBL</Name> | ||
+ | <NameLat/> | ||
+ | <Code>DBL</Code> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <Places> | ||
+ | <Main>2</Main> | ||
+ | <Extra>3</Extra> | ||
+ | </Places> | ||
+ | </RoomType> | ||
+ | <RoomCategory> | ||
+ | <ID>20</ID> | ||
+ | <Name>Standart</Name> | ||
+ | <NameLat/> | ||
+ | <Code>STD</Code> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <PrintOrder>0</PrintOrder> | ||
+ | </RoomCategory> | ||
+ | <RoomAccomodation> | ||
+ | <ID>325</ID> | ||
+ | <Name>2A</Name> | ||
+ | <NameLat/> | ||
+ | <Code>2A</Code> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <Places> | ||
+ | <Main>2</Main> | ||
+ | <Extra>1</Extra> | ||
+ | </Places> | ||
+ | <IsMain>true</IsMain> | ||
+ | <AgeRange AgeFrom="0" AgeTo="0"/> | ||
+ | <AgeRange2 AgeFrom="0" AgeTo="0"/> | ||
+ | <PerRoom>true</PerRoom> | ||
+ | </RoomAccomodation> | ||
+ | </Room> | ||
+ | <Pansion> | ||
+ | <ID>1</ID> | ||
+ | <Name>Пансион</Name> | ||
+ | <NameLat/> | ||
+ | <Code>FB</Code> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </Pansion> | ||
+ | </Service> | ||
+ | <Service xsi:type="ExcursionService" Brutto="5.25" Netto="5"> | ||
+ | <ID>-162</ID> | ||
+ | <Name> | ||
+ | Экскурсия::Лондон/Британский музей, 3 часа/автобус,20 чел./ | ||
+ | </Name> | ||
+ | <ExternalID>0</ExternalID> | ||
+ | <StartDate>2018-05-24T00:00:00</StartDate> | ||
+ | <EndDate>2018-05-24T00:00:00</EndDate> | ||
+ | <StartDay>1</StartDay> | ||
+ | <Duration>0</Duration> | ||
+ | <Attribute>0</Attribute> | ||
+ | <RateBrutto/> | ||
+ | <Brutto>5.25</Brutto> | ||
+ | <DetailBrutto/> | ||
+ | <RateNetto/> | ||
+ | <Netto>5</Netto> | ||
+ | <DetailNetto/> | ||
+ | <Discount xsi:nil="true"/> | ||
+ | <NMen>1</NMen> | ||
+ | <Partner> | ||
+ | <ID>10760</ID> | ||
+ | <Name>партнер</Name> | ||
+ | <NameLat>partner</NameLat> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <PartnersGroupID>0</PartnersGroupID> | ||
+ | <FullName/> | ||
+ | <BossName/> | ||
+ | <Fax/> | ||
+ | <Address/> | ||
+ | <Zip/> | ||
+ | <Email/> | ||
+ | <Phones/> | ||
+ | </Partner> | ||
+ | <Status> | ||
+ | <ID>0</ID> | ||
+ | <Name>Ok</Name> | ||
+ | <NameLat>Ok</NameLat> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </Status> | ||
+ | <Quota>NotChecked</Quota> | ||
+ | <PacketID>252</PacketID> | ||
+ | <City> | ||
+ | <ID>25</ID> | ||
+ | <Name/> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </City> | ||
+ | <Country> | ||
+ | <ID>222</ID> | ||
+ | <Name/> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <IsIncoming>false</IsIncoming> | ||
+ | </Country> | ||
+ | <Tourists> | ||
+ | <Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="true" ExternalID="0"> | ||
+ | <ID>1</ID> | ||
+ | <Name> | ||
+ | <FirstName>AAA</FirstName> | ||
+ | <LastName>AAA</LastName> | ||
+ | </Name> | ||
+ | <NameLat> | ||
+ | <FirstName>AAA</FirstName> | ||
+ | <LastName>AAA</LastName> | ||
+ | </NameLat> | ||
+ | <LocalPassport IssuedBy="" Series="" Number=""/> | ||
+ | <ForeignPassport IssuedBy="" Series="" Number=""/> | ||
+ | </Tourist> | ||
+ | </Tourists> | ||
+ | <Notes/> | ||
+ | <PartnerContractId>0</PartnerContractId> | ||
+ | <LinkingStatus>0</LinkingStatus> | ||
+ | <LinkingServiceKey>0</LinkingServiceKey> | ||
+ | <IsAllNetCostOffers>false</IsAllNetCostOffers> | ||
+ | <IsAllGrossCostOffers>false</IsAllGrossCostOffers> | ||
+ | <ServiceClass> | ||
+ | <ID>4</ID> | ||
+ | <Name>Экскурсия</Name> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <ServiceClasses>None</ServiceClasses> | ||
+ | </ServiceClass> | ||
+ | <IsGroup>false</IsGroup> | ||
+ | <Excursion> | ||
+ | <ID>41</ID> | ||
+ | <Name>Британский музей</Name> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | <PlaceFrom/> | ||
+ | <PlaceTo/> | ||
+ | <TimeBeg>0001-01-01T00:00:00</TimeBeg> | ||
+ | <TimeEnd>0001-01-01T00:00:00</TimeEnd> | ||
+ | </Excursion> | ||
+ | <Transport> | ||
+ | <ID>3</ID> | ||
+ | <Name/> | ||
+ | <NameLat/> | ||
+ | <Code/> | ||
+ | <CodeLat/> | ||
+ | <Unicode/> | ||
+ | <Description/> | ||
+ | </Transport> | ||
+ | </Service> | ||
+ | </ReservationServices> | ||
+ | <ReservationTourists> | ||
+ | <Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="true" ExternalID="0"> | ||
+ | <ID>1</ID> | ||
+ | <Name> | ||
+ | <FirstName>AAA</FirstName> | ||
+ | <LastName>AAA</LastName> | ||
+ | </Name> | ||
+ | <NameLat> | ||
+ | <FirstName>AAA</FirstName> | ||
+ | <LastName>AAA</LastName> | ||
+ | </NameLat> | ||
+ | <LocalPassport IssuedBy="" Series="" Number=""/> | ||
+ | <ForeignPassport IssuedBy="" Series="" Number=""/> | ||
+ | </Tourist> | ||
+ | <Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="false" ExternalID="0"> | ||
+ | <ID>2</ID> | ||
+ | <Name> | ||
+ | <FirstName>BBB</FirstName> | ||
+ | <LastName>BBB</LastName> | ||
+ | </Name> | ||
+ | <NameLat> | ||
+ | <FirstName>BBB</FirstName> | ||
+ | <LastName>BBB</LastName> | ||
+ | </NameLat> | ||
+ | <LocalPassport IssuedBy="" Series="" Number=""/> | ||
+ | <ForeignPassport IssuedBy="" Series="" Number=""/> | ||
+ | </Tourist> | ||
+ | <Tourist Sex="Female" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="false" ExternalID="0"> | ||
+ | <ID>3</ID> | ||
+ | <Name> | ||
+ | <FirstName>CCC</FirstName> | ||
+ | <LastName>CCC</LastName> | ||
+ | </Name> | ||
+ | <NameLat> | ||
+ | <FirstName>CCC</FirstName> | ||
+ | <LastName>CCC</LastName> | ||
+ | </NameLat> | ||
+ | <LocalPassport IssuedBy="" Series="" Number=""/> | ||
+ | <ForeignPassport IssuedBy="" Series="" Number=""/> | ||
+ | </Tourist> | ||
+ | </ReservationTourists> | ||
+ | <DogovorGlobalStatus>3</DogovorGlobalStatus> | ||
+ | </ReservationInfo> | ||
+ | </GetDogovorInfoResult> | ||
+ | </GetDogovorInfoResponse> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
<br /> | <br /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====Метод получения информации по путевке (GetReservationInfo)==== | ====Метод получения информации по путевке (GetReservationInfo)==== | ||
=====Пример SOAP-запроса к сервису===== | =====Пример SOAP-запроса к сервису===== | ||
Строка 2123: | Строка 2985: | ||
Метод ничего не возвращает. | Метод ничего не возвращает. | ||
− | [[Category: | + | [[Category:Web-сервисы]] |
Текущая версия на 12:44, 24 мая 2018
Версия статьи от 24-05-2018.
Более ранние версии: |
Содержание
- 1 Введение
- 2 Установка
- 3 Настройка
- 4 Настройки в файле WEB.CONFIG
- 5 Подготовка данных
- 5.1 Описание формата данных
- 5.1.1 MainDependentAccommodation (Доступное основное или зависимое размещение)
- 5.1.2 CalculatedPriceInfo (Информация по расчитанной цене)
- 5.1.3 ReservationParams (Параметры бронирования)
- 5.1.4 ReservationResult (Результат расчета стоимости и бронирования комплекса услуг)
- 5.1.5 ReservationInfoParams (Параметры путевки)
- 5.1.6 ReservationInfo (Описание путевки, включая все услуги и туристов)
- 5.2 Сервис формирования списка услуг («ServiceProvider.asmx»)
- 5.2.1 Метод получения основных и неосновных размещений (GetAvailableAccommodations)
- 5.2.2 Метод получения информации по ключу цены (GetCalculatedPriceInfo)
- 5.2.3 Метод получения рассчитанных услуг (GetCalculatedServices)
- 5.2.4 Метод получения информации о дополнительных услугах (GetExtraServiceInfo)
- 5.2.5 Метод получения дополнительных услуг (GetNotCalculatedServices)
- 5.2.6 Метод получения вариантов услуги (GetServiceVariants)
- 5.3 Сервис бронирования (ReservationService.asmx)
- 5.1 Описание формата данных
- 6 Работа в системе
- 6.1 Работа с сервисом «ServiceProvider.asmx» (Формирование списка услуг)
- 6.1.1 Метод получения основных и неосновных размещений (GetAvailableAccommodations )
- 6.1.2 Метод получения информации по ключу цены (GetCalculatedPriceInfo )
- 6.1.3 Метод получения рассчитанных услуг (GetCalculatedServices)
- 6.1.4 Meтод получения получения информации о дополнительных услугах (GetExtraServiceInfo)
- 6.1.5 Метод получения нерассчитанных услуг (GetNotCalculatedServices)
- 6.1.6 Метод получения вариантов услуги (GetServiceVariants)
- 6.2 Работа с сервисом «ReservationService.asmx» (Бронирование)
- 6.1 Работа с сервисом «ServiceProvider.asmx» (Формирование списка услуг)
Введение
Данный модуль включает в себя два сервиса.
Сервис формирования списка услуг предназначен для получения следующей информации:
- Общие данные по ключу цены, такие как тур, продолжительности в днях и ночах, описание тура и условия бронирования;
- Список услуг, включенных в стоимость, по ключу цены;
- Список не рассчитанных услуг по ключу цены;
- Список вариантов какой-либо услуги.
Сервис бронирования предназначен для расчета стоимости совокупности услуг, с возможностью их последующего бронирования в базе данных.
Ссылка на тестовый сервис
С работой тестового сервиса формирования списка услуг и сервиса бронирования вы можете ознакомиться на нашем демо-сервере.
Установка
Создание виртуального каталога
По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot
. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:
1 Зайти в Пуск (Start) → Настройки (Settings) → Панель управления (Control Panel) → Администрирование (Administrative Tools)
2 Диспетчер служб IIS
3 В открывшемся дереве каталогов выбрать Web Sites – Default Web Site. В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и выбрать Преобразовать в приложение
4 В открывшемся окне нужно нажать кнопку ОК
Подключение к базе данных ПК «Мастер-Тур»
В файле web.config
, расположенном в папке Reservation пропишите необходимые параметры подключения (красным цветом выделены значения, которые необходимо ввести).
Строка подключения к базе данных ПК «Мастер-Тур»:
<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК «Мастер-Тур»;Initial Catalog=название базы данных ПК «Мастер-Тур;User ID=логин пользователя ПК «Мастер-Тур»;Password=пароль пользователя ПК «Мастер-Тур»"/>
Настройка
После установки Сервис бронирования доступен по адресу:
http://ip-адрес сервера Мастер-Веб/Reservation/ServiceProvider.asmx
(сервис формирования списка услуг);http://ip-адрес сервера Мастер-Веб/Reservation/ReservationService.asmx
(сервис бронирования).
Для корректной работы сервиса Reservation на релизах ПК «Мастер-Web» 2009.2.15 и выше нужно включить настройку customErrors в элементе <system.web>: <system.web> <customErrors mode="On"/> … </system.web>
Настройки в файле WEB.CONFIG
Общие настройки
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Пользователь, который будет отображаться как Владелец путевки (если не указан ведущий менеджер по туру и партнеру). | Ключ пользователя - поле US_KEY из таблицы [UserList] .
|
<add key="webUserKey" value="458" />
|
2 | Определение приоритета проставления ведущего менеджера по путевке. |
|
<add key="managerPriority" value="partner" />
|
3 | Задание статуса заявки в ПК «Мастер-Тур», забронированной через систему бронирования ПК «Мастер-Web». |
Подробнее см. Механизм изменения статуса путевки. |
<add key="orderStatus" value="web" />
|
4 | Настройка, определяющая максимальный возможный возраст детей.
Работает только совместно с настройкой «checkTouristAgeEnable». |
Максимальный возраст ребенка. При отсутствии настройки максимальный возраст ребенка равен 14 лет. |
<add key="maxChildAge" value="16" />
|
5 | Определяет справочник, по которому будет проверяться количество основных мест при поиске в экране «Динамический лист предложений» и при бронировании в коризинах бронирования ПК «Мастер-Web». |
Если соответствующее поле там не заполнено, то из справочника «Типы номеров».
|
<add key="useAccomodationPlaces" value="false" />
|
6 | Определяет справочник, по которому будет проверяться количество дополнительных мест при поиске в экране «Динамический лист предложений» и при бронировании в коризинах бронирования ПК «Мастер-Web». |
Если соответствующее поле там не заполнено, то из справочника «Типы размещений».
|
<add key="useRoomsExtraPlaces" value="false" />
|
7 | Настройка, включающая режим учета процента при конвертации валют. | Коэффициент, на который умножается конвертируемая сумма. | <add key="courseMultiplier" value="1,02" />
|
8 | Настройка указывает на то, что в справочнике «Типы номеров» в колонке Число основных мест указано общее количество взрослых и детей. Дополнительно должно быть прописано и количество детей в соответствующей колонке.
При включенной настройке в случае, если сумма основных и дополнительных мест в справочнике «Типы размещений» превышает значение в колонке число основных мест, бронирование невозможно. |
|
<add key="combinedPlaces" value="true" />
|
9 | Настройка, включающая проверку прав текущего пользователя на получение доступа к путевке. |
|
<add key="IsAuthDubUser" value="true" />
|
Настройки бронирования инфантов
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Ключи тарифов на авиаперелет для размещения Младенец (Infant).
Настройка используется либо в дополнительном модуле «Бронирование индивидуального тура», либо для исключения тарифов при отображении списка рейсов в корзинах бронирования. |
Ключи тарифов - поле AS_CODE из таблицы [AirService] через запятую.
|
<add key="infantCharterClasses" value="132,110" />
|
2 | Взрослые тарифы (эконом) авиаперелетов, для которых будет подбираться тариф - YCH - Экономический класс (детский). | Ключи тарифа - поле AS_CODE из таблицы [AirService] через запятую.
|
<add key="YCH" value="81,87,89" />
|
3 | Взрослые тарифы (бизнес) авиаперелетов, для которых будет подбираться тариф - CCH - Бизнес класс (детский). | Ключи тарифа - поле AS_CODE из таблицы [AirService] через запятую.
|
<add key="CCH" value="67,68,74" />
|
Настройки добавления доплат к рейсам
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Включение отображения блока доплат к рейсу. | Ключ типа тура - поле TP_KEY из таблицы [TipTur] , к которому должны привязываться туры, содержащие доплаты к рейсам.
|
<add key="addFlightTourType" value="13" />
|
2 | Название доплаты за изменение рейса. | Текст - название доплаты за изменение рейса, которое будет отображаться в блоке доплат. | <add key="changeFlightPaymentName" value="Доплата за выбор рейса" />
|
3 | Настройка, скрывающая поле с доплатой за изменение рейса в блоке доплат. | false - поле с доплатой за изменение рейса скрыто;
true или отсутствие настройки - поле с доплатой за изменение рейса отображается. |
<add key="showFlightVariantDifference" value="true" />
|
Для того, что бы получить все связанные дополнительные услуги, необходимо добавить в файл web.config
настройку <add key="addFlightTourType" value="ххх" />
, где ххх - ключ типа тура, откуда берутся доплаты. Например, ключ типа у текущего тура - 17, а дополнительная услуга топливного сбора лежит в пакете с ключом типа тура 50. Значит, нам надо указать 50 вместо ххх. При получении списка услуг необходимо использовать метод GetCalculatedServices
сервиса ServiceProvider.asmx
. Услуга топливного сбора будет находиться в подразделе AdditionalPayments
раздела Service
структуры XML.
Настройки дополнительного модуля «Бронирование новогодних и рожденственских ужинов»
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Включение дополнительного модуля «Бронирование новогодних и рожденственских ужинов». | Ссылка на дополнительный модуль. | <add key="happyNewYearServiceManager" value="MasterWebStandard.Extra.HappyNewYearServices.HappyNewYearStandardManager, MasterWebStandard.Extra.HappyNewYearServices" />
|
2 | Тип тура для обязательных праздничных ужинов. | Ключ типа тура - поле TP_KEY из таблицы [TipTur] для обязательных ужинов.
|
<add key="requiredNewYearServicesTourTypes" value="12" />
|
3 | Тип тура для необязательных праздничных ужинов. | Ключ типа тура - поле TP_KEY из таблицы [TipTur] для необязательных ужинов.
|
<add key="optionalNewYearServicesTourTypes" value="12" />
|
Подготовка данных
С 1 января 2017 года вступили в силу положения Федерального закона от 02.03.2016 № 49-ФЗ «О внесении изменений в отдельные законодательные акты Российской Федерации в целях совершенствования законодательства, регулирующего туристскую деятельность» (далее – Федеральный закон № 49-ФЗ), в связи с чем вводится ограничение на осуществление бронирования партнёрами, не указавшими реестровый номер. Установить дату, начиная с которой данное ограничение начинает функционировать, можно в дополнительных настройках ПК «Мастер-Тур». Настройка работает, начиная с релиза 9222SP0.
Описание формата данных
MainDependentAccommodation (Доступное основное или зависимое размещение)
/// <summary>
/// Доступное основное или зависимое размещение
/// </summary>
public class MainDependentAccommodation
{
/// <summary>
/// Ключ прайса, к которому относится размещение
/// </summary>
public Int32 PriceKey { get; set; }
/// <summary>
/// Название размещения
/// </summary>
public String AccommodationName { get; set; }
/// <summary>
/// Количество человек
/// </summary>
public Int32 Places { get; set; }
/// <summary>
/// Цена
/// </summary>
public Decimal Price { get; set; }
/// <summary>
/// Валюта цены
/// </summary>
public String Currency { get; set; }
/// <summary>
/// Наличие мест
/// </summary>
public QuotaResultStatus QuotaStatus { get; set; }
}
|
CalculatedPriceInfo (Информация по расчитанной цене)
/// <summary>
/// Информация по рассчитанной цене
/// </summary>
public class CalculatedPriceInfo
{
/// <summary>
/// Прайс-лист
/// </summary>
public PriceTour PriceTour { get; set; }
/// <summary>
/// Дата тура
/// </summary>
public DateTime TourDate { get; set; }
/// <summary>
/// Количество дней по туру
/// </summary>
public int TotalDays { get; set; }
/// <summary>
/// Количество ночей по туру
/// </summary>
public int Nights { get; set; }
}
|
ReservationParams (Параметры бронирования)
/// <summary>
/// Параметры бронирования
/// </summary>
public class ReservationParams
{
/// <summary>
/// Идентификатор рекламного источника в БД
/// </summary>
public int AdvertiseID { get; set; }
/// <summary>
/// Идентификатор основания для скидки в БД
/// </summary>
public int CauseDiscountID { get; set; }
/// <summary>
/// Идентификатор страны тура
/// </summary>
public int CountryID { get; set; }
/// <summary>
/// Идентификатор пользователя, бронирующего тур
/// </summary>
public int DupUserID { get; set; }
/// <summary>
/// Имя оператора
/// </summary>
public string OperatorName { get; set; }
/// <summary>
/// Иденификатор ведущего менеджера по путевке
/// </summary>
public int OwnerID { get; set; }
/// <summary>
/// Идентификатор партнера, бронирующего тур
/// </summary>
public int PartnerID { get; set; }
/// <summary>
/// Валюта, в котрой производится бронирование
/// (если не задана, то вытягивается из тура)
/// </summary>
public string RateCode { get; set; }
/// <summary>
/// Бронируемая продолжительность
/// (если не задана, то высчитывается на основании услуг)
/// </summary>
public int ReserveDuration { get; set; }
/// <summary>
/// Дата тура
/// </summary>
public DateTime TourDate { get; set; }
/// <summary>
/// Идентификатор тура
/// </summary>
public int TourID { get; set; }
/// <summary>
/// Количество туристов по услугам
/// </summary>
public int TouristsCount { get; set; }
}
|
ReservationResult (Результат расчета стоимости и бронирования комплекса услуг)
/// <summary>
/// Класс, описывающий результат расчета стоимости и бронирования комплекса услуг
/// </summary>
public class ReservationResult
{
/// <summary>
/// Стоимость к оплате
/// </summary>
public double Brutto { get; set; }
/// <summary>
/// Процент скидки
/// </summary>
public double DiscountPercent { get; set; }
/// <summary>
/// Абсолютная величина скидки
/// </summary>
public double DiscountSumm { get; set; }
/// <summary>
/// Валюта
/// </summary>
public string Rate { get; set; }
/// <summary>
/// Код сформированной путевки
/// </summary>
public string ReservationCode { get; set; }
/// <summary>
/// Сообщение об ошибке
/// </summary>
public string ErrorMessage { get; set; }
}
|
ReservationInfoParams (Параметры путевки)
/// <summary>
/// Класс, описывающий параметры путевки
/// </summary>
public class ReservationInfoParams
{
/// <summary>
/// код путевки
/// </summary>
public string Code { get; set; }
/// <summary>
/// значение скидки
/// </summary>
public double Discount { get; set; }
/// <summary>
/// стоимость путевки
/// </summary>
public double Price { get; set; }
}
|
ReservationInfo (Описание путевки, включая все услуги и туристов)
/// <summary>
/// Класс, описывающий путевку, включая все услуги путевки и туристов
/// </summary>
public class ReservationInfo
{
/// <summary>
/// Название города поездки
/// </summary>
public string CityName { get; set; }
/// <summary>
/// Код путевки
/// </summary>
public string Code { get; set; }
/// <summary>
/// Название страны поездки
/// </summary>
public string CountryName { get; set; }
/// <summary>
/// Скидка по путевке
/// </summary>
public double Discount { get; set; }
/// <summary>
/// Сумма скидки
/// </summary>
public double DiscountSum { get; set; }
/// <summary>
/// Обобщенный статус путевки
/// </summary>
public int? DogovorGlobalStatus { get; set; }
/// <summary>
/// Статус путевки
/// </summary>
public int DogovorStatus { get; set; }
/// <summary>
/// Кол-во дней поездки
/// </summary>
public int Ndays { get; set; }
/// <summary>
/// Количество туристов в путевке
/// </summary>
public int Nmen { get; set; }
/// <summary>
/// Цена без учета скидки
/// </summary>
public double Price { get; set; }
/// <summary>
/// Код валюты путевки
/// </summary>
public string RateCode { get; set; }
/// <summary>
/// Список всеу услуг в путевке
/// </summary>
public List<Service> ReservationServices { get; set; }
/// <summary>
/// Список всех туристов в путевке
/// </summary>
public List<Tourist> ReservationTourists { get; set; }
/// <summary>
/// Дата начала поездки
/// </summary>
public DateTime TurDate { get; set; }
}
|
Сервис формирования списка услуг («ServiceProvider.asmx»)
Метод получения основных и неосновных размещений (GetAvailableAccommodations)
Сигнатура вызова
/// <summary>
/// Возвращает доступные для бронирования размещения
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="priceKey">Ключ обсчитанной цены (ключ прайса)</param>
/// <param name="isCheckExtraPlaceQuota:">Проверять ли места на еще одно такое же размещение</param>
/// <returns>Список пар [основное размещение; коллекция неосновных]</returns>
[WebMethod]
public List<SerializableKeyValuePair<MainDependentAccommodation, List<MainDependentAccommodation>>>
GetAvailableAccommodations(String token, Int32 priceKey, Boolean isCheckExtraPlaceQuota)
|
Метод получения информации по ключу цены (GetCalculatedPriceInfo)
Сигнатура вызова
/// <summary>
/// Получение информации о цене
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="priceKey">Ключ цены</param>
/// <param name="includeTourDescriptionText">Возвращать ли описание тура</param>
/// <param name="includeBookingConditionsText">Возвращать ли условия бронирования по туру</param>
/// <returns></returns>
[WebMethod]
public CalculatedPriceInfo GetCalculatedPriceInfo(String token, int priceKey, bool includeTourDescriptionText, bool includeBookingConditionsText)
|
Метод получения рассчитанных услуг (GetCalculatedServices)
Сигнатура вызова
/// <summary>
/// Возвращает список рассчитанных услуг по ключу цены
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="priceKey">Ключ обсчитанной цены</param>
/// <returns></returns>
[WebMethod]
public List<Service> GetCalculatedServices(String token, int priceKey)
|
Метод получения информации о дополнительных услугах (GetExtraServiceInfo)
Сигнатура вызова
/// <summary>
/// Получение информации о дополнительных услугах
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="priceKey">Ключ цены</param>
/// <returns></returns>
[WebMethod]
public ExtraServiceInfo GetExtraServiceInfo(String token, int priceKey)
|
Метод получения дополнительных услуг (GetNotCalculatedServices)
Сигнатура вызова
/// <summary>
/// Возвращает список дополнительных услуг по ключу цены. Дополнительные услуги не могут быть отелем или перелётом.
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="priceKey">Ключ обсчитанной цены</param>
/// <returns></returns>
[WebMethod]
public List<Service> GetNotCalculatedServices(String token, int priceKey)
|
Метод получения вариантов услуги (GetServiceVariants)
Сигнатура вызова
/// <summary>
/// Получение вариантов услуги
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="service">Базовая услуга</param>
/// <param name="dtDate">Дата заезда</param>
/// <param name="duration">Продолжительность тура</param>
/// <param name="allowHidden">Искать ли аналоги для скрытой услуги</param>
/// <param name="allowHotelCodeChange">Можно ли поменять отель</param>
/// <param name="CheckFlightPacket">Проверять ли пакет услуги</param>
/// <param name="checkQuotes">Нужно ли делать проверку квот и удалять варианты без мест</param>
/// <param name="nMen">Количество мест для проверки (если 0, то игнорируем byRoom и userKey</param>
/// <param name="byRoom">Что проверяем. Места или комнаты</param>
/// <param name="userKey">Агент</param>
/// <param name="includeOriginal">Включать в результат базовую услугу</param>
/// <param name="excludeCharterClasses">Исключить из подбора данные классы перелетов</param>
/// <returns>Список услуг</returns>
[WebMethod]
public List<Service> GetServiceVariants(String token, Megatec.Travel.Entities.Service service
, DateTime tourDate
, int tourDuration
, bool allowHidden
, bool allowHotelCodeChange
, bool checkFlightPacket
, bool checkQuotes
, short nMen
, bool byRoom
, int userKey
, bool includeOriginal
, string excludeCharterClasses)
|
Сервис бронирования (ReservationService.asmx)
Метод расчета стоимости услуг (CalculateReservation)
Сигнатура вызова
/// <summary>
/// Метод расчета стоимости услуг
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="services">Список услуг, по которым рассчитывается стоимость</param>
/// <param name="parameters">Параметры расчета</param>
/// <returns>Результат расчета стоимости</returns>
public ReservationResult CalculateReservation(String token, List<Service> services, ReservationParams parameters)
|
Метод бронирования услуг (CreateReservation)
Сигнатура вызова
/// <summary>
/// Метод бронирования
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="services">Список бронируемых услуг</param>
/// <param name="tourists">Список туристов по путевке</param>
/// <param name="parameters">Параметры бронирования</param>
/// <returns></returns>
[WebMethod]
public ReservationResult CreateReservation(String token, List<Service> services, List<Tourist> tourists, ReservationParams parameters)
|
Метод получения данных по путевке (GetDogovorInfo)
Сигнатура метода
/// <summary>
/// Метод получения полной информации по путевке
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="reservationCode">Код путевки</param>
/// <returns>Полная информация по услугам и туристам в путевке</returns>
public Megatec.Travel.DataObjects.ReservationInfo GetDogovorInfo(String token, String reservationCode)
|
Метод получения информации по путевке (GetReservationInfo)
Сигнатура метода
/// <summary>
/// Метод получения HTML-информации по путевке
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="reservationCode">Код путевки</param>
/// <param name="partnerKey">Идентификатор покупателя</param>
/// <param name="param">Параметры бронирования</param>
/// <returns>HTML-информация по путевке</returns>
public String GetReservationInfo(String token, String reservationCode, Int32 partnerKey, Megatec.Travel.DataObjects.ReservationInfoParams param)
|
Метод для сохранения номера путевки (SetReservationCode)
Сигнатура метода
/// <summary>
/// Сохраняет номер путевки субагента в БД агента
/// (в историю путевки должен записать номер путевки субагента)
/// </summary>
/// <param name="token">Авторизационный токен (если сервисом запрещен анонимный доступ)</param>
/// <param name="reservationCode">Номер путевки в БД агента</param>
/// <param name="partnerCode">Номер путевки в БД субагента</param>
public void SetReservationCode(String token, String reservationCode, String partnerCode)
|
Работа в системе
Работа с сервисом «ServiceProvider.asmx» (Формирование списка услуг)
Метод получения основных и неосновных размещений (GetAvailableAccommodations )
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetAvailableAccommodations xmlns="http://megatec.ru/">
<token>?</token>
<priceKey>33345</priceKey>
<isCheckExtraPlaceQuota>true</isCheckExtraPlaceQuota>
</GetAvailableAccommodations>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetAvailableAccommodationsResponse xmlns="http://megatec.ru/">
<GetAvailableAccommodationsResult>
<SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<Key>
<PriceKey>33349</PriceKey>
<AccommodationName>DBL 1-1 STD</AccommodationName>
<Places>2</Places>
<Price>812</Price>
<Currency>$</Currency>
<QuotaStatus>No</QuotaStatus>
</Key>
<Value>
<MainDependentAccommodation xsi:nil="true" />
<MainDependentAccommodation xsi:nil="true" />
</Value>
</SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<Key>
<PriceKey>33337</PriceKey>
<AccommodationName>DBL 2-0 Sea View</AccommodationName>
<Places>2</Places>
<Price>938</Price>
<Currency>$</Currency>
<QuotaStatus>No</QuotaStatus>
</Key>
<Value>
<MainDependentAccommodation xsi:nil="true" />
<MainDependentAccommodation xsi:nil="true" />
</Value>
</SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<Key>
<PriceKey>33345</PriceKey>
<AccommodationName>DBL 1-1 Sea View</AccommodationName>
<Places>2</Places>
<Price>740</Price>
<Currency>$</Currency>
<QuotaStatus>No</QuotaStatus>
</Key>
<Value>
<MainDependentAccommodation xsi:nil="true" />
<MainDependentAccommodation xsi:nil="true" />
</Value>
</SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<Key>
<PriceKey>33353</PriceKey>
<AccommodationName>DBL 0-2 Sea View</AccommodationName>
<Places>1</Places>
<Price>650</Price>
<Currency>$</Currency>
<QuotaStatus>No</QuotaStatus>
</Key>
<Value>
<MainDependentAccommodation xsi:nil="true" />
<MainDependentAccommodation xsi:nil="true" />
</Value>
</SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
<Key>
<PriceKey>33341</PriceKey>
<AccommodationName>DBL 2-0 GV</AccommodationName>
<Places>2</Places>
<Price>1370</Price>
<Currency>$</Currency>
<QuotaStatus>Request</QuotaStatus>
</Key>
<Value>
<MainDependentAccommodation xsi:nil="true" />
<MainDependentAccommodation xsi:nil="true" />
</Value>
</SerializableKeyValuePairOfMainDependentAccommodationListOfMainDependentAccommodation>
</GetAvailableAccommodationsResult>
</GetAvailableAccommodationsResponse>
</soap:Body>
</soap:Envelope>
|
Метод получения информации по ключу цены (GetCalculatedPriceInfo )
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetCalculatedPriceInfo xmlns="http://megatec.ru/">
<token>?</token>
<priceKey>5038425</priceKey>
<includeTourDescriptionText>true</includeTourDescriptionText>
<includeBookingConditionsText>true</includeBookingConditionsText>
</GetCalculatedPriceInfo>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetCalculatedPriceInfoResponse xmlns="http://megatec.ru/">
<GetCalculatedPriceInfoResult>
<PriceTour>
<ID>667</ID>
<Name>Test Tour</Name>
<Description />
<Country>
<ID>90</ID>
<Name>Австрия</Name>
</Country>
<Tour>
<ID>542</ID>
<Name>Test Tour</Name>
<Description />
<BookingConditions />
</Tour>
<Attribute>0</Attribute>
<IncludedServices> Авиаперелет, Трансфер, Проживание(питание: Полупансион), Виза, Страховка, Доп. услуги</IncludedServices>
</PriceTour>
<TourDate>2010-07-02T00:00:00</TourDate>
<TotalDays>11</TotalDays>
<Nights>10</Nights>
</GetCalculatedPriceInfoResult>
</GetCalculatedPriceInfoResponse>
</soap:Body>
</soap:Envelope>
|
Метод получения рассчитанных услуг (GetCalculatedServices)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetCalculatedServices xmlns="http://megatec.ru/">
<token>?</token>
<priceKey>5038425</priceKey>
</GetCalculatedServices>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetCalculatedServicesResponse xmlns="http://megatec.ru/">
<GetCalculatedServicesResult>
<Service xsi:type="HotelService">
<ID>-159</ID>
<Name>Отель/Отель 5*+ (Арльберг), Single Standart Взрослый, Полупансион, ,</Name>
<ExternalID>0</ExternalID>
<StartDate>0001-01-01T00:00:00</StartDate>
<EndDate>0001-01-01T00:00:00</EndDate>
<StartDay>1</StartDay>
<Duration>10</Duration>
<Attribute>390</Attribute>
<RateBrutto />
<Brutto>0</Brutto>
<RateNetto />
<Netto>0</Netto>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<PartnersGroupID>0</PartnersGroupID>
<FullName />
<BossName />
<Fax />
<Address />
<Zip />
<Email />
<Phones />
</Partner>
<Quota>NotChecked</Quota>
<PacketID>250</PacketID>
<City>
<ID>275</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</City>
<Country>
<ID>90</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<IsIncoming>false</IsIncoming>
</Country>
<Tourists />
<DetailNetto />
<DetailBrutto />
<Notes />
<ServiceClass>
<ID>3</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<ServiceClasses>None</ServiceClasses>
</ServiceClass>
<Hotel>
<ID>3254</ID>
<Name>Отель 5*+</Name>
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<City>
<ID>3254</ID>
<Name>Арльберг</Name>
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</City>
</Hotel>
<Room>
<ID>1112</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<RoomType>
<ID>1</ID>
<Name>Single</Name>
<NameLat />
<Code>SGL</Code>
<CodeLat />
<Unicode />
<Description />
<PrintOrder>0</PrintOrder>
<Places>
<Main>1</Main>
<Extra>1</Extra>
</Places>
</RoomType>
<RoomCategory>
<ID>20</ID>
<Name>Standart</Name>
<NameLat />
<Code>STD</Code>
<CodeLat />
<Unicode />
<Description />
<PrintOrder>0</PrintOrder>
</RoomCategory>
<RoomAccomodation>
<ID>320</ID>
<Name>Взрослый</Name>
<NameLat />
<Code>Взр.</Code>
<CodeLat />
<Unicode />
<Description />
<Places>
<Main>0</Main>
<Extra>0</Extra>
</Places>
<IsMain>true</IsMain>
<AgeRange AgeFrom="0" AgeTo="0" />
<AgeRange2 AgeFrom="0" AgeTo="0" />
<PerRoom>false</PerRoom>
</RoomAccomodation>
</Room>
<Pansion>
<ID>2</ID>
<Name>Полупансион</Name>
<NameLat />
<Code>HB</Code>
<CodeLat />
<Unicode />
<Description />
</Pansion>
</Service>
</GetCalculatedServicesResult>
</GetCalculatedServicesResponse>
</soap:Body>
</soap:Envelope>
|
Meтод получения получения информации о дополнительных услугах (GetExtraServiceInfo)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetExtraServiceInfo xmlns="http://megatec.ru/">
<token>?</token>
<priceKey>27084</priceKey>
</GetExtraServiceInfo>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetExtraServiceInfoResponse xmlns="http://megatec.ru/">
<GetExtraServiceInfoResult>
<ExtraServiceInfo>
<ID>76</ID>
<Name>Лондонский Тауэр</Name>
<ServiceClass>
<ID>4</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<ServiceClasses>None</ServiceClasses>
</ServiceClass>
<Attribute>0</Attribute>
<CountryKey>222</CountryKey>
<CityKey>25</CityKey>
<IsRequired>true</IsRequired>
<Direction>0</Direction>
<ServiceVariants>
</ExtraServiceInfo>
<ExtraServiceInfo>
<ID>3231</ID>
<Name>test</Name>
<ServiceClass>
<ID>8</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<ServiceClasses>None</ServiceClasses>
</ServiceClass>
<Attribute>0</Attribute>
<CountryKey>222</CountryKey>
<CityKey>25</CityKey>
<IsRequired>false</IsRequired>
<Direction>0</Direction>
<ServiceVariants>
<ExtraServiceVariant xsi:type="ExtraAddHotelService">
<AvailableDate>2015-06-01T00:00:00</AvailableDate>
<Day>1</Day>
<PartnerKey>10760</PartnerKey>
<PacketKey>249</PacketKey>
<Cost>0</Cost>
<IsCostForPerson>true</IsCostForPerson>
<NMen>1</NMen>
<Description1>
<ID>0</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</Description1>
<Description2>
<ID>3</ID>
<Name>test,1/</Name>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</Description2>
<IsPackage>false</IsPackage>
<HasDuration>false</HasDuration>
</ExtraServiceVariant>
<ExtraServiceVariant xsi:type="ExtraAddHotelService">
<AvailableDate>2015-06-02T00:00:00</AvailableDate>
<Day>2</Day>
<PartnerKey>10760</PartnerKey>
<PacketKey>249</PacketKey>
<Cost>0</Cost>
<IsCostForPerson>true</IsCostForPerson>
<NMen>1</NMen>
<Description1>
<ID>0</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</Description1>
<Description2>
<ID>3</ID>
<Name>test,1/</Name>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</Description2>
<IsPackage>false</IsPackage>
<HasDuration>false</HasDuration>
</ExtraServiceVariant>
</ServiceVariants>
</ExtraServiceInfo>
</GetExtraServiceInfoResult>
</GetExtraServiceInfoResponse>
</soap:Body>
</soap:Envelope>
|
Метод получения нерассчитанных услуг (GetNotCalculatedServices)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetNotCalculatedServices xmlns="http://megatec.ru/">
<token>?</token>
<priceKey>5038425</priceKey>
</GetNotCalculatedServices>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetNotCalculatedServicesResponse xmlns="http://megatec.ru/">
<GetNotCalculatedServicesResult>
<Service xsi:type="ExcursionService">
<ID>-190</ID>
<Name>Экскурсия::Арльберг/Кладбища Австрии, /Крысиная упряжка /</Name>
<ExternalID>0</ExternalID>
<StartDate>0001-01-01T00:00:00</StartDate>
<EndDate>0001-01-01T00:00:00</EndDate>
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>1</Attribute>
<RateBrutto />
<Brutto>0</Brutto>
<RateNetto />
<Netto>0</Netto>
<NMen>0</NMen>
<Partner>
<ID>10760</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<PartnersGroupID>0</PartnersGroupID>
<FullName />
<BossName />
<Fax />
<Address />
<Zip />
<Email />
<Phones />
</Partner>
<Quota>NotChecked</Quota>
<PacketID>250</PacketID>
<City>
<ID>275</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</City>
<Country>
<ID>90</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<IsIncoming>false</IsIncoming>
</Country>
<Tourists />
<DetailNetto />
<DetailBrutto />
<Notes />
<ServiceClass>
<ID>4</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<ServiceClasses>None</ServiceClasses>
</ServiceClass>
<Excursion>
<ID>292</ID>
<Name>Кладбища Австрии</Name>
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<PlaceFrom />
<PlaceTo />
<TimeBeg>0001-01-01T00:00:00</TimeBeg>
<TimeEnd>0001-01-01T00:00:00</TimeEnd>
</Excursion>
<Transport>
<ID>28</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</Transport>
</Service>
</GetNotCalculatedServicesResult>
</GetNotCalculatedServicesResponse>
</soap:Body>
</soap:Envelope>
|
Метод получения вариантов услуги (GetServiceVariants)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetServiceVariants xmlns="http://megatec.ru/">
<token>?</token>
<service xsi:type="FlightService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>7</Attribute>
<RateBrutto>$</RateBrutto>
<NMen>1</NMen>
<Partner>
<ID>10762</ID>
</Partner>
<PacketID>248</PacketID>
<City>
<ID>275</ID>
</City>
<Country>
<ID>90</ID>
</Country>
<ServiceClass>
<ID>1</ID>
</ServiceClass>
<Tariff>
<ID>89</ID>
</Tariff>
<Flight>
<ID>523</ID>
</Flight>
</service>
<tourDate>2010-07-02T00:00:00</tourDate>
<tourDuration>11</tourDuration>
<allowHidden>false</allowHidden>
<allowHotelCodeChange>false</allowHotelCodeChange>
<checkFlightPacket>true</checkFlightPacket>
<checkQuotes>true</checkQuotes>
<nMen>1</nMen>
<byRoom>false</byRoom>
<userKey>1</userKey>
<includeOriginal>true</includeOriginal>
<excludeCharterClasses />
</GetServiceVariants>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetServiceVariantsResponse xmlns="http://megatec.ru/">
<GetServiceVariantsResult>
<Service xsi:type="FlightService">
<ID>-209</ID>
<Name>А_П::Москва/Арльберг/P74211, DME-AL, 12:12-15:15/Y Экономический класс/</Name>
<ExternalID>0</ExternalID>
<StartDate>0001-01-01T00:00:00</StartDate>
<EndDate>0001-01-01T00:00:00</EndDate>
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>7</Attribute>
<RateBrutto>$</RateBrutto>
<Brutto>0</Brutto>
<RateNetto />
<Netto>0</Netto>
<NMen>1</NMen>
<Partner>
<ID>10762</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<PartnersGroupID>0</PartnersGroupID>
<FullName />
<BossName />
<Fax />
<Address />
<Zip />
<Email />
<Phones />
</Partner>
<Quota>NotChecked</Quota>
<PacketID>248</PacketID>
<City>
<ID>275</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</City>
<Country>
<ID>90</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<IsIncoming>false</IsIncoming>
</Country>
<Tourists />
<DetailNetto />
<DetailBrutto />
<Notes />
<ServiceClass>
<ID>1</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<ServiceClasses>None</ServiceClasses>
</ServiceClass>
<Tariff>
<ID>89</ID>
<Name>Экономический класс</Name>
<NameLat>Coach economy</NameLat>
<Code />
<CodeLat />
<Unicode />
<Description />
<ServiceClassID>0</ServiceClassID>
<Comment />
<CreateDate>0001-01-01T00:00:00</CreateDate>
</Tariff>
<Flight>
<ID>525</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<CityFrom>
<ID>1</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</CityFrom>
<CityTo>
<ID>275</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</CityTo>
<AirportFrom>
<ID>-212</ID>
<Name />
<NameLat />
<Code>DME</Code>
<CodeLat />
<Unicode />
<Description />
</AirportFrom>
<AirportTo>
<ID>-213</ID>
<Name />
<NameLat />
<Code>AL</Code>
<CodeLat />
<Unicode />
<Description />
</AirportTo>
<Airline>
<ID>-211</ID>
<Name />
<NameLat />
<Code>P7</Code>
<CodeLat />
<Unicode />
<Description />
</Airline>
<Number>4211</Number>
<TimeFrom>1899-01-01T12:12:00</TimeFrom>
<TimeTo>1899-01-01T15:15:00</TimeTo>
<DateFrom>0001-01-01T00:00:00</DateFrom>
<DateTo>0001-01-01T00:00:00</DateTo>
<IsArrival>false</IsArrival>
<Available>No</Available>
</Flight>
</Service>
<Service xsi:type="FlightService">
<ID>-245</ID>
<Name>А_П::Москва/Арльберг/SU1875, SVO1-AL, 20:20-23:30/Y Экономический класс/</Name>
<ExternalID>0</ExternalID>
<StartDate>0001-01-01T00:00:00</StartDate>
<EndDate>0001-01-01T00:00:00</EndDate>
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>7</Attribute>
<RateBrutto />
<Brutto>0</Brutto>
<RateNetto />
<Netto>0</Netto>
<NMen>1</NMen>
<Partner>
<ID>10762</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<PartnersGroupID>0</PartnersGroupID>
<FullName />
<BossName />
<Fax />
<Address />
<Zip />
<Email />
<Phones />
</Partner>
<Quota>NotChecked</Quota>
<PacketID>248</PacketID>
<City>
<ID>275</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</City>
<Country>
<ID>90</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<IsIncoming>false</IsIncoming>
</Country>
<Tourists />
<DetailNetto />
<DetailBrutto />
<Notes />
<ServiceClass>
<ID>1</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<ServiceClasses>None</ServiceClasses>
</ServiceClass>
<Tariff>
<ID>89</ID>
<Name>Экономический класс</Name>
<NameLat>Coach economy</NameLat>
<Code />
<CodeLat />
<Unicode />
<Description />
<ServiceClassID>0</ServiceClassID>
<Comment />
<CreateDate>0001-01-01T00:00:00</CreateDate>
</Tariff>
<Flight>
<ID>523</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
<CityFrom>
<ID>1</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</CityFrom>
<CityTo>
<ID>275</ID>
<Name />
<NameLat />
<Code />
<CodeLat />
<Unicode />
<Description />
</CityTo>
<AirportFrom>
<ID>-248</ID>
<Name />
<NameLat />
<Code>SVO1</Code>
<CodeLat />
<Unicode />
<Description />
</AirportFrom>
<AirportTo>
<ID>-249</ID>
<Name />
<NameLat />
<Code>AL</Code>
<CodeLat />
<Unicode />
<Description />
</AirportTo>
<Airline>
<ID>-247</ID>
<Name />
<NameLat />
<Code>SU</Code>
<CodeLat />
<Unicode />
<Description />
</Airline>
<Number>1875</Number>
<TimeFrom>1899-01-01T20:20:00</TimeFrom>
<TimeTo>1899-01-01T23:30:00</TimeTo>
<DateFrom>0001-01-01T00:00:00</DateFrom>
<DateTo>0001-01-01T00:00:00</DateTo>
<IsArrival>false</IsArrival>
<Available>No</Available>
</Flight>
</Service>
</GetServiceVariantsResult>
</GetServiceVariantsResponse>
</soap:Body>
</soap:Envelope>
|
Работа с сервисом «ReservationService.asmx» (Бронирование)
Метод расчета стоимости услуг (CalculateReservation)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CalculateReservation xmlns="http://megatec.ru/">
<token>?</token>
<services>
<Service xsi:type="TransferService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>19975</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
</Partner>
<PacketID>250</PacketID>
<City>
<ID>275</ID>
</City>
<Country>
<ID>90</ID>
</Country>
<ServiceClass>
<ID>2</ID>
</ServiceClass>
<Transfer>
<ID>372</ID>
</Transfer>
<Transport>
<ID>3</ID>
</Transport>
</Service>
<Service xsi:type="VisaService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>131</Attribute>
<Partner>
<ID>10760</ID>
</Partner>
<PacketID>250</PacketID>
<Country>
<ID>90</ID>
</Country>
<ServiceClass>
<ID>5</ID>
</ServiceClass>
<Visa>
<ID>157</ID>
</Visa>
</Service>
<Service xsi:type="InsuranceService">
<StartDay>1</StartDay>
<Duration>11</Duration>
<Attribute>151</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10763</ID>
</Partner>
<PacketID>250</PacketID>
<Country>
<ID>90</ID>
</Country>
<ServiceClass>
<ID>6</ID>
</ServiceClass>
<AddDescription1>
<ID>6</ID>
</AddDescription1>
<AddDescription2>
<ID>0</ID>
</AddDescription2>
<Insurance>
<ID>174</ID>
</Insurance>
</Service>
<Service xsi:type="AdditionalService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>3</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
</Partner>
<Quota>NotChecked</Quota>
<PacketID>250</PacketID>
<Country>
<ID>90</ID>
</Country>
<ServiceClass>
<ID>1032</ID>
</ServiceClass>
<Description>
<ID>183</ID>
</Description>
<Description1>
<ID>0</ID>
</Description1>
<Description2>
<ID>0</ID>
</Description2>
</Service>
<Service xsi:type="HotelService">
<StartDay>1</StartDay>
<Duration>10</Duration>
<Attribute>390</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
</Partner>
<Quota>NotChecked</Quota>
<PacketID>250</PacketID>
<City>
<ID>275</ID>
</City>
<Country>
<ID>90</ID>
</Country>
<ServiceClass>
<ID>3</ID>
</ServiceClass>
<Hotel>
<ID>3254</ID>
</Hotel>
<Room>
<ID>1112</ID>
<RoomType>
<ID>1</ID>
</RoomType>
<RoomCategory>
<ID>20</ID>
</RoomCategory>
<RoomAccomodation>
<ID>320</ID>
</RoomAccomodation>
</Room>
<Pansion>
<ID>2</ID>
</Pansion>
</Service>
<Service xsi:type="TransferService">
<StartDay>8</StartDay>
<Duration>0</Duration>
<Attribute>19975</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
</Partner>
<PacketID>250</PacketID>
<City>
<ID>275</ID>
</City>
<Country>
<ID>90</ID>
</Country>
<ServiceClass>
<ID>2</ID>
</ServiceClass>
<Transfer>
<ID>373</ID>
</Transfer>
<Transport>
<ID>3</ID>
</Transport>
</Service>
<Service xsi:type="FlightService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<NMen>2</NMen>
<Partner>
<ID>27990</ID>
</Partner>
<PacketID>19443</PacketID>
<ServiceClass>
<ID>1</ID>
</ServiceClass>
<Tariff>
<ID>226</ID>
</Tariff>
<Flight>
<ID>17234</ID>
<CityFrom>
<ID>30</ID>
</CityFrom>
<CityTo>
<ID>65</ID>
</CityTo>
</Flight>
</Service>
<Service xsi:type="FlightService">
<StartDay>8</StartDay>
<Duration>0</Duration>
<Attribute>0</Attribute>
<NMen>2</NMen>
<Partner>
<ID>27990</ID>
</Partner>
<PacketID>18920</PacketID>
<ServiceClass>
<ID>1</ID>
</ServiceClass>
<Tariff>
<ID>226</ID>
</Tariff>
<Flight>
<ID>17235</ID>
<CityFrom>
<ID>65</ID>
</CityFrom>
<CityTo>
<ID>30</ID>
</CityTo>
</Flight>
</Service>
</services>
<parameters>
<AdvertiseID>-1</AdvertiseID>
<CauseDiscountID>-1</CauseDiscountID>
<CountryID>90</CountryID>
<DupUserID>-1</DupUserID>
<OperatorName />
<OwnerID>-1</OwnerID>
<PartnerID>10764</PartnerID>
<RateCode />
<ReserveDuration>-1</ReserveDuration>
<TourDate>2010-07-02T00:00:00</TourDate>
<TourID>542</TourID>
<TouristsCount>1</TouristsCount>
</parameters>
</CalculateReservation>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CalculateReservationResponse xmlns="http://megatec.ru/">
<CalculateReservationResult>
<Brutto>1646</Brutto>
<DiscountPercent>10</DiscountPercent>
<DiscountSumm>172</DiscountSumm>
<Rate>$</Rate>
<ReservationCode />
<ErrorMessage />
</CalculateReservationResult>
</CalculateReservationResponse>
</soap:Body>
</soap:Envelope>
|
Метод бронирования услуг (CreateReservation)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreateReservation xmlns="http://megatec.ru/">
<token>?</token>
<services>
<Service xsi:type="TransferService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>19975</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
</Partner>
<PacketID>250</PacketID>
<City>
<ID>275</ID>
</City>
<Country>
<ID>90</ID>
</Country>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>2</ID>
</ServiceClass>
<Transfer>
<ID>372</ID>
</Transfer>
<Transport>
<ID>3</ID>
</Transport>
</Service>
<Service xsi:type="VisaService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>131</Attribute>
<Partner>
<ID>10760</ID>
</Partner>
<PacketID>250</PacketID>
<Country>
<ID>90</ID>
</Country>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>5</ID>
</ServiceClass>
<Visa>
<ID>157</ID>
</Visa>
</Service>
<Service xsi:type="ExcursionService">
<StartDay>2</StartDay>
<Duration>1</Duration>
<Attribute>0</Attribute>
<Partner>
<ID>10771</ID>
</Partner>
<PacketID>682</PacketID>
<City>
<ID>35</ID>
</City>
<Country>
<ID>90</ID>
</Country>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>4</ID>
</ServiceClass>
<Excursion>
<ID>52</ID>
</Excursion>
<Transport>
<ID>3</ID>
</Transport>
</Service>
<Service xsi:type="InsuranceService">
<StartDay>1</StartDay>
<Duration>11</Duration>
<Attribute>151</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10763</ID>
</Partner>
<PacketID>250</PacketID>
<Country>
<ID>90</ID>
</Country>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>6</ID>
</ServiceClass>
<AddDescription1>
<ID>6</ID>
</AddDescription1>
<AddDescription2>
<ID>0</ID>
</AddDescription2>
<Insurance>
<ID>174</ID>
</Insurance>
</Service>
<Service xsi:type="AdditionalService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>3</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
</Partner>
<Quota>NotChecked</Quota>
<PacketID>250</PacketID>
<Country>
<ID>90</ID>
</Country>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>1032</ID>
</ServiceClass>
<Description>
<ID>183</ID>
</Description>
<Description1>
<ID>0</ID>
</Description1>
<Description2>
<ID>0</ID>
</Description2>
</Service>
<Service xsi:type="HotelService">
<StartDay>1</StartDay>
<Duration>10</Duration>
<Attribute>390</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
</Partner>
<Quota>NotChecked</Quota>
<PacketID>250</PacketID>
<City>
<ID>275</ID>
</City>
<Country>
<ID>90</ID>
</Country>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>3</ID>
</ServiceClass>
<Hotel>
<ID>3254</ID>
</Hotel>
<Room>
<ID>1112</ID>
<RoomType>
<ID>1</ID>
</RoomType>
<RoomCategory>
<ID>20</ID>
</RoomCategory>
<RoomAccomodation>
<ID>320</ID>
</RoomAccomodation>
</Room>
<Pansion>
<ID>2</ID>
</Pansion>
<Notes>some service comment</Notes>
<Brutto>2</Brutto>
<RateBrutto>$</RateBrutto>
<Netto>3</Netto>
<Discount>4</Discount>
</Service>
<Service xsi:type="TransferService">
<StartDay>8</StartDay>
<Duration>0</Duration>
<Attribute>19975</Attribute>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
</Partner>
<PacketID>250</PacketID>
<City>
<ID>275</ID>
</City>
<Country>
<ID>90</ID>
</Country>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>2</ID>
</ServiceClass>
<Transfer>
<ID>373</ID>
</Transfer>
<Transport>
<ID>3</ID>
</Transport>
</Service>
<Service xsi:type="FlightService">
<StartDay>1</StartDay>
<Duration>0</Duration>
<NMen>2</NMen>
<Partner>
<ID>27990</ID>
</Partner>
<PacketID>19443</PacketID>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>1</ID>
</ServiceClass>
<Tariff>
<ID>226</ID>
</Tariff>
<Flight>
<ID>17234</ID>
<CityFrom>
<ID>30</ID>
</CityFrom>
<CityTo>
<ID>65</ID>
</CityTo>
</Flight>
</Service>
<Service xsi:type="FlightService">
<StartDay>8</StartDay>
<Duration>0</Duration>
<Attribute>0</Attribute>
<NMen>2</NMen>
<Partner>
<ID>27990</ID>
</Partner>
<PacketID>18920</PacketID>
<Tourists>
<Tourist>
<ID>0</ID>
</Tourist>
</Tourists>
<ServiceClass>
<ID>1</ID>
</ServiceClass>
<Tariff>
<ID>226</ID>
</Tariff>
<Flight>
<ID>17235</ID>
<CityFrom>
<ID>65</ID>
</CityFrom>
<CityTo>
<ID>30</ID>
</CityTo>
</Flight>
</Service>
</services>
<tourists>
<Tourist Sex="Male" BirthDate="1980-02-01T00:00:00" AgeType="Adult" Citizen="" IsMain="true" ExternalID="0">
<ID>0</ID>
<Name>
<FirstName />
<SecondName />
<LastName />
</Name>
<NameLat>
<FirstName>SEMEN</FirstName>
<SecondName />
<LastName>IVANOV</LastName>
</NameLat>
</Tourist>
</tourists>
<parameters>
<AdvertiseID>-1</AdvertiseID>
<CauseDiscountID>-1</CauseDiscountID>
<ExternalReservationId>ext res code</ExternalReservationId>
<CountryID>90</CountryID>
<DupUserID>-1</DupUserID>
<OperatorName />
<OwnerID>-1</OwnerID>
<PartnerID>10764</PartnerID>
<RateCode />
<ReserveDuration>-1</ReserveDuration>
<TourDate>2010-07-02T00:00:00</TourDate>
<TourID>542</TourID>
<TouristsCount>1</TouristsCount>
</parameters> </CreateReservation>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreateReservationResponse xmlns="http://megatec.ru/">
<CreateReservationResult>
<Brutto>1646</Brutto>
<DiscountPercent>10</DiscountPercent>
<DiscountSumm>172</DiscountSumm>
<Rate>$</Rate>
<ReservationCode>AT 0702007</ReservationCode>
<ErrorMessage />
</CreateReservationResult>
</CreateReservationResponse>
</soap:Body>
</soap:Envelope>
|
Метод получения данных по путевке (GetDogovorInfo)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://megatec.ru/">
<soap:Header/>
<soap:Body>
<GetDogovorInfo xmlns="http://megatec.ru/">
<token>?</token>
<reservationCode>EN40228001</reservationCode>
</GetDogovorInfo>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetDogovorInfoResponse xmlns="http://megatec.ru/">
<GetDogovorInfoResult>
<Code>LON8052402</Code>
<TurDate>2018-05-24T00:00:00</TurDate>
<Price>4537</Price>
<Discount>10</Discount>
<DiscountSum>30</DiscountSum>
<DogovorStatus>3</DogovorStatus>
<Nmen>6</Nmen>
<Ndays>6</Ndays>
<CountryName>Англия</CountryName>
<CityName>Лондон</CityName>
<RateCode>USD</RateCode>
<ReservationServices>
<Service xsi:type="HotelService" Brutto="472.5" Netto="450">
<ID>-150</ID>
<Name>
HOTEL::Лондон/Тестовый отель-1*,5 ночей/DBL(Standart),2A/FB Пансион/
</Name>
<ExternalID>0</ExternalID>
<StartDate>2018-05-24T00:00:00</StartDate>
<EndDate>2018-05-28T00:00:00</EndDate>
<StartDay>1</StartDay>
<Duration>5</Duration>
<Attribute>670</Attribute>
<RateBrutto/>
<Brutto>472.5</Brutto>
<DetailBrutto/>
<RateNetto/>
<Netto>450</Netto>
<DetailNetto/>
<Discount xsi:nil="true"/>
<NMen>3</NMen>
<Partner>
<ID>10766</ID>
<Name>Консульство</Name>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<PartnersGroupID>0</PartnersGroupID>
<FullName/>
<BossName/>
<Fax/>
<Address/>
<Zip/>
<Email/>
<Phones/>
</Partner>
<Status>
<ID>1</ID>
<Name>Заказ на бронирование</Name>
<NameLat>order for booking</NameLat>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</Status>
<Quota>NotChecked</Quota>
<PacketID>211</PacketID>
<City>
<ID>25</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</City>
<Country>
<ID>222</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<IsIncoming>false</IsIncoming>
</Country>
<Tourists>
<Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="true" ExternalID="0">
<ID>1</ID>
<Name>
<FirstName>AAA</FirstName>
<LastName>AAA</LastName>
</Name>
<NameLat>
<FirstName>AAA</FirstName>
<LastName>AAA</LastName>
</NameLat>
<LocalPassport IssuedBy="" Series="" Number=""/>
<ForeignPassport IssuedBy="" Series="" Number=""/>
</Tourist>
<Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="false" ExternalID="0">
<ID>2</ID>
<Name>
<FirstName>BBB</FirstName>
<LastName>BBB</LastName>
</Name>
<NameLat>
<FirstName>BBB</FirstName>
<LastName>BBB</LastName>
</NameLat>
<LocalPassport IssuedBy="" Series="" Number=""/>
<ForeignPassport IssuedBy="" Series="" Number=""/>
</Tourist>
<Tourist Sex="Female" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="false" ExternalID="0">
<ID>3</ID>
<Name>
<FirstName>CCC</FirstName>
<LastName>CCC</LastName>
</Name>
<NameLat>
<FirstName>CCC</FirstName>
<LastName>CCC</LastName>
</NameLat>
<LocalPassport IssuedBy="" Series="" Number=""/>
<ForeignPassport IssuedBy="" Series="" Number=""/>
</Tourist>
</Tourists>
<Notes/>
<PartnerContractId>0</PartnerContractId>
<LinkingStatus>0</LinkingStatus>
<LinkingServiceKey>0</LinkingServiceKey>
<IsAllNetCostOffers>false</IsAllNetCostOffers>
<IsAllGrossCostOffers>false</IsAllGrossCostOffers>
<ServiceClass>
<ID>3</ID>
<Name>Отель/Круиз</Name>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<ServiceClasses>None</ServiceClasses>
</ServiceClass>
<IsGroup>false</IsGroup>
<Hotel>
<ID>3231</ID>
<Name>Тестовый отель 1*</Name>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<City>
<ID>3231</ID>
<Name>Лондон</Name>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</City>
</Hotel>
<Room>
<ID>1117</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<RoomType>
<ID>2</ID>
<Name>DBL</Name>
<NameLat/>
<Code>DBL</Code>
<CodeLat/>
<Unicode/>
<Description/>
<Places>
<Main>2</Main>
<Extra>3</Extra>
</Places>
</RoomType>
<RoomCategory>
<ID>20</ID>
<Name>Standart</Name>
<NameLat/>
<Code>STD</Code>
<CodeLat/>
<Unicode/>
<Description/>
<PrintOrder>0</PrintOrder>
</RoomCategory>
<RoomAccomodation>
<ID>325</ID>
<Name>2A</Name>
<NameLat/>
<Code>2A</Code>
<CodeLat/>
<Unicode/>
<Description/>
<Places>
<Main>2</Main>
<Extra>1</Extra>
</Places>
<IsMain>true</IsMain>
<AgeRange AgeFrom="0" AgeTo="0"/>
<AgeRange2 AgeFrom="0" AgeTo="0"/>
<PerRoom>true</PerRoom>
</RoomAccomodation>
</Room>
<Pansion>
<ID>1</ID>
<Name>Пансион</Name>
<NameLat/>
<Code>FB</Code>
<CodeLat/>
<Unicode/>
<Description/>
</Pansion>
</Service>
<Service xsi:type="ExcursionService" Brutto="5.25" Netto="5">
<ID>-162</ID>
<Name>
Экскурсия::Лондон/Британский музей, 3 часа/автобус,20 чел./
</Name>
<ExternalID>0</ExternalID>
<StartDate>2018-05-24T00:00:00</StartDate>
<EndDate>2018-05-24T00:00:00</EndDate>
<StartDay>1</StartDay>
<Duration>0</Duration>
<Attribute>0</Attribute>
<RateBrutto/>
<Brutto>5.25</Brutto>
<DetailBrutto/>
<RateNetto/>
<Netto>5</Netto>
<DetailNetto/>
<Discount xsi:nil="true"/>
<NMen>1</NMen>
<Partner>
<ID>10760</ID>
<Name>партнер</Name>
<NameLat>partner</NameLat>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<PartnersGroupID>0</PartnersGroupID>
<FullName/>
<BossName/>
<Fax/>
<Address/>
<Zip/>
<Email/>
<Phones/>
</Partner>
<Status>
<ID>0</ID>
<Name>Ok</Name>
<NameLat>Ok</NameLat>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</Status>
<Quota>NotChecked</Quota>
<PacketID>252</PacketID>
<City>
<ID>25</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</City>
<Country>
<ID>222</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<IsIncoming>false</IsIncoming>
</Country>
<Tourists>
<Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="true" ExternalID="0">
<ID>1</ID>
<Name>
<FirstName>AAA</FirstName>
<LastName>AAA</LastName>
</Name>
<NameLat>
<FirstName>AAA</FirstName>
<LastName>AAA</LastName>
</NameLat>
<LocalPassport IssuedBy="" Series="" Number=""/>
<ForeignPassport IssuedBy="" Series="" Number=""/>
</Tourist>
</Tourists>
<Notes/>
<PartnerContractId>0</PartnerContractId>
<LinkingStatus>0</LinkingStatus>
<LinkingServiceKey>0</LinkingServiceKey>
<IsAllNetCostOffers>false</IsAllNetCostOffers>
<IsAllGrossCostOffers>false</IsAllGrossCostOffers>
<ServiceClass>
<ID>4</ID>
<Name>Экскурсия</Name>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<ServiceClasses>None</ServiceClasses>
</ServiceClass>
<IsGroup>false</IsGroup>
<Excursion>
<ID>41</ID>
<Name>Британский музей</Name>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
<PlaceFrom/>
<PlaceTo/>
<TimeBeg>0001-01-01T00:00:00</TimeBeg>
<TimeEnd>0001-01-01T00:00:00</TimeEnd>
</Excursion>
<Transport>
<ID>3</ID>
<Name/>
<NameLat/>
<Code/>
<CodeLat/>
<Unicode/>
<Description/>
</Transport>
</Service>
</ReservationServices>
<ReservationTourists>
<Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="true" ExternalID="0">
<ID>1</ID>
<Name>
<FirstName>AAA</FirstName>
<LastName>AAA</LastName>
</Name>
<NameLat>
<FirstName>AAA</FirstName>
<LastName>AAA</LastName>
</NameLat>
<LocalPassport IssuedBy="" Series="" Number=""/>
<ForeignPassport IssuedBy="" Series="" Number=""/>
</Tourist>
<Tourist Sex="Male" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="false" ExternalID="0">
<ID>2</ID>
<Name>
<FirstName>BBB</FirstName>
<LastName>BBB</LastName>
</Name>
<NameLat>
<FirstName>BBB</FirstName>
<LastName>BBB</LastName>
</NameLat>
<LocalPassport IssuedBy="" Series="" Number=""/>
<ForeignPassport IssuedBy="" Series="" Number=""/>
</Tourist>
<Tourist Sex="Female" BirthDate="1990-12-12T00:00:00" AgeType="Adult" Citizen="Россия" IsMain="false" ExternalID="0">
<ID>3</ID>
<Name>
<FirstName>CCC</FirstName>
<LastName>CCC</LastName>
</Name>
<NameLat>
<FirstName>CCC</FirstName>
<LastName>CCC</LastName>
</NameLat>
<LocalPassport IssuedBy="" Series="" Number=""/>
<ForeignPassport IssuedBy="" Series="" Number=""/>
</Tourist>
</ReservationTourists>
<DogovorGlobalStatus>3</DogovorGlobalStatus>
</ReservationInfo>
</GetDogovorInfoResult>
</GetDogovorInfoResponse>
</soap:Body>
</soap:Envelope>
|
Метод получения информации по путевке (GetReservationInfo)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://megatec.ru/">
<soap:Header/>
<soap:Body>
<GetReservationInfo xmlns="http://megatec.ru/">
<token>?</token>
<reservationCode>EN40228001</reservationCode>
<partnerKey>0</partnerKey>
<param>
<Code>EN40228001</Code>
<Price>225</Price>
<Discount>0</Discount>
</param>
</GetReservationInfo>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetReservationInfoResponse xmlns="http://megatec.ru/">
<GetReservationInfoResult><![CDATA[<table border="2">
<tr><td colspan="2">
Новая заявка
на организацию экскурсионного туристического /
санаторно-курортного обслуживания к путевке EN40228001
(Англия, Лондон, Индивидуально)</td></tr>
<tr><td colspan="2"></td></tr>
<tr><td colspan="2"></td></tr>
<tr><td colspan="2">Даты заезда: с 28.02.2014 по 03.03.2014, кол-во дней 4</td></tr>
<tr><td colspan="2"></td></tr>
<tr><td> Наименование: </td><td>Отель в Лондоне 1* (Лондон)</td></tr>
<tr><td> Категория номера: </td><td>Single Standart Взрослый</td></tr>
<tr><td> Размещение (кол-во мест в номере):</td><td> 1</td></tr>
<tr><td> Список заезжающих:</td><td> Лондон Джек /М; </td></tr>
<tr><td> Питание:</td><td> Пансион</td></tr>
<tr><td colspan="2"></td></tr>
<tr><td>Полный список заезжающих: </td><td>Лондон Джек /М ;</td></tr>
<tr><td>Экскурсионная программа:</td><td> </td></tr>
<tr><td>Дополнительные услуги:</td><td> </td></tr>
<tr><td colspan="2"></td></tr>
<tr><td>Итого к оплате: </td><td>225 $ (Двести двадцать пять $ 00 )</td></tr>
<tr><td>Сумма заказа: </td><td>225 $</td></tr>
<tr><td>Номер путевке в базе данных субагента: </td><td>EN40228001</td></tr>
<tr><td>Дата продажи: </td><td>24.02.2014</td></tr>
</table>]]></GetReservationInfoResult>
</GetReservationInfoResponse>
</soap:Body>
</soap:Envelope>
|
Метод для сохранения номера путевки (SetReservationCode)
Пример SOAP-запроса к сервису
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://megatec.ru/">
<soap:Header/>
<soap:Body>
<SetReservationCode xmlns="http://megatec.ru/">
<token>?</token>
<reservationCode>EN40228001</reservationCode>
<partnerCode>40228001EN</partnerCode>
</SetReservationCode>
</soap:Body>
</soap:Envelope>
|
Пример SOAP-ответа сервиса
Метод ничего не возвращает.