Кассовое ПО Artix позволяет формировать заказы и отправлять их на внешний сервис.

Конфигурирование модуля

Модуль orderservice активируется в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/orderservice.ini в секции [plugins].

НаименованиеТип данныхВозможные значения

Описание

Примечания
orderserviceстроковый
  • on
  • off

Плагин для отправки заказов на сервис заказов

По умолчанию 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.

Пример корректной маски: передается 519
%(document.cashCode[1d]){1}%(document.num[02d]){2}
Пример некорректной маски: передается 0
%(document.cashCode[1d]){1}%(document.num[02d])
Пример корректной маски: передается 319
%(document.num[02d])

Принцип работы

Для отправки заказа на внешний сервис необходимо:

  1. Активировать модуль orderservice (см. Конфигурирование модуля).
  2. Настроить параметры для работы с сервисом (см. Конфигурирование модуля).
  3. Добавить товары в чек продажи.
  4. Перейти в подытог.
    При переходе будут сформированы данные для заказа и передан запрос на сервис. В запросе передаются код и количество каждой товарной позиции чека.
    Если от сервиса получен ответ, что заказ создан (код ответа 200), то касса продолжит переход в подытог.
    При получении другого кода ответа или при отсутствии связи будет выведен диалог "Ошибка при регистрации заказа. Повторить?":

    • при нажатии "OK" осуществляется повторная отправка данных на сервис,
    • при нажатии "Отмена" повторная отправка данных не осуществляется, переход в подытог не выполняется.

Печать номера заказа

Для печати номера заказа необходимо в шаблон sale.xml добавить конструкцию:

Пример настройки печати номера заказа с увеличенным текстом по центру (для orderNumberMask по умолчанию)
<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>:

Пример настройки выравнивания увеличенного текста на принтере Epson
<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.

  • No labels