Web-сервисы: Сервис бронирования — различия между версиями
| [досмотренная версия] | [досмотренная версия] |
| Строка 65: | Строка 65: | ||
public int Nights { get; set; } | public int Nights { get; set; } | ||
}</nowiki> | }</nowiki> | ||
| + | ====ReservationParams==== | ||
| + | <nowiki>/// <summary> | ||
| + | /// Параметры бронирования | ||
| + | /// </summary> | ||
| + | public class ReservationParams | ||
| + | { | ||
| + | /// <summary> | ||
| + | /// Идентификатор рекламного источника в БД | ||
| + | /// </summary> | ||
| + | public int AdvertiseID { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Идентификатор основания для скидки в БД | ||
| + | /// </summary> | ||
| + | public int CauseDiscountID { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Идентификатор страны тура | ||
| + | /// </summary> | ||
| + | public int CountryID { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Идентификатор пользователя, бронирующего тур | ||
| + | /// </summary> | ||
| + | public int DupUserID { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Имя оператора | ||
| + | /// </summary> | ||
| + | public string OperatorName { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Иденификатор ведущего менеджера по путевке | ||
| + | /// </summary> | ||
| + | public int OwnerID { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Идентификатор партнера, бронирующего тур | ||
| + | /// </summary> | ||
| + | public int PartnerID { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Валюта, в котрой производится бронирование | ||
| + | /// (если не задана, то вытягивается из тура) | ||
| + | /// </summary> | ||
| + | public string RateCode { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Бронируемая продолжительность | ||
| + | /// (если не задана, то высчитывается на основании услуг) | ||
| + | /// </summary> | ||
| + | public int ReserveDuration { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Дата тура | ||
| + | /// </summary> | ||
| + | public DateTime TourDate { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Идентификатор тура | ||
| + | /// </summary> | ||
| + | public int TourID { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Количество туристов по услугам | ||
| + | /// </summary> | ||
| + | public int TouristsCount { get; set; } | ||
| + | }</nowiki> | ||
| + | ====ReservationResult==== | ||
| + | <nowiki>/// <summary> | ||
| + | /// Класс, описывающий результат расчета стоимости и бронирования комплекса услуг | ||
| + | /// </summary> | ||
| + | public class ReservationResult | ||
| + | { | ||
| + | /// <summary> | ||
| + | /// Стоимость к оплате | ||
| + | /// </summary> | ||
| + | public double Brutto { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Процент скидки | ||
| + | /// </summary> | ||
| + | public double DiscountPercent { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Абсолютная величина скидки | ||
| + | /// </summary> | ||
| + | public double DiscountSumm { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Валюта | ||
| + | /// </summary> | ||
| + | public string Rate { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Код сформированной путевки | ||
| + | /// </summary> | ||
| + | public string ReservationCode { get; set; } | ||
| + | |||
| + | /// <summary> | ||
| + | /// Сообщение об ошибке | ||
| + | /// </summary> | ||
| + | public string ErrorMessage { get; set; } | ||
| + | }</nowiki> | ||
| + | ===Сервис формирования списка услуг (ServiceProvider.asmx)=== | ||
| + | ====Метод получения информации по ключу цены==== | ||
| + | =====Сигнатура вызова===== | ||
| + | <nowiki>/// <summary> | ||
| + | /// Получение информации о цене | ||
| + | /// </summary> | ||
| + | /// <param name="priceKey">Ключ цены</param> | ||
| + | /// <param name="includeTourDescriptionText">Возвращать ли описание тура</param> | ||
| + | /// <param name="includeBookingConditionsText">Возвращать ли условия бронирования по туру</param> | ||
| + | /// <returns></returns> | ||
| + | [WebMethod] | ||
| + | public CalculatedPriceInfo GetCalculatedPriceInfo(int priceKey, bool includeTourDescriptionText, bool includeBookingConditionsText)</nowiki> | ||
| + | ====Метод получения рассчитанных услуг==== | ||
| + | =====Сигнатура вызова===== | ||
| + | <nowiki>/// <summary> | ||
| + | /// Возвращает список рассчитанных услуг по ключу цены | ||
| + | /// </summary> | ||
| + | /// <param name="priceKey">Ключ обсчитанной цены</param> | ||
| + | /// <returns></returns> | ||
| + | [WebMethod] | ||
| + | public List<Service> GetCalculatedServices(int priceKey)</nowiki> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
[[Category:Мастер-Web_Дополнительные_модули]] | [[Category:Мастер-Web_Дополнительные_модули]] | ||
Версия 14:00, 1 ноября 2011
Содержание
Введение
Данный модуль включает в себя два сервиса:
- Сервис формирования списка услуг
- Сервис бронирования
Сервис формирования списка услуг предназначен для получения следующей информации:
- общие данные по ключу цены, такие как тур, продолжительности в днях и ночах, описание тура и условия бронирования;
- список услуг, включенных в стоимость, по ключу цены;
- список не рассчитанных услуг по ключу цены;
- список вариантов какой-либо услуги.
Сервис бронирования предназначен для расчета стоимости совокупности услуг, с возможностью их последующего бронирования в базе данных.
Установка
Для установки Сервиса бронирования нужно создать директорию Reservation в каталоге c:/inetpub/wwwroot/ (корневом каталоге IIS) и выложить туда распакованные файлы из архива mw-ws-reservation-2007.2.XX.XXXX.zip. В управлении IIS необходимо создать виртуальный каталог для папки Reservation.
Создание виртуального каталога
По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:
- 1. Зайти в Пуск (Start) – Настройки (Settings) – Панель управления (Control Panel).
- 2. В открывшемся окне выбрать Администрирование (Administrative Tools).
- 3. Запустить Internet Information Services (IIS) Manager.
- 4. В открывшемся дереве каталогов выбрать Web Sites – Default Web Site. В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и зайти в Свойства (Properties).
- 5. В открывшемся окне, в закладке Directory нужно нажать кнопку «Create», а затем кнопку «ОК».
1.2 Подключение к базе данных ПК «Мастер-Тур»
В файле web.config, расположенном в папке Reservation пропишите необходимые параметры подключения (курсивом выделены значения, которые необходимо ввести).
Строка подключения к базе данных ПК «Мастер-Тур»:
<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;Password=пароль пользователя ПК Мастер-тур"/>
Настройка
После установки «Сервис бронирования» доступен по адресу:
- http: //ip- адрес сервера Мастер-Веб/Reservation/ServiceProvider.asmx (сервис формирования списка услуг)
- http: //ip- адрес сервера Мастер-Веб/Reservation/ReservationService.asmx (сервис бронирования)
Подготовка данных
Описание формата данных
CalculatedPriceInfo
/// <summary>
/// Информация по рассчитанной цене
/// </summary>
public class CalculatedPriceInfo
{
/// <summary>
/// Прайс-лист
/// </summary>
public PriceTour PriceTour { get; set; }
/// <summary>
/// Дата тура
/// </summary>
public DateTime TourDate { get; set; }
/// <summary>
/// Количество дней по туру
/// </summary>
public int TotalDays { get; set; }
/// <summary>
/// Количество ночей по туру
/// </summary>
public int Nights { get; set; }
}
ReservationParams
/// <summary>
/// Параметры бронирования
/// </summary>
public class ReservationParams
{
/// <summary>
/// Идентификатор рекламного источника в БД
/// </summary>
public int AdvertiseID { get; set; }
/// <summary>
/// Идентификатор основания для скидки в БД
/// </summary>
public int CauseDiscountID { get; set; }
/// <summary>
/// Идентификатор страны тура
/// </summary>
public int CountryID { get; set; }
/// <summary>
/// Идентификатор пользователя, бронирующего тур
/// </summary>
public int DupUserID { get; set; }
/// <summary>
/// Имя оператора
/// </summary>
public string OperatorName { get; set; }
/// <summary>
/// Иденификатор ведущего менеджера по путевке
/// </summary>
public int OwnerID { get; set; }
/// <summary>
/// Идентификатор партнера, бронирующего тур
/// </summary>
public int PartnerID { get; set; }
/// <summary>
/// Валюта, в котрой производится бронирование
/// (если не задана, то вытягивается из тура)
/// </summary>
public string RateCode { get; set; }
/// <summary>
/// Бронируемая продолжительность
/// (если не задана, то высчитывается на основании услуг)
/// </summary>
public int ReserveDuration { get; set; }
/// <summary>
/// Дата тура
/// </summary>
public DateTime TourDate { get; set; }
/// <summary>
/// Идентификатор тура
/// </summary>
public int TourID { get; set; }
/// <summary>
/// Количество туристов по услугам
/// </summary>
public int TouristsCount { get; set; }
}
ReservationResult
/// <summary>
/// Класс, описывающий результат расчета стоимости и бронирования комплекса услуг
/// </summary>
public class ReservationResult
{
/// <summary>
/// Стоимость к оплате
/// </summary>
public double Brutto { get; set; }
/// <summary>
/// Процент скидки
/// </summary>
public double DiscountPercent { get; set; }
/// <summary>
/// Абсолютная величина скидки
/// </summary>
public double DiscountSumm { get; set; }
/// <summary>
/// Валюта
/// </summary>
public string Rate { get; set; }
/// <summary>
/// Код сформированной путевки
/// </summary>
public string ReservationCode { get; set; }
/// <summary>
/// Сообщение об ошибке
/// </summary>
public string ErrorMessage { get; set; }
}
Сервис формирования списка услуг (ServiceProvider.asmx)
Метод получения информации по ключу цены
Сигнатура вызова
/// <summary> /// Получение информации о цене /// </summary> /// <param name="priceKey">Ключ цены</param> /// <param name="includeTourDescriptionText">Возвращать ли описание тура</param> /// <param name="includeBookingConditionsText">Возвращать ли условия бронирования по туру</param> /// <returns></returns> [WebMethod] public CalculatedPriceInfo GetCalculatedPriceInfo(int priceKey, bool includeTourDescriptionText, bool includeBookingConditionsText)
Метод получения рассчитанных услуг
Сигнатура вызова
/// <summary> /// Возвращает список рассчитанных услуг по ключу цены /// </summary> /// <param name="priceKey">Ключ обсчитанной цены</param> /// <returns></returns> [WebMethod] public List<Service> GetCalculatedServices(int priceKey)