Кассовое ПО Artix позволяет формировать заказы и отправлять их на внешний сервис.
Конфигурирование модуля
Модуль orderservice
активируется в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d
/orderservice.ini
в секции [plugins].
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
orderservice | строковый |
| Плагин для отправки заказов на сервис заказов | По умолчанию off |
[plugins] ;orderservice = off
Настройка параметров для работы с сервисом производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/orderservice.ini
в секции [OrderService].
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
url | строковый | Адрес сервиса | По умолчанию http://localhost |
timeout | целочисленный | Таймаут запроса к сервису (в секундах) | По умолчанию 15 секунд |
orderNumberMask | строковый | Маска для номера заказа | По умолчанию "%(document.cashCode[1d]){1}%(document.num[02d]){2}" |
[OrderService] ; Настройки плагина для отправки заказов на сервис заказов ; Адрес сервиса ; Значение по умолчанию "http://localhost" ;url = "http://localhost" ; Таймаут запроса к сервису(в секундах) ; Значение по умолчанию 15 ;timeout = 15 ; Маска для номера заказа ; По умолчанию "%(document.cashCode[1d]){1}%(document.num[02d]){2}" ;orderNumberMask = "%(document.cashCode[1d]){1}%(document.num[02d]){2}"
Формирование номера заказа
Номер заказа формируется на основе номера чека и кода кассы по маске, заданной в orderNumberMask
, в формате:
%(document.cashCode[1d]){N}%(document.num[02d]){K}
, где:
%(document.cashCode[1d])
– код кассы,{N}
– количествоN
последних цифр кода кассы,%(document.num[02d])
– номер чека,{K}
– количествоK
последних цифр номера чека.
Если в маске номера заказа будут указаны символы (например, в коде кассы), то на сервис будет передано значение
0
.Если номер заказа не будет соответствовать формату, то на сервис будет передано значение
0
.
Код кассы – 45,
Номер чека – 319.
%(document.cashCode[1d]){1}%(document.num[02d]){2}
%(document.cashCode[1d]){1}%(document.num[02d])
%(document.num[02d])
Принцип работы
Для отправки заказа на внешний сервис необходимо:
- Активировать модуль
orderservice
(см. Конфигурирование модуля). - Настроить параметры для работы с сервисом (см. Конфигурирование модуля).
- Добавить товары в чек продажи.
Перейти в подытог.
При переходе будут сформированы данные для заказа и передан запрос на сервис. В запросе передаются код и количество каждой товарной позиции чека.
Если от сервиса получен ответ, что заказ создан (код ответа 200), то касса продолжит переход в подытог.
При получении другого кода ответа или при отсутствии связи будет выведен диалог "Ошибка при регистрации заказа. Повторить?":- при нажатии "OK" осуществляется повторная отправка данных на сервис,
- при нажатии "Отмена" повторная отправка данных не осуществляется, переход в подытог не выполняется.
Печать номера заказа
Для печати номера заказа необходимо в шаблон sale.xml
добавить конструкцию:
<printer op="setfont" size="enlarge"/> <select query="select right(cashcode,1) as cashcode1 FROM documents.workshift where workshiftid = $shift.id$"> <select query="select right(concat('0', d.checknum),2) as docnum2, d.* FROM documents.document d where d.documentid = $document.id$"> <text align="center" fillsymbol=" " maxwidth="all">ЗАКАЗ №$cashcode1$$docnum2$</text> </select> </select> <printer op="resetfont"/>
В кассовом ПО Artix существует возможность задать способ печати текста для принтеров разных моделей.
Задать текст для печати в зависимости от принтера можно с помощью условного оператора <if>
:
<if var="fr.model.code" op="eq" value="Epson"> <text fillsymbol=" " maxwidth="all"> ЗАКАЗ №$cashcode1$$docnum2$</text> <else/> <text align="center" fillsymbol=" " maxwidth="all">ЗАКАЗ №$cashcode1$$docnum2$</text> </if>
В данном примере для принтера Epson и других моделей в одном шаблоне заданы разные правила выравнивания текста.
Логирование
Журнал запросов к сервису ведется в основном логе /linuxcash/logs/current/terminal.log
.