Функции округления суммы товарной позиции и чека предназначены для того, чтобы уменьшить количество расчетов и избежать накопления мелочи на кассе.
Для корректной работы кассовой программы и ФР с ФН необходимо указывать для базовой валюты округление такое же как в ФР. Например, для ФР Ритейл-01 Ф используется округление математически с потерей значимости до копейки.
При использовании различных способов округления в ФР и кассовой программе можно получить ошибку расхождения сумм, чеки не будут закрываться.
Округление суммы позиции
Механизм округления суммы позиции реализован через округление, заданное в настройках валюты. К каждому товару в чеке привязывается валюта оплаты, если она не назначена или валюты с заданным кодом не существует - используется базовая валюта. Базовой валютой считается валюта, указанная первой среди типов валюты с признаком "базовая". Способ округления задается индивидуально для каждой валюты через утилиту администрирования Yuki либо при загрузке справочника валют.
По умолчанию для всех типов оплаты установлен способ округления - математически с потерей значимости.
Для типов валюты, используемых в кассовом ПО Artix, может быть использовано округление до сотых, десятых, до целых, до десятков, до сотен.
Помимо способа округления для валют указывается одно из возможных правил округления:
- до ближайшего большего;
- математически без потери значимости - округление до 0.5 в большую или меньшую сторону в зависимости от цифры слева: для нечетных цифр - в большую, для четных - в меньшую сторону;
- математически с потерей значимости округление до 0.5 в большую сторону;
- до ближайшего меньшего.
Для товара с ценой 3.77 округление цены будет иметь значения: - Округление до десятков математически без потери значимости 3.80 - Округление до целых математически без потери значимости 4.00 - Округление до десятков до ближайшего меньшего 3.70
При различных значениях цены товара округление будет срабатывать следующим образом:
Цена | Округление | |||
---|---|---|---|---|
До ближайшего большего | До ближайшего меньшего | Математически | Математически с потерей значимости | |
0,49 | 1,00 | 0,00 | 0,00 | 0,00 |
0,50 | 1,00 | 0,00 | 0,00 | 1,00 |
0,51 | 1,00 | 0,00 | 1,00 | 1,00 |
1,49 | 2,00 | 1,00 | 1,00 | 1,00 |
1,50 | 2,00 | 1,00 | 2,00 | 2,00 |
1,51 | 2,00 | 1,00 | 2,00 | 2,00 |
Скидка на мелочь
При наличном расчете по чеку зачастую требуется снизить количество используемых монет и/или банкнот с низким номиналом. В кассовом ПО Artix для этого реализована возможность предоставления скидки на мелочь, которая рассчитывается после применения скидки на позицию и предоставляется в соответствии с заданными программными настройками.
Пересчет скидки на мелочь может выполняться при добавлении оплаты в чек или в режиме работы с товарами. Подробнее о работе со скидками можно прочитать в разделе "Встроенная дисконтная система".
Скидка на мелочь не распределяется на сертификат.
Использование скидки на мелочь настраивается при помощи параметра useDiscountOnChange
:
- при значении параметра
true
на позиции в чеке предоставляется скидка на мелочь, - при значении параметра
false
скидка на мелочь не применяется.
Скидка на мелочь уменьшает сумму чека в соответствии с коэффициентом округления, задаваемым при помощи параметра discountOnChangePrecision
. Способ округления суммы указывается в значении параметра в виде [<сумма чека>:<точность округления>]
, где:
- сумма чека - сумма чека, начиная с которой применяется скидка на мелочь;
- точность округления - вещественное число, например: 0.5.
Правила вычисления скидки на мелочь для разных сумм чеков могут быть заданы различные способы округления. Значения параметра в данном случае записываются через запятую.
discountOnChangePrecision = "[0:0.05], [50:0.1], [100:0.5], [200:1]" При такой настройке сумма чека выше 0 рублей округляется с точностью до 5 копеек, выше 50 рублей - до 10 копеек, выше 100 рублей - до 50 копеек и выше 200 рублей - до 1 рубля. На товар с начальной ценой 10,57 рублей будет предоставлена скидка на мелочь в размере 0,02 рубля. Окончательная цена товара будет равной 10,55 рубля.
Правило распределения скидки по позициям определяется параметром distributeDiscountOnChange
:
- при значении параметра
скидка на мелочь распределяется пропорционально между позициями;"proportional"
- при значении параметра
"maxVat"
скидка на мелочь применяется к первой позиции с наибольшей ставкой налога. Если не удалось полностью применить скидку к первой позиции с максимальной ставкой НДС, то будет выполнена попытка применения скидки ко второй позиции с максимальной ставкой НДС. Если не получилось полностью применить скидку к позициям с максимальной ставкой НДС, то выполняется попытка применения скидки к позиции со второй по значению ставкой НДС; - при значении параметра
"maxSum"
скидка применяется к позиции с наибольшей суммой. Скидка на мелочь применяется только к одной позиции, если стоимость позиции не позволяет применить скидку, то она будет применена к позиции с меньшей стоимостью. Если стоимость позиций не позволяет применить скидку ни к одной позиции в чеке, то она не будет применена.
Например, в чеке две позиции, сумма чека - 54.40, точность округления до 1 рубля:
1. Цена - 24.90, мин.цена - 22.41, скидка на мелочь - 0.19
2. Цена - 26.50, мин.цена - 23.85, скидка на мелочь - 0.21
Например, в чеке три позиции, сумма чека 560.99, точность округления до 1 рубля:
1. Цена - 300.12, ставка налога - 5%, сумма налога - 14.29, скидка на мелочь - нет
2. Цена - 160.31, ставка налога - 10%, сумма налога - 14.57, скидка на мелочь - нет
3. Цена - 100.56, ставка налога - 15%, сумма налога - 13.12, скидка на мелочь - 0.99
Например, в чеке три позиции, сумма чека 560.99, точность округления до 1 рубля:
1. Цена - 300.12, мин.цена - 290.90, скидка на мелочь - 0.99
2. Цена - 160.31, мин.цена - 160.00, скидка на мелочь - нет
3. Цена - 100.56, мин.цена - 90.99, скидка на мелочь - нет
Правилами предоставления скидки на мелочь может быть определена возможность игнорировать минимальную цену на товар, которая задается при помощи параметра ignoreMinPriceForDiscountByChange
:
- при значении параметра
true
минимальная цена товара игнорируется, скидка дается в соответствии с заданным способом округления; - при значении параметра
false
сумма товара после применения скидки на мелочь не может быть ниже минимальной.
Использование скидки на мелочь в большинстве случаев является целесообразным только при оплате товара наличными. Ограничение на предоставление скидки на мелочь при оплате той или иной валютой задается при помощи параметра useDiscountOnChangeForCashPaymentOnly
:
- при значении параметра
true
скидка на мелочь используется только при оплате чека наличными, вне зависимости от того, в каком порядке была применена оплата наличными; - при значении параметра
false
скидка на мелочь применяется во всех случаях, когда ее использование разрешено, независимо от способа оплаты чека.
Конфигурирование функции предоставления скидки на мелочь выполняется в файле /linuxcash/cash/conf/ncash.ini
в секции [Check]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
useDiscountOnChange | логический |
| Использовать скидку на мелочь | По умолчанию false |
distributeDiscountOnChange | строковый |
| Настройка вида распределения скидки "на мелочь" по позициям | По умолчанию proportional |
discountOnChangePrecision | строковый | Точность вычисления скидки на мелочь | По умолчанию сумма чека округляется с точностью до 1 рубля | |
ignoreMinPriceForDiscountByChange | логический |
| Игнорировать минимальную цену товара при предоставлении скидки на мелочь | По умолчанию false |
useDiscountOnChangeForCashPaymentOnly | логический |
| Использовать скидку на мелочь только при оплате наличными | По умолчанию false |
Для оплаты бонусами необходимо использовать сочетание настроек:
useDiscountOnChange = true
useDiscountOnChangeForCashPaymentOnly = true
[Check] ... ; использовать "скидку на мелочь", по умолчанию скидка не используется useDiscountOnChange = true ; Настройка вида распределения скидки "на мелочь" по позициям ; Возможные значения: proportional(либо true), maxVat, maxSum ; По умолчанию proportional ;distributeDiscountOnChange = proportional ; точность вычисления скидки "на мелочь", по умолчанию округляется до 1 для любой суммы чека ;discountOnChangePrecision = "[0:0.05], [50:1],[100:2], [200:5], " ; Игнорировать минимальную цену для скидки на сдачу ; По умолчанию false ;ignoreMinPriceForDiscountByChange = false ; Использовать скидку на мелочь только при оплате наличными, по-умолчанию false. ;useDiscountOnChangeForCashPaymentOnly = true ...
Надбавка на мелочь
Сумма чека при возврате округляется аналогично действию скидки на мелочь при продаже. Использование надбавки на мелочь определяется параметром useIncreaseOnChange
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [Check]:
- при значении параметра
true
сумма чека округляется, - при значении параметра
false
надбавка на мелочь не применяется.
Сумма надбавки отражается на экране кассира в поле "Итоговая скидка" со знаком минус.
Пересчет надбавки на мелочь может выполняться при добавлении оплаты в чек или в режиме работы с товарами. Подробнее о работе со скидками можно прочитать в разделе "Встроенная дисконтная система ".
При возврате по чеку продажи при выходе из режима оплаты надбавка не пересчитывается, изменение надбавки выполняется только в том случае, если произошли изменения в оплате документа.
Надбавку на мелочь (настройка useIncreaseOnChange
) рекомендуется использовать вместе со скидкой на мелочь (настройка useIncreaseOnChange
).
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
useIncreaseOnChange | логический |
| Использовать надбавку на мелочь для документов возврата | По умолчанию false |
[Check] ... ; Использовать "надбавку на мелочь" для документов возврата, по умолчанию надбавка не используется ;useIncreaseOnChange = false