Ускорение построения интерактивных отчётов

На скорость построения отчетов влияют следующие факторы: состояние БД SQL; корректная настройка службы агрегатов; способ, которым строится отчет.

Ключи, лицензии, механизмы лицензирования

Сводная информация по ключам защиты и механизмам лицензирования программного обеспечения компании "ЮСИЭС.

Перенос r_keeper_7 на другой компьютер

Краткое описание переноса серверов r_keeper_7 на другие компьютеры

Гибкая подписка

Цель

Функционал гибкой подписки предназначен для того, чтобы предоставить возможность клиентам выбирать дату начала работы лицензии по подписке в определенном интервале, начиная с даты заказа. на установленный в продукте период (месяц, год).

Как работало

До внедрения механизма гибкой подписки пользователь мог осуществить заказ лицензии по подписке либо с начала месяца, в котором осуществляется заказ (Рис. 1), либо с начала месяца, следующего за месяцем заказа (Рис. 2). Чтобы осуществить заказ с начала следующего месяца, клиенту при заказе в заявке “Новый заказ” необходимо было установить флаг “Начать работу со следующего месяца”.

Рис. 1 Заказ без льготного периода, сделанный в ноябре

Рис. 2 Заказ без льготного периода, сделанный в ноябре

Для продуктов, по которым предоставлялся льготный период, 

  • заявка подтверждалась сразу, 
  • лицензия выдавалась на льготный период, 
  • рабочая лицензия всегда начинала действовать с 1 числа месяца после окончания льготного периода

Рис. 3 Заказ с льготным перидом, сделанный в ноябре

Как работает сейчас

Флаг “Начать работу со следующего месяца” убран. Все даты начала и окончания лицензии в заявках, созданных до внедрения гибкой подписки, сохранены.

Заявки на лицензии без льготного периода

В шапку заявки “Новый заказ” добавлено поле “Дата начала лицензии”. Поле отображается только для заявок с типом продукта “Лицензия по подписке”, без льготного период. 

С помощью поля “Дата начала лицензии” пользователь может установить дату, с которой начнут работу лицензии всех продуктов, выбранных в табличной части заявки:

Рис. 4 Заказ без льготного периода

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

Рис. 5 Выбор даты начала лицензии

Дата начала диапазона - это всегда текущая дата. Дата окончания равна текущей дате + 30 дней.

“Дата окончания лицензии” у каждого продукта рассчитывается как "дата начала лицензии" - 1 день + "стартовое количество месяцев" из карточки продукта.

Заявки на лицензии с льготным периодом

(с автоподтверждением)

В шапке такой заявки поле “Дата начала лицензии” отсутствует. 

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

  • “Дата начала льготного периода” устанавливается текущей датой,
  • "Дата окончания льготного периода" рассчитывается как  "Дата начала льготного периода" - 1 день + "льготный период" из карточки продукта,
  • "Дата начала лицензии" рассчитывается как  "Дата окончания льготного периода"+1 день
  • "Дата окончания лицензии" рассчитывается как "Дата начала лицензии" - 1 день + "стартовое количество месяцев" из карточки продукта

Рис. 6 Заказ с льготным периодом

Автоматическое и ручное продление

В заявках, созданных в результате автоматического или ручного продления, дата начала лицензии по умолчанию устанавливается датой окончания текущей лицензии “плюс” один день. 

 

Блюдо с нулевым кодом

Введение

В статье описана ситуация поломки базы, когда в ней появляется блюдо с нулевым кодом.

Содержание

Установка Menuboard Pro

Введение

В статье описана установка и настройка продукта Menuboard Pro

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

Минимальные системные требования ниже:

  • Процессор — 2-х ядерный
  • Оперативная память — 2 ГБ
  • Места на жестком диске — 2 ГБ 
  • Операционная система — Windows 7 32/64 и старше

Настройка избранных блюд

Введение

В статье описана настройка "избранного" — списка блюд, к которому можно обращаться с кассовой станции. Там же можно из списка добавлять и удалять блюда. При нажатии кнопки Получить избранное — блюда добавляются к текущему заказу.

Для работы схемы понадобятся:

  • XML-интерфейс на сервере справочников, доступный с кассы
  •  

Настройка XML-интерфейса

 

Оплата чаевых по QR-коду

Введение

В статье описана настройка печати QR-кода в пречеке со ссылкой на страницу SberTips.

Реализация

Ссылка должна быть вида 

https://app.sbertips.ru/{waiterCode}?orgid={orgId}&src=3

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

  1. waiterCode – уникальный код официанта в системе SberTips
  2. orgId – код организации в системе SberTips

Для получения кода официанта и кода заведения в системе SberTips необходимо:

  1. Перейдите в меню Настройки > Настройка > Расширенные свойства
Содержание

Работа с защищенным XML-интерфейсом r_keeper_7 по подписке

Общая схема работы

  1. Для работы с xml-интерфейсом и выполнения команд SaveOrder, PayOrder необходимо дополнительно передавать информацию о лицензии LicenseInfo.
  2. Лицензия заводится и генерируется на сервере лицензирования, при этом в локальной БД ИНТЕГРАЦИИ в зашифрованном виде должны сохраняться учетные данные необходимые для выполнения запросов к СЛ: токен, id активной лицензии, порядковый номер запроса seqNumber.
  3. Для ИНТЕГРАЦИИ нужно использовать один из имеющихся продуктов в СЛ (см. таблицу ниже). ВАЖНО: продукт определяется в в соответствии с типом ИНТЕГРАЦИИ.

Продукты с xml-saas ProductGUID
R-Keeper модуль XML-интерфейс для CRM 12 мес ПО f2af3b7e-4225-4e36-b72d-c65e7b9a04c6
R-Keeper модуль XML-интерфейс для CRM 1мес ПО  fb4ba8ec-ea17-4268-a05d-cad9a598ab95
R-Keeper модуль XML-интерфейс для KDS 12 мес ПО 9a55a4a4-c2b4-412b-a558-90d8a8443850
R-Keeper модуль XML-интерфейс для KDS 1мес ПО  5674248a-06f5-4116-916f-09b1383f80a2
R-Keeper модуль XML-интерфейс для Доставки 12 мес 310bc5c7-b0ca-4790-bdeb-afe0d9cf516b
R-Keeper модуль XML-интерфейс для Доставки 1мес ПО c4fc346f-df29-4083-b611-49eb275544e8
R-Keeper модуль XML-интерфейс для Киоск 12 мес ПО 1c09f192-7938-4b17-9db5-f78856c633ad
R-Keeper модуль XML-интерфейс для Киоск 1мес ПО dc79065a-2e33-47ee-85d7-a375444f7835
R-Keeper модуль XML-интерфейс для Приложения 12 мес ПО 655cee55-7bcd-4826-b6e0-a8ccf2017ef3
R-Keeper модуль XML-интерфейс для Приложения 1мес ПО 4458d8b1-0019-4025-8c7a-60a83ad64b66

Авторизация

Для запросов к системе лицензирования требуется авторизация. Для этого нужны:

  • userName - логин интегратора (дилера)
  • password - пароль интегратора (дилера)
  • token - токен безопасности (токен выдается на Интегратора - на все его интеграции. Для получения токена отправьте письмо с запросом на integrations@ucs.ru)

В заголовке запроса должен быть передан параметр usr. Правило его формирования:

usr : Base64(userName + «;» + lowercase(md5(userName+password)) + «;» + lowercase(md5(token)))

Запрос id лицензии

Для получения id лицензии к СЛ выполняется запрос GetLicenseIdByAnchor

GetLicenseIdByAnchor?anchor=6:<productGUID>#<restCode>/17

Где 

  • productGUID - GUID продукта
  • restCode - код ресторана

Пример заполнения якоря для продукта "R-Keeper модуль XML-интерфейс для Приложения 12 мес ПО" для объекта 199999993

6:655cee55-7bcd-4826-b6e0-a8ccf2017ef3:199999993/17
ВАЖНО: символы ": # /" в строке должны быть экранированы!! (: - %3A # - %23)
т.е. запрос будет иметь вид:
https://l.ucs.ru/ls5api/api/License/GetLicenseIdByAnchor?anchor=6%3A655cee55-7bcd-4826-b6e0-a8ccf2017ef3%23199999993/17

ВАЖНО: для положительного ответа на объекте должна быть подтверждена заявка на указанное ПО и сгенерирована активная лицензия.

В ответ получим информацию об активной лицензии

Ответ сервера лицензирования
{"id":"fe4e4c5a-3037-4f0c-8216-7b98be6d87bb","expirationDate":"2020-03-26T00:00:00","qty":1.0}

Полученный id должен сохраняться в БД ИНТЕГРАЦИИ и передаваться при заполнении LicenseInfo в атрибуте licenseToken. Обновление id нужно выполнять каждый раз при старте ИНТЕГРАЦИИ и при периодических проверках лицензии, например, каждые 30-90 минут либо при ошибках выполнения запроса перед повтором.

Заполнение LicenseInfo

При отправке команд SaveOrder, PayOrder, MakeRetunGoods ИНТЕГРАЦИЯ проверяет наличие в БД информации о лицензии (id лицензии), если id найден в xml запрос добавляется дополнительный элемент LicenseInfo.

<LicenseInfo anchor="6:655cee55-7bcd-4826-b6e0-a8ccf2017ef3:199999993/17" licenseToken="fe4e4c5a-3037-4f0c-8216-7b98be6d87bb"><LicenseInstance guid="instance_guid" seqNumber="0"/></LicenseInfo>
  • anchor - якорь лицензии
  • licenseToken - id лицензии
  • guid - уникальный guid экземпляра приложения (При первом старте интеграции должен быть сгенерирован автоматически, в дальнейшем хранится локально и передается в каждом запросе)
  • seqNumber -  порядковый номер запроса. При первом вызове для нового guid должен быть 0, увеличивается при каждом запросе. в ИНТЕГРАЦИИ  должно быть реализовано хранение текущего seqNumber в оперативной памяти или локальной БД. Для получения актуального значения на старте приложения можно использовать команду GetXMLLicenseInstanceSeqNumber, но эту команду нельзя выполнять слишком часто.

XSD схемы запросов можно посмотреть на ftp://tp.ucs.ru/rk7/ForDealers/XMLInterface/XML-Schemes

Тех.вопросы (дистрибутив, настройка, логи)

 

 

 

Дистрибутив

 

Дистрибутив моб.кассы, моб.менеджера и моб.кассы представляет собой единую сборку, расположенную ftp://ftp.ucs.ru/rk7/other/tms/ . Использование того или иного ПО зависит от приобретенной лицензии и настроек ТМС.

  • Версия TMS-сервер 7.6 и выше поддерживается клиентом 3.4 и выше.
  • Версия TMS-сервер 7.5 и ниже поддерживается клиентом 3.3 и ниже.

Моб.касса работает только на smartPOS терминалах paymob или aqsi. Для активации режима оплаты (станет доступной операция «Оплатить») необходимо настроить соответствующие секции PAYMOB, AQSI, APPEX. Обязательно установить соответствие валют Мобильной кассы и валют RK7 (одна настройка для всех типов кассы) в секции [MOBCASSA].

 

Операционная система

 

iOS

  • rkmobwaiter2 - это нативное iOS-ое приложение
    • 2.9.х Apple снял приложение из AppleStore из-за проблем с совместимостью с iOS 13
    • 2.9.10 - распространяется вручную, переводя устройства в разработческий режим (ограниченный вариант инсталляций)
    • не развивающееся направление
  • rkmobwaiter3 - это приложение с HTML5 фронтом

Android

  • rkmobwaiter3 - МО/МК (имеет вертикальное расположение)
  • rkmobwaiter3Tab - не развивающееся направление
  • rkmobwaiter4 - МО (имеет вертикальное расположение)
    • выложили в google.play на закрытое тестирование: https://play.google.com/apps/testing/ru.ucs.rkmobwaiter4
    • кто хочет участвовать в закрытом тестировании, могут присылать адреса привязанные к google.play на смартфонах - добавим в список альфа-тестировщиков