Мастер-Web:Дополнительный модуль Бронирование индивидуального тура

Материал из Megatec
Перейти к: навигация, поиск

Введение

Данный экран предназначен для бронирования в ПК Мастер-Web сложных туров, т.е. туров включающих в себя нестандартный набор услуг, который нельзя рассчитать и забронировать, используя стандартный интерфейс ПК «Мастер-Web».
Основными функциями системы являются:

  1. Формирование программы тура
  2. Редактирование состава заказа
  3. Расчет стоимости сформированного тура
  4. Заполнение данных туристов
  5. Отправка заявки по e-mail
  6. Бронирование тура

Установка

Установка экрана «Бронирование индивидуального тура» включает в себя следующие этапы:

  1. Установка доп.экрана «Бронирование индивидуального тура»
  2. Установка web-сервиса «Сервис бронирования»
  3. Установка web-сервиса «Сервис проверки наличия мест»
  4. Установка web-сервиса «Сложный тур»
  5. Настройка конфигурационного файла web.config основного приложения и конфигурационных файлов web-сервисов

Установка доп.экрана

Для установки надстройки «Бронирование индивидуального тура» нужно выложить распакованные файлы из архива mw-complextour-2007.2.XX.XXXX.zip в каталог, где лежит ПК Мастер-Web.

Установка web-сервиса бронирования

Для установки Сервиса бронирования нужно создать отдельную директорию, например, Reservation (в примерах будет использоваться данное название каталога) в корневом каталоге IIS (по умолчанию c:/inetpub/wwwroot) и выложить туда распакованные файлы из архива mw-ws-reservation-2007.2.XX.XXXX.zip. После этого необходимо преобразовать каталог Reservation в приложение на IIS. В конфигурационном файле web.config приложения Reservation необходимо указать правильные данные в строке подключения (тег <connectionString />).

<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;
Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;
Password=пароль пользователя ПК Мастер-тур"/>

Установка web-сервиса для проверки наличия мест

Для установки Сервиса для проверки наличия мест нужно создать отдельную директорию, например, CheckQuotes в корневом каталоге IIS (по умолчанию c:/inetpub/wwwroot) и выложить туда распакованные файлы из архива mw-ws-checkquotes-2007.2.XX.XXXX.zip. После этого необходимо преобразовать каталог CheckQuotes в приложение на IIS. В конфигурационном файле web.config приложения CheckQuotes необходимо указать правильные данные в строке подключения (тег <connectionString />).


<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;Password=пароль пользователя ПК Мастер-тур"/>

Установка web-сервиса «Сложный тур»

Для установки Сервиса «Сложный тур» нужно создать отдельную директорию, например, WSComplexTour в корневом каталоге IIS (по умолчанию c:/inetpub/wwwroot) и выложить туда распакованные файлы из архива mw-ws-complextour-2007.2.XX.XXXX.zip. После этого необходимо преобразовать каталог WSComplexTour в приложение на IIS. В конфигурационном файле web.config приложения WSComplexTour необходимо указать правильные данные в строке подключения (тег <connectionString />).

<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;Password=пароль пользователя ПК Мастер-тур"/>

Настройка конфигурационного файла web.config основного приложения ПК Мастер-Web

Настройка конфигурационного файла web.config основного приложения ПК Мастер-Web включает:

  1. Добавление новых секций
  2. Добавление настроек

Добавление секций

На одном уровне с секцией <configSections /> необходимо добавить:

<runtime>
   <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
     <dependentAssembly>
       <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
       <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
     </dependentAssembly>
     <dependentAssembly>
       <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
       <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
     </dependentAssembly>
   </assemblyBinding>
 </runtime>
<system.serviceModel>
   <bindings>
     <basicHttpBinding>
       <binding name="ReservationServiceSoap" closeTimeout="00:01:00"
         openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
         allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
         maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
         messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
         useDefaultWebProxy="true">
         <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
           maxBytesPerRead="4096" maxNameTableCharCount="16384" />
         <security mode="None">
           <transport clientCredentialType="None" proxyCredentialType="None"
             realm="" />
           <message clientCredentialType="UserName" algorithmSuite="Default" />
         </security>
       </binding>
       <binding name="ComplexTourServiceSoap" closeTimeout="00:01:00"
         openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
         allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
         maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
         messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
         useDefaultWebProxy="true">
         <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
           maxBytesPerRead="4096" maxNameTableCharCount="16384" />
         <security mode="None">
           <transport clientCredentialType="None" proxyCredentialType="None"
             realm="" />
           <message clientCredentialType="UserName" algorithmSuite="Default" />
         </security>
       </binding>
       <binding name="CheckQuotesServiceSoap" closeTimeout="00:01:00"
         openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
         allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
         maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
         messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
         useDefaultWebProxy="true">
         <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
           maxBytesPerRead="4096" maxNameTableCharCount="16384" />
         <security mode="None">
           <transport clientCredentialType="None" proxyCredentialType="None"
             realm="" />
           <message clientCredentialType="UserName" algorithmSuite="Default" />
         </security>
       </binding>
     </basicHttpBinding>
     <customBinding>
       <binding name="ReservationServiceSoap12">
         <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
           messageVersion="Soap12" writeEncoding="utf-8">
           <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
             maxBytesPerRead="4096" maxNameTableCharCount="16384" />
         </textMessageEncoding>
         <httpTransport manualAddressing="false" maxBufferPoolSize="524288"
           maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
           bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
           keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
           realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
           useDefaultWebProxy="true" />
       </binding>
       <binding name="CheckQuotesServiceSoap12">
         <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
           messageVersion="Soap12" writeEncoding="utf-8">
           <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
             maxBytesPerRead="4096" maxNameTableCharCount="16384" />
         </textMessageEncoding>
         <httpTransport manualAddressing="false" maxBufferPoolSize="524288"
           maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
           bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
           keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
           realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
           useDefaultWebProxy="true" />
       </binding>
     </customBinding>
   </bindings>
   <client>
     <endpoint address="http://localhost/reservation/ReservationService.asmx"
       binding="basicHttpBinding" bindingConfiguration="ReservationServiceSoap"
       contract="ReservationServiceReference.ReservationServiceSoap"
       name="ReservationServiceSoap" />
     <endpoint address="http://localhost/reservation/ReservationService.asmx"
       binding="customBinding" bindingConfiguration="ReservationServiceSoap12"
       contract="ReservationServiceReference.ReservationServiceSoap"
       name="ReservationServiceSoap12" />
     <endpoint address="http://localhost/wsct/ComplexTourService.asmx"
       binding="basicHttpBinding" bindingConfiguration="ComplexTourServiceSoap"
       contract="ComplexTourServiceReference.ComplexTourServiceSoap"
       name="ComplexTourServiceSoap" />
     <endpoint address="http://localhost/checkquotes/CheckQuotesService.asmx"
       binding="basicHttpBinding" bindingConfiguration="CheckQuotesServiceSoap"
       contract="CheckQuotesServiceReference.CheckQuotesServiceSoap"
       name="CheckQuotesServiceSoap" />
     <endpoint address="http://localhost/checkquotes/CheckQuotesService.asmx"
       binding="customBinding" bindingConfiguration="CheckQuotesServiceSoap12"
       contract="CheckQuotesServiceReference.CheckQuotesServiceSoap"
       name="CheckQuotesServiceSoap12" />
   </client>
 </system.serviceModel>


В секции <client /> необходимо указать корректные ссылки к сервисам бронирования, проверки наличия мест и к сервису «Сложный тур».

Добавление настроек

Настройки добавляются в секции <appSettings>

<add key="bindCitizenship" value="false" />
<add key="webUserKey" value="777" />

Настройка конфигурационного файла web.config web-сервиса «Сложный тур»

Настройка конфигурационного файла web.config web-сервиса «Сложный тур» включает в себя добавление настроек. Настройки добавляются в секции <appSettings>:

<add key="SelectableCurrencies" value="1,2,3" />
<add key="PacketIDs" value="189,193,195,209,210,212,213,215,216,218,219,243,244" />
<add key="AllowedServiceClassIDs" value="1,2,3,4,5,6" />

Настройка конфигурационного файла web.config web-сервиса бронирования

Настройка конфигурационного файла web.config web-сервиса бронирования включает в себя добавление настроек.
Настройки добавляются в секции <appSettings>:

<add key="mailFrom" value="mail@megatec.ru" />
<add key="rcptTo" value="mail@megatec.ru" />
<add key="addRcptTo" value="mail@megatec.ru" />
<add key="adminEmail" value="mail@megatec.ru" />
<add key="smtpServer" value="smtp.megatec.ru" />

Работа в системе

Формирование состава заказа

Общие параметры заказа

Пользователь выбирает крайние сроки заказа, указывает общее количество туристов и выбирает валюту, в которой будут производиться расчеты по заказу.
К основным параметрам относятся:

  1. Крайние сроки тура – дата начала и дата окончания оформляемого заказа
  2. Количество человек – общее количество туристов


Для применения общих параметров необходимо нажать кнопку «Применить», расположенную под блоком «Общие параметры тура».
По нажатию кнопки «Применить» происходит загрузка фильтров в блоке «Добавление услуг».
Данные в фильтрах загружаются в соответствии с наличием цен на услуги в пакетах, ключи которых перечислены в настройке PacketIDs. Ключи пакетов перечисляются через запятую.

Добавление услуг

Пользователь выбирает класс услуги и ее параметры и нажимает кнопку «Добавить», расположенную под блоком фильтров для выбора услуг. При этом услуга добавляется в разделе «Состав заказа». В блоке «Туристы» добавляется колонка для привязки добавленной услуги к туристам.
По умолчанию услуга привязана сразу ко всем туристам.
Для добавления услуг к составу заказа необходимо определить основные параметры заказа.
В случае изменения крайних сроков в основных параметрах заказа при наличии добавленных к составу заказа услуг, услуги, даты предоставления которых не будут попадать в рамки новых сроков, будут удалены из состава заказа.В этом случае пользователь должен получать предупреждение о возможных последствиях с возможностью отказаться от изменений.

Удаление услуг

Для удаления услуг пользователь нажимает кнопку «Удалить» для выбранной услуги в разделе «Состав заказа».
При удалении услуги из раздела «Состав заказа» в разделе «Туристы» автоматически удаляется соответствующая колонка для привязки данной услуги к туристам.

Состав заказа