Если не были применены правила разбора, заданные в конфигурационном файле |
Задание правил разбора штрих-кодов в input.ini
позволяет добиться большой гибкости при обработке последовательностей данных, отличающихся по структуре.
Для возможности задания правил разбора штрих-кодов в input.ini
необходимо:
Активировать плагин input
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/input.ini
в секции [plugins]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
input | строковый |
| Активация плагина для разбора вводимых данных | По умолчанию on |
[plugins] ; Плагин разбора вводимых данных input = on |
Задать правила разбора и преобразований в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/input.ini
.
Правила разбора представляют собой набор секций вида [Rule.<порядок>]
или [Rule.<порядок>.<имя захваченного значения>],
где <порядок>
– целое положительное число.
;[Rule.1] ; Правило разбора с порядком 1 ... ;[Rule.1.code] ;Правило преобразования захваченного значения code ... ;[Rule.1.weight] ;Правило преобразования захваченного значения weight ... ;[Rule.2] ; Правило разбора с порядком 2 ... ;[Rule.2.barcode] ;Правило преобразования захваченного значения barcode ... ;[Rule.2.weight] ;Правило преобразования захваченного значения weight ... |
В каждой секции задается одно правило в формате:
search = <регулярное выражение со значениями для захвата> |
В каждой секции вида [Rule.<порядок>.<имя захваченного значения>]
задаются два правила в формате:
search = <регулярное выражение со значениями для захвата> replace = <выражение для подстановки обработанных захваченных значений в исходное регулярное выражение> |
Допускается использование следующих имен для захваченных значений:
barcode
– штрих-код товара,
code
– код товара,
weight
– вес товара,
quantity
– количество товара.
;[Rule.1] ; Правило разбора с порядком 1 ;search = "((?<piece>26)|(?<fractional>27))(?<code>[0-9]{10})(?(piece)(?<quantity>[0-9]{5})|(?<weight>[0-9]{5}),[0-9]{5};" ;[Rule.1.code] ;Правило преобразования захваченного значения code ;search = "0*([0-9]{0,10})" ;replace = "\1" ;[Rule.1.weight] ;Правило преобразования захваченного значения weight ;search = "0*([0-9]{0,2})([0-9]{3})" ;replace = "\1.\2" |
Имена |
Значения для префиксов кодов или штрих-кодов (в примере выше – 26 и 27) могут быть заданы произвольно. |
Значения по умолчанию не заданы. Для корректной работы необходимо раскомментировать секции и параметры. |
Поиск подходящего правила разбора происходит по возрастанию порядка. Если введенная последовательность данных удовлетворяет правилу разбора, то будет осуществлен переход к разбору по секциям для захваченных значений. При корректных данных товары с введенными штрих-кодами (кодами) будут добавлены в чек.
Если введенные данные содержат как штрих-код товара так и код, то товар будет добавлен по штрих-коду.
Если введенные данных содержат как вес товара так и количество, то товар будет добавлен со значением веса.
Если последовательность содержит ошибочный код товара (или была ошибка при добавлении товара, например, при отсутствии товара в базе данных), то все позиции этой последовательности не будут добавлены в чек. |
Правило разбора в [Rule.1] search = "((?<piece>26)|(?<fractional>27))(?<barcode>[0-9]{20})(?(piece)(?<quantity>[0-9]{5})|(?<weight>[0-9]{5})),[0-9]{5};" [Rule.1.weight] search = "0*([0-9]{0,2})([0-9]{3})" Разбор: При вводе 26460708092027100015,00020;27460708092024002315,00025; строка будет разобрана следующим образом: Реальный штрих-код первого товара = 4607080920271, Кол-во = 15 шт. Реальный штрих-код второго товара = 4607080920240, Вес = 2.315 кг. В чек будут добавлены товары со штрих-кодами 4607080920271 и 4607080920240.
|
Правило разбора в [Rule.1] search = "((?<piece>301)|(?<fractional>401))(?<code>[0-9]{10})[0-9]{5},(?(piece)(?<quantity>[0-9]{5})|(?<weight>[0-9]{5}));" [Rule.1.code] search = "0*([0-9]{0,10})" Разбор: Реальный код (с отсеченными лидирующими нулями) = 10068, Кол-во товара = 20 шт. В чек будет добавлен товар с кодом 10068. |
В кассовом ПО Artix реализована возможность использования правил интерпретации штрих-кодов при считывании карты через ридер и при добавлении купона по кнопке. Подробнее об этом можно прочитать в статье "Использование правил интерпретации штрих-кодов". |
Логирование работы плагина ведется в файле /linuxcash/logs/current/terminal.log
.