Мастер-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. Ключи пакетов перечисляются через запятую.

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

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

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

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

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

Добавленные к составу заказа услуги отображаются в разделе «Состав заказа».
ST40.png
По каждой услуге представлена информация:

  • № - порядковый номер услуги (присваивается в порядке добавления услуг к составу заказа)
  • Дата – дата предоставления услуги
  • Прод. – продолжительность услуги (для услуг с продолжительностью)
  • Услуга – название услуги
  • Наличие – наличие мест
  • ST41.png - возможность удаления услуги

Под таблицей с составом заказа отображается информация:

  • Валюта
  • Общая стоимость – полная стоимость заказа
  • К оплате – стоимость заказа за вычетом скидки

При изменении состава заказа (добавлени / удаление услуг) кнопка «Оформить» должна блокироваться. Активность кнопки восстанавливается только после перерассчета стоимости услуг.

Привязка туристов к услугам

По умолчанию все добавляемые услуги привязываются ко всем туристам.
Для удаления привязки услуги к туристу необходимо снять отметки в чек-боксах в колонках, соответствующих нужным услугам.
Для привязки услуг к туристу необходимо проставить отметки в чек-боксах в колонках, соответствующих нужным услугам.

Расчет стоимости

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

  • Добавление услуг к составу заказа
  • Удаление услуг из состава заказа
  • Изменение привязки услуг к туристам
  • Изменение общих параметров заказа

Услуги, не привязанные ни к одному туристу в расчете стоимости заказа не участвуют.
Для расчета стоимости заказа необходимо наличие хотя бы одной услуги в составе заказа, привязанной хотя бы к одному туристу.
При отсутствии услуг в составе заказа кнопка «Рассчитать» становится неактивной.
При наличии в составе заказа услуг, не привязанных ни к одному туристу, при расчете стоимости заказа появляется сообщение: «В составе заказа присутствуют услуги, не привязанные ни к одному из туристов. Данные услуги не будут сохранены в заказе. Для продолжения нажмите кнопку Ok, для возврата к редактированию заказа нажмите кнопку Отмена.» После расчета стоимости заказа становятся активными кнопки «Отправить по e-mail» и «Оформить».

Проверка наличия мест

При добавлении услуг к составу заказа (в момент выбора услуги и ее доп.описания 1) автоматически производится проверка наличия мест на услуги. Список услуг, для которых производится проверка наличия мест определяется по разному для версий приложения 2007.2 и 2009.2.
В версии 2007.2 список услуг, для которых производится проверка наличия мест определяется настройкой quotedServices в конфигурационном файле web.config.
В версии 2009.2 список услуг, для которых производится проверка наличия мест определяется признаком услуги «Квотируемая». Дополнительно можно указать в конфигурационном файле web.config настройку quotedServices, которая может сузить набор услуг, для которых производится проверка наличия мест. Настройка quotedServices не может включить проверку наличия мест для услуг без признака «Квотируемая».
При наличии мест «Нет» на услугу ее добавление к составу заказа становится недоступным. При этом пользователь должен получать сообщение о том. Что на услугу закончились места.

Оформление заказа

Примечания

Примечания к заявке добавляются в блоке «Примечания».
При отправке заявки по e-mail текст примечания отправляется в письме.
При оформлении заявки текст примечания сохраняется в истории путевки.

Заполнение данных туристов

Данные туристов заполняются в блоке «Туристы». Поля информации о туристах отображаются в соответствии с настройками и правилами заполнения, определенными в Блоке Администрирования ПК Мастер-Web. Настройки задаются в разделе «Настройки».

Отправка заявки по e-mail

Отправка заявки по e-mail доступна как для незарегистрированных и неавторизованных пользователей, так и для авторизованных в системе пользователей.
Для отправки заявки по e-mail необходимо нажать кнопку «Отправить по e-mail», расположенную в нижней части экрана. При этом неавторизованному пользователю откроется форма для ввода контактной информации. По нажатию кнопки Ok туроператору отправляется письмо, содержащее информацию о сформированной в экране программе тура, стоимость сформированного заказа, данные туристов и контактную информацию. По нажатию кнопки «Отмена» происходит возврат пользователя в экран «Бронирование индивидуального тура» (аналогично механизму отправки заявки по e-mail в экране «Упрощенная корзина»).
По нажатию кнопки «Отправить по e-mail» авторизованным пользователем форма ввода контактной информации не открывается, а сразу туроператору отправляется письмо, содержащее информацию о сформированной в экране программе тура, стоимость сформированного заказа, данные туристов и данные авторизованного в системе пользователя.
Письма отправляются на адреса, указанные в настройках rcptTo, addRcptTo, а также на адрес ведущего менеджера по стране.
При отправке заявки по e-mail услуги, непривязанные ни к одному туристу, в заказ не попадают.
Кнопка «Отправить по e-mail» становится доступной только после расчета стоимости сформированного тура.
Кнопка «Отправить по e-mail» становится недоступной при:

  • Добавление услуг к составу заказа
  • Удаление услуг из состава заказа
  • Изменение привязки услуг к туристам
  • Изменение общих параметров заказа

При наличии в составе заказа услуг, не привязанных ни к одному туристу, при отправке заявки по e-mail появляется сообщение: «В составе заказа присутствуют услуги, непривязанные ни к одному из туристов. Данные услуги не будут сохранены в заказе. Для продолжения нажмите кнопку Ok, для возврата к редактированию заказа нажмите кнопку Отмена.»
По нажатию кнопки Ok продолжится отправка заявки без учета таких услуг.
По нажатию кнопки «Отмена» происходит возврат в экран «Бронирование индивидуального тура», где можно изменить привязку услуг к туристам.
По завершению отправки заявки по e-mail пользователь получает уведомление «Ваш заказ успешно отправлен. В ближайшее время наш менеджер свяжется с Вами.». По нажатию кнопки Ok пользователь возвращается в экран «Бронирование индивидуального тура» (при этом происходит очистка экрана).

Бронирование заявки

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

  • Добавление услуг к составу заказа
  • Удаление услуг из состава заказа
  • Изменение привязки услуг к туристам
  • Изменение общих параметров заказа


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