Master-Interlook:HotelService — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(SearchBookings (Получение списка забронированных заявок))
 
(не показано 40 промежуточных версий 2 участников)
Строка 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>
Поддерживаемые версии «»:<br>
+
Доступно начиная с релиза 11.20<br>
Начиная с
 
 
</td></tr></table><br>
 
</td></tr></table><br>
  
 
=Введение=
 
=Введение=
Сервис '''InterlookHotelService''' работает с методами REST API. Для вызова методов REST API можно использовать SoapUi.
+
Сервис '''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=
  
Строка 91: Строка 131:
  
 
===SearchBookings (Получение списка забронированных заявок)===
 
===SearchBookings (Получение списка забронированных заявок)===
Метод предназначен для поиска забронированных заявок. Отбираются те заявки, у которых партнер предоставления услуги совпадает с партнером для логина, под которым осуществляется поиск.  
+
Метод предназначен для поиска забронированных заявок. Отбираются те заявки, у которых партнер предоставления услуги совпадает с партнером для логина, под которым осуществляется поиск. <br />
 
Принимаемые параметры запроса ( * – обязательный):<br />
 
Принимаемые параметры запроса ( * – обязательный):<br />
 
* '''Guid *''' – идентификатор аутентификации (возвращается при запросе к методу [[Master-Interlook:HotelService#Connect (получение аутентификационного токена)|Connect]])<br />
 
* '''Guid *''' – идентификатор аутентификации (возвращается при запросе к методу [[Master-Interlook:HotelService#Connect (получение аутентификационного токена)|Connect]])<br />
 
* '''hotelID''' – массив данных с ключами отелей. Можно передавать как один так и несколько ключей отелей. Если не передаём данный параметр, то в ответ получаем все заказы, подходящие под выбранные даты.
 
* '''hotelID''' – массив данных с ключами отелей. Можно передавать как один так и несколько ключей отелей. Если не передаём данный параметр, то в ответ получаем все заказы, подходящие под выбранные даты.
* '''dateInfo *''' – по какой дате осуществлять поиск (1 - дата создания, 2 - дата заезда, 3 - дата выезда)
+
* '''dateInfo *''' – по какой дате осуществлять поиск (1 - дата создания заявки, 2 - дата заезда в отель, 3 - дата выезда из отеля)
 
* '''dateFrom *''' – дата начала
 
* '''dateFrom *''' – дата начала
 
* '''dateTo *''' – дата окончания
 
* '''dateTo *''' – дата окончания
Строка 102: Строка 142:
 
* '''New''' – возвращает новые бронирования с датой, попадающей в указанное выше условие
 
* '''New''' – возвращает новые бронирования с датой, попадающей в указанное выше условие
 
* '''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 не отображаются)
 
Возвращаемый результат:
 
Возвращаемый результат:
* '''SearchBookingsResult''' – массив данных ответа
 
 
** '''BookingInfo''' – массив данных брони
 
** '''BookingInfo''' – массив данных брони
 
*** '''Booking''' – номер брони в системе Interlook
 
*** '''Booking''' – номер брони в системе Interlook
Строка 137: Строка 181:
 
****** '''StatusId''' – ключ статуса по услуге проживания
 
****** '''StatusId''' – ключ статуса по услуге проживания
 
****** '''StatusName''' – имя статуса по услуге проживания
 
****** '''StatusName''' – имя статуса по услуге проживания
***** '''HotelConfirmationNumber''' – номер заказа у поставщика
 
 
***** '''CheckIn''' – дата заезда в отель
 
***** '''CheckIn''' – дата заезда в отель
 
***** '''CheckOut''' – дата выезда из отеля
 
***** '''CheckOut''' – дата выезда из отеля
Строка 146: Строка 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''' – идентификатор сообщения
Строка 163: Строка 220:
 
       <tem:SearchBookings>
 
       <tem:SearchBookings>
 
         <!--Optional:-->
 
         <!--Optional:-->
         <tem:guid>ba9f3a81-8890-4615-b293-1e1bada343fd</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>2935</tem:int>
+
             <tem:int>2930</tem:int>
 
         </tem:hotelID>
 
         </tem:hotelID>
 
         <tem:dateInfo>1</tem:dateInfo>
 
         <tem:dateInfo>1</tem:dateInfo>
         <tem:dateFrom>2021-01-01</tem:dateFrom>
+
         <tem:dateFrom>2022-08-19</tem:dateFrom>
         <tem:dateTo>2021-12-01</tem:dateTo>
+
         <tem:dateTo>2022-08-30</tem:dateTo>
         <tem:New>true</tem:New>
+
         <tem:New>1</tem:New>
         <tem:change>true</tem:change>
+
         <tem:change>1</tem:change>
         <tem:cancel>true</tem:cancel>
+
         <tem:cancel>1</tem:cancel>
      </tem:SearchBookings>
+
        <tem:inwork>1</tem:inwork>
 +
    </tem:SearchBookings>
 
   </soapenv:Body>
 
   </soapenv:Body>
</soapenv:Envelope></soapenv:Envelope>
+
</soapenv:Envelope>
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Строка 186: Строка 244:
 
       <SearchBookingsResponse xmlns="http://tempuri.org/">
 
       <SearchBookingsResponse xmlns="http://tempuri.org/">
 
         <SearchBookingsResult>
 
         <SearchBookingsResult>
            <BookingInfo>
+
      <BookingInfo>
               <Booking>MT110711A01</Booking>
+
               <Booking>MT140101AAL</Booking>
               <BookingID>35897</BookingID>
+
               <BookingID>37608</BookingID>
               <Action>New</Action>
+
               <Action>Changed</Action>
               <CreationDate>2021-07-06T17:29:50.28</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"/>
Строка 199: Строка 257:
 
               <HotelServices>
 
               <HotelServices>
 
                   <HotelServiceInfo>
 
                   <HotelServiceInfo>
                     <HotelServiceId>163806</HotelServiceId>
+
                     <HotelServiceId>171495</HotelServiceId>
                     <HotelServiceName>HTL::Kiev/Hilton/Double Room/2AD/Jakuzzi/BB</HotelServiceName>
+
                     <HotelServiceName>HTL::Kiev/Red/Double Room/2AD/Jakuzzi/BB</HotelServiceName>
 
                     <Hotel>
 
                     <Hotel>
                         <HotelId>2935</HotelId>
+
                         <HotelId>2930</HotelId>
                         <HotelName>Hilton</HotelName>
+
                         <HotelName>Red</HotelName>
 
                     </Hotel>
 
                     </Hotel>
 
                     <Pansion>
 
                     <Pansion>
Строка 225: Строка 283:
 
                         <StatusName>Wait</StatusName>
 
                         <StatusName>Wait</StatusName>
 
                     </Status>
 
                     </Status>
                    <HotelConfirmationNumber>88888888i</HotelConfirmationNumber>
+
                     <CheckIn>2022-08-20T00:00:00</CheckIn>
                     <CheckIn>2021-07-11T00:00:00</CheckIn>
+
                     <CheckOut>2022-08-27T00:00:00</CheckOut>
                     <CheckOut>2021-07-20T00:00:00</CheckOut>
 
 
                     <Tourists>
 
                     <Tourists>
 
                         <TouristInfo>
 
                         <TouristInfo>
                           <Name>PatnadzProc Gen</Name>
+
                           <Name>Vladimirov Alex</Name>
                           <BirthDate>1966-02-27T00:00:00</BirthDate>
+
                           <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>
 
                           <Sex>MR</Sex>
                           <HotelServiceId>163806</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>
               <Mesaages>
+
               <Flights>
                   <MessageInfo>
+
                   <FlightInfo>
                     <Id>779217</Id>
+
                     <Tourist>Vladimirov Alex</Tourist>
                     <IsOutgoing>false</IsOutgoing>
+
                     <Charters>
                    <DateCreate>2021-11-15T22:21:34.393</DateCreate>
+
                        <CharterInfo>
                     <IsRead>false</IsRead>
+
                          <Type>Arrival</Type>
                     <Text>HTL::Kiev/Hilton/Double Room/2AD/Jakuzzi/BB:яварааааааааарвя</Text>
+
                          <Date>2022-08-20T00:00:00</Date>
                   </MessageInfo>
+
                          <Details>A123-A124 (A123 - 16:00)</Details>
               </Mesaages>
+
                        </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>
 
             </BookingInfo>
    </SearchBookingsResult>
+
        </SearchBookingsResult>
 
       </SearchBookingsResponse>
 
       </SearchBookingsResponse>
 
   </soap:Body>
 
   </soap:Body>
 
</soap:Envelope>
 
</soap:Envelope>
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 +
===SearchBookingsJSON (Получение списка забронированных заявок в формате JSON)===
 +
Метод предназначен для поиска забронированных заявок. Отбираются те заявки, у которых партнер предоставления услуги совпадает с партнером для логина, под которым осуществляется поиск. <br />
 +
Принимаемые параметры запроса ( * – обязательный):<br />
 +
* '''Guid *''' – идентификатор аутентификации (возвращается при запросе к методу [[Master-Interlook:HotelService#Connect (получение аутентификационного токена)|Connect]])<br />
 +
* '''hotelID''' – массив данных с ключами отелей. Можно передавать как один так и несколько ключей отелей. Если не передаём данный параметр, то в ответ получаем все заказы, подходящие под выбранные даты.
 +
* '''dateInfo *''' – по какой дате осуществлять поиск (1 - дата создания заявки, 2 - дата заезда в отель, 3 - дата выезда из отеля)
 +
* '''dateFrom *''' – дата начала
 +
* '''dateTo *''' – дата окончания
 +
* '''checkInFrom''' – дата заезда от
 +
* '''checkInTo''' – дата заезда по
 +
* '''New''' – возвращает новые бронирования с датой, попадающей в указанное выше условие
 +
* '''change''' – возвращает измененные бронирования с изменениями, внесенными в выбранный период
 +
* '''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
 +
* '''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''' – ключ услуги проживания с которой связан турист
 +
***** '''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="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SearchBookingsJSON
 +
<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: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>
 +
</syntaxhighlight>
 +
 +
Возвращаемый результат метода SearchBookingsJSON
 +
<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>
 +
      <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>
 +
</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="&lt;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>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</TD></TR></TABLE>
 
</TD></TR></TABLE>
Строка 261: Строка 605:
 
===ManageBooking (Передача изменений по услуге проживания в Interlook)===
 
===ManageBooking (Передача изменений по услуге проживания в Interlook)===
 
Принимаемые параметры запроса ( '''*''' – обязательный):
 
Принимаемые параметры запроса ( '''*''' – обязательный):
* '''ManageBooking>
+
* '''guid *''' – идентификатор аутентификации (возвращается при запросе к методу [[Master-Interlook:HotelService#Connect (получение аутентификационного токена)|Connect]])<br />
** '''guid *''' – идентификатор аутентификации (возвращается при запросе к методу [[Master-Interlook:HotelService#Connect (получение аутентификационного токена)|Connect]])<br />
+
* '''hotelServiceId *''' – ключ услуги проживания (возвращается при запросе к методу [[Master-Interlook:HotelService#SearchBookings (Получение списка забронированных заявок)|SearchBookings]])<br />
** '''hotelServiceId *''' – ключ услуги проживания (возвращается при запросе к методу [[Master-Interlook:HotelService#SearchBookings (Получение списка забронированных заявок)|SearchBookings]])<br />
+
* '''status''' – фильтр для отбора услуг с определенным статусом (1 - Wait, 2 - Confirmed, 3 - notConfirmed)
** '''status''' – фильтр для отбора услуг с определенным статусом (1 - Wait, 2 - Confirmed, 3 - notConfirmed)
+
* '''message''' – сообщение для пользователя Interlook
** '''hotelConfirmationNumber''' – номер брони от провайдера
+
* '''hotelWorkStatus''' – отметка отеля по заявке (true - отель взял заявку в работу, false - отель заявку в работу не взял). При отправке этого параметра формируется запись в историю по заявке и сообщение от провайдера.
** '''message''' – сообщение для пользователя Interlook
+
<br />[[Файл: Ea_84.png|1000px|История]]<br />
 +
<br />[[Файл: Ea_85.png|1000px|Сообщение]]<br />
 +
Возвращаемый результат:
 +
* '''ManageBookingResult''' – массив данных
 +
* '''HotelServiceId''' – ключ сервиса отеля
 +
* '''HotelServiceName''' – имя сервиса отеля
 +
** '''Hotel''' – массив данных по отелям
 +
*** '''HotelId''' – ключ отеля
 +
*** '''HotelName''' – имя отеля
 +
** '''Pansion''' – тип питания
 +
*** '''PansionId''' – ключ питания
 +
*** '''PansionName''' – имя питания
 +
** '''RoomType''' – тип номера
 +
*** '''RoomTypeId''' – ключ типа номера
 +
*** '''RoomTypeName''' – имя типа номера
 +
** '''RoomAccomodation''' – тип размещения
 +
*** '''AccommodationId''' – ключ типа размещения
 +
*** '''AccommodationName''' – имя типа размещения
 +
** '''RoomCategory''' – категория номер
 +
*** '''RoomCategoryId''' – ключ категории номера
 +
*** '''RoomCategoryName''' – имя категории номера
 +
** '''Status''' – статус по услуге проживания
 +
*** '''StatusId''' – ключ статуса по услуге проживания
 +
*** '''StatusName''' – имя статуса по услуге проживания
 +
 
  
 +
<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>
 +
Вызов метода ManageBooking
 +
<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: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>
 +
</syntaxhighlight>
 +
 +
Возвращаемый результат метода ManageBooking
 +
<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>
 +
      <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>
 +
</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''' – количество бесплатных ночей или значение продолжительности проживания
 
Возвращаемый результат:
 
Возвращаемый результат:
* '''ConnectResult''' – идентификатор аутентификации (если аутентификация прошла успешно. то получаем идентификатор, в противном случае результат ''-1'')  
+
* '''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="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>
Вызов метода Connect
+
Вызов метода CreateCostOffer
 
<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/">
 
   <soapenv:Header/>
 
   <soapenv:Header/>
 
   <soapenv:Body>
 
   <soapenv:Body>
       <tem:Connect>
+
       <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:-->
 
         <!--Optional:-->
         <tem:login>mk1</tem:login>
+
         <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:-->
 
         <!--Optional:-->
         <tem:password>123</tem:password>
+
         <tem:rules>
       </tem:Connect>
+
            <!--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:Body>
 
</soapenv:Envelope>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Возвращаемый результат метода Connect
+
Возвращаемый результат метода CreateCostOffer
 
<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>
       <ConnectResponse xmlns="http://tempuri.org/">
+
       <CreateCostOfferResponse xmlns="http://tempuri.org/">
         <ConnectResult>123c02db-3d47-4db5-861b-758be524a5fe</ConnectResult>
+
         <CreateCostOfferResult Message="Ok">
       </ConnectResponse>
+
            <Data>
 +
              <CreateCostOfferResponse>
 +
                  <Id>2549</Id>
 +
                  <Name>2022.10.01 - 2028.10_Russian Market_1-7_&lt;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" - инициализация кэша максимально производительная: каждый отель загружается в своем потоке (возможны сбои).
"cachingTime" value="-2"/> - весь кэш загружается в 2 потока.

<add key="cachingTime" value="-1"/>
2 Включение логирования о использовании памяти сервера LogCacheMemory

Настройка служит для включения или отключения логирования в таблицу базы данных о использовании кешем сервиса памяти сервера.
0 - выключена, 1 - включена

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

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

Вызов метода 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="&lt;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 – имя статуса по услуге проживания


Пример

Вызов метода 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 Базы Данных)
  • 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 - за человека)

В случае некорректного запроса в ответе приходит описание ошибки и номер строки, в которой указаны некорректные данные.

Пример

Вызов метода 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_&lt;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>