решили попробовать реализовать скидку на мелочь, используя округление в чеке.
всё сделали по инструкции от асцн (ниже), но возникло следующая проблема в логике:
стоит округление до 50коп в меньшую сторону.
продаём весовой товар по 24.81
нажимаем ПОДИТОГ - округляется до 24.50
проводим дисконтной картой 3% и происходит следующее:
24.50-3%=23.77 и опять происходит округление и получается в итоге 23.50
по логике, после проведения скидки, чек должен пересчитаться 24.81-3% и округлиться до 24.00, а на самом деле возникает ситуация, описанная выше.
АСЦН сказал, что это годная логика.
кто-нибудь с этим функционалом работает?
-------------------------------------------------------------------------
Описание от АСЦН:
Округление всех видов скидок (в том числе автоматических) и стоимости весовых товаров с указанной точностью (любое число с точностью до двух знаков после запятой). Значение по умолчанию <0>. При этом цены в PluCash.db должны быть указаны с такой же точностью.! В дистрибутиве под ФР данный параметр можно использовать только при использовании параметра _FRFREELINE. (<размазывание> дельты на позиции чека пропорционально их весу в общей сумме).Для того, чтобы включить новый функционал по округлению необходимо в таблице CF_INI.DB в поле _RoundBase вбить служебную строку: <база>; 1 (0 - как раньше (математическое округление) -1 - округление вниз (округление результата (итоговой стоимости позиции после применения всех скидок/наценок) вниз, скидки округляются вверх, наценки округляются вниз) 1 - округление вверх (округление результата (итоговой стоимости позиции после применения всех скидок/наценок) вверх, скидки округляются вниз, наценки округляются вверх)
где <база> - значение точности округления (например, 0.01=1 коп, 0.05=5 коп, 0.10=10 коп, 1.00=1 руб. и т.д.)
в CF_INI будет выглядеть так -
0.10;-1 = сумма 0.48 округлится до 0.40, 0.10;1 = сумма 0.43 округлится до 0.50, 0.10;0 = сумма 0.44
округлится до 0.40