Кассовое ПО 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.