Master-Interlook:HotelService — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Aefremov (обсуждение | вклад) (→ManageBooking (Передача изменений по услуге проживания в Interlook)) |
Aefremov (обсуждение | вклад) (→SearchBookings (Получение списка забронированных заявок)) |
||
(не показаны 32 промежуточные версии этого же участника) | |||
Строка 2: | Строка 2: | ||
<table style="background-color:#ffffcc;color:black" border="1" cellpadding="10" cellspacing="0"><tr><td> | <table style="background-color:#ffffcc;color:black" border="1" cellpadding="10" cellspacing="0"><tr><td> | ||
− | + | Доступно начиная с релиза 11.20<br> | |
− | |||
</td></tr></table><br> | </td></tr></table><br> | ||
=Введение= | =Введение= | ||
− | Сервис '''InterlookHotelService''' | + | Сервис '''InterlookHotelService''' предназначен для работы с отелями. Работает с методами REST API. Для вызова методов REST API можно использовать SoapUi. |
[[Файл: mb_030.png|left|Предупреждение]] <BR> | [[Файл: mb_030.png|left|Предупреждение]] <BR> | ||
Для доступа к сервису у онлайн пользователя должен быть установлен признак '''Hotel/Service''' в настройке '''Person connection''' и в настройках '''Role''' активирован параметр '''Show hotel reservations by date'''.</br> | Для доступа к сервису у онлайн пользователя должен быть установлен признак '''Hotel/Service''' в настройке '''Person connection''' и в настройках '''Role''' активирован параметр '''Show hotel reservations by date'''.</br> | ||
</br> | </br> | ||
<BR> | <BR> | ||
+ | |||
+ | ==Подключение к базе данных ПК «Мастер-Interlook»== | ||
+ | В файле <code>web.config</code>, расположенном в папке '''Interlook.HotelServiceService''' пропишите необходимые параметры подключения (<span style="color:red">красным цветом</span> выделены значения, которые необходимо ввести). | ||
+ | Строка подключения к базе данных ПК «Мастер-Interlook»:<br /> | ||
+ | <code><add key = "connectionString" value = "Data Source=<span style="color:red">ip-адрес сервера базе данных ПК «Мастер-Interlook»</span>;Initial Catalog=<span style="color:red">название базы данных ПК «Мастер-Interlook»</span>;User ID=<span style="color:red">логин пользователя ПК «Мастер-Interlook»</span>;Password=<span style="color:red">пароль пользователя ПК «Мастер-Interlook»</span>"/></code> | ||
+ | ==Настройки в файле WEB.CONFIG== | ||
+ | Настройки задаются в секции <code><appSettings></code> файла <code>web.config</code> основного приложения Interlook.HotelServiceService. | ||
+ | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
+ | |||
+ | |- style="background-color:#F2F2F2" | ||
+ | |||
+ | ! width="2%" | № | ||
+ | ! width="28%" | Описание | ||
+ | ! width="35%" | Значение | ||
+ | ! width="35%" | Настройка | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 1 | ||
+ | | Процедура перезапуска кэша | ||
+ | | '''cachingTime''' | ||
+ | "cachingTime" value="-1" - инициализация кэша максимально производительная: каждый отель загружается в своем потоке (возможны сбои).</br> | ||
+ | "cachingTime" value="-2"/> - весь кэш загружается в 2 потока. | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="cachingTime" value="-1"/> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 2 | ||
+ | | Включение логирования о использовании памяти сервера | ||
+ | | '''LogCacheMemory'''</br> | ||
+ | Настройка служит для включения или отключения логирования в таблицу базы данных о использовании кешем сервиса памяти сервера.</br> | ||
+ | 0 - выключена, 1 - включена </br> | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="LogCacheMemory" value="0"/> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | |} | ||
=Методы HotelService= | =Методы HotelService= | ||
Строка 103: | Строка 143: | ||
* '''change''' – возвращает измененные бронирования с изменениями, внесенными в выбранный период | * '''change''' – возвращает измененные бронирования с изменениями, внесенными в выбранный период | ||
* '''cancel''' – возвращает информацию об отмененных бронированиях за выбранный период | * '''cancel''' – возвращает информацию об отмененных бронированиях за выбранный период | ||
+ | * '''inwork''' – возвращает информацию по заявкам взятым отелем в работу. <br /> | ||
+ | Заявка получает статус InWork в следующих случаях:<br /> | ||
+ | - если через [[Master-Interlook:HotelService#|HotelService]] в методе [[Master-Interlook:HotelService#ManageBooking (Передача изменений по услуге проживания в Interlook)|ManageBooking]] по заявке передан параметр <hotelWorkStatus>true</hotelWorkStatus><br /> | ||
+ | - если по заявке распечатано или отправлено какое-либо из уведомлений по кнопке Actions в окне Interlook.<br /> | ||
+ | * '''showConfirmed''' - отображает путевки со статусом Confirmed (false или отсутствие настройки означает, что путевки со статусом Confirmed не отображаются) | ||
Возвращаемый результат: | Возвращаемый результат: | ||
** '''BookingInfo''' – массив данных брони | ** '''BookingInfo''' – массив данных брони | ||
Строка 136: | Строка 181: | ||
****** '''StatusId''' – ключ статуса по услуге проживания | ****** '''StatusId''' – ключ статуса по услуге проживания | ||
****** '''StatusName''' – имя статуса по услуге проживания | ****** '''StatusName''' – имя статуса по услуге проживания | ||
− | |||
***** '''CheckIn''' – дата заезда в отель | ***** '''CheckIn''' – дата заезда в отель | ||
***** '''CheckOut''' – дата выезда из отеля | ***** '''CheckOut''' – дата выезда из отеля | ||
Строка 145: | Строка 189: | ||
******* '''Sex''' – пол туриста | ******* '''Sex''' – пол туриста | ||
******* '''HotelServiceId''' – ключ услуги проживания с которой связан турист | ******* '''HotelServiceId''' – ключ услуги проживания с которой связан турист | ||
+ | ***** '''CostOffers''' – массив данных по CostOffers, по которым рассчитана цена услуги | ||
+ | ****** '''CostOfferInfo''' – массив данных по конкретному CostOffer | ||
+ | ******* '''CostOfferName''' – название CostOffer (Если заявка не аннулирована, то выводим название CostOffer по цене netto. Если заявка аннулирована со штрафами, то выводим название CostOffer по цене брутто. Если заявка аннулирована без штрафов, то выводим текст "Canceled without penalty") | ||
+ | ******* '''CostOfferDateBegin''' – дата начала действия CostOffer | ||
+ | ******* '''CostOfferDateEnd''' – дата окончания действия CostOffer | ||
+ | ******* '''CostOfferDuration''' – продолжительность проживания до данному CostOffer | ||
+ | ***** '''Penalty''' – информация о штрафах по аннулированной заявке | ||
+ | ***** '''FlightInfo''' – секция информации об авиаперелете | ||
+ | ****** '''Tourist''' – Фамилия и имя туриста | ||
+ | ****** '''Charters''' – секция авиаперелета | ||
+ | ******* '''CharterInfo''' – секция информации об авиаперелете | ||
+ | ******** '''Type''' – тип авиаперелета (Arrival или Departure) | ||
+ | ******** '''Date''' – дата заезда/выезда из отеля | ||
+ | ******** '''Details''' – наименование авиаперелета (номер рейса - время прилета/вылета) | ||
*** '''MessageInfo''' – массив данных сообщений | *** '''MessageInfo''' – массив данных сообщений | ||
**** '''Id''' – идентификатор сообщения | **** '''Id''' – идентификатор сообщения | ||
Строка 162: | Строка 220: | ||
<tem:SearchBookings> | <tem:SearchBookings> | ||
<!--Optional:--> | <!--Optional:--> | ||
− | <tem:guid> | + | <tem:guid>fd57bdcb-35e0-41b1-9743-eba763211e49</tem:guid> |
<!--Optional:--> | <!--Optional:--> | ||
<tem:hotelID> | <tem:hotelID> | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
− | <tem:int> | + | <tem:int>2930</tem:int> |
</tem:hotelID> | </tem:hotelID> | ||
<tem:dateInfo>1</tem:dateInfo> | <tem:dateInfo>1</tem:dateInfo> | ||
− | <tem:dateFrom> | + | <tem:dateFrom>2022-08-19</tem:dateFrom> |
− | <tem:dateTo> | + | <tem:dateTo>2022-08-30</tem:dateTo> |
− | <tem: | + | <tem:New>1</tem:New> |
− | <tem: | + | <tem:change>1</tem:change> |
− | <tem: | + | <tem:cancel>1</tem:cancel> |
− | <tem: | + | <tem:inwork>1</tem:inwork> |
− | + | </tem:SearchBookings> | |
− | |||
</soapenv:Body> | </soapenv:Body> | ||
</soapenv:Envelope> | </soapenv:Envelope> | ||
Строка 187: | Строка 244: | ||
<SearchBookingsResponse xmlns="http://tempuri.org/"> | <SearchBookingsResponse xmlns="http://tempuri.org/"> | ||
<SearchBookingsResult> | <SearchBookingsResult> | ||
− | + | <BookingInfo> | |
− | <Booking> | + | <Booking>MT140101AAL</Booking> |
− | <BookingID> | + | <BookingID>37608</BookingID> |
− | <Action> | + | <Action>Changed</Action> |
− | <CreationDate> | + | <CreationDate>2022-08-25T14:37:12.25</CreationDate> |
<ChangeDate xsi:nil="true"/> | <ChangeDate xsi:nil="true"/> | ||
<CancelDate xsi:nil="true"/> | <CancelDate xsi:nil="true"/> | ||
Строка 200: | Строка 257: | ||
<HotelServices> | <HotelServices> | ||
<HotelServiceInfo> | <HotelServiceInfo> | ||
− | <HotelServiceId> | + | <HotelServiceId>171495</HotelServiceId> |
− | <HotelServiceName>HTL::Kiev/ | + | <HotelServiceName>HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB</HotelServiceName> |
<Hotel> | <Hotel> | ||
− | <HotelId> | + | <HotelId>2930</HotelId> |
− | <HotelName> | + | <HotelName>Red</HotelName> |
</Hotel> | </Hotel> | ||
<Pansion> | <Pansion> | ||
− | <PansionId> | + | <PansionId>3</PansionId> |
− | <PansionName> | + | <PansionName>Bed and Breakfast</PansionName> |
</Pansion> | </Pansion> | ||
<RoomType> | <RoomType> | ||
Строка 215: | Строка 272: | ||
</RoomType> | </RoomType> | ||
<RoomAccomodation> | <RoomAccomodation> | ||
− | <AccommodationId> | + | <AccommodationId>5558</AccommodationId> |
− | <AccommodationName> | + | <AccommodationName>2AD</AccommodationName> |
</RoomAccomodation> | </RoomAccomodation> | ||
<RoomCategory> | <RoomCategory> | ||
− | <RoomCategoryId> | + | <RoomCategoryId>20</RoomCategoryId> |
− | <RoomCategoryName> | + | <RoomCategoryName>Jakuzzi</RoomCategoryName> |
</RoomCategory> | </RoomCategory> | ||
<Status> | <Status> | ||
− | <StatusId> | + | <StatusId>1</StatusId> |
− | <StatusName> | + | <StatusName>Wait</StatusName> |
</Status> | </Status> | ||
− | <CheckIn> | + | <CheckIn>2022-08-20T00:00:00</CheckIn> |
− | <CheckOut> | + | <CheckOut>2022-08-27T00:00:00</CheckOut> |
<Tourists> | <Tourists> | ||
<TouristInfo> | <TouristInfo> | ||
− | <Name/> | + | <Name>Vladimirov Alex</Name> |
− | <BirthDate | + | <BirthDate>1979-08-10T00:00:00</BirthDate> |
− | <Sex/> | + | <Sex>MR</Sex> |
− | <HotelServiceId> | + | <HotelServiceId>171495</HotelServiceId> |
</TouristInfo> | </TouristInfo> | ||
<TouristInfo> | <TouristInfo> | ||
− | <Name/> | + | <Name>Vladimirovicha Alexa</Name> |
− | <BirthDate | + | <BirthDate>1972-08-11T00:00:00</BirthDate> |
− | <Sex/> | + | <Sex>MR</Sex> |
− | <HotelServiceId> | + | <HotelServiceId>171495</HotelServiceId> |
</TouristInfo> | </TouristInfo> | ||
</Tourists> | </Tourists> | ||
+ | <CostOffers> | ||
+ | <CostOfferInfo> | ||
+ | <CostOfferName>kolesnyk2/kolesnyk2</CostOfferName> | ||
+ | <CostOfferDateBegin>2022-08-20T00:00:00</CostOfferDateBegin> | ||
+ | <CostOfferDateEnd>2022-08-27T00:00:00</CostOfferDateEnd> | ||
+ | <CostOfferDuration>7</CostOfferDuration> | ||
+ | </CostOfferInfo> | ||
+ | </CostOffers> | ||
+ | <Penalty/> | ||
</HotelServiceInfo> | </HotelServiceInfo> | ||
</HotelServices> | </HotelServices> | ||
+ | <Flights> | ||
+ | <FlightInfo> | ||
+ | <Tourist>Vladimirov Alex</Tourist> | ||
+ | <Charters> | ||
+ | <CharterInfo> | ||
+ | <Type>Arrival</Type> | ||
+ | <Date>2022-08-20T00:00:00</Date> | ||
+ | <Details>A123-A124 (A123 - 16:00)</Details> | ||
+ | </CharterInfo> | ||
+ | <CharterInfo> | ||
+ | <Type>Departure</Type> | ||
+ | <Date>2022-08-27T00:00:00</Date> | ||
+ | <Details>A123-A124 (A124 - 15:00)</Details> | ||
+ | </CharterInfo> | ||
+ | </Charters> | ||
+ | </FlightInfo> | ||
+ | <FlightInfo> | ||
+ | <Tourist>Vladimirovicha Alexa</Tourist> | ||
+ | <Charters> | ||
+ | <CharterInfo> | ||
+ | <Type>Arrival</Type> | ||
+ | <Date>2022-08-20T00:00:00</Date> | ||
+ | <Details>A123-A124 (A123 - 16:00)</Details> | ||
+ | </CharterInfo> | ||
+ | <CharterInfo> | ||
+ | <Type>Departure</Type> | ||
+ | <Date>2022-08-27T00:00:00</Date> | ||
+ | <Details>A123-A124 (A124 - 15:00)</Details> | ||
+ | </CharterInfo> | ||
+ | </Charters> | ||
+ | </FlightInfo> | ||
+ | </Flights> | ||
<Messages/> | <Messages/> | ||
</BookingInfo> | </BookingInfo> | ||
− | + | </SearchBookingsResult> | |
</SearchBookingsResponse> | </SearchBookingsResponse> | ||
</soap:Body> | </soap:Body> | ||
Строка 267: | Строка 365: | ||
* '''change''' – возвращает измененные бронирования с изменениями, внесенными в выбранный период | * '''change''' – возвращает измененные бронирования с изменениями, внесенными в выбранный период | ||
* '''cancel''' – возвращает информацию об отмененных бронированиях за выбранный период | * '''cancel''' – возвращает информацию об отмененных бронированиях за выбранный период | ||
+ | * '''inwork''' – возвращает информацию по заявкам взятым отелем в работу | ||
+ | Заявка получает статус InWork в следующих случаях:<br /> | ||
+ | - если через [[Master-Interlook:HotelService#|HotelService]] в методе [[Master-Interlook:HotelService#ManageBooking|ManageBooking]] по заявке передан параметр <hotelWorkStatus>true</hotelWorkStatus><br /> | ||
+ | - если по заявке распечатано или отправлено какое-либо из уведомлений по кнопке Actions в окне Interlook.<br /> | ||
+ | * '''showConfirmed''' - отображает путевки со статусом Confirmed (false или отсутствие настройки означает, что путевки со статусом Confirmed не отображаются) | ||
Возвращаемый результат: | Возвращаемый результат: | ||
* '''Booking''' – номер брони в системе Interlook | * '''Booking''' – номер брони в системе Interlook | ||
Строка 306: | Строка 409: | ||
**** '''StatusId''' – ключ статуса по услуге проживания | **** '''StatusId''' – ключ статуса по услуге проживания | ||
**** '''StatusName''' – имя статуса по услуге проживания | **** '''StatusName''' – имя статуса по услуге проживания | ||
− | *** ''' | + | ***** '''CheckIn''' – дата заезда в отель |
− | * ''' | + | ***** '''CheckOut''' – дата выезда из отеля |
− | ** '''Id''' – идентификатор сообщения | + | ***** '''Tourists''' – массив данных туристов |
− | ** '''IsOutgoing''' – исходящее (true - исходящее, false - входящее) | + | ****** '''TouristInfo''' – массив данных по туристу |
− | ** '''DateCreate''' – дата создания сообщения | + | ******* '''Name''' – имя туриста |
− | ** | + | ******* '''BirthDate''' – дата рождения туриста |
− | ** '''IsRead''' – прочитано (true - прочитано, false - не прочитано ) | + | ******* '''Sex''' – пол туриста |
− | ** '''Text''' – текст сообщения | + | ******* '''HotelServiceId''' – ключ услуги проживания с которой связан турист |
+ | ***** '''CostOffers''' – массив данных по CostOffers, по которым рассчитана цена услуги | ||
+ | ****** '''CostOfferInfo''' – массив данных по конкретному CostOffer | ||
+ | ******* '''CostOfferName''' – название CostOffer (Если заявка не аннулирована, то выводим название CostOffer по цене netto. Если заявка аннулирована со штрафами, то выводим название CostOffer по цене брутто. Если заявка аннулирована без штрафов, то выводим текст "Canceled without penalty") | ||
+ | ******* '''CostOfferDateBegin''' – дата начала действия CostOffer | ||
+ | ******* '''CostOfferDateEnd''' – дата окончания действия CostOffer | ||
+ | ******* '''CostOfferDuration''' – продолжительность проживания до данному CostOffer | ||
+ | ***** '''Penalty''' – информация о штрафах по аннулированной заявке | ||
+ | ***** '''FlightInfo''' – секция информации об авиаперелете | ||
+ | ****** '''Tourist''' – Фамилия и имя туриста | ||
+ | ****** '''Charters''' – секция авиаперелета | ||
+ | ******* '''CharterInfo''' – секция информации об авиаперелете | ||
+ | ******** '''Type''' – тип авиаперелета (Arrival или Departure) | ||
+ | ******** '''Date''' – дата заезда/выезда из отеля | ||
+ | ******** '''Details''' – наименование авиаперелета (номер рейса - время прилета/вылета) | ||
+ | *** '''MessageInfo''' – массив данных сообщений | ||
+ | **** '''Id''' – идентификатор сообщения | ||
+ | **** '''IsOutgoing''' – исходящее (true - исходящее, false - входящее) | ||
+ | **** '''DateCreate''' – дата создания сообщения | ||
+ | **** '''IsRead''' – прочитано (true - прочитано, false - не прочитано ) | ||
+ | **** '''Text''' – текст сообщения | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
− | Вызов метода | + | Вызов метода SearchBookingsJSON |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> | ||
Строка 324: | Строка 447: | ||
<soapenv:Body> | <soapenv:Body> | ||
<tem:SearchBookingsJSON> | <tem:SearchBookingsJSON> | ||
− | + | <!--Optional:--> | |
− | <tem:guid> | + | <tem:guid>fd57bdcb-35e0-41b1-9743-eba763211e49</tem:guid> |
<!--Optional:--> | <!--Optional:--> | ||
<tem:hotelID> | <tem:hotelID> | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
− | <tem:int> | + | <tem:int>2930</tem:int> |
</tem:hotelID> | </tem:hotelID> | ||
<tem:dateInfo>1</tem:dateInfo> | <tem:dateInfo>1</tem:dateInfo> | ||
− | <tem:dateFrom> | + | <tem:dateFrom>2022-08-20</tem:dateFrom> |
− | <tem:dateTo> | + | <tem:dateTo>2022-08-28</tem:dateTo> |
− | <tem: | + | <tem:New>1</tem:New> |
− | <tem: | + | <tem:change>1</tem:change> |
− | <tem: | + | <tem:cancel>1</tem:cancel> |
− | <tem: | + | <tem:inwork>1</tem:inwork> |
− | |||
</tem:SearchBookingsJSON> | </tem:SearchBookingsJSON> | ||
</soapenv:Body> | </soapenv:Body> | ||
Строка 344: | Строка 466: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Возвращаемый результат метода | + | Возвращаемый результат метода SearchBookingsJSON |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
− | <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> | ||
<SearchBookingsJSONResponse xmlns="http://tempuri.org/"> | <SearchBookingsJSONResponse xmlns="http://tempuri.org/"> | ||
− | <SearchBookingsJSONResult>[{"Booking":" | + | <SearchBookingsJSONResult>[{"Booking":"MT140101AAH","BookingID":37601,"Action":"New","CreationDate": |
− | "CreationDate":" | + | "2022-08-23T11:36:30.907","ChangeDate":null,"CancelDate":null,"CustomerMarket":{"CustomerMarketId":2, |
− | " | + | "CustomerMarketName":"Russian Market"},"HotelServices":[{"CheckIn":"2022-08-20T00:00:00","CheckOut" |
− | "BirthDate":" | + | "2022-08-27T00:00:00","Tourists":[{"Name":"Vladimirov Alex","BirthDate":"1979-08-10T00:00:00","Sex": |
− | "HotelServiceName":"HTL::Kiev/ | + | "MR","HotelServiceId":171448},{"Name":"Vladimirovicha Alexa","BirthDate":"1972-08-11T00:00:00","Sex": |
− | "HotelName":" | + | "MR","HotelServiceId":171448}],"CostOffers":[{"CostOfferName":"kolesnyk2/kolesnyk2","CostOfferDateBegin" |
− | "RoomType":{"RoomTypeId":3,"RoomTypeName":"Double Room"},"RoomAccomodation":{"AccommodationId":5558,"AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId":20, | + | :"2022-08-20T00:00:00","CostOfferDateEnd":"2022-08-27T00:00:00","CostOfferDuration":7}],"Penalty":"", |
− | "RoomCategoryName":"Jakuzzi"},"Status":{"StatusId":1,"StatusName":"Wait"} | + | "Notes":null,"HotelServiceId":171448,"HotelServiceName":"HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB", |
− | + | "Hotel":{"HotelId":2930,"HotelName":"Red"},"Pansion":{"PansionId":3,"PansionName":"Bed and Breakfast"} | |
− | + | ,"RoomType":{"RoomTypeId":3,"RoomTypeName":"Double Room"},"RoomAccomodation":{"AccommodationId":5558, | |
− | + | "AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId":20,"RoomCategoryName":"Jakuzzi"},"Status" | |
− | " | + | :{"StatusId":1,"StatusName":"Wait"}}],"Flights":[],"Messages":[]},{"Booking":"MT140101AAJ","BookingID" |
− | " | + | :37602,"Action":"New","CreationDate":"2022-08-23T11:37:05.227","ChangeDate":null,"CancelDate":null, |
− | + | "CustomerMarket":{"CustomerMarketId":2,"CustomerMarketName":"Russian Market"},"HotelServices": | |
− | + | [{"CheckIn":"2022-08-20T00:00:00","CheckOut":"2022-08-27T00:00:00","Tourists":[{"Name":"Vladimirov Alex", | |
− | + | "BirthDate":"1979-08-10T00:00:00","Sex":"MR","HotelServiceId":171454},{"Name":"Vladimirovicha Alexa" | |
− | + | ,"BirthDate":"1972-08-11T00:00:00","Sex":"MR","HotelServiceId":171454}],"CostOffers":[{"CostOfferName" | |
− | " | + | :"kolesnyk2/kolesnyk2","CostOfferDateBegin":"2022-08-20T00:00:00","CostOfferDateEnd":"2022-08-27T00:00 |
− | + | :00","CostOfferDuration":7}],"Penalty":"","Notes":null,"HotelServiceId":171454,"HotelServiceName": | |
− | " | + | "HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB","Hotel":{"HotelId":2930,"HotelName":"Red"},"Pansion": |
− | + | {"PansionId":3,"PansionName":"Bed and Breakfast"},"RoomType":{"RoomTypeId":3,"RoomTypeName":"Double Room"} | |
− | + | ,"RoomAccomodation":{"AccommodationId":5558,"AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId": | |
− | "HotelServiceId": | + | 20,"RoomCategoryName":"Jakuzzi"},"Status":{"StatusId":1,"StatusName":"Wait"}}],"Flights":[],"Messages": |
− | Jakuzzi/BB","Hotel":{"HotelId": | + | []},{"Booking":"MT140101AAK","BookingID":37607,"Action":"Changed","CreationDate":"2022-08-25T14:35:38.033", |
− | "PansionName":"Bed and Breakfast"},"RoomType":{"RoomTypeId":3,"RoomTypeName": | + | "ChangeDate":null,"CancelDate":null,"CustomerMarket":{"CustomerMarketId":2,"CustomerMarketName" |
− | "Double Room"},"RoomAccomodation":{"AccommodationId":5558,"AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId":20,"RoomCategoryName":"Jakuzzi"},"Status":{"StatusId": | + | :"Russian Market"},"HotelServices":[{"CheckIn":"2022-08-20T00:00:00","CheckOut":"2022-08-27T00:00:00" |
− | " | + | ,"Tourists":[{"Name":"Vladimirov Alex","BirthDate":"1979-08-10T00:00:00","Sex":"MR","HotelServiceId" |
− | + | :171489},{"Name":"Vladimirovicha Alexa","BirthDate":"1972-08-11T00:00:00","Sex":"MR","HotelServiceId" | |
− | {"HotelId": | + | :171489}],"CostOffers":[{"CostOfferName":"kolesnyk2/kolesnyk2","CostOfferDateBegin":"2022-08-20T00:00:00" |
− | "Bed and Breakfast"},"RoomType":{"RoomTypeId":3,"RoomTypeName":"Double Room"},"RoomAccomodation":{"AccommodationId":5558,"AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId": | + | ,"CostOfferDateEnd":"2022-08-27T00:00:00","CostOfferDuration":7}],"Penalty":"","Notes":null, |
− | "RoomCategoryName":" | + | "HotelServiceId":171489,"HotelServiceName":"HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB","Hotel" |
− | " | + | :{"HotelId":2930,"HotelName":"Red"},"Pansion":{"PansionId":3,"PansionName":"Bed and Breakfast"} |
+ | ,"RoomType":{"RoomTypeId":3,"RoomTypeName":"Double Room"},"RoomAccomodation":{"AccommodationId" | ||
+ | :5558,"AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId":20,"RoomCategoryName":"Jakuzzi"} | ||
+ | ,"Status":{"StatusId":1,"StatusName":"Wait"}}],"Flights":[{"Tourist":"Vladimirov Alex","Charters" | ||
+ | :[{"Type":"Arrival","Date":"2022-08-20T00:00:00","Details":"A123-A124 (A123 - 16:00)"},{"Type" | ||
+ | :"Departure","Date":"2022-08-27T00:00:00","Details":"A123-A124 (A124 - 15:00)"}]},{"Tourist": | ||
+ | "Vladimirovicha Alexa","Charters":[{"Type":"Arrival","Date":"2022-08-20T00:00:00","Details": | ||
+ | "A123-A124 (A123 - 16:00)"},{"Type":"Departure","Date":"2022-08-27T00:00:00","Details": | ||
+ | "A123-A124 (A124 - 15:00)"}]}],"Messages":[]}]</SearchBookingsJSONResult> | ||
</SearchBookingsJSONResponse> | </SearchBookingsJSONResponse> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===GetMarkets (Получение списка рынков)=== | ||
+ | Метод предназначен для отображения всех существующих рынков. <br /> | ||
+ | Принимаемые параметры запроса ( * – обязательный):<br /> | ||
+ | Отсутствуют.<br /> | ||
+ | Возвращаемый результат: | ||
+ | * '''GetMarketsResult''' – массив данных рынков | ||
+ | ** '''Name''' – наименование рынка | ||
+ | ** '''Id''' – идентификатор рынка | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода GetMarkets | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> | ||
+ | <soapenv:Header/> | ||
+ | <soapenv:Body> | ||
+ | <tem:GetMarkets/> | ||
+ | </soapenv:Body> | ||
+ | </soapenv:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Возвращаемый результат метода GetMarkets | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | <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> | ||
+ | <GetMarketsResponse xmlns="http://tempuri.org/"> | ||
+ | <GetMarketsResult> | ||
+ | <MarketInfo Name="!test" Id="61"/> | ||
+ | <MarketInfo Name="<All>" Id="0"/> | ||
+ | <MarketInfo Name="1111" Id="33"/> | ||
+ | <MarketInfo Name="1112" Id="34"/> | ||
+ | <MarketInfo Name="12" Id="32"/> | ||
+ | <MarketInfo Name="12" Id="40"/> | ||
+ | <MarketInfo Name="1t1" Id="44"/> | ||
+ | <MarketInfo Name="1t2" Id="45"/> | ||
+ | <MarketInfo Name="1t3" Id="46"/> | ||
+ | <MarketInfo Name="1t4" Id="47"/> | ||
+ | <MarketInfo Name="1t5" Id="48"/> | ||
+ | <MarketInfo Name="1t6" Id="49"/> | ||
+ | <MarketInfo Name="21" Id="36"/> | ||
+ | <MarketInfo Name="234" Id="37"/> | ||
+ | <MarketInfo Name="313" Id="38"/> | ||
+ | <MarketInfo Name="34" Id="35"/> | ||
+ | <MarketInfo Name="34" Id="41"/> | ||
+ | <MarketInfo Name="4" Id="51"/> | ||
+ | <MarketInfo Name="434" Id="39"/> | ||
+ | <MarketInfo Name="45" Id="42"/> | ||
+ | <MarketInfo Name="456" Id="43"/> | ||
+ | <MarketInfo Name="Balkan Market" Id="5"/> | ||
+ | <MarketInfo Name="France Market" Id="8"/> | ||
+ | <MarketInfo Name="Greek Market" Id="3"/> | ||
+ | <MarketInfo Name="Italy Market" Id="9"/> | ||
+ | <MarketInfo Name="market12^*#$)_22_ 09" Id="22"/> | ||
+ | <MarketInfo Name="market1FAD" Id="11"/> | ||
+ | <MarketInfo Name="market2083" Id="13"/> | ||
+ | <MarketInfo Name="market25C5" Id="16"/> | ||
+ | <MarketInfo Name="market8085" Id="14"/> | ||
+ | <MarketInfo Name="market9873" Id="10"/> | ||
+ | <MarketInfo Name="marketA5F9" Id="18"/> | ||
+ | <MarketInfo Name="marketD84E" Id="15"/> | ||
+ | <MarketInfo Name="marketF3A6" Id="19"/> | ||
+ | <MarketInfo Name="marketF415" Id="21"/> | ||
+ | <MarketInfo Name="marketFCFE" Id="20"/> | ||
+ | <MarketInfo Name="marketFFDC" Id="12"/> | ||
+ | <MarketInfo Name="mk" Id="31"/> | ||
+ | <MarketInfo Name="mk_market" Id="30"/> | ||
+ | <MarketInfo Name="Old" Id="6"/> | ||
+ | <MarketInfo Name="qwer" Id="50"/> | ||
+ | <MarketInfo Name="Russian Market" Id="2"/> | ||
+ | <MarketInfo Name="test new" Id="56"/> | ||
+ | <MarketInfo Name="test1211" Id="53"/> | ||
+ | <MarketInfo Name="Мой личный рынок" Id="25"/> | ||
+ | <MarketInfo Name="ук" Id="55"/> | ||
+ | </GetMarketsResult> | ||
+ | </GetMarketsResponse> | ||
</soap:Body> | </soap:Body> | ||
</soap:Envelope> | </soap:Envelope> | ||
Строка 392: | Строка 605: | ||
===ManageBooking (Передача изменений по услуге проживания в Interlook)=== | ===ManageBooking (Передача изменений по услуге проживания в Interlook)=== | ||
Принимаемые параметры запроса ( '''*''' – обязательный): | Принимаемые параметры запроса ( '''*''' – обязательный): | ||
− | + | * '''guid *''' – идентификатор аутентификации (возвращается при запросе к методу [[Master-Interlook:HotelService#Connect (получение аутентификационного токена)|Connect]])<br /> | |
− | + | * '''hotelServiceId *''' – ключ услуги проживания (возвращается при запросе к методу [[Master-Interlook:HotelService#SearchBookings (Получение списка забронированных заявок)|SearchBookings]])<br /> | |
− | + | * '''status''' – фильтр для отбора услуг с определенным статусом (1 - Wait, 2 - Confirmed, 3 - notConfirmed) | |
− | + | * '''message''' – сообщение для пользователя Interlook | |
− | + | * '''hotelWorkStatus''' – отметка отеля по заявке (true - отель взял заявку в работу, false - отель заявку в работу не взял). При отправке этого параметра формируется запись в историю по заявке и сообщение от провайдера. | |
− | + | <br />[[Файл: Ea_84.png|1000px|История]]<br /> | |
+ | <br />[[Файл: Ea_85.png|1000px|Сообщение]]<br /> | ||
Возвращаемый результат: | Возвращаемый результат: | ||
* '''ManageBookingResult''' – массив данных | * '''ManageBookingResult''' – массив данных | ||
Строка 420: | Строка 634: | ||
*** '''StatusId''' – ключ статуса по услуге проживания | *** '''StatusId''' – ключ статуса по услуге проживания | ||
*** '''StatusName''' – имя статуса по услуге проживания | *** '''StatusName''' – имя статуса по услуге проживания | ||
− | + | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
Строка 435: | Строка 649: | ||
<tem:hotelServiceId>163806</tem:hotelServiceId> | <tem:hotelServiceId>163806</tem:hotelServiceId> | ||
<tem:status>1</tem:status> | <tem:status>1</tem:status> | ||
− | |||
− | |||
<!--Optional:--> | <!--Optional:--> | ||
<tem:message>яварааааааааарвя</tem:message> | <tem:message>яварааааааааарвя</tem:message> | ||
+ | <tem:hotelWorkStatus>false</tem:hotelWorkStatus> | ||
</tem:ManageBooking> | </tem:ManageBooking> | ||
</soapenv:Body> | </soapenv:Body> | ||
Строка 478: | Строка 691: | ||
<StatusName>Wait</StatusName> | <StatusName>Wait</StatusName> | ||
</Status> | </Status> | ||
− | |||
</ManageBookingResult> | </ManageBookingResult> | ||
</Data> | </Data> | ||
</ManageBookingResult> | </ManageBookingResult> | ||
</ManageBookingResponse> | </ManageBookingResponse> | ||
+ | </soap:Body> | ||
+ | </soap:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ==Методы создания цен== | ||
+ | |||
+ | ===CreateCostOffer (Создание ценового предложения)=== | ||
+ | Метод предназначен для занесения цен на объекты размещения. <br /> | ||
+ | Принимаемые параметры запроса ( * – обязательный):<br /> | ||
+ | * '''Guid *''' – идентификатор аутентификации (возвращается при запросе к методу [[Master-Interlook:HotelService#Connect (получение аутентификационного токена)|Connect]])<br /> | ||
+ | * '''costOffer''' – массив данных CostOffer | ||
+ | ** '''HotelId *''' – ключ отеля | ||
+ | ** '''RateId *''' – ключ валюты | ||
+ | ** '''CostOfferTypeId''' – ключ типа CostOffer (Ordinary или SPO. Если не указан, то отправляется Ordinary. Если в запросе имеется и заполнена секция Rules, то CostOffer автоматически определяется с типом SPO) | ||
+ | ** '''MarketIds''' – ключ рынка (если не указан, то отправляется 0 - все. Возвращается при запросе к методу [[Master-Interlook:HotelService#GetMarkets (получение списка рынков)|GetMarkets]])<br /> | ||
+ | ** '''SaleDateBegin''' – дата с которой возможно бронирование (если не указана, то берется в соответствии с текущей) | ||
+ | ** '''SaleDateEnd''' – дата до которой возможно бронирование | ||
+ | ** '''NameFromProvider''' – наименование для провайдера (если не указан, то записывается пустое) | ||
+ | ** '''PeriodBeforeCheckIn''' – период до заезда (если не указан, то отправляется 0) | ||
+ | ** '''Comment''' – комментарий | ||
+ | ** '''MinDays''' – минимальная продолжительность (если не задано, то устанавливается 1) | ||
+ | ** '''MaxDays''' – максимальная продолжительность (если не задано, то устанавливается 365) | ||
+ | * '''prices''' – массив данных цен | ||
+ | ** '''PriceRequest''' – массив данных цены | ||
+ | *** '''DateFrom *''' – дата начала (если не указана, то берется текущая) | ||
+ | *** '''DateTo *''' – дата окончания (если не указана, то берется из списка цен максимальная дата выезда) | ||
+ | *** '''DateCheckinFrom''' – дата заезда от (если не указан, то минимальная) | ||
+ | *** '''DateCheckinTo''' – дата заезда по (если не указан, то максимальная) | ||
+ | *** '''DateCheckoutFrom''' – дата выезда от (если не указан, то минимальная) | ||
+ | *** '''DateCheckoutTo''' – дата выезда по (если не указан, то максимальная) | ||
+ | *** '''WeekDays''' – день недели (если не указано, то проставляются все) | ||
+ | *** '''AccomodationId *''' – ключ типа размещения | ||
+ | *** '''RoomTypeId *''' – ключ типа комнаты | ||
+ | *** '''RoomCategoryId *''' – ключ категории комнаты | ||
+ | *** '''PansionId *''' – ключ типа питания | ||
+ | *** '''Price *''' – цена | ||
+ | *** '''TarifId''' – (если не указан, то устанавливается 0 - ordinary. Берется из таблицы Tariffs Базы Данных) | ||
+ | * '''rules''' – массив данных правил изменения цены | ||
+ | ** '''XYRuleRequst''' – массив данных правил изменения цены | ||
+ | *** '''ExcludeBy''' – какие именно ночи должны быть бесплатными (принимает значения Last - последняя, Min - дешевая, Max - дорогая) | ||
+ | *** '''Sign''' – значение количества рассчитываемых ночей (принимает значения "=" или "-") | ||
+ | *** '''XFrom''' – от какой продолжительности проживания действует акция | ||
+ | *** '''XTo''' – до какой продолжительности проживания действует акция | ||
+ | *** '''Y''' – количество бесплатных ночей или значение продолжительности проживания | ||
+ | Возвращаемый результат: | ||
+ | * '''CreateCostOfferResponse''' – массив данных CostOffer | ||
+ | ** '''Id''' – идентификатор CostOffer | ||
+ | ** '''Name''' – наименование CostOffer | ||
+ | ** '''CostOfferType''' – тип CostOffer | ||
+ | ** '''Rate''' – валюта | ||
+ | ** '''CreateDate''' – дата создания CostOffer | ||
+ | ** '''Markets''' – наименование рынка | ||
+ | ** '''XYRuleResponse''' – массив данных правил изменения цены | ||
+ | *** '''ExcludeBy''' – какие именно ночи должны быть бесплатными (принимает значения Last - последняя, Min - дешевая, Max - дорогая) | ||
+ | *** '''Sign''' – значение количества рассчитываемых ночей (принимает значения "=" или "-") | ||
+ | *** '''XFrom''' – от какой продолжительности проживания действует акция | ||
+ | *** '''XTo''' – до какой продолжительности проживания действует акция | ||
+ | *** '''Y''' – количество бесплатных ночей или значение продолжительности проживания | ||
+ | ** '''CostInfoResponse''' – массив данных цены | ||
+ | *** '''Id''' – идентификатор цены | ||
+ | *** '''Code''' – идентификатор отеля | ||
+ | *** '''CheckInDateBegin''' – дата заезда «с» | ||
+ | *** '''CheckInDateEnd''' – дата заезда «до» | ||
+ | *** '''CheckOutDateBegin''' – дата выезда «с» | ||
+ | *** '''CheckOutDateEnd''' – дата выезда «до» | ||
+ | *** '''DateBegin''' – дата действия цены «с» | ||
+ | *** '''DateEnd''' – дата действия цены «до» | ||
+ | *** '''Price''' – значение цены | ||
+ | *** '''RoomTypeId''' – ключ типа номера | ||
+ | *** '''PansionId''' – ключ питания | ||
+ | *** '''RoomCategoryId''' – ключ категории номера | ||
+ | *** '''AccommodationId''' – ключ типа размещения | ||
+ | *** '''TariffId''' – ключ тарифа (В таблице цен соответствует параметру CS_CVId) | ||
+ | *** '''Type''' – тип цены (Per Room - за комнату, Per Person - за человека) | ||
+ | В случае некорректного запроса в ответе приходит описание ошибки и номер строки, в которой указаны некорректные данные.<br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода CreateCostOffer | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> | ||
+ | <soapenv:Header/> | ||
+ | <soapenv:Body> | ||
+ | <tem:CreateCostOffer> | ||
+ | <!--Optional:--> | ||
+ | <tem:guid>342d6612-f6d4-4149-a365-275a7701c306</tem:guid> | ||
+ | <!--Optional:--> | ||
+ | <tem:costOffer> | ||
+ | <tem:HotelId>2930</tem:HotelId> | ||
+ | <tem:RateId>1</tem:RateId> | ||
+ | <tem:CostOfferTypeId>Ordinary</tem:CostOfferTypeId> | ||
+ | <!--Optional:--> | ||
+ | <tem:MarketIds> | ||
+ | <!--Zero or more repetitions:--> | ||
+ | <tem:int>2</tem:int> | ||
+ | </tem:MarketIds> | ||
+ | <tem:SaleDateBegin>2022-10-01</tem:SaleDateBegin> | ||
+ | <tem:SaleDateEnd>2045-10-01</tem:SaleDateEnd> | ||
+ | <!--Optional:--> | ||
+ | <tem:NameFromProvider>New Name</tem:NameFromProvider> | ||
+ | <tem:PeriodBeforeCheckIn>1</tem:PeriodBeforeCheckIn> | ||
+ | <!--Optional:--> | ||
+ | <tem:Comment>NewComment</tem:Comment> | ||
+ | <tem:MinDays>1</tem:MinDays> | ||
+ | <tem:MaxDays>7</tem:MaxDays> | ||
+ | </tem:costOffer> | ||
+ | <!--Optional:--> | ||
+ | <tem:prices> | ||
+ | <!--Zero or more repetitions:--> | ||
+ | <tem:PriceRequest> | ||
+ | <tem:DateFrom>2022-10-01</tem:DateFrom> | ||
+ | <tem:DateTo>2028-10-01</tem:DateTo> | ||
+ | <tem:DateCheckinFrom>2022-10-01</tem:DateCheckinFrom> | ||
+ | <tem:DateCheckinTo>2025-10-01</tem:DateCheckinTo> | ||
+ | <tem:DateCheckoutFrom>2028-10-01</tem:DateCheckoutFrom> | ||
+ | <tem:DateCheckoutTo>2028-10-01</tem:DateCheckoutTo> | ||
+ | <!--Optional:--> | ||
+ | <tem:WeekDays>1234567</tem:WeekDays> | ||
+ | <tem:AccomodationId>5558</tem:AccomodationId> | ||
+ | <tem:RoomTypeId>3</tem:RoomTypeId> | ||
+ | <tem:RoomCategoryId>20</tem:RoomCategoryId> | ||
+ | <tem:PansionId>3</tem:PansionId> | ||
+ | <tem:Price>932</tem:Price> | ||
+ | <tem:TarifId>0</tem:TarifId> | ||
+ | </tem:PriceRequest> | ||
+ | </tem:prices> | ||
+ | <!--Optional:--> | ||
+ | <tem:rules> | ||
+ | <!--Zero or more repetitions:--> | ||
+ | <tem:XYRuleRequst> | ||
+ | <tem:ExcludeBy>Last</tem:ExcludeBy> | ||
+ | <!--Optional:--> | ||
+ | <tem:Sign>=</tem:Sign> | ||
+ | <tem:XFrom>1</tem:XFrom> | ||
+ | <tem:XTo>5</tem:XTo> | ||
+ | <tem:Y>1</tem:Y> | ||
+ | </tem:XYRuleRequst> | ||
+ | </tem:rules> | ||
+ | </tem:CreateCostOffer> | ||
+ | </soapenv:Body> | ||
+ | </soapenv:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Возвращаемый результат метода CreateCostOffer | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | <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> | ||
+ | <CreateCostOfferResponse xmlns="http://tempuri.org/"> | ||
+ | <CreateCostOfferResult Message="Ok"> | ||
+ | <Data> | ||
+ | <CreateCostOfferResponse> | ||
+ | <Id>2549</Id> | ||
+ | <Name>2022.10.01 - 2028.10_Russian Market_1-7_<All>_Mouzenidis Travel 1_Red_53</Name> | ||
+ | <CostOfferType>SPO</CostOfferType> | ||
+ | <Rate>EU</Rate> | ||
+ | <CreateDate>2022-11-14T13:14:07.047</CreateDate> | ||
+ | <Markets>Russian Market</Markets> | ||
+ | <XYRules> | ||
+ | <XYRuleResponse> | ||
+ | <ExcludeBy>Last</ExcludeBy> | ||
+ | <Sign>-</Sign> | ||
+ | <XFrom>1</XFrom> | ||
+ | <XTo>5</XTo> | ||
+ | <Y>1</Y> | ||
+ | </XYRuleResponse> | ||
+ | </XYRules> | ||
+ | <CostsInfo> | ||
+ | <CostInfoResponse> | ||
+ | <Id>807703</Id> | ||
+ | <Code>2930</Code> | ||
+ | <CheckInDateBegin>2028-10-01T00:00:00</CheckInDateBegin> | ||
+ | <CheckInDateEnd>2028-10-01T00:00:00</CheckInDateEnd> | ||
+ | <CheckOutDateBegin>2028-10-01T00:00:00</CheckOutDateBegin> | ||
+ | <CheckOutDateEnd>2028-10-01T00:00:00</CheckOutDateEnd> | ||
+ | <DateBegin>2022-10-01T00:00:00</DateBegin> | ||
+ | <DateEnd>2028-10-01T00:00:00</DateEnd> | ||
+ | <Price>956.1700</Price> | ||
+ | <RoomTypeId>3</RoomTypeId> | ||
+ | <PansionId>3</PansionId> | ||
+ | <RoomCategoryId>20</RoomCategoryId> | ||
+ | <AccomodationId>5558</AccomodationId> | ||
+ | <TariffId>0</TariffId> | ||
+ | <Type>PerPax</Type> | ||
+ | </CostInfoResponse> | ||
+ | </CostsInfo> | ||
+ | </CreateCostOfferResponse> | ||
+ | </Data> | ||
+ | </CreateCostOfferResult> | ||
+ | </CreateCostOfferResponse> | ||
</soap:Body> | </soap:Body> | ||
</soap:Envelope> | </soap:Envelope> |
Текущая версия на 16:24, 24 января 2023
Версия статьи от 24-01-2023.
Доступно начиная с релиза 11.20 |
Содержание
Введение
Сервис InterlookHotelService предназначен для работы с отелями. Работает с методами REST API. Для вызова методов REST API можно использовать SoapUi.
Для доступа к сервису у онлайн пользователя должен быть установлен признак Hotel/Service в настройке Person connection и в настройках Role активирован параметр Show hotel reservations by date.
Подключение к базе данных ПК «Мастер-Interlook»
В файле web.config
, расположенном в папке Interlook.HotelServiceService пропишите необходимые параметры подключения (красным цветом выделены значения, которые необходимо ввести).
Строка подключения к базе данных ПК «Мастер-Interlook»:
<add key = "connectionString" value = "Data Source=ip-адрес сервера базе данных ПК «Мастер-Interlook»;Initial Catalog=название базы данных ПК «Мастер-Interlook»;User ID=логин пользователя ПК «Мастер-Interlook»;Password=пароль пользователя ПК «Мастер-Interlook»"/>
Настройки в файле WEB.CONFIG
Настройки задаются в секции <appSettings>
файла web.config
основного приложения Interlook.HotelServiceService.
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Процедура перезапуска кэша | cachingTime
"cachingTime" value="-1" - инициализация кэша максимально производительная: каждый отель загружается в своем потоке (возможны сбои). |
<add key="cachingTime" value="-1"/>
|
2 | Включение логирования о использовании памяти сервера | LogCacheMemory Настройка служит для включения или отключения логирования в таблицу базы данных о использовании кешем сервиса памяти сервера. |
<add key="LogCacheMemory" value="0"/>
|
Методы HotelService
Методы аутентификации
Connect (Получение аутентификационного токена)
Принимаемые параметры запроса ( * – обязательный):
- Login * – логин online пользователя
- Password * – пароль online пользователя
Возвращаемый результат:
- ConnectResult – идентификатор аутентификации (если аутентификация прошла успешно. то получаем идентификатор, в противном случае результат -1)
Вызов метода Connect <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:Connect>
<!--Optional:-->
<tem:login>mk1</tem:login>
<!--Optional:-->
<tem:password>123</tem:password>
</tem:Connect>
</soapenv:Body>
</soapenv:Envelope>
Возвращаемый результат метода Connect <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>
<ConnectResponse xmlns="http://tempuri.org/">
<ConnectResult>123c02db-3d47-4db5-861b-758be524a5fe</ConnectResult>
</ConnectResponse>
</soap:Body>
</soap:Envelope>
|
CheckConnect (Проверка активности подключения под конкретным идентификатором)
Метод проверяет наличие активного подключения под конкретным идентификатором аутентификации.
Принимаемые параметры запроса ( * – обязательный):
- Guid * – идентификатор аутентификации (возвращается при запросе к методу Connect)
Возвращаемый результат:
- CheckConnectResult – идентификатор аутентификации (true – если подключение активно, false – если подключения нет)
Вызов метода CheckConnect <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
<soap:Header/>
<soap:Body>
<tem:CheckConnect>
<!--Optional:-->
<tem:guid>123c02db-3d47-4db5-861b-758be524a5fe</tem:guid>
</tem:CheckConnect>
</soap:Body>
</soap:Envelope>
Возвращаемый результат метода CheckConnect <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CheckConnectResponse xmlns="http://tempuri.org/">
<CheckConnectResult>true</CheckConnectResult>
</CheckConnectResponse>
</soap:Body>
</soap:Envelope>
|
Методы поиска
SearchBookings (Получение списка забронированных заявок)
Метод предназначен для поиска забронированных заявок. Отбираются те заявки, у которых партнер предоставления услуги совпадает с партнером для логина, под которым осуществляется поиск.
Принимаемые параметры запроса ( * – обязательный):
- Guid * – идентификатор аутентификации (возвращается при запросе к методу Connect)
- hotelID – массив данных с ключами отелей. Можно передавать как один так и несколько ключей отелей. Если не передаём данный параметр, то в ответ получаем все заказы, подходящие под выбранные даты.
- dateInfo * – по какой дате осуществлять поиск (1 - дата создания заявки, 2 - дата заезда в отель, 3 - дата выезда из отеля)
- dateFrom * – дата начала
- dateTo * – дата окончания
- checkInFrom – дата заезда от
- checkInTo – дата заезда по
- New – возвращает новые бронирования с датой, попадающей в указанное выше условие
- change – возвращает измененные бронирования с изменениями, внесенными в выбранный период
- cancel – возвращает информацию об отмененных бронированиях за выбранный период
- inwork – возвращает информацию по заявкам взятым отелем в работу.
Заявка получает статус InWork в следующих случаях:
- если через HotelService в методе ManageBooking по заявке передан параметр <hotelWorkStatus>true</hotelWorkStatus>
- если по заявке распечатано или отправлено какое-либо из уведомлений по кнопке Actions в окне Interlook.
- showConfirmed - отображает путевки со статусом Confirmed (false или отсутствие настройки означает, что путевки со статусом Confirmed не отображаются)
Возвращаемый результат:
- BookingInfo – массив данных брони
- Booking – номер брони в системе Interlook
- BookingID – ключ заявки из базы данных
- Action – новая, отмененная или измененная заявка
- CreationDate – дата создания услуги в заявке
- ChangeDate – не используется
- CancelDate – не используется
- CustomerMarket – данные туроператора, оформившего заявку
- CustomerMarketId – ключ туроператора, оформившего заявку
- CustomerMarketName – имя туроператора, оформившего заявку
- HotelServices – массив данных по сервисам отелей
- HotelServiceInfo – информация по сервису отеля
- HotelServiceId – ключ сервиса отеля
- HotelServiceName – имя сервиса отеля
- Hotel – массив данных по отелям
- HotelId – ключ отеля
- HotelName – имя отеля
- Pansion – тип питания
- PansionId – ключ питания
- PansionName – имя питания
- RoomType – тип номера
- RoomTypeId – ключ типа номера
- RoomTypeName – имя типа номера
- RoomAccomodation – тип размещения
- AccommodationId – ключ типа размещения
- AccommodationName – имя типа размещения
- RoomCategory – категория номер
- RoomCategoryId – ключ категории номера
- RoomCategoryName – имя категории номера
- Status – статус по услуге проживания
- StatusId – ключ статуса по услуге проживания
- StatusName – имя статуса по услуге проживания
- CheckIn – дата заезда в отель
- CheckOut – дата выезда из отеля
- Tourists – массив данных туристов
- TouristInfo – массив данных по туристу
- Name – имя туриста
- BirthDate – дата рождения туриста
- Sex – пол туриста
- HotelServiceId – ключ услуги проживания с которой связан турист
- TouristInfo – массив данных по туристу
- CostOffers – массив данных по CostOffers, по которым рассчитана цена услуги
- CostOfferInfo – массив данных по конкретному CostOffer
- CostOfferName – название CostOffer (Если заявка не аннулирована, то выводим название CostOffer по цене netto. Если заявка аннулирована со штрафами, то выводим название CostOffer по цене брутто. Если заявка аннулирована без штрафов, то выводим текст "Canceled without penalty")
- CostOfferDateBegin – дата начала действия CostOffer
- CostOfferDateEnd – дата окончания действия CostOffer
- CostOfferDuration – продолжительность проживания до данному CostOffer
- CostOfferInfo – массив данных по конкретному CostOffer
- Penalty – информация о штрафах по аннулированной заявке
- FlightInfo – секция информации об авиаперелете
- Tourist – Фамилия и имя туриста
- Charters – секция авиаперелета
- CharterInfo – секция информации об авиаперелете
- Type – тип авиаперелета (Arrival или Departure)
- Date – дата заезда/выезда из отеля
- Details – наименование авиаперелета (номер рейса - время прилета/вылета)
- CharterInfo – секция информации об авиаперелете
- HotelServiceInfo – информация по сервису отеля
- MessageInfo – массив данных сообщений
- Id – идентификатор сообщения
- IsOutgoing – исходящее (true - исходящее, false - входящее)
- DateCreate – дата создания сообщения
- IsRead – прочитано (true - прочитано, false - не прочитано )
- Text – текст сообщения
- BookingInfo – массив данных брони
Вызов метода SearchBookings <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:SearchBookings>
<!--Optional:-->
<tem:guid>fd57bdcb-35e0-41b1-9743-eba763211e49</tem:guid>
<!--Optional:-->
<tem:hotelID>
<!--Zero or more repetitions:-->
<tem:int>2930</tem:int>
</tem:hotelID>
<tem:dateInfo>1</tem:dateInfo>
<tem:dateFrom>2022-08-19</tem:dateFrom>
<tem:dateTo>2022-08-30</tem:dateTo>
<tem:New>1</tem:New>
<tem:change>1</tem:change>
<tem:cancel>1</tem:cancel>
<tem:inwork>1</tem:inwork>
</tem:SearchBookings>
</soapenv:Body>
</soapenv:Envelope>
Возвращаемый результат метода SearchBookings <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>
<SearchBookingsResponse xmlns="http://tempuri.org/">
<SearchBookingsResult>
<BookingInfo>
<Booking>MT140101AAL</Booking>
<BookingID>37608</BookingID>
<Action>Changed</Action>
<CreationDate>2022-08-25T14:37:12.25</CreationDate>
<ChangeDate xsi:nil="true"/>
<CancelDate xsi:nil="true"/>
<CustomerMarket>
<CustomerMarketId>2</CustomerMarketId>
<CustomerMarketName>Russian Market</CustomerMarketName>
</CustomerMarket>
<HotelServices>
<HotelServiceInfo>
<HotelServiceId>171495</HotelServiceId>
<HotelServiceName>HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB</HotelServiceName>
<Hotel>
<HotelId>2930</HotelId>
<HotelName>Red</HotelName>
</Hotel>
<Pansion>
<PansionId>3</PansionId>
<PansionName>Bed and Breakfast</PansionName>
</Pansion>
<RoomType>
<RoomTypeId>3</RoomTypeId>
<RoomTypeName>Double Room</RoomTypeName>
</RoomType>
<RoomAccomodation>
<AccommodationId>5558</AccommodationId>
<AccommodationName>2AD</AccommodationName>
</RoomAccomodation>
<RoomCategory>
<RoomCategoryId>20</RoomCategoryId>
<RoomCategoryName>Jakuzzi</RoomCategoryName>
</RoomCategory>
<Status>
<StatusId>1</StatusId>
<StatusName>Wait</StatusName>
</Status>
<CheckIn>2022-08-20T00:00:00</CheckIn>
<CheckOut>2022-08-27T00:00:00</CheckOut>
<Tourists>
<TouristInfo>
<Name>Vladimirov Alex</Name>
<BirthDate>1979-08-10T00:00:00</BirthDate>
<Sex>MR</Sex>
<HotelServiceId>171495</HotelServiceId>
</TouristInfo>
<TouristInfo>
<Name>Vladimirovicha Alexa</Name>
<BirthDate>1972-08-11T00:00:00</BirthDate>
<Sex>MR</Sex>
<HotelServiceId>171495</HotelServiceId>
</TouristInfo>
</Tourists>
<CostOffers>
<CostOfferInfo>
<CostOfferName>kolesnyk2/kolesnyk2</CostOfferName>
<CostOfferDateBegin>2022-08-20T00:00:00</CostOfferDateBegin>
<CostOfferDateEnd>2022-08-27T00:00:00</CostOfferDateEnd>
<CostOfferDuration>7</CostOfferDuration>
</CostOfferInfo>
</CostOffers>
<Penalty/>
</HotelServiceInfo>
</HotelServices>
<Flights>
<FlightInfo>
<Tourist>Vladimirov Alex</Tourist>
<Charters>
<CharterInfo>
<Type>Arrival</Type>
<Date>2022-08-20T00:00:00</Date>
<Details>A123-A124 (A123 - 16:00)</Details>
</CharterInfo>
<CharterInfo>
<Type>Departure</Type>
<Date>2022-08-27T00:00:00</Date>
<Details>A123-A124 (A124 - 15:00)</Details>
</CharterInfo>
</Charters>
</FlightInfo>
<FlightInfo>
<Tourist>Vladimirovicha Alexa</Tourist>
<Charters>
<CharterInfo>
<Type>Arrival</Type>
<Date>2022-08-20T00:00:00</Date>
<Details>A123-A124 (A123 - 16:00)</Details>
</CharterInfo>
<CharterInfo>
<Type>Departure</Type>
<Date>2022-08-27T00:00:00</Date>
<Details>A123-A124 (A124 - 15:00)</Details>
</CharterInfo>
</Charters>
</FlightInfo>
</Flights>
<Messages/>
</BookingInfo>
</SearchBookingsResult>
</SearchBookingsResponse>
</soap:Body>
</soap:Envelope>
|
SearchBookingsJSON (Получение списка забронированных заявок в формате JSON)
Метод предназначен для поиска забронированных заявок. Отбираются те заявки, у которых партнер предоставления услуги совпадает с партнером для логина, под которым осуществляется поиск.
Принимаемые параметры запроса ( * – обязательный):
- Guid * – идентификатор аутентификации (возвращается при запросе к методу Connect)
- hotelID – массив данных с ключами отелей. Можно передавать как один так и несколько ключей отелей. Если не передаём данный параметр, то в ответ получаем все заказы, подходящие под выбранные даты.
- dateInfo * – по какой дате осуществлять поиск (1 - дата создания заявки, 2 - дата заезда в отель, 3 - дата выезда из отеля)
- dateFrom * – дата начала
- dateTo * – дата окончания
- checkInFrom – дата заезда от
- checkInTo – дата заезда по
- New – возвращает новые бронирования с датой, попадающей в указанное выше условие
- change – возвращает измененные бронирования с изменениями, внесенными в выбранный период
- cancel – возвращает информацию об отмененных бронированиях за выбранный период
- inwork – возвращает информацию по заявкам взятым отелем в работу
Заявка получает статус InWork в следующих случаях:
- если через HotelService в методе ManageBooking по заявке передан параметр <hotelWorkStatus>true</hotelWorkStatus>
- если по заявке распечатано или отправлено какое-либо из уведомлений по кнопке Actions в окне Interlook.
- showConfirmed - отображает путевки со статусом Confirmed (false или отсутствие настройки означает, что путевки со статусом Confirmed не отображаются)
Возвращаемый результат:
- Booking – номер брони в системе Interlook
- BookingID – ключ заявки из базы данных
- Action – новая, отмененная или измененная заявка
- CreationDate – дата создания услуги в заявке
- ChangeDate – не используется
- CancelDate – не используется
- CustomerMarket – данные туроператора, оформившего заявку
- CustomerMarketId – ключ туроператора, оформившего заявку
- CustomerMarketName – имя туроператора, оформившего заявку
- HotelServices – массив данных по сервисам отелей
- CheckIn – дата заезда в отель
- CheckOut – дата выезда из отеля
- Tourists – массив данных туристов
- Name – имя туриста
- BirthDate – дата рождения туриста
- Sex – пол туриста
- HotelServiceId – ключ услуги проживания с которой связан турист
- Notes – не указывается
- HotelServiceId – ключ сервиса отеля
- HotelServiceName – имя сервиса отеля
- Hotel – массив данных по отелям
- HotelId – ключ отеля
- HotelName – имя отеля
- Pansion – тип питания
- PansionId – ключ питания
- PansionName – имя питания
- RoomType – тип номера
- RoomTypeId – ключ типа номера
- RoomTypeName – имя типа номера
- RoomAccomodation – тип размещения
- AccommodationId – ключ типа размещения
- AccommodationName – имя типа размещения
- RoomCategory – категория номер
- RoomCategoryId – ключ категории номера
- RoomCategoryName – имя категории номера
- Status – статус по услуге проживания
- StatusId – ключ статуса по услуге проживания
- StatusName – имя статуса по услуге проживания
- CheckIn – дата заезда в отель
- CheckOut – дата выезда из отеля
- Tourists – массив данных туристов
- TouristInfo – массив данных по туристу
- Name – имя туриста
- BirthDate – дата рождения туриста
- Sex – пол туриста
- HotelServiceId – ключ услуги проживания с которой связан турист
- TouristInfo – массив данных по туристу
- CostOffers – массив данных по CostOffers, по которым рассчитана цена услуги
- CostOfferInfo – массив данных по конкретному CostOffer
- CostOfferName – название CostOffer (Если заявка не аннулирована, то выводим название CostOffer по цене netto. Если заявка аннулирована со штрафами, то выводим название CostOffer по цене брутто. Если заявка аннулирована без штрафов, то выводим текст "Canceled without penalty")
- CostOfferDateBegin – дата начала действия CostOffer
- CostOfferDateEnd – дата окончания действия CostOffer
- CostOfferDuration – продолжительность проживания до данному CostOffer
- CostOfferInfo – массив данных по конкретному CostOffer
- Penalty – информация о штрафах по аннулированной заявке
- FlightInfo – секция информации об авиаперелете
- Tourist – Фамилия и имя туриста
- Charters – секция авиаперелета
- CharterInfo – секция информации об авиаперелете
- Type – тип авиаперелета (Arrival или Departure)
- Date – дата заезда/выезда из отеля
- Details – наименование авиаперелета (номер рейса - время прилета/вылета)
- CharterInfo – секция информации об авиаперелете
- MessageInfo – массив данных сообщений
- Id – идентификатор сообщения
- IsOutgoing – исходящее (true - исходящее, false - входящее)
- DateCreate – дата создания сообщения
- IsRead – прочитано (true - прочитано, false - не прочитано )
- Text – текст сообщения
Вызов метода SearchBookingsJSON <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:SearchBookingsJSON>
<!--Optional:-->
<tem:guid>fd57bdcb-35e0-41b1-9743-eba763211e49</tem:guid>
<!--Optional:-->
<tem:hotelID>
<!--Zero or more repetitions:-->
<tem:int>2930</tem:int>
</tem:hotelID>
<tem:dateInfo>1</tem:dateInfo>
<tem:dateFrom>2022-08-20</tem:dateFrom>
<tem:dateTo>2022-08-28</tem:dateTo>
<tem:New>1</tem:New>
<tem:change>1</tem:change>
<tem:cancel>1</tem:cancel>
<tem:inwork>1</tem:inwork>
</tem:SearchBookingsJSON>
</soapenv:Body>
</soapenv:Envelope>
Возвращаемый результат метода SearchBookingsJSON <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>
<SearchBookingsJSONResponse xmlns="http://tempuri.org/">
<SearchBookingsJSONResult>[{"Booking":"MT140101AAH","BookingID":37601,"Action":"New","CreationDate":
"2022-08-23T11:36:30.907","ChangeDate":null,"CancelDate":null,"CustomerMarket":{"CustomerMarketId":2,
"CustomerMarketName":"Russian Market"},"HotelServices":[{"CheckIn":"2022-08-20T00:00:00","CheckOut"
"2022-08-27T00:00:00","Tourists":[{"Name":"Vladimirov Alex","BirthDate":"1979-08-10T00:00:00","Sex":
"MR","HotelServiceId":171448},{"Name":"Vladimirovicha Alexa","BirthDate":"1972-08-11T00:00:00","Sex":
"MR","HotelServiceId":171448}],"CostOffers":[{"CostOfferName":"kolesnyk2/kolesnyk2","CostOfferDateBegin"
:"2022-08-20T00:00:00","CostOfferDateEnd":"2022-08-27T00:00:00","CostOfferDuration":7}],"Penalty":"",
"Notes":null,"HotelServiceId":171448,"HotelServiceName":"HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB",
"Hotel":{"HotelId":2930,"HotelName":"Red"},"Pansion":{"PansionId":3,"PansionName":"Bed and Breakfast"}
,"RoomType":{"RoomTypeId":3,"RoomTypeName":"Double Room"},"RoomAccomodation":{"AccommodationId":5558,
"AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId":20,"RoomCategoryName":"Jakuzzi"},"Status"
:{"StatusId":1,"StatusName":"Wait"}}],"Flights":[],"Messages":[]},{"Booking":"MT140101AAJ","BookingID"
:37602,"Action":"New","CreationDate":"2022-08-23T11:37:05.227","ChangeDate":null,"CancelDate":null,
"CustomerMarket":{"CustomerMarketId":2,"CustomerMarketName":"Russian Market"},"HotelServices":
[{"CheckIn":"2022-08-20T00:00:00","CheckOut":"2022-08-27T00:00:00","Tourists":[{"Name":"Vladimirov Alex",
"BirthDate":"1979-08-10T00:00:00","Sex":"MR","HotelServiceId":171454},{"Name":"Vladimirovicha Alexa"
,"BirthDate":"1972-08-11T00:00:00","Sex":"MR","HotelServiceId":171454}],"CostOffers":[{"CostOfferName"
:"kolesnyk2/kolesnyk2","CostOfferDateBegin":"2022-08-20T00:00:00","CostOfferDateEnd":"2022-08-27T00:00
:00","CostOfferDuration":7}],"Penalty":"","Notes":null,"HotelServiceId":171454,"HotelServiceName":
"HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB","Hotel":{"HotelId":2930,"HotelName":"Red"},"Pansion":
{"PansionId":3,"PansionName":"Bed and Breakfast"},"RoomType":{"RoomTypeId":3,"RoomTypeName":"Double Room"}
,"RoomAccomodation":{"AccommodationId":5558,"AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId":
20,"RoomCategoryName":"Jakuzzi"},"Status":{"StatusId":1,"StatusName":"Wait"}}],"Flights":[],"Messages":
[]},{"Booking":"MT140101AAK","BookingID":37607,"Action":"Changed","CreationDate":"2022-08-25T14:35:38.033",
"ChangeDate":null,"CancelDate":null,"CustomerMarket":{"CustomerMarketId":2,"CustomerMarketName"
:"Russian Market"},"HotelServices":[{"CheckIn":"2022-08-20T00:00:00","CheckOut":"2022-08-27T00:00:00"
,"Tourists":[{"Name":"Vladimirov Alex","BirthDate":"1979-08-10T00:00:00","Sex":"MR","HotelServiceId"
:171489},{"Name":"Vladimirovicha Alexa","BirthDate":"1972-08-11T00:00:00","Sex":"MR","HotelServiceId"
:171489}],"CostOffers":[{"CostOfferName":"kolesnyk2/kolesnyk2","CostOfferDateBegin":"2022-08-20T00:00:00"
,"CostOfferDateEnd":"2022-08-27T00:00:00","CostOfferDuration":7}],"Penalty":"","Notes":null,
"HotelServiceId":171489,"HotelServiceName":"HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB","Hotel"
:{"HotelId":2930,"HotelName":"Red"},"Pansion":{"PansionId":3,"PansionName":"Bed and Breakfast"}
,"RoomType":{"RoomTypeId":3,"RoomTypeName":"Double Room"},"RoomAccomodation":{"AccommodationId"
:5558,"AccommodationName":"2AD"},"RoomCategory":{"RoomCategoryId":20,"RoomCategoryName":"Jakuzzi"}
,"Status":{"StatusId":1,"StatusName":"Wait"}}],"Flights":[{"Tourist":"Vladimirov Alex","Charters"
:[{"Type":"Arrival","Date":"2022-08-20T00:00:00","Details":"A123-A124 (A123 - 16:00)"},{"Type"
:"Departure","Date":"2022-08-27T00:00:00","Details":"A123-A124 (A124 - 15:00)"}]},{"Tourist":
"Vladimirovicha Alexa","Charters":[{"Type":"Arrival","Date":"2022-08-20T00:00:00","Details":
"A123-A124 (A123 - 16:00)"},{"Type":"Departure","Date":"2022-08-27T00:00:00","Details":
"A123-A124 (A124 - 15:00)"}]}],"Messages":[]}]</SearchBookingsJSONResult>
</SearchBookingsJSONResponse>
</soap:Body>
</soap:Envelope>
|
GetMarkets (Получение списка рынков)
Метод предназначен для отображения всех существующих рынков.
Принимаемые параметры запроса ( * – обязательный):
Отсутствуют.
Возвращаемый результат:
- GetMarketsResult – массив данных рынков
- Name – наименование рынка
- Id – идентификатор рынка
Вызов метода GetMarkets <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:GetMarkets/>
</soapenv:Body>
</soapenv:Envelope>
Возвращаемый результат метода GetMarkets <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>
<GetMarketsResponse xmlns="http://tempuri.org/">
<GetMarketsResult>
<MarketInfo Name="!test" Id="61"/>
<MarketInfo Name="<All>" Id="0"/>
<MarketInfo Name="1111" Id="33"/>
<MarketInfo Name="1112" Id="34"/>
<MarketInfo Name="12" Id="32"/>
<MarketInfo Name="12" Id="40"/>
<MarketInfo Name="1t1" Id="44"/>
<MarketInfo Name="1t2" Id="45"/>
<MarketInfo Name="1t3" Id="46"/>
<MarketInfo Name="1t4" Id="47"/>
<MarketInfo Name="1t5" Id="48"/>
<MarketInfo Name="1t6" Id="49"/>
<MarketInfo Name="21" Id="36"/>
<MarketInfo Name="234" Id="37"/>
<MarketInfo Name="313" Id="38"/>
<MarketInfo Name="34" Id="35"/>
<MarketInfo Name="34" Id="41"/>
<MarketInfo Name="4" Id="51"/>
<MarketInfo Name="434" Id="39"/>
<MarketInfo Name="45" Id="42"/>
<MarketInfo Name="456" Id="43"/>
<MarketInfo Name="Balkan Market" Id="5"/>
<MarketInfo Name="France Market" Id="8"/>
<MarketInfo Name="Greek Market" Id="3"/>
<MarketInfo Name="Italy Market" Id="9"/>
<MarketInfo Name="market12^*#$)_22_ 09" Id="22"/>
<MarketInfo Name="market1FAD" Id="11"/>
<MarketInfo Name="market2083" Id="13"/>
<MarketInfo Name="market25C5" Id="16"/>
<MarketInfo Name="market8085" Id="14"/>
<MarketInfo Name="market9873" Id="10"/>
<MarketInfo Name="marketA5F9" Id="18"/>
<MarketInfo Name="marketD84E" Id="15"/>
<MarketInfo Name="marketF3A6" Id="19"/>
<MarketInfo Name="marketF415" Id="21"/>
<MarketInfo Name="marketFCFE" Id="20"/>
<MarketInfo Name="marketFFDC" Id="12"/>
<MarketInfo Name="mk" Id="31"/>
<MarketInfo Name="mk_market" Id="30"/>
<MarketInfo Name="Old" Id="6"/>
<MarketInfo Name="qwer" Id="50"/>
<MarketInfo Name="Russian Market" Id="2"/>
<MarketInfo Name="test new" Id="56"/>
<MarketInfo Name="test1211" Id="53"/>
<MarketInfo Name="Мой личный рынок" Id="25"/>
<MarketInfo Name="ук" Id="55"/>
</GetMarketsResult>
</GetMarketsResponse>
</soap:Body>
</soap:Envelope>
|
Методы передачи изменений по услугам
ManageBooking (Передача изменений по услуге проживания в Interlook)
Принимаемые параметры запроса ( * – обязательный):
- guid * – идентификатор аутентификации (возвращается при запросе к методу Connect)
- hotelServiceId * – ключ услуги проживания (возвращается при запросе к методу SearchBookings)
- status – фильтр для отбора услуг с определенным статусом (1 - Wait, 2 - Confirmed, 3 - notConfirmed)
- message – сообщение для пользователя Interlook
- hotelWorkStatus – отметка отеля по заявке (true - отель взял заявку в работу, false - отель заявку в работу не взял). При отправке этого параметра формируется запись в историю по заявке и сообщение от провайдера.
- ManageBookingResult – массив данных
- HotelServiceId – ключ сервиса отеля
- HotelServiceName – имя сервиса отеля
- Hotel – массив данных по отелям
- HotelId – ключ отеля
- HotelName – имя отеля
- Pansion – тип питания
- PansionId – ключ питания
- PansionName – имя питания
- RoomType – тип номера
- RoomTypeId – ключ типа номера
- RoomTypeName – имя типа номера
- RoomAccomodation – тип размещения
- AccommodationId – ключ типа размещения
- AccommodationName – имя типа размещения
- RoomCategory – категория номер
- RoomCategoryId – ключ категории номера
- RoomCategoryName – имя категории номера
- Status – статус по услуге проживания
- StatusId – ключ статуса по услуге проживания
- StatusName – имя статуса по услуге проживания
- Hotel – массив данных по отелям
Вызов метода ManageBooking <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:ManageBooking>
<!--Optional:-->
<tem:guid>69ad76b6-3551-403d-934e-18d8358a60e2</tem:guid>
<tem:hotelServiceId>163806</tem:hotelServiceId>
<tem:status>1</tem:status>
<!--Optional:-->
<tem:message>яварааааааааарвя</tem:message>
<tem:hotelWorkStatus>false</tem:hotelWorkStatus>
</tem:ManageBooking>
</soapenv:Body>
</soapenv:Envelope>
Возвращаемый результат метода ManageBooking <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>
<ManageBookingResponse xmlns="http://tempuri.org/">
<ManageBookingResult Message="Ok">
<Data>
<ManageBookingResult>
<HotelServiceId>163806</HotelServiceId>
<HotelServiceName>HTL::Kiev/Hilton/Double Room/2AD/Jakuzzi/BB</HotelServiceName>
<Hotel>
<HotelId>2935</HotelId>
<HotelName>Hilton</HotelName>
</Hotel>
<Pansion>
<PansionId>3</PansionId>
<PansionName>Bed and Breakfast</PansionName>
</Pansion>
<RoomType>
<RoomTypeId>3</RoomTypeId>
<RoomTypeName>Double Room</RoomTypeName>
</RoomType>
<RoomAccomodation>
<AccommodationId>5558</AccommodationId>
<AccommodationName>2AD</AccommodationName>
</RoomAccomodation>
<RoomCategory>
<RoomCategoryId>20</RoomCategoryId>
<RoomCategoryName>Jakuzzi</RoomCategoryName>
</RoomCategory>
<Status>
<StatusId>1</StatusId>
<StatusName>Wait</StatusName>
</Status>
</ManageBookingResult>
</Data>
</ManageBookingResult>
</ManageBookingResponse>
</soap:Body>
</soap:Envelope>
|
Методы создания цен
CreateCostOffer (Создание ценового предложения)
Метод предназначен для занесения цен на объекты размещения.
Принимаемые параметры запроса ( * – обязательный):
- Guid * – идентификатор аутентификации (возвращается при запросе к методу Connect)
- costOffer – массив данных CostOffer
- HotelId * – ключ отеля
- RateId * – ключ валюты
- CostOfferTypeId – ключ типа CostOffer (Ordinary или SPO. Если не указан, то отправляется Ordinary. Если в запросе имеется и заполнена секция Rules, то CostOffer автоматически определяется с типом SPO)
- MarketIds – ключ рынка (если не указан, то отправляется 0 - все. Возвращается при запросе к методу GetMarkets)
- SaleDateBegin – дата с которой возможно бронирование (если не указана, то берется в соответствии с текущей)
- SaleDateEnd – дата до которой возможно бронирование
- NameFromProvider – наименование для провайдера (если не указан, то записывается пустое)
- PeriodBeforeCheckIn – период до заезда (если не указан, то отправляется 0)
- Comment – комментарий
- MinDays – минимальная продолжительность (если не задано, то устанавливается 1)
- MaxDays – максимальная продолжительность (если не задано, то устанавливается 365)
- prices – массив данных цен
- PriceRequest – массив данных цены
- DateFrom * – дата начала (если не указана, то берется текущая)
- DateTo * – дата окончания (если не указана, то берется из списка цен максимальная дата выезда)
- DateCheckinFrom – дата заезда от (если не указан, то минимальная)
- DateCheckinTo – дата заезда по (если не указан, то максимальная)
- DateCheckoutFrom – дата выезда от (если не указан, то минимальная)
- DateCheckoutTo – дата выезда по (если не указан, то максимальная)
- WeekDays – день недели (если не указано, то проставляются все)
- AccomodationId * – ключ типа размещения
- RoomTypeId * – ключ типа комнаты
- RoomCategoryId * – ключ категории комнаты
- PansionId * – ключ типа питания
- Price * – цена
- TarifId – (если не указан, то устанавливается 0 - ordinary. Берется из таблицы Tariffs Базы Данных)
- PriceRequest – массив данных цены
- rules – массив данных правил изменения цены
- XYRuleRequst – массив данных правил изменения цены
- ExcludeBy – какие именно ночи должны быть бесплатными (принимает значения Last - последняя, Min - дешевая, Max - дорогая)
- Sign – значение количества рассчитываемых ночей (принимает значения "=" или "-")
- XFrom – от какой продолжительности проживания действует акция
- XTo – до какой продолжительности проживания действует акция
- Y – количество бесплатных ночей или значение продолжительности проживания
- XYRuleRequst – массив данных правил изменения цены
Возвращаемый результат:
- CreateCostOfferResponse – массив данных CostOffer
- Id – идентификатор CostOffer
- Name – наименование CostOffer
- CostOfferType – тип CostOffer
- Rate – валюта
- CreateDate – дата создания CostOffer
- Markets – наименование рынка
- XYRuleResponse – массив данных правил изменения цены
- ExcludeBy – какие именно ночи должны быть бесплатными (принимает значения Last - последняя, Min - дешевая, Max - дорогая)
- Sign – значение количества рассчитываемых ночей (принимает значения "=" или "-")
- XFrom – от какой продолжительности проживания действует акция
- XTo – до какой продолжительности проживания действует акция
- Y – количество бесплатных ночей или значение продолжительности проживания
- CostInfoResponse – массив данных цены
- Id – идентификатор цены
- Code – идентификатор отеля
- CheckInDateBegin – дата заезда «с»
- CheckInDateEnd – дата заезда «до»
- CheckOutDateBegin – дата выезда «с»
- CheckOutDateEnd – дата выезда «до»
- DateBegin – дата действия цены «с»
- DateEnd – дата действия цены «до»
- Price – значение цены
- RoomTypeId – ключ типа номера
- PansionId – ключ питания
- RoomCategoryId – ключ категории номера
- AccommodationId – ключ типа размещения
- TariffId – ключ тарифа (В таблице цен соответствует параметру CS_CVId)
- Type – тип цены (Per Room - за комнату, Per Person - за человека)
В случае некорректного запроса в ответе приходит описание ошибки и номер строки, в которой указаны некорректные данные.
Вызов метода CreateCostOffer <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:CreateCostOffer>
<!--Optional:-->
<tem:guid>342d6612-f6d4-4149-a365-275a7701c306</tem:guid>
<!--Optional:-->
<tem:costOffer>
<tem:HotelId>2930</tem:HotelId>
<tem:RateId>1</tem:RateId>
<tem:CostOfferTypeId>Ordinary</tem:CostOfferTypeId>
<!--Optional:-->
<tem:MarketIds>
<!--Zero or more repetitions:-->
<tem:int>2</tem:int>
</tem:MarketIds>
<tem:SaleDateBegin>2022-10-01</tem:SaleDateBegin>
<tem:SaleDateEnd>2045-10-01</tem:SaleDateEnd>
<!--Optional:-->
<tem:NameFromProvider>New Name</tem:NameFromProvider>
<tem:PeriodBeforeCheckIn>1</tem:PeriodBeforeCheckIn>
<!--Optional:-->
<tem:Comment>NewComment</tem:Comment>
<tem:MinDays>1</tem:MinDays>
<tem:MaxDays>7</tem:MaxDays>
</tem:costOffer>
<!--Optional:-->
<tem:prices>
<!--Zero or more repetitions:-->
<tem:PriceRequest>
<tem:DateFrom>2022-10-01</tem:DateFrom>
<tem:DateTo>2028-10-01</tem:DateTo>
<tem:DateCheckinFrom>2022-10-01</tem:DateCheckinFrom>
<tem:DateCheckinTo>2025-10-01</tem:DateCheckinTo>
<tem:DateCheckoutFrom>2028-10-01</tem:DateCheckoutFrom>
<tem:DateCheckoutTo>2028-10-01</tem:DateCheckoutTo>
<!--Optional:-->
<tem:WeekDays>1234567</tem:WeekDays>
<tem:AccomodationId>5558</tem:AccomodationId>
<tem:RoomTypeId>3</tem:RoomTypeId>
<tem:RoomCategoryId>20</tem:RoomCategoryId>
<tem:PansionId>3</tem:PansionId>
<tem:Price>932</tem:Price>
<tem:TarifId>0</tem:TarifId>
</tem:PriceRequest>
</tem:prices>
<!--Optional:-->
<tem:rules>
<!--Zero or more repetitions:-->
<tem:XYRuleRequst>
<tem:ExcludeBy>Last</tem:ExcludeBy>
<!--Optional:-->
<tem:Sign>=</tem:Sign>
<tem:XFrom>1</tem:XFrom>
<tem:XTo>5</tem:XTo>
<tem:Y>1</tem:Y>
</tem:XYRuleRequst>
</tem:rules>
</tem:CreateCostOffer>
</soapenv:Body>
</soapenv:Envelope>
Возвращаемый результат метода CreateCostOffer <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>
<CreateCostOfferResponse xmlns="http://tempuri.org/">
<CreateCostOfferResult Message="Ok">
<Data>
<CreateCostOfferResponse>
<Id>2549</Id>
<Name>2022.10.01 - 2028.10_Russian Market_1-7_<All>_Mouzenidis Travel 1_Red_53</Name>
<CostOfferType>SPO</CostOfferType>
<Rate>EU</Rate>
<CreateDate>2022-11-14T13:14:07.047</CreateDate>
<Markets>Russian Market</Markets>
<XYRules>
<XYRuleResponse>
<ExcludeBy>Last</ExcludeBy>
<Sign>-</Sign>
<XFrom>1</XFrom>
<XTo>5</XTo>
<Y>1</Y>
</XYRuleResponse>
</XYRules>
<CostsInfo>
<CostInfoResponse>
<Id>807703</Id>
<Code>2930</Code>
<CheckInDateBegin>2028-10-01T00:00:00</CheckInDateBegin>
<CheckInDateEnd>2028-10-01T00:00:00</CheckInDateEnd>
<CheckOutDateBegin>2028-10-01T00:00:00</CheckOutDateBegin>
<CheckOutDateEnd>2028-10-01T00:00:00</CheckOutDateEnd>
<DateBegin>2022-10-01T00:00:00</DateBegin>
<DateEnd>2028-10-01T00:00:00</DateEnd>
<Price>956.1700</Price>
<RoomTypeId>3</RoomTypeId>
<PansionId>3</PansionId>
<RoomCategoryId>20</RoomCategoryId>
<AccomodationId>5558</AccomodationId>
<TariffId>0</TariffId>
<Type>PerPax</Type>
</CostInfoResponse>
</CostsInfo>
</CreateCostOfferResponse>
</Data>
</CreateCostOfferResult>
</CreateCostOfferResponse>
</soap:Body>
</soap:Envelope>
|