Тех.вопросы (дистрибутив, настройка, логи)
Дистрибутив
Дистрибутив моб.кассы, моб.менеджера и моб.кассы представляет собой единую сборку, расположенную 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 на смартфонах - добавим в список бета-тестировщика
Порты
На объекте должны быть открыты.
- для генерации лицензии
- для работы с сервером проверки лицензии
- для работы моб. приложения с ТМС
- tcp порт основного соединения, по умолчанию: 610
- tcp порт дополнительное соединение, по умолчанию: -1 (609)
- при неудачной попытке подключиться по вспомогательному порту по tcp -1 (609) можно воспользоваться прежней схемой на udp: +1 (611) и +2 (612)
- для этого ввести код пользователя 999999 и нажать ввод, в появившемся диалоговом окне "Терминал вне зоны видимости по TCP. Перейти на прежний канал UDP?" нажать Ок
По основному порту между терминалом и ТМС ведется передача данных, от которых зависит работа с заказом:
- обновление справочников
- создание заказа
- редактирование заказа
- расчет заказа
- сохранение факта оплаты заказа
По дополнительному порту передаются:
- логи терминала
- сообщения
- сообщения от rk7 для авторизованного пользователя
- с кухонной системы о готовности блюд
- номер текущей смены, для проверки ее закрытия на стороне кассы r_keeper
- и прочее
Сессии пользователя на терминале
Реализована поддержка на ТМС сессий пользователя на терминале, что позволило обеспечить целостность данных.
Основан на принципе 1 пользователь - 1 терминал. То есть пользователь не сможет авторизоваться на другом терминала, не завершив сессию на текущем.
Повторная авторизация прежнего пользователя на текущем терминала (например, в случае аварийного выключения терминала) при этом пройдет успешно.
Сессия закрывается при вызове пункта меню "Закрыть сессию". Функция доступна при пустом заказе, при нажатии на дискетке.
Будет задан вопрос "Начать новую сессию?" и при положительном ответе выйдет в окно авторизации.
В принудительном порядке при нажатии в окне авторизации на кнопку "Освободить соединение". Данное действие возможно на любом терминале (например, текущее стало неработоспособным, а кассиру нужно продолжить работать на другом терминале).
При этом нужно будет ввести код персонала, который обладает правом изменять данные другого персонала или того чья сессия освобождается.
Автоматическое закрытие сессии по истечении времени отсутствует. При этом есть принудительное закрытие всех сессий при закрытии общей смены r_keeper.
В отобразившемся подменю выбрать “Начать закрытие общей смены”.
При этом на r_keeper будет отправлена команда закрытия общей смены.
Процесс закрытия может быть продолжительным и зависит от количества оставшихся открытых заказов, настроек и конфигурации системы.
Если закрытие осуществляется с терминала, то печать Z-отчет и сверка итогов банковского терминала вызываются сразу.
После чего происходит закрытие сессии и повторный вход блокируется до закрытия смены.
После изменения номера смены в r_keeper, ТМС разрешит вход пользователю. Смена r_keeper при этом не открывается (она открывается при первом пробитии чека).
Если закрытие смены идет через r_keeper, то по факту закрытия смены в r_keeper производится принудительное закрытие сессии, с последующим вызовом Z-отчета и сверки итогов.
Подробнее читайте в документации п.9 "Закрытие смены на Мобильной кассе".
Настройка tms7.ini
настройки для режима table service (mobile waiter и mobile manager) | |
настройки для режима fast food (mobile waiter и mobile manager) | |
настройки при работе на smartPOS терминалах (mobile cashdesk) |
SVCNAME | Имя службы, при запуске ТМС сервисом | |||
Port | Основной TCP порт подключения (по умолчанию: 610). Вспомогательный TCP порт -1 (по умолчанию: 609). В случае неудачной попытке подключиться по вспомогательному порту, воспользоваться прежней схемой на UDP +1 и +2 (по умолчанию: 611 и 612) для этого ввести код пользователя 999999 | |||
ReadBufSize | Размер буфера в байтах, используется при чтении данных на ТМС. Принимает значения от 5МБ до 100МБ (по умолчанию: 5000000) | |||
SortOrdersBy | Сортировка столов в списке заказов
| |||
UseSelfRegistration | Использование права «Может регистрировать сам себя» (для mobile cashdesk право проверяется независимо от данной настройки)
| |||
PackOnRecv | Паковать заказ на ТМС при получении от клиента и перед сохранением в rk7
| |||
[LOG] | ||||
LogPath | Путь к каталогу логирования. Если не задан, то файлы логов сохраняются в каталог приложения | |||
SaveTruncLog | Режим ведения логов
| |||
TruncLogSize | Предельный размер файла в байтах от 1кБ до 1ГБ (по умолчанию 10МБ: 10000000). | |||
ClearTMPMin | Время в часах, используется при сохранении служебных временных файлов в каталоге TMP (по умолчанию: 1). | |||
[SORTMENU] | ||||
SortBy | Сортировка меню и модификаторов при формировании заказа
| |||
[ALTNAME] | ||||
Use | Отображение названия блюд
| |||
[RK7SERV] | ||||
DefGuestsTypeID | Идентификатор Типа гостей из rk7. Имеет приоритет над DefGuestsTypeCode. | |||
DefGuestsTypeCode | Код Типа гостей из rk7. | |||
DefOrderTypeID | Идентификатор типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении. Имеет приоритет над [RK7SERV]/DefOrderTypeCode | |||
DefOrderTypeCode | Код типа заказа по умолчанию (для заказа будет устанавливаться автоматически) | |||
HideTables |
| |||
[EXTSAVE] | ||||
Dir | Переключение режима работы table service - при отсутствии значения или самого параметра fast food - присутствие заполненного параметра, например, Dir=1 | |||
DefOrderTypeID | Идентификатор типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении. Имеет приоритет над [EXTSAVE]/DefOrderTypeCode и [RK7SERV]/DefOrderTypeID | |||
DefOrderTypeCode | Код типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении. Имеет приоритет над [RK7SERV]/DefOrderTypeCode | |||
[APUSH] | ||||
Use | Использование PUSH уведомлений на Android
| |||
KeepAlive | Время в секундах (по умолчанию: 600), через которое при отсутствии информации об активности данного приложения (т.е. в зоне видимости не было никакой активности по передачи данных), данное приложение будет исключено из очереди проверки наличия непрочитанных сообщений и отправки PUSH-уведомлений. | |||
CheckInterval | Интервал в секундах (по умолчанию: 5) для проверки наличия новых сообщений | |||
[DRAFTTODO] | ||||
ActiveCourseCode | Код курса порядка подачи. При использовании данной настройки, если заказ или сессия заказа были использованы без какого-либо порядка подач, то после сохранения заказа, система автоматически присвоит указанный порядок подачи. | |||
[MOBCASSA] | ||||
DID | Идентификатор сотрудника, под учетной записью которого производится удаление | |||
DPWD | Пароль сотрудника, под учетной записью которого производится удаление | |||
CurTitle<n> | Символ <n> заменяется номером, например, CurTitle0 или CurTitle5
| |||
CurIdent<n> | идентификатор валюты rk7, соответствующий валюте оплаты, где <n> - номер параметра | |||
PayQueueSize | макс. значение оплаченных заказов, находящихся в очереди на отправку на ТМС может принимать значение от 0 (по умолчанию) до 10 (в случае указания других значений, устанавливается ближайшее к границе значение) | |||
OrderTypeID<n> | Символ <n> заменяется номером, например, OrderTypeID0 или OrderTypeID5 Идентификатор типа заказа rk7 | |||
OrderTypeHeader<n> | Текст печатаемый в Header, для типа заказа указанного в параметре OrderTypeID<n> В случае фиксации имени файла, распечатываться будет текст из файла. Например, OrderTypeHeader0=header.txt При печати большого текст можно использовать пустую строку с тэгом <br>, для разделения блоков отправки на печать. | |||
OrderTypeDishReceipt<n> | Разрешение на печать состава блюд, для типа заказа указанного в параметре OrderTypeID<n> Для комбо-блюда состав блюд берется из блюд, составляющих комбо-блюдо. Повторяющиеся блюда не дублируют информацию при распечатке состава блюд. | |||
[FASTCHECKMOBCASSA] | ||||
TableCode | Код стола, от имени которого будет создаваться заказ на кассовом сервере | |||
DefOrderTypeID | Идентификатор типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении. Имеет приоритет над [FASTCHECKMOBCASSA]/DefOrderTypeCode и [RK7SERV]/DefOrderTypeID | |||
DefOrderTypeCode | Код типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении. Имеет приоритет над [RK7SERV]/DefOrderTypeCode | |||
SavePrevOrdType | Сохранение в ТМС типа заказа от предыдущего выбора, при получении заказа без указания его типа:
| |||
DefCategCode | ||||
UseSeqNum | использование номера эл.очереди: 1 - включено, 0 - выключено String(SeqNumPref) + String( Integer( ( Longint((CashSrvId and $ffff) shl 16) or Longint(SeqNum mod 10000)) mod 100) ) | |||
CashSrvId | идентификатор кассового сервера для расчета номера эл.очереди | |||
SeqNumPref | префикс номера для расчета номера эл.очереди | |||
UseRK7CashToPay | использование режима оплаты на кассе: 1 - включено, 0 - выключено | |||
DeleteReasonCode | причина удаления, которой будет войдированы все блюда из неоплаченного заказа, при возврате из режима оплаты в режим заказа. | |||
[PAYMOB] | ||||
UseToPay | режим оплаты на paymob: 1 - включен, 0 - выключен | |||
UseCash | использование наличных средств на терминале (кнопка "Наличные" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать | |||
UseCard | использование банковский карт на терминале (кнопка "Карты" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать | |||
ETDFiscPrint | ||||
ETDFFPayOff | ||||
PreCheckHeader | "Ресторан Тест" | |||
PreCheckFooter | "Вознаграждение официанту приветствуется, но всегда остается на Ваше усмотрение. Ждем Вас снова!" | |||
PaperForwardHeader | "Была обнаружена проблема с печатью/принтером, произведена печать последнего чека/буфера, ниже распечатана копия слипа и фискал.чек" | |||
RK7CashHeader | Header-строка на печатном чеке: "Код для предъявления на кассе" | |||
RK7CashFooter | Footer-строка на печатном чеке: "Предъявите код на кассе кассиру при оплате заказа" | |||
UseCloseCommonShift | ||||
bankLogin | Логин для подключения к серверу PayMob | |||
bankPassword | Пароль для подключения к серверу PayMob | |||
TaxScheme | режим СНО (при отсутствии значения: используется общая СНО)
| |||
[AQSI] | ||||
UseToPay | режим оплаты на paymob: 1 - включен, 0 - выключен | |||
UseCash | использование наличных средств на терминале (кнопка "Наличные" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать | |||
UseCard | использование банковский карт на терминале (кнопка "Карты" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать | |||
RK7CashHeader | Header-строка на печатном чеке: "Код для предъявления на кассе" | |||
RK7CashFooter | Footer-строка на печатном чеке: "Предъявите код на кассе кассиру при оплате заказа" | |||
TaxScheme | идентификатор схемы (выдается заказчику поставщиком кассы) | |||
UseSber | Использование ядра Сбербанка: 1 - включен, 0 - выключен | |||
[APPEX] | ||||
UseToPay | режим оплаты на paymob: 1 - включен, 0 - выключен | |||
UseCash | использование наличных средств на терминале (кнопка "Наличные" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать | |||
UseCard | использование банковский карт на терминале (кнопка "Карты" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать | |||
RK7CashHeader | Header-строка на печатном чеке: "Код для предъявления на кассе" | |||
RK7CashFooter | Footer-строка на печатном чеке: "Предъявите код на кассе кассиру при оплате заказа" | |||
CashierCode | Логин для подключения к серверу Appex - выдается заказчику (один на все кассы) поставщиком кассы APPEX | |||
CashierPassword | Пароль для подключения к серверу Appex - выдается заказчику (один на все кассы) поставщиком кассы APPEX |
Логирование
Для анализа ситуации необходимо запросить с объекта
- сценарий воспроизведения ситуации
- описание действий
- скриншоты
- видео
- файлы настройки
- tms7.ini
- mwnsettings7.xml
- файлы логов
- tms7.log
- tms7_dev_*.log
- tms7_mc_*.log
- tms7_visibility*.log
- ZIP_*.zip
- архив папки с файлами xml интерфейса
- XMLs (от ТМС)
- xml_log (от rk7)
- логи от rk7
- midsrv.stk
- логи xml интерфейса
Ситуации, возникающие на объектах
Водите в зону уверенной связи
Возможные причины:
- выключен ТМС
- открытый порт на ТМС отличается от настройки порта на терминале
- порты в настройках ТМС и терминала совпадаю, но порт физически не доступны (не открыт)
- терминал заснул и после пробуждения не поднялся wifi или защищенный канал связи
Применение аппаратных клавиш Android
Использование аппаратных клавиш на терминале, приводило к ошибочным ситуациям. Например, в окне оплаты кассиры переключались и оплачивали через приложение Сбербанка или замечены случаю дублирования заказа на VDU
Возможность заблокировать клавиши появиться при переходе с crosswalk на встроенный webview при использовании Android 7 и выше. Поэтому на текущий момент (paymob на Android 5) ведется логирование переключений и очистка сформированного в МК заказа. Кассир вернувшись в приложение не сможет повторно отправить его.
Есть информация, что paymob готовит обновление устройства: переходят на аналогичное aqsi оборудование с Android 7.
Заряд аккумулятора
В логах tms7_dev_* фиксируется информация о заряде аккумулятора, например
2 27.07 12:33:51 BATTERY_POURCENTAGE / 27.07 12:33:38: info:"69"
На практике замечено, что при низком заряде аккумулятора (менее 20%), устройство может во время печати выключиться.
Рекомендации по зарядке от paymob
Ставить устройство на зарядку после рабочей смены, чтобы утром начать использовать его со 100% зарядом. Возможна подзарядка в течении дня.
Не прибегайте к использованию обычного USB кабеля для смартфона. Пользуйтесь для зарядки проводом из поставляемого комплекта, так как он рассчитан по мощности.
При частом использовании порты разбиваются, поэтому лучше использовать магнитные провода или в случае если в ресторане больше 1 устройства - приобрести мини-док.
Не оставлять устройство под прямыми лучами солнца - чревато вздутием аккумулятора. Тем более в процессе зарядки: нагрев от солнца+нагрев от зарядки.