Для работы с примечаниями необходимо включить плагин |
Диалоги с примечаниями могут отображаться при выполнении различных действий. Для этого необходимо в утилите администрирования Yuki создать примечание и настроить его на действие с нужной командой (COMMAND_BACKBYSALE, COMMAND_VALUT, COMMAND_STORNOSELECT и т.д.).
Для отображения диалогов с примечаниями в любом контексте по кнопке необходимо в утилите администрирования Yuki на клавишу настроить действие "Выполнение примечания по коду" с командой COMMAND_NOTE. О настройке действий подробнее можно прочитать в разделе "Настройка действий". О настройке типов примечаний в утилите администрирования Yuki можно прочитать в разделе "Примечания".
Параметры примечаний хранятся в БД Dictionaries таблице Note в поле template. После закрытия чека вся информация о примененных примечаниях будет сохранена в БД Documents таблицу Noteitem.
Примечания первого типа представляют собой объект:
"note": { |
Для запуска примечания при срабатывании заданного действия необходимо в БД Dictionaries таблице Note:
1 для поля triggertype.template добавить параметр onAction.{ ... "template": "{\"object\": 1, \"onAction\": {\"context\": 6,\"trigger\": \"before\",\"actionType\": \"COMMAND_STORNOSELECT\"},\"dialogParams\": {\"dialogType\": \"dialogMultiChoice\",\"title\": \"Выберите причину сторнирования позиции '%(position.name[s])'\",\"choices\":[\"Проблемная марка\", \"Отказ клиента\", \"Ошибочный ввод\"]}}" ... } |
Для запуска примечания при добавлении позиции с заданным штрих-кодом необходимо в БД Dictionaries таблице Note:
2 для поля triggertype.template добавить параметр onPositionAdd.{ ... "triggertype": 2, ... "template": "{\"onPositionAdd\": {\"positionCode\": \"10193\",\"positionBcode\": \"10193\", \"docType\": 1},\"dialogParams\": {\"dialogType\": \"dialogMessage\",\"title\": \"Предложить товар 2 в дополнение к товару 1\",\"message\": \"Не забудьте предложить дополнительный товар к позиции '%(position.name[s])'\"}}" ... } |
Для запуска примечания при добавлении позиции из каталога с заданным кодом необходимо в БД Dictionaries таблице Note:
4 для поля triggertype.template добавить параметр onPositionFromCatalog.{ ... "triggertype": 4, ... "template": "{\"onPositionFromCatalog\": {\"catalogCode\": \"10\", \"docType\": 1},\"dialogParams\": {\"dialogType\": \"dialogMessage\",\"title\": \"Предложить товар 2 в дополнение к товару 1\",\"message\": \"Не забудьте предложить дополнительный товар к позиции '%(position.name[s])'\"}}" ... } |
Данные о примененном примечании будут записаны в БД Documents таблицу Noteitem.
Для всех строковых параметров примечаний доступно форматирование. Например: если добавить в параметр " |
Примечания, содержащие вызовы скриптов, называются примечаниями второго типа.
В кассовом ПО Artix реализована возможность создания и использования bash-скриптов для:
Для этого необходимо в БД Dictionaries таблице Note:
type значение 2.template добавить объект executableParams с параметрами:executable – путь к исполняемому файлу. Этот параметр обязателен.timeout – максимальное время ожидания в секундах. По умолчанию 10 минут. При значении -1 запускает процесс фоном, результат в таком случае будет пустым.arguments – список аргументов командной строки.environment – дополнительные переменные окружения."template": { \"onPositionAdd\": {\"positionBcode\": "\100\"}, \"executableParams\": {\"executable\": \"/tmp/script.sh\", \"timeout\": 15, \"arguments\": [\"arg1\", \"arg2\", \"%(position.bcode[s])\", \"%(position.name[s])\"], \"environment\": {\"PYTHONPATH\": \"/home/user\", \"VARRRRR\": \"value\"} } } |
Возможность запуска нескольких примечаний из скрипта задается с помощью параметра executeNotes. Для этого его необходимо добавить в скрипт с указанием идентификаторов примечаний:
#!/bin/bash
echo '{
\"executeNotes\": \"1,2,3\"
}' |
#!/bin/bash echo '{
\"executeNotes\": [
1,
2,
3
]
}' |
В кассовом ПО Artix реализована возможность создания примечаний при вызове bash-скриптов внутри примечаний второго типа.
echo "{ \"subNotes\": [ { \"id\": 13, \"type\": 1, \"dialogParams\": { \"dialogType\": \"dialogInputText\", \"message\": \"Введите текст\", \"title\": \"Временное примечание с диалогом ввода текста}\" } } ] }" |
Результаты временных примечаний фиксируются в объекте subNotesResult. Вывод результатов временного примечания работает только в рамках одного скрипта.
Результаты готовых примечаний фиксируются в объекте executeNotesResult.
Информация о примененных временных примечаниях сохраняется в БД Documents таблицу Noteitem.
Временные примечания изначально не содержатся в БД |
В кассовом ПО Artix реализована возможность использования результатов:
предыдущего вызванного примечания:
{ ... "triggertype": 2, ... "template": "{\"onPositionAdd\": {\"positionCode\": \"10193\"},\"dialogParams\": {\"dialogType\": \"dialogMessage\",\"title\": \"Предложить товар 2 в дополнение к товару 1\",\"message\": \"Результат примечания '%(notes.previous.dialogResult.data[s])'\"}}" ... } |
вызванного примечания с произвольным идентификатором:
{ ... "triggertype": 2, ... "template": "{\"onPositionAdd\": {\"positionCode\": \"10193\"},\"dialogParams\": {\"dialogType\": \"dialogMessage\",\"title\": \"Предложить товар 2 в дополнение к товару 1\",\"message\": \"Результат примечания '%(notes.11.dialogResult.data[s])'\"}}" ... } |
вызванного временного примечания, созданного в скрипте:
{ ... "triggertype": 2, ... "template": "{\"onPositionAdd\": {\"positionCode\": \"10193\"},\"dialogParams\": {\"dialogType\": \"dialogMessage\",\"title\": \"Предложить товар 2 в дополнение к товару 1\",\"message\": \"Результат примечания '%(subNotes.12.dialogResult.data[s])'\"}}" ... } |
вызванного временного примечания, получаемого из другого примечания:
{ ... "triggertype": 2, ... "template": "{\"onPositionAdd\": {\"positionCode\": \"10193\"},\"dialogParams\": {\"dialogType\": \"dialogMessage\",\"title\": \"Предложить товар 2 в дополнение к товару 1\",\"message\": \"Результат примечания '%(notes.11.subNotesResult.12.dialogResult.data[s])'\"}}" ... } |