Мастер-Тур:Дополнительный модуль Прайс-Экспресс

Материал из Megatec
Версия от 17:56, 20 ноября 2014; Biryukov (обсуждение | вклад) (Расчет тура)
Перейти к: навигация, поиск

Статья находится на стадии разработки.

Версия статьи от 20-11-2014.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с 2009.2.20


Введение

Дополнительный модуль «Прайс-Экспресс» предназначен для расчета туров по заданным правилам. Его использование позволяет разгрузить сервер баз данных путем переноса самой ресурсоемкой операции — расчета тура — на отдельный расчетный сервер.


Системные требования

Релиз 9.2.20 ПК «Мастер-Тур»/«Мастер-Web»

  • Панель расчета
    IIS 8.0 (.Net Framework 4.5) для панели расчета
    Google Chrome на клиентских компьютерах. Панель расчета корректно отображается только в браузере Google Chrome.
    МинимальныеРекомендуемые
    ПроцессорPentium 4Core 2 Duo
    Оперативная память2 Гб2 Гб
    Свободное место на жестком дискеот 30 Гбот 60 Гб
    Операционная системаWindows Vista или вышеWindows 7 или выше
    Разрешение монитора1024 × 7681920 × 1080
  • Служба балансировщика
    МинимальныеРекомендуемые
    ПроцессорPentium 4Core 2 Duo
    Оперативная память2 Гб2 Гб
    Свободное место на жестком дискеот 30 Гбот 60 Гб
    Операционная системаWindows Vista или вышеWindows 7 или выше
    Разрешение монитора1024 × 7681920 × 1080
  • Служба расчетчика
    МинимальныеРекомендуемые
    Процессор8-ядерный16-ядерный
    Оперативная память16 Гб32 Гб
    Свободное место на жестком дискеот 50 Гбот 120 Гб
    Операционная системаWindows Vista или вышеWindows Server 2008 или выше
    Разрешение монитора1024 × 7681920 × 1080

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

  Защита панели расчета от несанкционированного доступа должна осуществляться административными методами.

Взаимодействие модулей

Взаимодействие модулей «Прайс-Экспресса» представлено на схеме.

Взаимодействие модулей

Установка

Установка дополнительного модуля «Прайс-Экспресс» производится в несколько этапов, которые описаны ниже.


Обновление базы данных

Необходимо выполнить скрипт обновления ReleaseScript.sql на базе данных ПК «Мастер-Тур».

Установка службы расчетчика

  • Скопировать папку CalculateTourService из дистрибутива на сервер расчета.
  • Перед установкой расчетчика необходимо настроить конфигурационный файл Megatec.MasterTour.CalculateTourService.exe.config.
Описание Значение Настройка
1 Строка подключения Строка подключения к базе данных ПК «Мастер-Тур» указывается в секции appSettings.
<add key="connectionString" value="Data Source=Server; Initial Catalog=MasterTourDatabase; User Id=User; Password=123; Application Name=CalculateTourBalanser" />
2 Логирование Пути к лог-файлам задаются в секциях логирования.
<param name="File" value="D:\CalculateTourService\Logs\ServiceLog.txt" />
3 Порт По умолчанию расчетчик использует порт 52527. Рекомендуется использование порта по умолчанию.

Внимание!
При смене порта необходимо также изменить порт в установочном скрипте _Install.bat.

<add baseAddress="http://*:52527/CalculateTourService" />
  • Установка осуществляется запуском скрипта _Install.bat от имени администратора. Запуск от имени администратора
  • При установке в Брандмауэре Windows создаются правила для входящих подключений для открытия порта расчетчика. Правила для входящих подключений расчетчика
  • В Службах Windows добавляется служба MegatecCalculateTourService.

MegatecCalculateTourService

  • Для удаления службы расчетчика необходимо запустить скрипт _UnInstall.bat от имени администратора. При этом будут удалены правила для входящих подключений.

Установка службы балансировщика

  • Копирование каталога CalculateTourBalanser из дистрибутива на сервер приложений.
  • Настройка конфигурационного файла Megatec.MasterTour.CalculateTourBalanser.exe.config.
Описание Значение Настройка
1 Строка подключения Строка подключения к базе данных ПК «Мастер-Тур» указывается в секции appSettings.
<add key="connectionString" value="Data Source=Server; Initial Catalog=MasterTourDatabase; User Id=User; Password=123; Application Name=CalculateTourBalanser" />
2 Логирование Пути к лог-файлам задаются в секциях логирования.
<param name="File" value="D:\CalculateTourBalanser\Logs\BalancerLog.txt" />
3 Порт По умолчанию балансировщик использует порт 52528. Рекомендуется использование порта по умолчанию.

Внимание!
При смене порта необходимо также изменить порт в установочном скрипте _Install.bat.

<add baseAddress="http://localhost:52528/CalculateTourBalanser/BasicHttp" />
<add baseAddress="http://localhost:52528/CalculateTourBalanser/Dictionary" />
  • Установка осуществляется запуском скрипта _Install.bat от имени администратора. Запуск от имени администратора
  • При установке в Брандмауэре Windows создаются правила для входящих подключений для открытия порта балансировщика. Правила для входящих подключений балансировщика
  • В Службах Windows добавляется служба MegatecCalculateTourBalanser.

MegatecCalculateTourBalanser

  • Для удаления службы балансировщика необходимо запустить скрипт _UnInstall.bat от имени администратора. При этом будут удалены правила для входящих подключений.

Установка панели расчета

  • Копирование каталога CalculateTourPanel из дистрибутива на сервер приложений.
  • Добавление приложения расчета в IIS. Приложение CalculateTourPanel
Полезная информация


Рекомендуется установка службы балансировщика и панели расчета на одном компьютере.
В таком случае достаточно добавить приложение на IIS, не меняя параметры конфигурационного файла.


MegatecCalculateTourBalanser

  • Настройка конфигурационного файла Web.config.
Описание Значение Настройка
1 Максимальная продолжительность Максимальное значение фильтра «Продолжительность тура».
<add key="maxTourDur" value="40" />
2 Адрес балансировщика В тегах endpoint указывается сервер и порт балансировщика. (По умолчанию указан локальный компьютер и стандартный порт.)
<client>
  <endpoint address="http://localhost:52528/CalculateTourBalanser/BasicHttp"
   >
  </endpoint>
  <endpoint address="http://localhost:52528/CalculateTourBalanser/Dictionary"
   >
  </endpoint> 
</client>


  • Ошибка установки.

Ошибка

В случае возникновения данной ошибки необходимо убедиться, что в конфигурационном файле Web.config присутствует настройка:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

Если эта настройка отсутствует, то её нужно добавить. При этом перезапуск пула/приложения/сервера не требуется.

Интеграция в конструктор туров

  • Копирование в рабочую папку МТ на клиентских машинах плагина «Новый расчет прайс-листа» — Megatec.MasterTour.Plugins.CalculateTourPlugin.dll.
  • После добавления плагина в дополнительных настройках появится вкладка Расчет прайс-листа. В поле Адрес панели расчета необходимо указать ссылку на панель.
Настройки → Доп. настройки → Расчет прайс-листа

Приложение CalculateTourPanel

  • В конструкторе туров в надстройках появится пункт Новый расчет туров, по клику на котором открывается панель расчета.

Панель расчета

Страница «План расчета»

Страница «План расчета» предназначена для выбора тура, указания дат заезда и продолжительностей.

План расчета

На странице необходимо выбрать тур для расчета. Для удобства поиска тура представлено 4 фильтра:

  • Город начала поездки - город начала поездки
  • Страна - страна тура
  • Город - город тура, берется из услуги Проживание
  • Название тура для расчета

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

  • выбор из выпадающего списка, открывающегося кликом по данному полю
  • ручной ввод с клавиатуры
  • вставка значений из буфера обмена

Для двух последних вариантов предусмотрена возможность указания значений в диапазоне. Для задания диапазона используется символ -. Допустимыми символами разделителей являются , ;. Некорректные значения и недопустимые символы игнорируются.
Пример корректного ввода продолжительностей 1-5, 8, 10-12; 15, 20; 23-25. В этом случае тур рассчитается на следующие продолжительности:1, 2, 3, 4, 5, 8, 10, 11, 12, 15, 20, 23, 24, 25.

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

Страница «Календарь»

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

Календарь

Страница «Выбор услуг»

Страница «Выбор услуг» предназначена для выбора услуг, с которыми будет рассчитываться тур.
На странице отображаются все услуги, входящие в состав тура.

Выбор услуг
  • Для многоотельных туров можно перевыбрать основной отель. По умолчанию выбран основной отель, у которого в конструкторе туров указан признак "Основная услуга".
  • Для исключения услуги из расчета нужно у этой услуги снять галочку в столбце "Включена в расчет".

Страница «Варианты размещения»

Страница «Варианты размещения» предназначена для задания параметров размещений для расчета тура.

Одноотельный тур

Страница «Варианты размещения» одноотельного тура представлена тремя вкладками: Отели, Виды проживания, Питания.

Варианты размещения одноотельного тура

По умолчанию добавлены все отели, виды проживания и типы питания, на которые заведены цены в конструкторе туров.

  • Для расчета тура только с определенными отелями необходимо удалить добавленные ранее отели, выбрав их в нижней таблице и нажав кнопку "Удалить".
  • Отбор отелей по параметрам можно регулировать с помощью фильтра, который позволяет выбрать отели по категории, городу, курорту, партнеру или названию. Также для удобства отбора отелей можно воспользоваться кнопкой "Инвертировать", которая изменит установленные признаки отелей на противоположные. Для этого необходимо кликом по стрелочке, находящейся в правой части кнопки "Добавить", открыть меню и выбрать пункт "Инвертировать".
  • Добавление выбранных отелей осуществляется нажатием на кнопку "Добавить" или выбором соответствующего пункта меню.

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

Пример добавления видов проживания по определенным параметрам.
Необходимо добавить все проживания DBL, в которых нет размещения с указанием inf.

  • В верхнем фильтре выбрать параметр типа номера DBL.
  • Ввести с клавиатуры inf. При нажатой клавише Ctrl последовательно выбрать все типы размещения.
Виды проживания
  • Выбрать все отфильтрованные виды проживания, кликнув по заголовку Тип номера/Категория номера/Тип размещения.
Виды проживания
  • Очистить фильтр
  • В фильтре выбрать параметр типа номера DBL. В меню выбрать пункт Инвертировать.
Виды проживания
  • Выбрать пункт меню Добавить.
Виды проживания


Многоотельный тур

Страница «Варианты размещения» многоотельного тура представлена четырьмя вкладками: Отели, Продолжительности, Виды проживания, Питания.

Варианты размещения многоотельного тура

По умолчанию в верхней части страницы вкладки Отели отображаются все отели, на которые заведены цены в конструкторе туров.

Сопоставление отелей возможно несколькими вариантами:
  1. Для каждого из городов тура выбрать отели, которые необходимо сопоставить. На кнопке отобразится количество сопоставляемых вариантов. Нажать кнопку "Сопоставить" или выбрать соответсвующий пункт меню.
  2. В меню выбрать пункт "Сопоставить все варианты". При этом будут сопоставлены все возможные варианты.

Отбор отелей по параметрам можно регулировать с помощью фильтров, которые позволяют выбрать отели по категории, городу, курорту, партнеру или названию. Также для удобства отбора отелей можно воспользоваться кнопкой "Инвертировать", которая изменит установленные признаки отелей на противоположные.
Для удаления сопоставленных отелей необходимо выбрать нужные варианты сопоставления и нажать кнопку "Удалить".

На вкладке Продолжительности по умолчанию отображается распределение продолжительностей, выбранное в конструкторе туров.
В строку Продолжительности, дней тура(ночей проживания) передаются значения продолжительностей, заданные на странице «План расчета».

Продолжительности
  • Для добавления нового распределения продолжительностей по отелям нужно нажать кнопку "Добавить" и указать необходимые продолжительности для каждого из отелей.
  • Признак auto обязателен. Он означает, что продолжительность подбирается автоматически на основе продолжительностей тура и заданных продолжительностей остальных проживаний.
  • Недопустимые распределения продолжительностей отелей при расчете игнорируются
Удаление продолжительностей:
  1. Нажать красный крестик - удаление соответствующей строки распределения продолжительностей.
  2. Нажать кнопку "Удалить все продолжительности" - удаление всех распределений продолжительностей.

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

Импорт настроек многоотельных туров выполняется следующим образом:

  • Нажать на кнопку "Импорт". Откроется диалоговое окно "Импорт настроек многоотельности".
Импорт настроек многоотельности
  • Выбрать тур-источник, настройки которого будут импортироваться.
  • Нажать кнопку "Загрузить". В левом столбце отобразятся отели тура-приемника, в правом загрузятся отели тура-источника.
  • Сопоставить отели, выбрав необходимые отели тура-источника из выпадающего списка.
  • Нажать кнопку "Импортировать".

Страница «Правила связывания»

Страница «Правила связывания» предназначена для создания правил связывания и указания их применения на определенные дни недели.
Страница представлена двумя вкладками: Правила связывания услуг, Применение правил связывания услуг.

Правила связывания

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

Создание Правил связывания

  • Нажать кнопку "Создать набор". В появившемся диалоговом окне указать название набора.
  • Нажать кнопку "Создать папку". В появившемся диалоговом окне выбрать нужный набор и указать название папки.
  • Нажать кнопку "Создать правило". Откроется диалоговое окно "Создание правила связывания услуг", в котором необходимо указать название правила связывания.
Создание правила связывания услуг


Правило связывания состоит из двух частей: Условия, Действия.

Условия являются необязательной частью правила связывания.
Добавление условия происходит по нажатию кнопки "Добавить условие". Из выпадающего списка нужно выбрать услугу и указать у неё параметры, смену которых необходимо учитывать. При необходимости у услуги можно выбрать признак НЕ.
Между собой условия комбинируются при помощи логических операторов И, ИЛИ.

Условия


Действия являются обязательной частью правила связывания.
Добавление действия происходит по нажатию кнопки "Добавить действие". В открывшемся диалоговом окне нужно выбрать тип действия : Изменение услуги, Добавление новой услуги или Удаление услуги и его параметры.
Изменение параметра Продолжительность услуги доступно только для услуг, имеющих продолжительность.
В одном правиле можно указывать различные типы действий, при расчете действия будут выполняться последовательно.

Действия


  • После добавления необходимых условий и действий нажать кнопку "Создать правило". В случае корректно указанных параметров произойдет закрытие диалогового окна "Создание правила связывания услуг" и правило отобразится в дереве.
  • Если параметры правила были заданы неверно, то появится сообщение об ошибках валидации.
Сообщение об ошибках


  • Редактирование набора, папки или правила осуществляется выбором в дереве необходимого элемента и нажатием кнопки "Изменить".
  • Удаление набора, папки или правила осуществляется выбором в дереве необходимого элемента и нажатием кнопки "Удалить".

На вкладке Применение правил связывания услуг задаются наборы правил связывания на дни недели.

  • Выбор набора правил связывания из выпадающего списка в пункте "Общий набор" означает его применение ко всем дням недели.
  • Выбор набора для конкретного дня недели осуществляется кликом по полю напротив этого дня и указанием необходимого набора. При этом в пункте "Общий набор" значение изменится на Разные наборы.
  • Выбор набора на определенную дату заезда или его удаление осуществляется на странице «Календарь». При этом в пункте, соответствующем дню недели даты заезда, значение изменится на Разные наборы.
Применение правил связывания услуг


Импорт правил связывания выполняется следующим образом:

  • Нажать на кнопку "Импорт". Откроется диалоговое окно "Импорт правил связывания услуг".
Импорт правил связывания услуг


  • Выбрать тур-источник, правила связывания которого будут импортироваться.
  • Нажать кнопку "Загрузить". В левом столбце отобразятся услуги тура-источника, в правом загрузятся услуги тура-приемника.
  • Сопоставить услуги, выбрав необходимые для тура-приемника.
  • Нажать кнопку "Импортировать".
  • В случае успешного импорта произойдет закрытие диалогового окна "Импорт правил связывания услуг", импортированные правила отобразятся в дереве и появится сообщение об успешном импорте.
Импорт правил связывания


  • В случае, если правила связывания импортировать не удалось, появится сообщение о причинах неудачи копирования.

Расчет тура

Для расчета тура предусмотрено три пункта меню: Расчет

  • Расчет (Alt+S) - расчет тура
  • Расчет и публиковать (Alt+A) - расчет и публикация тура в интернете
  • Расчет с параметрами (Alt+W) - расчет тура с указанием дополнительных параметров
Дополнительные параметры расчета

В окне "Дополнительные параметры расчета" задаются следующие значения:

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

После отправки тура на расчет появится сообщение об этом.
Если у тура указаны не все данные, необходимые для расчета, то при попытке расчета тура появится сообщение валидации.

Сообщение валидации


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

Очередь расчета

Расчетный сервер состоит из 3 блоков:

Сейчас рассчитываются туры

В блоке "Сейчас рассчитываются туры" отображаются туры, рассчитывающиеся в данный момент времени.
сейчас рассчитываются туры
По каждому туру представлена следующая информация:

  • Страна - страна тура
  • Название тура - название тура
  • Начало расчета - дата и время начала расчета тура
  • Статус - выполняющиеся при расчете действия
  • Прогресс - индикатор процесса выполнения расчета
  • Сервер - имя расчетного сервера, на котором производится расчет тура.

Очередь на расчет

В блоке "Очередь на расчет" отображается список туров, добавленных на расчет.
Очередь на расчет
По каждому туру представлена следующая информация:

  • Страна - страна тура
  • Название тура - название тура
  • Добавлен - дата и время добавления тура на расчет
  • Сервер - имя расчетного сервера, на котором будет производится расчет тура. Если сервер указан "любой", то тур будет рассчитываться на расчетном сервере, который будет свободен к моменту начала расчета тура.
  • Приоритет - приоритет расчета тура
  • Запланированное время - дата и время расчета тура

Для отбора туров по стране или названию представлены соответствующие фильтры, находящиеся в начале блока "Очередь на расчет".
Для изменения параметров расчета необходимо кликом по соответствующей строке открыть диалоговое окно и выбрать необходимые значения:

  • Изменение расчетного сервера

Изменение сервера

  • Изменение приоритета расчета

Изменение приоритета

  • Изменение запланированного времени расчета

Изменение запланированного времени

Предупреждение


При изменении параметров расчета автообновление должно быть выключено.



Удаление тура из очереди на расчет осуществляется нажатием кнопки "Удалить".

Рассчитанные туры

В блоке "Рассчитанные туры" находится список рассчитанных туров.
Рассчитанные туры
По каждому туру представлена следующая информация:

  • Страна - страна тура
  • Название тура - название тура
  • Статус - статус рассчитанного тура. Возможные значения:
    • Расчет завершен успешно - тур рассчитался с ценами;
    • Расчет завершен с предупреждением - нет рассчитанных цен;
    • Рассчитан и отправлен на публикацию - тур рассчитан, происходит выставление в интернет;
    • Рассчитан и опубликован - тур рассчитан и выставлен в интернет;
    • Расчет завершен с ошибкой
  • Начало расчета - дата и время начала расчета тура
  • Конец расчета - дата и время окончания расчета

Если тур рассчитался успешно, то на кнопке соответствующего тура будет написано "Успех". Если кнопка подсветилась зеленым цветом, то тур рассчитался с ценами, если желтым, то цены не рассчитались.
Посмотреть информацию по рассчитанному туру можно в диалоговом окне "Информация о туре", которое открывается при выборе соответствующего пункта меню кнопки "Успех".
Меню
Если расчет завершился с ошибкой, то на кнопке соответствующего тура будет написано "Ошибка" и кнопка подсветится красным цветом.
Посмотреть информацию об ошибке можно в диалоговом окне "Сведения об ошибке", которое открывается при выборе соответствующего пункта меню кнопки "Ошибка".
Меню

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

Для отбора туров по городу вылета, стране, статусу расчета или названию представлены соответствующие фильтры, находящиеся в начале блока "Рассчитанные туры".

Расчетный сервер можно поставить на автообновление через 5, 10, 30 секунд или 1 минуту, выбрав соответствующее время из списка "Автообновление" в верхнем левом углу.
Переход в панель расчета осуществляется нажатием на кнопку "Панель расчета". Переход в панель расчета с выбором определенного тура осуществляется кликом по ссылке названия этого тура.

Правила расчета

Расчет дня предоставления услуги

  • День предоставления услуги привязан к ближайшему дню завершения проживания в отеле, который меньше или равен дню предоставления услуги. Если такового отеля нет, день предоставления услуги привязан к началу тура.
  • Если день завершения проживания в связанном отеле смещается, пропорционально ему смещается и день предоставления услуги. (Частный случай — доп. услуги в отеле, привязанные к конкретному отелю. Их день предоставления равен дню предоставления услуги проживания в их отеле.)
  • При сжатии тура все услуги, оставшиеся за его пределами, должны быть перенесены на последний день тура с продолжительностью 1 (если они имеют продолжительность).

Расчет продолжительности услуги

Расчет продолжительности услуги происходит по разным правилам для разных классов услуг:

Перелет, Трансфер
Услуги типа Перелет и Трансфер не имеют понятия продолжительность.
Проживание
Продолжительность на услугу типа Проживание рассчитывается заранее на основе параметров расчета, введенных пользователем.
Доп. услуга в отеле
Доп. услуга в отеле, привязанная к конкретному отелю, имеет продолжительность своего отеля.
Другие услуги
Все остальные услуги рассчитываются по следующему алгоритму:
  1. Если продолжительность нерассчитанной услуги равна продолжительности нерассчитанного тура, то ее продолжительность в рассчитанном варианте тура также будет равна продолжительности рассчитанного варианта тура, т.е. изменится.
  2. Если продолжительность нерассчитанной услуги не равна продолжительности нерассчитанного тура, то ее продолжительность остается без изменений (как в конструкторе туров).
  3. Если продолжительность услуги превышает продолжительность тура и услуга начинает «торчать» из рассчитанного тура, то она должна обрезаться.
  4. Если услуга имеет продолжительность и заканчивается в последний день тура, то при растягивании тура продолжительность услуги должна увеличиться.