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

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

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

Версия статьи от 7-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. В меню выбрать пункт "Сопоставить все варианты". При этом будут сопоставлены все возможные варианты.

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

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

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

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

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

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

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

Расчет тура

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

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

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

В блоке "Сейчас рассчитываются туры" находится информация о турах (страна, для которой рассчитывается тур, название тура, начало расчета тура, статус, прогресс и сервер, на котором рассчитывается тур), которые рассчитываются в данный момент. Если в данный момент времени никакой тур не рассчитывается, то в блоке выводится запись "Ура! В данный момент расчетов не производится!" сейчас рассчитываются туры

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

В блоке "Очередь на расчет" с помощью фильтров Страна и Название тура можно выбрать тур для его выставления в очередь на расчет. Для расчета тура можно выбрать сервер, указать приоритет расчета, выставить дату и время для запланированного расчета. Если очередь на расчет пуста, то в данном блоке появится запись "Ура! Очередь расчетов пуста!". Очередь на расчет

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

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

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


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

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

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

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

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

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