Для работы с примечаниями необходимо включить плагин notes.
Диалоги с примечаниями могут отображаться при выполнении различных действий. Для этого необходимо в утилите администрирования Yuki создать примечание и настроить его на действие с нужной командой (COMMAND_BACKBYSALE, COMMAND_VALUT, COMMAND_STORNOSELECT и т.д.).
Для отображения диалогов с примечаниями в любом контексте по кнопке необходимо в утилите администрирования Yuki на клавишу настроить действие "Выполнение примечания по коду" с командой COMMAND_NOTE. О настройке действий подробнее можно прочитать в разделе "Настройка действий". О настройке типов примечаний в утилите администрирования Yuki можно прочитать в разделе "Примечания".
Параметры примечаний хранятся в БД Dictionaries таблице Note в поле template. После закрытия чека вся информация о примененных примечаниях будет сохранена в БД Documents таблицу Noteitem.
Примечания первого типа
Примечания первого типа представляют собой объект:
"note": {
"id": 11,
"name": "Примечание 1"
"type": 1,
"triggertype": 1,
"saveresult": 1,
"template": "<параметры, определяющие поведение примечания>"
},
Для запуска примечания при срабатывании заданного действия необходимо в БД Dictionaries таблице Note:
- Задать значение
1для поляtriggertype. - В поле
templateдобавить параметрonAction.
{
...
"triggertype": 1,
...
"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.
Для всех строковых параметров примечаний доступно форматирование. Например: если добавить в параметр "title" (заголовок диалога) выражение "%(position.name[s])", то при отображении диалога оно будет преобразовано в наименование выделенной (или добавляемой) позиции.
Примечания второго типа (с использованием скриптов)
Примечания, содержащие вызовы скриптов, называются примечаниями второго типа.
Скрипты
В кассовом ПО 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.
Временные примечания изначально не содержатся в БД Dictionaries таблице Note и туда не добавляются.
Использование результатов примечаний в других примечаниях
В кассовом ПО 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])'\"}}"
...
}