Тревел-политики (ТП) (Travel_Policy)
Тревел-политики (ТП) (Travel_Policy) - это набор правил и ограничений, установленных в компании клиента, которые применяются к вариантам услуг, выбираемым пользователем в процессе создания командировки.
Перед использованием метода необходимо пройти аутентификацию и получить валидный токен. Подробнее об этом: Авторизация (получение токена)
Для получения контекста ТП используется сервис TravelPolicyManagement.asmx
WSDL можно скачать с демо-сайта: https://stage1.corteos.ru/XmlGate/V3/StaticData/TravelPolicies/TravelPolicyManagement.asmx?wsdl
Для работы в продуктовой среде необходимо заменить “stage1.corteos.ru” на свой домен (на котором работают пользователи вашей компании).
В API реализованы следующие методы для работы с ТП:
ListByGroupV2 - получение списка ТП агентом по группе клиента. Для выполнения запроса требуется получить контекст агента.
Для выполнения остальных запросов необходимо получить контекст клиента:
GetV2 - получение ТП по первичному ключу (id_Policy);
SaveV2 - создание новой ТП или редактирование существующей;
ListV2 - получение списка ТП группы компаний;
DeleteV2 - удаление ТП по первичному ключу.
Разберем эти методы более подробно.
Получение списка тревел-политик договора (ListByGroupV2)
Для запроса списка тревел-политик по договору необходимо авторизоваться под агентом. Контекст клиента необязателен, то есть можно перебрать сразу несколько договоров и ТП по ним.
Значение id_Agreement - это ID договора в системе:
Далее для запроса тревел-политик организации ООО "Ромашка" потребуется значение поля id_CustomerGroup - в данном примере это "8158".
id_CustomerGroup также можно найти на вкладке "Общие" интересующего договора:
Запрос ТП:
HTML/XML
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cor="http://corteos.ru">
<soapenv:Header>
<cor:AuthHeader>
<!--Optional:-->
<cor:Token>60738f57-*-*-ad8e-af5129b1b1f2</cor:Token>
</cor:AuthHeader>
</soapenv:Header>
<soapenv:Body>
<cor:ListByGroupV2>
<cor:idGroup>8158</cor:idGroup>
</cor:ListByGroupV2>
</soapenv:Body>
</soapenv:Envelope>
Метод принимает следующие параметры:
id_Group (обязательный) - идентификатор группы клиента
id_ReserveType (необязательный) - идентификатор типа заказа, по которому получаем ТП. Если не передавать ничего, будет возвращен список всех доступных ТП
Version (необязательный) - идентификатор версии ТП для обеспечения версионности. Если не передавать ничего, будет возвращен список всех доступных ТП
Ответ (ТП в ответе указаны по дате добавления, сортировка "раньше-позже"):
компактный вид:
развернутый вид (часть):
HTML/XML
<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>
<ListByGroupV2Response xmlns="http://corteos.ru">
<ListByGroupV2Result>
<Trace ResponseDate="2019-08-30T20:12:50.7989244+03:00" SessionID="1T8G8HQ2K5G53" IP="212.233.125.182" WebSite="https://prd.corteos.ru"/>
<Errors/>
<ResponseDetails>
<TravelPolicy deleted="false">
<DateCreate>2019-03-19T11:39:54.37</DateCreate>
<DateChanged>2019-07-25T10:29:52.397</DateChanged>
<id_Policy>4641</id_Policy>
<Name>Авиа</Name>
<id_Group>8158</id_Group>
<id_ReserveType>1</id_ReserveType>
<NameLatin>Air</NameLatin>
<Version>2</Version>
<Description>Авиа</Description>
<XML><![CDATA[<?xml version="1.0"?>
<AviaEngineV2Policy xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DepartureTime>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<AllowedHoursMin>0</AllowedHoursMin>
<AllowedHoursMax>0</AllowedHoursMax>
</DepartureTime>
<Connections>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<MaximumConnectionsValue>0</MaximumConnectionsValue>
</Connections>
<FlightNumbers>
<Enabled>true</Enabled>
<id_BudgetCode>607</id_BudgetCode>
<ForbiddenFlights>
<ForbiddenFlight>
<id_BudgetCode>607</id_BudgetCode>
<Airline>DP</Airline>
</ForbiddenFlight>
</ForbiddenFlights>
<OnlySelectedFlightsAreAllowed>false</OnlySelectedFlightsAreAllowed>
</FlightNumbers>
<AirplaneTypes>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<ForbiddenAirplaneTypes />
<OnlySelectedAirplanesAreAllowed>false</OnlySelectedAirplanesAreAllowed>
</AirplaneTypes>
<Geography>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<IsAcceptRule>false</IsAcceptRule>
</Geography>
<DaysToDeparture>
<Enabled>true</Enabled>
<id_BudgetCode>607</id_BudgetCode>
<Days>14</Days>
</DaysToDeparture>
<WeekDays>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<WeekDays />
<ExactDays />
</WeekDays>
<AdvancedFareClass>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<Routes />
</AdvancedFareClass>
<AdvancedPriceDeviations>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<Routes />
</AdvancedPriceDeviations>
<AdvancedPriceLimits>
<Enabled>true</Enabled>
<id_BudgetCode>607</id_BudgetCode>
<Routes>
<AirRoutePriceLimit>
<Origins>MOW,LED,ZIA</Origins>
<Destinations>KUF,AER,KZN</Destinations>
<idCode>607</idCode>
<IncludeServiceFee>false</IncludeServiceFee>
<LimitExcess xsi:nil="true" />
<OW>6000</OW>
<RT>12000</RT>
</AirRoutePriceLimit>
</Routes>
</AdvancedPriceLimits>
</AviaEngineV2Policy>]]></XML>
<ReserveType>Avia</ReserveType>
</TravelPolicy>
<TravelPolicy deleted="false">
<DateCreate>2019-03-19T11:43:55.207</DateCreate>
<DateChanged>2019-07-25T10:34:39.06</DateChanged>
<id_Policy>4643</id_Policy>
<Name>ЖД</Name>
<id_Group>8158</id_Group>
<id_ReserveType>2</id_ReserveType>
<NameLatin>Train</NameLatin>
<Version>3</Version>
<Description>ЖД</Description>
<XML><![CDATA[<?xml version="1.0"?>
<RailV3Policy xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TrainType>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<AllowedCathegories />
</TrainType>
<VagonType>
<Enabled>true</Enabled>
<id_BudgetCode>607</id_BudgetCode>
<AllowedTypes>
<TrainFareTypeForTravelPolicy>Coupet</TrainFareTypeForTravelPolicy>
<TrainFareTypeForTravelPolicy>Platzcart</TrainFareTypeForTravelPolicy>
<TrainFareTypeForTravelPolicy>Seats</TrainFareTypeForTravelPolicy>
<TrainFareTypeForTravelPolicy>SapsanEconomy</TrainFareTypeForTravelPolicy>
<TrainFareTypeForTravelPolicy>Lastochka</TrainFareTypeForTravelPolicy>
<TrainFareTypeForTravelPolicy>Strizh</TrainFareTypeForTravelPolicy>
</AllowedTypes>
<AllowGivenServiceClassesOnly>false</AllowGivenServiceClassesOnly>
</VagonType>
<Duration>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<DurationHours>0</DurationHours>
<DurationHoursTo>0</DurationHoursTo>
</Duration>
<DaysOfWeek>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<WeekDays />
<ExactDays />
</DaysOfWeek>
<DaysToDepart>
<Enabled>true</Enabled>
<id_BudgetCode>606</id_BudgetCode>
<Days>14</Days>
</DaysToDepart>
<Price>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<PriceLimitations />
</Price>
<Route>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<Routes />
</Route>
<RoutePrice>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<Routes />
</RoutePrice>
<DurationByServiceClass>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<DurationLimits />
</DurationByServiceClass>
</RailV3Policy>]]></XML>
<ReserveType>Rail</ReserveType>
</TravelPolicy>
<TravelPolicy deleted="false">
<DateCreate>2019-06-10T10:43:59.433</DateCreate>
<DateChanged>2019-06-10T10:51:07.21</DateChanged>
<id_Policy>4829</id_Policy>
<Name>Тест</Name>
<id_Group>8158</id_Group>
<id_ReserveType>1</id_ReserveType>
<NameLatin>Test</NameLatin>
<Version>2</Version>
<Description>Тест</Description>
<XML><![CDATA[<?xml version="1.0"?>
<AviaEngineV2Policy xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DepartureTime>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<AllowedHoursMin>0</AllowedHoursMin>
<AllowedHoursMax>0</AllowedHoursMax>
</DepartureTime>
<Connections>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<MaximumConnectionsValue>0</MaximumConnectionsValue>
</Connections>
<FlightNumbers>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<ForbiddenFlights />
<OnlySelectedFlightsAreAllowed>false</OnlySelectedFlightsAreAllowed>
</FlightNumbers>
<AirplaneTypes>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<ForbiddenAirplaneTypes />
<OnlySelectedAirplanesAreAllowed>false</OnlySelectedAirplanesAreAllowed>
</AirplaneTypes>
<Geography>
<Enabled>true</Enabled>
<id_BudgetCode>607</id_BudgetCode>
<IsAcceptRule>false</IsAcceptRule>
<PrimaryGeographyCodeStrings>KUF,KZN,CN</PrimaryGeographyCodeStrings>
<ExceptionCityCodesString>PEK</ExceptionCityCodesString>
</Geography>
<DaysToDeparture>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<Days>0</Days>
</DaysToDeparture>
<WeekDays>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<WeekDays />
<ExactDays />
</WeekDays>
<AdvancedFareClass>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<Routes />
</AdvancedFareClass>
<AdvancedPriceDeviations>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<Routes />
</AdvancedPriceDeviations>
<AdvancedPriceLimits>
<Enabled>false</Enabled>
<id_BudgetCode xsi:nil="true" />
<Routes />
</AdvancedPriceLimits>
</AviaEngineV2Policy>]]></XML>
<ReserveType>Avia</ReserveType>
</TravelPolicy>
</ResponseDetails>
</ListByGroupV2Result>
</ListByGroupV2Response>
</soap:Body>
</soap:Envelope>