You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Функции округления суммы товарной позиции и чека предназначены для того, чтобы уменьшить количество расчетов и избежать накопления мелочи на кассе.

Для корректной работы кассовой программы и ФР с ФН необходимо указывать для базовой валюты округление такое же как в ФР. Например, для ФР Ритейл-01 Ф используется округление математически с потерей значимости до копейки.

При использовании различных способов округления в ФР и кассовой программе можно получить ошибку расхождения сумм, чеки не будут закрываться.

Округление суммы позиции

Механизм округления суммы позиции реализован через округление, заданное в настройках валюты. К каждому товару в чеке привязывается валюта оплаты, если она не назначена или валюты с заданным кодом не существует - используется базовая валюта. Базовой валютой считается валюта, указанная первой среди типов валюты с признаком "базовая". Способ округления задается индивидуально для каждой валюты через утилиту администрирования Yuki либо при загрузке справочника валют. 

По умолчанию для всех типов оплаты установлен способ округления - математически с потерей значимости.

Для типов валюты, используемых в кассовом ПО Artix, может быть использовано округление до сотых, десятых, до целых, до десятков, до сотен.

Помимо способа округления для валют указывается одно из возможных правил округления:

  • до ближайшего большего;
  • математически без потери значимости - округление до 0.5 в большую или меньшую сторону в зависимости от цифры слева: для нечетных цифр - в большую, для четных - в меньшую сторону;
  • математически с потерей значимости округление до 0.5 в большую сторону;
  • до ближайшего меньшего.
Пример 1
Для товара с ценой 3.77 округление цены будет иметь значения:
 - Округление до десятков математически без потери значимости 3.80
 - Округление до целых математически без потери значимости 4.00
 - Округление до десятков до ближайшего меньшего 3.70
Пример 2

При различных значениях цены товара округление будет срабатывать следующим образом:

ЦенаОкругление
До ближайшего большегоДо ближайшего меньшегоМатематическиМатематически с потерей значимости
0,491,000,000,000,00
0,501,000,000,001,00
0,511,000,001,001,00
1,492,001,001,001,00
1,502,001,002,002,00
1,512,001,002,002,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логический
  • true
  • false
Использовать скидку на мелочьПо умолчанию false
distributeDiscountOnChangeстроковый
  • proportional (ok, yes, enable, 1, true, allow, on)
  • maxVat
  • maxSum (или любое другое значение)
Настройка вида распределения скидки "на мелочь" по позициям
По умолчанию proportional
discountOnChangePrecisionстроковый

Точность вычисления скидки на мелочь

По умолчанию сумма чека округляется с точностью до 1 рубля
ignoreMinPriceForDiscountByChangeлогический
  • true
  • false
Игнорировать минимальную цену товара при предоставлении скидки на мелочьПо умолчанию false

useDiscountOnChangeForCashPaymentOnly

логический
  • true
  • false

Использовать скидку на мелочь только при оплате наличными

По умолчанию 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логический
  • true
  • false
Использовать надбавку на мелочь для документов возвратаПо умолчанию false
Пример настройки
[Check]
...
; Использовать "надбавку на мелочь" для документов возврата, по умолчанию надбавка не используется
;useIncreaseOnChange = false
  • No labels