Установка и настройка SelfOrder
Введение
- Приложение для оформления заказов при помощи мобильных устройств (ОС Android) самими гостями со своих устройств или предоставленных в заведении..
- Интегрируется в работающий на объекте программный комплекс RK7.
Системные требования
- ПК под управлением ОС Win7 и выше с поддержкой IIS7 и выше.
- Мобильные устройства (Android v4 и выше) с поддержкой Wi-Fi.
- Wi-Fi роутер.
Состав ПО
- MovieSRV - серверная часть (реализована с поддержкой IIS);
- SelfOrder.apk - клиентская часть (устанавливается на мобильное устройство под управлением ОС Android);
- Дистрибутивы предоставляются по отдельному запросу.
Схема взаимодействия модулей
[SelfOrder.apk] <---> [MovieSRV<--->(IIS)] <---> [Midserv RK7}
Установка и настройка
На объекте должно быть установлено, пролицензированно и нормально работать ПО RK7 (refserv, midserv, wincash)
Полученные дистрибутивы распаковать в отдельные каталоги. Например:
- D:\RK7\SelfOrder\MovieSRV
- D:\RK7\SelfOrder\Restart
Полученный SelfOrder*.apk скопировать на устройство и установить обычным для ОС "Android" способом.
Диспетчер веб-сервисов IIS
Перед началом установки IIS необходимо выяснить какая версия NET.Framework в данной реализации ОС Windows. Должна быть не ниже 3.5.
- Поскольку модификации ОС могут быть разными, в случае возникновения проблем при работе сервера MovieSRV рекомендуется скачать полноценный дистрибутив с сайта производителя (например, отсюда - https://www.microsoft.com/ru-ru/download/details.aspx?id=17718) и проинсталлировать.
Для поддержки серверной части (MovieSRV) будет использоваться веб-сервер IIS.
Необходимо убедиться что в ОС Windows активированы его компоненты (все обязательные компоненты показаны на рисунке ниже):
Рис. - Компоненты веб-сервера.
- Необходимо помнить, что в разных реализациях (редакциях) ОС Windows этот набор компонентов может различаться.
- Версии (сборки) NET.Framework установленные в ОС так же могут быть разными.
- При активации необходимо обратить внимание на компоненты ASP.NET и NET.Framwork 2 и 4. Они должны быть включены.
- Само ПО написано и поддержано на уровне NET.Framework 2.0. Это необходимо помнить при дальнейшей настройке сервера MovieSRV в диспетчере IIS.
Все выше перечисленные моменты могут косвенным образом влиять на работоспособность (неработоспособность) устанавливаемого ПО.
- По ошибкам связанным с NET.Framwork и IIS ответы обычно ищутся на форумах производителя или подобных. Пример, такого форума: http://stackoverflow.com/questions/2374957/asp-net-mvc-on-iis-7-5.
После активации компонентов может понадобиться выполнить регистрацию компонентов NET.Framework той версии которая будет использована при дальнейшей работе.
- Для этого необходимо открыть командную строку от имени администратора (Сочетание клавиш "Win" + "R" -> cmd.exe) и выполнить команды регистрации:
Для ОС Win 32-bit:
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727\ aspnet_regiis.exe -i
- для регистрации версии v2 32-bit;
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\ aspnet_regiis.exe -i
- для регистрации v4 32-bit;
Если используется ОС Win 64-bit, тогда рекомендуется зарегистрировать и для работы в 64-битной среде:
cd C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ aspnet_regiis.exe -i
- для регистрации версии v2 64-bit;
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ aspnet_regiis.exe -i
- для регистрации v4 64-bit;
Пример:
Рис. - Пример регистрации компонентов NET.Framework в командной строке.
Примечание
Подробнее об этой процедуре и различных вариантах установки на разных редакциях и битностях (x86 и x64) систем можно ознакомиться по ссылке - http://msdn.microsoft.com/ru-ru/library/k6h9cz8h(v=vs.100).aspx .После активации всех компонентов необходимых для работы с IIS, запустить диспетчер служб IIS:
[Панель управления] - [Все элементы панели управления] - [Администрирование] - [Диспетчер служб IIS]:
Создать новый сайт:
Рис. - Создание нового сайта.
В диалоговом окне создания указать:
- Имя сайта - может быть произвольным;
- Путь до каталога \MovieSRV - содержимое серверной части;
- Порт - должен быть уникальным (по нему будет происходить подключение клиентской части к серверной).
Примечание
Одноименный пул (pool) сайта будет создан автоматически.- При проверке соединения может выдаваться предупреждение "Авторизация". Оно не является критическим. Т.е. не является ошибкой.
Настроить пул созданного сайта.
- Для этого, перейти в список пулов, выбрать пул сервера Self_Order_srv и открыть его "дополнительные параметры":
- Версию среды рекомендуется изменить на - v2.0;
- Разрешить 32-разрядные приложения - True;
- Удостоверение (значение по умолчанию - "ApplicationPoolIdentity") - менять только в случае проблем с подключением клиентского приложения к серверу MovieSRV. (Например, можно указать - LocalSystem).
Примечание
После выполнения любых настроек в IIS а также изменения настроек в каталоге \MovieSRV необходимо перезапустить "пул приложения" или весь веб-сервис.Важно!
В обязательном порядке добавить каталоги с содержимым ПО "SelfOrder" в исключения антивируса, брэндмауэров, файерволов и прочих приложений безопасности ОС Windows.Настройка взаимодействия с RK7
Настройка XML-интерфейса
В Менеджерской RK7 ([Сервис] - [Станции и устройства] ) cоздать и подвязать на кассовый сервер "xml-интерфейс", который будет задействован для связи с сервером MovieSRV.
- Сначала создать физический интерфейс (см. рисунок ниже):
- Задать уникальный порт (в примере это - 22331).
- Затем создать отдельный логический (на рис. ниже это (SelfOrder) XML интерфейс (DIM)), связав его с физическим:
Примечание
Создание и подключение отдельного XML-интерфейса в RK7 используется не редко, для связи кассового сервера (или кассы) с другими системами (например с RkMobWaiter, RkOrder и многие другие). Т.о. можно считать что настройку xml-интерфейса необходимо выполнить стандартным образом.Создание типов расширенных свойств
Следующим шагом, в Менеджерской RK7 необходимо создать ряд "Типов расширенных свойств". Это необходимо для того, что бы в свойствах позиций из разных справочников (например в свойствах блюд, модификаторов, а так же у работников) появится дополнительный раздел настроек - "Extended", в котором будет добавляться различная информация, отображаемая в клиентской части ПО "SelfOrder".
- Для создания "типов расширенных свойств" открыть справочник [Настройки] - [Настройка] - [Расширенные свойства].
- Изначально справочник будет пуст. Необходимо создать новую группу свойств, задать ей любое название (В примере, это - SelfOrder).
Примечание
Те же типы расширенных свойств и их настройки используются и при настройке ПО "Rk-Order (IOS) + IpadServer". Фактически позаимствовано оттуда. Так что и большинство последующих настроек описанных в статье будет схоже с установкой ПО "Rk-Order (IOS)".- В группе создать следующий перечень "Типов расширенных свойств" (см. рис. ниже):
Важно!
Название типов - регистрозависимо, а все их настройки принципиальны.- У каждого типа кроме при создании, кроме названия должен быть задан/заполнен ряд его свойств, а именно: "Системное имя", "Отображаемое имя", "Системный тип", "Список типов". Все эти свойства имеют конкретное значение и даны в здесь же, в описании.
Все указанные на скриншоте типы могут быть использованы в следующих веб-оринетированных и мобильных приложениях компании ЮСИЭС:
- ПО "Виртуальная карта" (Virtual Card);
- ПО "Электронное меню" (Rk-Order);
- ПО "Самообслуживание" (SelfOrder);
- и другие.
По этому, рекомендуется создать сразу весь перечень типов, хотя в описываемой реализации ПО "SelfOrder" задействовано на данный момент только три типа расширенных свойств, это:
name0419 - название блюда
shortComment0419 - комментарий (описание) блюда
imagePath - путь к иконкам групп блюд
При дальнейшем развитии проекта задействованных типов может стать больше, в зависимости от требований заказчиков.
Пример создания "Типа расширенных свойств"
Ниже представлен пример создания одного из типов (name0419):
- Задать "Отображаемое имя";
- Задать "Системное имя";
- Тип свойства - "ANSI string"
- Далее, "провалиться" по кнопке [...] в строке "Список типов". откроется новое окно, которое изначально будет пустым.
- Правой кнопкой мыши "Добавить элемент":
- Откроется новое окно - "Choose Class Infos" со справочником (деревом) элементов:
- Из справочника добавить столько элементов, сколько указано в описании (см.ниже) к каждому типу расширенных свойств.
- В данном примере - для типа "name0419", в "список типов" должны быть добавлены элементы: "Работник", "Роль", "Страница селектора", "Элемент меню", "Модификатор", "Группа модификаторов", "Комбо группа", "Комбо схема", "Комбо элемент", "Комбо элемент меню", "Порядок подачи", "План зала". Все они ищутся в справочнике элементов и добавляются по одному за раз в "Список типов":
- В результате, в справочник списка типов добавиться выбранный элемент:
Примечание
Никакие дополнительные свойства и параметры у каждого элемента изменять не требуется.- После добавления всех элементов должно получиться:
- Остальные типы должны быть созданы по его подобию с использованием описания каждого типа (см.ниже).
Описание "Типов расширенных свойств"
Таблица - Типы расширенных свойств и их элементы.
№ п.п. | Тип расширенных элементов | Системное имя | Отображаемое имя | Системный тип | Кол-во элементов в типе | Элемент | Нахождение в справочнике |
1 | InfoWaite | InfoWaite | Инфо официанта | tkUnknown | 1 | Работник | [Все] - [Работники] - [Работник] |
2 | name0419 | name0419 | Название | tkUnknown | 12 | Работник | см.выше |
Роль | [Все] - [Работники] - [Роль] | ||||||
Страница селектора | [Все] - [GUI] - [Страница селектора] | ||||||
Элемент меню | [Все] - [Меню, Модификаторы, Цены] - [Элемент меню] | ||||||
Модификатор | [Все] - [Меню, Модификаторы, Цены] - [Модификатор] | ||||||
Группа модификаторов | [Все] - [Меню, Модификаторы, Цены] - [Группа модификаторов] | ||||||
Комбо группа | [Все] - [Меню, Модификаторы, Цены] - [Комбо группа] | ||||||
Комбо схема | [Все] - [Меню, Модификаторы, Цены] - [Комбо схема] | ||||||
Комбо элемент | [Все] - [Меню, Модификаторы, Цены] - [Комбо элемент] | ||||||
Комбо элемент меню | [Все] - [Меню, Модификаторы, Цены] - [Комбо элемент меню] | ||||||
Порядок подачи | [Все] - [Меню, Модификаторы, Цены] - [Порядок подачи] | ||||||
План зала | [Все] - [Столы, Планы Залов] - [План зала] | ||||||
3 | longComment0419 | longComment0419 | Полный комментарий | tkUnknown | 3 | Модификатор | - // - |
Элемент меню | - // - | ||||||
Страница селектора | - // - | ||||||
4 | shortComment0419 | shortComment0419 | Краткий комментарий | tkUnknown | 3 | Модификатор | - // - |
Элемент меню | - // - | ||||||
Страница селектора | - // - | ||||||
5 | Weight0419 | Weight0419 | Вес | tkUnknown | 3 | Модификатор | - // - |
Элемент меню | - // - | ||||||
Страница селектора | - // - | ||||||
6 | TotalWeight0419 | TotalWeight0419 | Выходной вес | tkUnknown | 3 | Модификатор | - // - |
Элемент меню | - // - | ||||||
Страница селектора | - // - | ||||||
7 | prompt0419 | prompt0419 | Prompt | tkUnknown | 1 | Группа модификаторов | - // - |
8 | imagePath | imagePath | imagePath | tkUnknown | 1 | Страница селектора | - // - |
- После создания расширенных свойств они появятся в свойствах самих блюд и их групп. Настройка самих блюд описана ниже в разделе "Блюда".
Локализация
По умолчанию , в клиентском приложении поддержано два интерфейса: русский и английский. Переключается в самом приложении.
Примечание
Дополнительно, о локализации - https://www.autoitscript.com/autoit3/docs/appendix/OSLangCodes.htm.Организация дерева меню
Следующим шагом, в Менеджерской RK7 необходимо для работы с SelfOrder создать и правильно организовать отдельное (от основного меню) - "Дерево меню".
- Для SelfOrder (Android) используется отдельное от основного меню - дерево меню:
[Меню] - [Дерево меню]
- Организуется оно так же как и при настройке ПО "Rk-Order" и ПО "Virtual Card", так что информация в статьях по установке этих продуктов может быть также полезной.
- Основные правила создания дерева меню:
- Дерево меню должно быть трех-уровневым:
- Создать необходимое количество групп блюд (страниц селекторов) первого и второго уровней:
- Перетащить мышкой группы второго уровня в каталоги первого уровня.
- Каталог "Начальный выбор" (предустановка) является корнем дерева меню. Страницы селекторов (каталоги) первого уровня должны быть помещены в него.
Рис. - В каталоге "Начальный выбор" - страницы селекторов (группы блюд) первого уровня.
Рис. - В каталоги первого уровня перемещены каталоги второго уровня.
- Добавить блюда из основного меню перетаскиванием из "Меню" в нужны каталог "Дерева меню".
Важно!
В страницы селекторов второго уровня должны быть добавлены только блюда. Комплексные блюда и подкаталоги добавлять нельзя.Настройка расширенных свойств и картинок/иконок групп блюд дерева меню
При создании дерева меню, каждой группе блюд (которые будут являться страницами селекторов) необходимо кроме прочих настроек задать описание в разделе "Extended" (расширенных свойств).
- Задать, как минимум, название группы (именно оно будет отображаться в интерфейсе программы);
- Задать название картинки/иконки группы блюд (не путать с картинками самих бдюд). В поле указывается только название и расширение файла картинки/иконки :
- Сами картинки/иконки должны быть заранее подготовлены и помещены в каталог:
\MovieSRV\Ico - если каталог в составе сервера отсутствует, его необходимо создать
- Рекомендуемый размер иконок - 230x170 (но при изменении размера интерфейса, например на разных мобильных устройствах, само приложение может рендерить картинку под разные размеры).
- Поддержанный формат - *.jpg, *.png.
- Имя файла картинки должно быть на латинице (так же можно использовать цифры), без пробелов и прочих спец-символов.
- Если картинок не задано, будет использоваться иконка по умолчанию, из состава приложения.
Пример отображения иконок групп блюд:
Настройка расширенных свойств блюд
После организации дерева меню и добавления расширенных свойств, необходимо сделать несколько настроек в самих блюдах.
Заполнить, в свойствах каждого добавленного в дерево меню блюда, раздел - "Extended". Этот раздел появляется после добавления расширенных свойств (описано выше):
- Название и комментарий (описание) блюда в приложении будет отображаться именно из этого раздела:
Настройка картинок блюд дерева меню
Каждому блюду присвоить картинку.
- Картинки должны быть заранее созданы.
- Должны быть в формате png или jpg.
- Рекомендуемый размер картинки блюда - 512x683 (но при изменении размера интерфейса, например на разных мобильных устройствах, само приложение может рендерить картинку под разные размеры).
- Имя файла картинки должно быть на латинице (так же можно использовать цифры), без пробелов и прочих спец-символов.
Для того, чтобы блюдам из дерева меню назначить картинки, необходимо в параметрах Менеджерской RK7:
[Настройки] - [Параметры] - [Все] - [Использование опций] - [Самообслуживание/Интернет Заказы]
- Включить "логический" параметр:
[Настройки] - [Параметры] - [Все] - [Установочные] - [Путь к каталогу с картинками]
- указать путь к каталогу с картинками:
Важно!
Название каталога \imgs и нахождение его внутри \MovieSRV принципиально!- Название самой картинки указывается (прописывается) в свойствах блюда (раздел "Самообслуживание/интернет-заказы"):
Рис. - Картинки блюд.
Рис. - Крупная картинка.
Настройка плана зала и столов
План зала должен быть создан и настроен в RK7 стандартным образом. Можно использовать ранее заведенный и используемый в заведении, либо создать для SelfOrder свой (новый/отдельный) план зала:

- Код плана зала в дальнейшем, необходимо будет указать в настройках SelfOrder-клиента, параметр - "HallCode".
При создании стола для работы SelfOrder необходимо учесть несколько моментов:
- Код стола необходимо будет указать в настройках SelfOrder-клиента, параметр - "TableCode". Именно в этот стол и буду приходить заказы с клиента.
- Название стола должно быть задано по маске:
N-N или NN-NN или N-NNN или NNN-N
- где, N - цифра. Причем, значение до разделителя - это "место" (или кресло), а значение после разделителя - это "ряд" в кино-зале. Пример:
Настройка сервера MovieSRV
Выполнить настройки конфигурационных файлов в составе сервера MovieSRV.
- Отредактировать параметры конфигурационного файла \MovieSRV\ips.ini. Файл фактически из состава VCSRV (сервера для работы с ПО "Виртуальная карта"). Многие параметры в нем для работы SelfOrder не задействованы. В примере указаны только редактируемые параметры:
[RK7] ;--- касса StationCode=1 StationId=15002 ..... - пропуск... ;--- код интерфейса InterfaceCode=5 ..... - пропуск... ;--- кассовый сервер ;--- для связи с кассовым сервером RK7 обязательно должны быть заданы MidIP и MidPwd MidIP=172.22.3.93:22331 MidPwd= ;--- код виртуального стола VirtualTable=212 ;--- код виртуального официанта VirtualWaiter=99 ..... - пропуск... ;--- черновой порядок подачи DraftCourseCode=1 ;--- добавлять в существующий заказ AddIfOrderExists=1 ;--- код типа заказа "Общий" OrderTypeCode=1 ;--- код типа заказа для самовывоза PickupOrderTypeCode=2 ;--- код типа заказа для доставки DelveryOrderTypeCode=3 ;--- идентификатор селектора, с которого начинается дерево меню DefaultSelectorIdent=11048 ;--- время устаревания закачанных с RK данных (в секундах) UpdateTime=60 ;----------------- Сообщения официантам ------------------ ;--- отправлять сообщения с кассы всем официантам, обслуживающим стол (1-Да, 0-Нет) SendToAll=1 ;--- код официанта, который всегда получит сообщение, если не задан промокод; DefaultWaiterCode=3565 ;--- время активности сообщений для официанта (в секундах) WaiterMessageTimeToLive=3600 [VDU] VDUID=81 LocalPort=1111 RestCode=138440006 Waiter=iPod ShowComboTitle=1 [ORDERS] ;------------------ Коды заказов -------------------------- ;--- минимальное значение LastOrderCodeMinValue=50000 ;--- максимальное значение LastOrderCodeMaxValue=99999 ;--- последнее значение (НЕ РЕДАКТИРОВАТЬ) LastOrderCode=50001 ;------------------ Cлужебный раздел --------------------- [SERVICE] ;--- язык интерфейса Lang=RUS ;--- размер файла лога в байтах LogFileMaxSize=3000000 ;--- уровень логирования LogLevel=5
Остальные конфигурационные файлы - cs5.ini, smsconsult.ini, settings.ini, tms6.ini, mrsrv.ini - на данный момент, для работы с клиентским приложением SelfOrder (Android) не используются.
Настройка клиента
На данный момент - клиентское приложение может быть предоставлено с заранее заданными в нем параметрами его связи с сервером MovieSRV и RK7, по отдельному согласованию с руководителями проектов компании.
При запуске клиента, можно войти в его настройки (конфигуратор), где прописываются следующие параметры:
Рис. - Вход в настройки по кнопке, до полной загрузки SelfOrder-клиент.
Рис. - Настройки клиентской части, стр.1
Рис. - Настройки клиентской части, стр.2 (после прокручивания вниз, до конца).
Перечень настроек:
[SERVER] HOST - IP-адрес ПК на котором запущен сервер MovieSRV PORT - порт сервера MoviSRV (указан в настройках IIS, см.раздел настройки IIS) [EXTERNALCONTROLS] HOST - IP-адрес ПК на котором может быть запущен Restart.exe (опционально), если используется PORT - порт приложения Restart.exe (4488, по умолчанию) [PARAMS] TABLECODE - код стола из RK7 (см. выше) HALLCODE - код плана зала (см. выше) DEVICEID - уникальный идентификатор устройства (задействован при автообновлении), в данной конфигурации указать любое уникальное значение. DISHTYPEMODIFIERID - код модификатора, который будет использоваться при пометке блюда "на вынос"
Примечание
Внешний вид и дизайн приложения может быть доработан по предоставленным материалам и требованиям заказчика, по отдельному согласованию. Либо может быть доработан самим заказчиком.Примечание
Любые доработки как внешнего вида, так и функционала обсуждаются по отдельным ТЗ.- Введение
- Системные требования
- Состав ПО
- Установка и настройка
- Диспетчер веб-сервисов IIS
- Настройка взаимодействия с RK7
- Настройка сервера MovieSRV
- Настройка клиента