Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Info

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

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

...

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

...

Скидка на мелочь уменьшает сумму чека в соответствии с коэффициентом округления, задаваемым при помощи параметра discountOnChangePrecision. Способ округления суммы указывается в значении параметра в виде [<сумма чека>:<точность округления>], где:

  •  сумма чека - чека – сумма чека, начиная с которой применяется скидка на мелочь;
  •  точность округления - округления – вещественное число, например:  00.5.

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

...

  • при значении параметра "proportional" скидка на мелочь распределяется пропорционально между позициями;
  • при значении параметра "maxVat" скидка на мелочь применяется к первой позиции с наибольшей ставкой налога. Если не удалось полностью применить скидку к первой позиции с максимальной ставкой НДС, то будет выполнена попытка применения скидки ко второй позиции с максимальной ставкой НДС. Если не получилось полностью применить скидку к позициям с максимальной ставкой НДС, то выполняется попытка применения скидки к позиции со второй по значению ставкой НДС;
  • при значении параметра "maxSum" скидка применяется к позиции с наибольшей суммой. Скидка на мелочь применяется только к одной позиции, если стоимость позиции не позволяет применить скидку, то она будет применена к позиции с меньшей стоимостью. Если стоимость позиций не позволяет применить скидку ни к одной позиции в чеке, то она не будет применена;
  • при значении параметра "fiscal" скидка применяется к сумме чека без распределения по позициям и без ограничения по минимальным ценам.
Panel
titleПример "Скидка на мелочь распределяется пропорционально между позициями"

Например, в чеке две позиции, сумма чека - сумма чека – 54.40, точность округления до 1 рубля:

1. Цена - 24.90, мин.цена - 22.41, скидка на мелочь - 0.19

2. Цена - 26.50, мин.цена - 23.85, скидка на мелочь - 0.21


Panel
titleПример "Скидка на мелочь применяется к позиции с наибольшей ставкой налога"

Например, в чеке три позиции, сумма чека 560.99, точность округления до 1 рубля:

1. Цена - 300.12, ставка налога - 5%, сумма налога - 14.29, скидка на мелочь - нет

2. Цена - 160.31, ставка налога - 10%, сумма налога - 14.57, скидка на мелочь - нет

3. Цена - 100.56, ставка налога - 15%, сумма налога - 13.12, скидка на мелочь - 0.99


Panel
titleПример "Скидка применяется к позиции с наибольшей суммой"

Например, в чеке три позиции, сумма чека 560.99, точность округления до 1 рубля:

1. Цена - 300.12, мин.цена - 290.90, скидка на мелочь - 0.99

2. Цена - 160.31, мин.цена - 160.00, скидка на мелочь - нет

3. Цена - 100.56, мин.цена - 90.99, скидка на мелочь - нет– нет


Panel
titleПример "Скидка применяется к сумме чека без распределения по позициям"

Например, в чеке две позиции, сумма чека – 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логический
  • true
  • false
Использовать скидку на мелочьПо умолчанию false.
distributeDiscountOnChange

строковый

  • proportional (ok, yes, enable, 1, true, allow, on)
  • maxVat
  • maxSum (или любое другое значение)
  • fiscal

Настройка вида распределения скидки "на мелочь" по позициям



По умолчанию proportional.

Info
iconfalse

Округление fiscal поддержано только для ФР Штрих с ФН и ФР Атол, работающего по протоколу 5.0.


discountOnChangePrecisionстроковый

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

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

useDiscountOnChangeForCashPaymentOnly

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

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

По умолчанию false.

calculateDiscountOnChangeByBalance

логический
  • true
  • false
Считать скидку на мелочь от оставшейся суммы доплаты

По умолчанию false.

Работает с настройками useDiscountOnChangeForCashPaymentOnly и useIncreaseOnChange.


Info

Для оплаты бонусами необходимо использовать сочетание настроек:

  • useDiscountOnChange = true
  • useDiscountOnChangeForCashPaymentOnly = true


Code Block
languagetext
titleПример настроек
[Check]
...
; использовать "скидку на мелочь", по умолчанию скидка не используется
useDiscountOnChange = true

; Настройка вида распределения скидки "на мелочь" по позициям
; Возможные значения: proportional(либо true), maxVat, maxSum, fiscal
; По умолчанию proportional
;distributeDiscountOnChange = proportional

; точность вычисления скидки "на мелочь", по умолчанию округляется до 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 надбавка на мелочь не применяется.

...

НаименованиеТип данныхВозможные значенияОписаниеПримечания
useIncreaseOnChangeлогический
  • true
  • false
Использовать надбавку на мелочь для документов возвратаПо умолчанию false


Code Block
languagetext
titleПример настройки
[Check]
...
; Использовать "надбавку на мелочь" для документов возврата, по умолчанию надбавка не используется
;useIncreaseOnChange = false

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

Panel
titleПример

Например, в чеке продажи несколько позиций с весовыми товарами, сумма чека 21291.31, применена скидка на мелочь 0.31:

№ позицииВес товараЦена товараСтоимость позиции
10,0682145145.86
2177
35,00213656827.73
45,0027163581.43
55,002214510729.29 - 0.31 скидка = 10728.98
Итого:21291

Осуществляем возврат первой позиции, сумма 145.86, срабатывает надбавка 0.14:

№ позицииВес товараЦена товараСтоимость позиции
10,0682145145.86 + 0.14 надбавка = 146
Итого:146

Осуществляем возврат пятой позиции, сумма 10728.99, срабатывает надбавка 0.02:

№ позицииВес товараЦена товараСтоимость позиции
55,002214510729.29 - 0.31 скидка + 0.02 надбавка = 10729
Итого:10729

Осуществляем возврат оставшихся позиций, сумма 10416.16, срабатывает скидка 0.16:

№ позицииВес товараЦена товараСтоимость позиции
2177
35,00213656827.73 - 0.16 скидка = 6827.57
45,0027163581.43
Итого:10416

Таким образом, на первые два чека возврата сработала надбавка 0.14 и 0.02, на последний чек возврата сработала скидка 0.16, что уравняло суммы чека продажи и чеков возврата.

Корректирующая скидка

Info

Начиная с версии 4.6.205 поддержан функционал корректирующей скидки для избежания разбиения товарной позиции при передаче в ФР в случае применения скидок.

Использование корректирующей скидки определяется параметром useCorrectionDiscount в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]:

  • при значении параметра true корректирующая скидка применяется, если это возможно,
  • при значении параметра false корректирующая скидка не применяется.

Возможность игнорирования минимальной цены товара при использовании корректирующей скидки задается при помощи параметра ignoreMinPriceForCorrectionDiscount в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]:

  • при значении параметра true минимальная цена товара игнорируется,
  • при значении параметра false цена товара после применения корректирующей скидки не может быть ниже минимальной.
НаименованиеТип данныхВозможные значенияОписаниеПримечания
useCorrectionDiscountлогический
  • true
  • false
Использовать корректирующую скидкуПо умолчанию false
ignoreMinPriceForCorrectionDiscountлогический
  • true
  • false
Игнорировать минимальную цену товара при использовании корректирующей скидкиПо умолчанию false


Code Block
languagetext
titleПример настроек
[Check]
; Использовать "корректирующую скидку" 
; По умолчанию false
;useCorrectionDiscount = false

; Игнорировать минимальную цену для корректирующей скидки
; По умолчанию false
;ignoreMinPriceForCorrectionDiscount = false


Panel
titleПример "Корректирующая скидка включена"

Например, в чеке позиция с весовым товаром:

1. Ананас 4.523 кг * 499.99 р = 2261.45 р

На позицию применена скидка – 2000.00 р.

Итоговая сумма чека – 261.45 р.

При закрытии чека срабатывает корректирующая скидка – 0.02 р.

В чеке печатается:

Image Added


Panel
titleПример "Корректирующая скидка отключена"

Например, в чеке позиция с весовым товаром:

1. Ананас 4.523 кг * 499.99 р = 2261.45 р

На позицию применена скидка – 2000.00 р.

Итоговая сумма чека –  261.45 р.

При передаче чека в ФР осуществляется разбиение позиции, в чеке печатается:

Image Added