...
| Warning |
|---|
Для корректной работы кассовой программы и ФР с ФН необходимо указывать для базовой валюты округление такое же как в ФР. Например, для ФР Ритейл-01 Ф используется округление математически с потерей значимости до копейки. При использовании различных способов округления в ФР и кассовой программе можно получить ошибку расхождения сумм, чеки не будут закрываться. |
| Anchor | ||||
|---|---|---|---|---|
|
Механизм округления суммы позиции реализован через округление, заданное в настройках валюты. К каждому товару в чеке привязывается валюта оплаты, если она не назначена или валюты с заданным кодом не существует - Если для товара не назначена валюта, используемая для округления, то используется базовая валюта. Базовой валютой считается валюта, указанная первой среди типов валюты с признаком "базовая". Способ округления задается индивидуально Валюта для товара и способ округления для каждой валюты задается через утилиту администрирования Yuki либо при загрузке справочника справочников товаров и валют соответственно.
| Info |
|---|
По умолчанию для всех типов оплаты валют установлен способ округления - "математически с потерей значимости", который используется при передаче данных из кассового ПО в ФР. |
Для типов валютывалют, используемых в кассовом ПО Artix, может быть использовано установлено округление до сотых, десятых, до целых, до десятков, до сотен.
...
- до ближайшего большего;
- математически без потери значимости - – округление до 0.5 в большую или меньшую сторону в зависимости от цифры слева: для нечетных цифр - – в большую, для четных - – в меньшую сторону;
- математически с потерей значимости – округление до 0.5 в большую сторону;
- до ближайшего меньшего.
| Panel | ||
|---|---|---|
| ||
Для товара с ценой 3.77 округление цены будет иметь значения: -* Округление до десятков математически без потери значимости 3.80 -* Округление до целых математически без потери значимости 4.00 * - Округление до десятков до ближайшего меньшего 3.70 |
...
| Panel | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||
При различных значениях цены товара округление будет срабатывать следующим образом:
| |||||||||||||||||||||||||||||||||||||||
Скидка на мелочь
| Anchor | ||||
|---|---|---|---|---|
|
При наличном расчете по чеку зачастую требуется снизить количество используемых монет и/или банкнот с низким номиналом. В кассовом ПО Artix для этого реализована возможность предоставления скидки на мелочь, которая рассчитывается после применения скидки на позицию и предоставляется в соответствии с заданными программными настройками.
...
Скидка на мелочь уменьшает сумму чека в соответствии с коэффициентом округления, задаваемым при помощи параметра discountOnChangePrecision. Способ округления суммы указывается в значении параметра в виде [<сумма чека>:<точность округления>], где:
- сумма чека - чека – сумма чека, начиная с которой применяется скидка на мелочь;
- точность округления - округления – вещественное число, например: 00.5.
Правила вычисления скидки на мелочь для разных сумм чеков могут быть заданы различные способы округления. Значения параметра в данном случае записываются через запятую.
...
- при значении параметра
скидка на мелочь распределяется пропорционально между позициями;"proportional" - при значении параметра
"maxVat"скидка на мелочь применяется к первой позиции с наибольшей ставкой налога. Если не удалось полностью применить скидку к первой позиции с максимальной ставкой НДС, то будет выполнена попытка применения скидки ко второй позиции с максимальной ставкой НДС. Если не получилось полностью применить скидку к позициям с максимальной ставкой НДС, то выполняется попытка применения скидки к позиции со второй по значению ставкой НДС; - при значении параметра
"maxVatIntPriority"скидка на мелочь приоритетно применяется к первой штучной позиции с наибольшей ставкой налога. В остальном работает аналогично значению"maxVat"; - при значении параметра
"maxSum"скидка применяется к позиции с наибольшей суммой. Скидка на мелочь применяется только к одной позиции, если стоимость позиции не позволяет применить скидку, то она будет применена к позиции с меньшей стоимостью. Если стоимость позиций не позволяет применить скидку ни к одной позиции в чеке, то она не будет применена; - при значении параметра
"maxSumIntPriority"скидка приоритетно применяется к штучной позиции с наибольшей суммой. В остальном работает аналогично значению"maxSum"; - при значении параметра "
fiscal" скидка применяется к сумме чека без распределения по позициям и без ограничения по минимальным ценам.
| Panel | ||
|---|---|---|
| ||
Например, в чеке две позиции, сумма чека - сумма чека – 54.40, точность округления до 1 рубля: 1. Цена - – 24.90, мин.цена - – 22.41, скидка на мелочь - – 0.19 2. Цена - – 26.50, мин.цена - – 23.85, скидка на мелочь - – 0.21 |
| Panel | ||
|---|---|---|
| ||
Например, в чеке три позиции, сумма чека 560.99, точность округления до 1 рубля: 1. Цена - – 300.12, ставка налога - – 5%, сумма налога - – 14.29, скидка на мелочь - – нет 2. Цена - – 160.31, ставка налога - – 10%, сумма налога - – 14.57, скидка на мелочь - – нет 3. Цена - – 100.56, ставка налога - – 15%, сумма налога - – 13.12, скидка на мелочь - – 0.99 |
| Panel | ||
|---|---|---|
| ||
Например, в чеке три позиции, сумма чека 560.99, точность округления до 1 рубля: 1. Цена - – 300.12, мин.цена - – 290.90, скидка на мелочь - – 0.99 2. Цена - – 160.31, мин.цена - – 160.00, скидка на мелочь - – нет 3. Цена - – 100.56, мин.цена - – 90.99, скидка на мелочь - нет– нет |
| Panel | ||
|---|---|---|
| ||
Например, в чеке две позиции, сумма чека – 51.40, точность округления до 1 рубля: 1. Цена – 24.90 2. Цена – 26.50 Округление – 0.40 |
Правилами предоставления скидки на мелочь может быть определена возможность игнорировать минимальную цену на товар, которая задается при помощи параметра ignoreMinPriceForDiscountByChange:
...
- при значении параметра
trueскидка на мелочь используется только при оплате чека наличными, вне зависимости от того, в каком порядке была применена оплата наличными; - при значении параметра
falseскидка на мелочь применяется во всех случаях, когда ее использование разрешено, независимо от способа оплаты чека.
В кассовом ПО Artix реализована возможность предоставления скидки на мелочь только для суммы доплаты при смешанной оплате чека (например, сертификат и наличный расчет), регулируется параметром calculateDiscountOnChangeByBalance:
- при значении параметра
trueна доплату предоставляется скидка на мелочь, - при значении параметра
falseскидка на мелочь применяется на всю сумму чека, а не только на сумму доплаты.
Конфигурирование функции предоставления скидки на мелочь выполняется в файле /linuxcash/cash/conf/ncash.ini в секции [Check].:
| Наименование | Тип данных | Возможные значения | Описание | Примечания | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| useDiscountOnChange | логический |
| Использовать скидку на мелочь | По умолчанию false | ||||||
| distributeDiscountOnChange | строковый |
| maxSum (или любое другое значение)
| Настройка вида распределения скидки "на мелочь" по позициям | По умолчанию При значениях
| |||||
| discountOnChangePrecision | строковый | Точность вычисления скидки "на мелочь" | По умолчанию "[0:1]"– сумма чека округляется с точностью до 1 рубля | |||||||
| ignoreMinPriceForDiscountByChange | логический |
| Игнорировать минимальную цену товара при | предоставленииприменении скидки на мелочь | По умолчанию false | |||||
useDiscountOnChangeForCashPaymentOnly | логический |
| Использовать скидку на мелочь только при оплате наличными | По умолчанию false | ||||||
calculateDiscountOnChangeByBalance | логический |
| Считать скидку на мелочь от оставшейся суммы доплаты | По умолчанию Работает с настройками |
| Info |
|---|
Для оплаты бонусами необходимо использовать сочетание настроек:
|
| Code Block | ||||
|---|---|---|---|---|
| ||||
[Check] ... ; использовать "скидку на мелочь", по умолчанию скидка не используется useDiscountOnChange = true ; Настройка вида распределения скидки "на мелочь" по позициям ; Возможные значения: proportional(либо true), maxVat, maxVatIntPriority, maxSum, maxSumIntPriority, fiscal ; По умолчанию proportional ;distributeDiscountOnChange = proportional ; точностьТочность вычисления скидки "на мелочь", ; поПо умолчанию округляется до 1 для любой суммы чека"[0:1]" ;discountOnChangePrecision = "[0:0.05], [50:1],[100:2], [200:5], "" ; Игнорировать минимальную цену товара дляпри применении скидки на сдачумелочь ; По умолчанию false ;ignoreMinPriceForDiscountByChange = false ; Использовать скидку на мелочь только при оплате наличными, по- умолчанию false. ;useDiscountOnChangeForCashPaymentOnly = true ; Считать скидку на мелочь от оставшейся суммы доплаты ; Работает с настройками useDiscountOnChangeForCashPaymentOnly и useIncreaseOnChange ; По умолчанию false ;calculateDiscountOnChangeByBalance = false ... |
Надбавка на мелочь
Сумма чека при возврате округляется аналогично действию скидки на мелочь при продаже. Использование надбавки на мелочь определяется параметром useIncreaseOnChange в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]:
- при значении параметра
trueсумма чека округляется, - при значении параметра
falseнадбавка на мелочь не применяется.
...
| Info |
|---|
Надбавку на мелочь (настройка |
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| useIncreaseOnChange | логический |
| Использовать надбавку на мелочь для документов возврата | По умолчанию false |
| Code Block | ||||
|---|---|---|---|---|
| ||||
[Check]
...
; Использовать "надбавку на мелочь" для документов возврата, по умолчанию надбавка не используется
;useIncreaseOnChange = false |
При выполнении нескольких частичных возвратов по одному и тому же чеку продажи сумма надбавки на мелочь компенсируется скидкой на мелочь в последнем чеке возврата.
| Panel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Например, в чеке продажи несколько позиций с весовыми товарами, сумма чека 21291.31, применена скидка на мелочь 0.31:
Осуществляем возврат первой позиции, сумма 145.86, срабатывает надбавка 0.14:
Осуществляем возврат пятой позиции, сумма 10728.99, срабатывает надбавка 0.02:
Осуществляем возврат оставшихся позиций, сумма 10416.16, срабатывает скидка 0.16:
Таким образом, на первые два чека возврата сработала надбавка 0.14 и 0.02, на последний чек возврата сработала скидка 0.16, что уравняло суммы чека продажи и чеков возврата. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Корректирующая скидка
В кассовом ПО Artix поддержан функционал корректирующей скидки для избежания разбиения товарной позиции при передаче в ФР в случае применения скидок. Функционал задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check].
Использование корректирующей скидки определяется параметром useCorrectionDiscount:
- при значении параметра
trueкорректирующая скидка применяется, если это возможно, при значении параметра
falseкорректирующая скидка не применяется.
Совместное использование корректирующей скидки со скидками от внешней системы лояльности настраивается при помощи параметра useCorrectionDiscountWithExternalDiscount:
- при значении параметра
trueкорректирующая скидка применяется совместно со скидками внешней системы лояльности, при значении параметра
falseкорректирующая скидка совместно со скидками от внешней системы лояльности не применяется.
Возможность игнорирования минимальной цены товара при использовании корректирующей скидки задается при помощи параметра ignoreMinPriceForCorrectionDiscount:
- при значении параметра
trueминимальная цена товара игнорируется, - при значении параметра
falseцена товара после применения корректирующей скидки не может быть ниже минимальной.
Разрешение уменьшения цены позиции с учетом скидок при вычислении значения корректирующей скидки задается параметром allowDecreasePriceForCorrectionDiscount:
- при значении параметра true разрешается уменьшать цену позиции с учетом скидочных воздействий,
- при значении параметра
falseцена позиции с учетом скидочных воздействий не изменяется.
Ограничение значения корректирующей скидки на позицию определяется параметром correctionDiscountSumLimit. Корректирующая скидка может принимать значения от 0.00 до значения указанного в параметре correctionDiscountSumLimit.
| Наименование | Тип данных | Возможные значения | Описание | Примечания | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| useCorrectionDiscount | логический |
| Использовать корректирующую скидку | По умолчанию false | ||||||
| useCorrectionDiscountWithExternalDiscount | логический |
| Использовать корректирующую скидку совместно со скидками от внешней системы лояльности | По умолчанию | ||||||
| ignoreMinPriceForCorrectionDiscount | логический |
| Игнорировать минимальную цену товара при использовании корректирующей скидки | По умолчанию false | ||||||
| логический |
| Разрешать уменьшение цены позиции с учетом скидок при вычислении значения корректирующей скидки | По умолчанию false | ||||||
correctionDiscountSumLimit | вещественный | Максимально допустимое значение корректирующей скидки на позицию | По умолчанию 1.00 |
Расчет корректирующей скидки осуществляется для позиций в чеке, требующих разбиения при передаче в ФР в случае применения скидок. Расчет выполняется до тех пор, пока не завершится перебор позиций в чеке.
| Code Block | ||||
|---|---|---|---|---|
| ||||
[Check] ; Использовать "корректирующую скидку" ; По умолчанию false ;useCorrectionDiscount = false ; Использовать "корректирующую скидку" совместно со скидками от внешней системы лояльности ; По умолчанию false ;useCorrectionDiscountWithExternalDiscount = false ; Игнорировать минимальную цену для корректирующей скидки ; По умолчанию false ;ignoreMinPriceForCorrectionDiscount = false ; Разрешать уменьшение цены позиции с учетом скидок при вычислении значения "корректирующей скидки" ; По умолчанию false ;allowDecreasePriceForCorrectionDiscount = false ; Максимально допустимое значение "корректирующей скидки" на позицию ; По умолчанию "1.00" ;correctionDiscountSumLimit = 1.00 |
| Panel | ||
|---|---|---|
| ||
Пример настроек:
Например, в чеке позиция с весовым товаром: 1. Ананас 3.028 кг * 38.00 р = 115.06 р На позицию применено скидочное воздействие – 42.70 р. Корректирующая скидка – 0.02 р. Итоговая сумма чека – 72.34 р. В чеке печатается: Ананас 3.028 кг * 23.89 р = 72.34 р |
| Panel | ||
|---|---|---|
| ||
Пример настроек:
Например, в чеке позиция с весовым товаром: 1. Ананас 3.028 кг * 38.00 р = 115.06 р На позицию применено скидочное воздействие – 42.70 р. Подходящая корректирующая скидка не найдена. Итоговая сумма чека – 72.36 р. При передаче чека в ФР осуществляется разбиение позиции, в чеке печатается: Ананас 2.028 кг * 23.89 р = 48.45 р |
| Panel | ||||
|---|---|---|---|---|
| ||||
Пример настроек:
Например, в чеке позиция с весовым товаром: 1. Персик 13.978 кг * 23.00 р = 321.49 р На позицию применено скидочное воздействие – 299.97 р.
|
