Для работы с примечаниями необходимо включить плагин notes.

Диалоги с примечаниями могут отображаться при выполнении различных действий. Для этого необходимо в утилите администрирования Yuki создать примечание и настроить его на действие с нужной командой (COMMAND_BACKBYSALE, COMMAND_VALUT, COMMAND_STORNOSELECT и т.д.).

Для отображения диалогов с примечаниями в любом контексте по кнопке необходимо в утилите администрирования Yuki на клавишу настроить действие "Выполнение примечания по коду" с командой COMMAND_NOTE. О настройке действий подробнее можно прочитать в разделе "Настройка действий". О настройке типов примечаний в утилите администрирования Yuki можно прочитать в разделе "Примечания".

Параметры примечаний хранятся в БД Dictionaries таблице Note в поле template. После закрытия чека вся информация о примененных примечаниях будет сохранена в БД Documents таблицу Noteitem.

Примечания первого типа

Примечания первого типа представляют собой объект:

Пример структуры примечания 1 типа

    "note": {
        "id": 11,
        "name": "Примечание 1"
        "type": 1,
        "triggertype": 1,
        "saveresult": 1,
        "template": "<параметры, определяющие поведение примечания>" 
    },

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

  1. Задать значение 1 для поля triggertype.
  2. В поле 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:

  1. Задать значение 2 для поля triggertype.
  2. В поле template добавить параметр onPositionAdd.
Пример вызова примечания при добавлении позиции с показом кастомного (дополнительного) диалога

{

...

"triggertype": 2,

...

"template": "{\"onPositionAdd\": {\"positionCode\": \"10193\",\"positionBcode\": \"10193\", \"docType\": 1},\"dialogParams\": {\"dialogType\": \"dialogMessage\",\"title\": \"Предложить товар 2 в дополнение к товару 1\",\"message\": \"Не забудьте предложить дополнительный товар к позиции '%(position.name[s])'\"}}" 

...

}

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

  1. Задать значение 4 для поля triggertype.
  2. В поле 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:

  1. Задать для поля type значение 2.
  2. В поле template добавить объект executableParams с параметрами:
    • executable – путь к исполняемому файлу. Этот параметр обязателен.
    • timeout – максимальное время ожидания в секундах. По умолчанию 10 минут. При значении -1 запускает процесс фоном, результат в таком случае будет пустым.
    • arguments – список аргументов командной строки.
    • environment – дополнительные переменные окружения.
Пример заполнения поля template для примечания с использованием скрипта

"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])'\"}}" 

    ...

    }

  • No labels