Для считывания цены весового товара необходимо указать регулярное выражение для извлечения штрих-кода весового товара во вкладке "Источник данных". После добавления регулярного выражение, оно сохраняется в БД SQLite
в таблицу Config
.
^21(?<bcode>\\d{9})(?<qty>\\d{5})$
Регулярное выражение делится на группы. Группы заключены в (). На данный момент считываются группы с названиями bcode
и qty
. В bcode
можно передать штих-код товара, в qty
– количество весового товара.
Если группы не именованные, например, ^21(\\d{9})(\\d{5})123$
, то считается, что первая группа – это штрих-код, вторая группа – количество.
Если регулярное выражение не содержит групп, например, ^\\d{13}$
, то вся входная строка будет считаться штрих-кодом товара.
Если в БД SQLite
в таблице Config
не заданы регулярные выражения или входные данные не подходят ни под одно регулярное выражение, то считается, что был отправлен обычный товар и вся входная строка будет считаться штрих-кодом товара.
Округление цены весового товара
Функции округления цены весового товара предназначены для того, чтобы уменьшить количество расчетов и избежать накопления мелочи на кассе.
Настройки для округления цены весового товара регулируются параметрами priceRoundMode
и pricePrecision
:
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
priceRoundMode | целочисленный |
| Способ округления цены | По умолчанию 2 |
pricePrecision | целочисленный |
| Количество значимых цифр после запятой | По умолчанию 2 |
priceRoundMode - способ округления цены, по умолчанию 2 – "математический с потерей точности" pricePrecision - кол-во значимых цифр после запятой (т.е. округлять дробную часть до десятков, сотен и т.д.), по умолчанию 2
В БД SQLite
в таблице Config
есть регулярные выражения для весового товара:
TMC="^21(?<bcode>\\d{9})(?<qty>\\d{5})$, ^21(\\d{9})(\\d{5})123$" priceRoundMode = 2 pricePrecision = 2
На вход поступает строка вида 2112345679900160. Она попадает под выражение ^21(?<bcode>\\d{9})(?<qty>\\d{5})$.
Из этой строки получается:
- штрих-код 123456799,
- количество 00160 = 0,16 кг.
Цена товара = 1299,78 за кг.
Цена за полученное количество = 0,16 * 1299,78 = 207,9632. Происходит округление до сотых – 207,96.
В БД SQLite
в таблице Config
есть регулярные выражения для весового товара:
TMC="^21(?<bcode>\\d{9})(?<qty>\\d{5})$, ^21(\\d{9})(\\d{5})123$" priceRoundMode = 1 pricePrecision = 1
На вход поступает строка вида 2112345679900160. Она попадает под выражение ^21(?<bcode>\\d{9})(?<qty>\\d{5})$.
Из этой строки получается:
- штрих-код 123456799,
- количество 00160 = 0,16 кг.
Цена товара = 1299,78 за кг.
Цена за полученное количество = 0,16 * 1299,78 = 207,9648. Происходит округление до десятичных – 208,00.