+7 499 990-10-21

Некорректная скидка в чеке

Некорректная скидка в чеке

Сообщение Troglodit » 16 фев 2020, 15:25

Дэнси 2.0.605
В чеке скидки на позицию 15% и скидка на чек 500р.
В настройках скидок в программе установлен выбор максимальный (не суммирование), скидка на чек не распространяется на позиции со скидкой на позицию (флаг установлен)
Чек
1439592;2020-02-15 16:04:42;4;119;752;0;3;57164;11;747601;41.00;1.000;25.10;747601;;0;;;
1439593;2020-02-15 16:04:42;4;119;752;0;3;57164;11;744966;60.00;1.000;36.73;744966;;0;;;
1439594;2020-02-15 16:04:42;4;119;752;0;3;57164;11;786508;197.00;1.000;167.45;786508;;0;;;
1439595;2020-02-15 16:04:42;4;119;752;0;3;57164;17;1;15.000;29.55;29.55;;96;;;;
1439596;2020-02-15 16:04:42;4;119;752;0;3;57164;11;774711;158.00;1.000;134.30;774711;;0;;;
1439597;2020-02-15 16:04:42;4;119;752;0;3;57164;17;1;15.000;23.70;23.70;;96;;;;
1439598;2020-02-15 16:04:42;4;119;752;0;3;57164;11;609758;75.00;1.000;45.91;609758;;0;;;
1439599;2020-02-15 16:04:42;4;119;752;0;3;57164;11;737404;1045.00;1.000;888.25;737404;;0;;;
1439600;2020-02-15 16:04:42;4;119;752;0;3;57164;17;1;15.000;156.75;156.75;;96;;;;
1439601;2020-02-15 16:04:42;4;119;752;0;3;57164;11;783505;291.00;1.000;247.35;783505;;0;;;
1439602;2020-02-15 16:04:42;4;119;752;0;3;57164;17;1;15.000;43.65;43.65;;96;;;;
1439603;2020-02-15 16:04:42;4;119;752;0;3;57164;11;788972;305.00;1.000;186.69;788972;;0;;;
1439604;2020-02-15 16:04:42;4;119;752;0;3;57164;11;784109;319.00;1.000;195.26;784109;;0;111;;
1439605;2020-02-15 16:04:42;4;119;752;0;3;57164;11;767769;489.00;1.000;299.32;767769;;0;111;;
1439606;2020-02-15 16:04:42;4;119;752;0;3;57164;35;1;0.000;236.40;500.00;5555;1003;;;;
1439607;2020-02-15 16:04:42;4;119;752;0;3;57164;41;2;2226.00;0.000;;;;;;;

По скидкам на позицию итого скидка: 253,65
По скидке на чек из 500р по чеку проходит 236.40
Итого по скидкам: 490,05
Сумма чека без скидки 2980.
Итоговая сумма должна быть 2980-490,05=2489,95
По факту сумма чека 2226. Она получается как 2980-253,65-500(ПОЧЕМУ???)
Т.е. по факту скидка на чек игнорирует установку признака расчета скидки без учета позиций со скидкой на позицию.
12 лицензий ДЭНСИ
Troglodit
 
Постов: 122
Зарегистрирован: 16 июн 2014, 15:02

Re: Некорректная скидка в чеке

Сообщение Бродяга_Джон » 16 фев 2020, 16:08

итоговая сумма чека = 2226,35

она получается из:

товар1 = 1х41 = 41
товар2 = 1х60 = 60
товар3 = 1х197 = 197 - 15% = 167,45
товар4 = 1х158 = 158 - 15% = 134,30
товар5 = 1х75 = 75
товар6 = 1х1045 = 1045 - 15% = 888,25
товар7 = 1х291 = 291 - 15% = 247,35
товар8 = 1х305 = 305
товар9 = 1х319 = 319
товар10 = 1х489 = 489

скидка на чек - 500

сумма товаров без скидки = 1289 ,вычитаем скидку на чек в 500 = 789
сумма товаров со скидкой = 1437,35

итого в сумме = 1437,35 + 789 = 2226,35
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Некорректная скидка в чеке

Сообщение Troglodit » 16 фев 2020, 19:36

Вы не правы.
Вычитаться должна не вся скидка,а только та, которая распределена на позиции, где нет скидки на позиции.
В самой программе установлен выбор МАКСИМАЛЬНОЙ скидки и не засчитывать позиции с со скидками на позицию для скидок на чек, если бы данной опции бы не было вы были бы правы.
Более того в строке скидки на чек
1439606;2020-02-15 16:04:42;4;119;752;0;3;57164;35;1;0.000;236.40;500.00;5555;1003;;;;

Смотрим формат обмена-сумма скидки 12-е поле.
13-е поле в формате -без указания, именно в нем 500.
Присутствует сумма 236.40.
Т.е. кусок скидки на чек посчитался, но к чеку была применена ПОЛНАЯ скидка.
12 лицензий ДЭНСИ
Troglodit
 
Постов: 122
Зарегистрирован: 16 июн 2014, 15:02

Re: Некорректная скидка в чеке

Сообщение Бродяга_Джон » 16 фев 2020, 19:49

не верите мне, проверяйте по вашим данным

посчитайте сумму 13-х полей в 11 транзакциях

там итоговая 2226,36 (0,01 где-то на округлении)


посчитав 13 поля 11 транзакций где нет скидок - получим 789,01
сумма произведения 11 и 12 полей этих транзакций даст нам 1289, это на 500 больше чем 789 :-)))

сумма транзакций со скидками даёт нам 1437,35
прибавим суда сумму позиций без скидок в 1289 - получим 2726,35
вычитаем 500 скидки на чек и в итоге имеем 2226,35
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Некорректная скидка в чеке

Сообщение Troglodit » 16 фев 2020, 20:02

Вы все пишете и считаете верно за исключением одной вещи.
В конце надо вычитать не 500 рублей, а размазать 500 рублей на все позиции и те,где уже применена скидка на позицию НЕ УЧИТЫВАТЬ.
Программа именно так и делает высчитывя 236.40, а не 500 в 35-й транзакции.
Именно эта сумма и находится в правильном поле 12-м 236.40, а 500 заметьте находится в 13 поле, где по условиям формата вообще ПУСТО.
Я понимаю как получилась итоговая цифра 2226.00, я просто считаю, что это баг.
Но возможно я ошибаюсь и это фича, мне просто нужно ТОЧНО знать как работают в данном примере скидки, т.к. это деньги.
Поэтому буду ждать ответ от Александра.
Но все равно спасибо за помощь.
12 лицензий ДЭНСИ
Troglodit
 
Постов: 122
Зарегистрирован: 16 июн 2014, 15:02

Re: Некорректная скидка в чеке

Сообщение Бродяга_Джон » 16 фев 2020, 21:22

Troglodit писал(а):Вы все пишете и считаете верно за исключением одной вещи.
В конце надо вычитать не 500 рублей, а размазать 500 рублей на все позиции и те,где уже применена скидка на позицию НЕ УЧИТЫВАТЬ.

так и делает, я же сказал посчитайте поля

в приведённом примере в поле 13 стоит уже за вычетом этой "размазанной" суммы в 500 рублей

товар 747601 по 41 рублю 1 штука на сумму 25,1 рублей, а не 41
товар 744966 по 60 рублей 1 штука на сумму 36,73 рублей, а не 60
и т.д.
со скидкой эти поля дают 789,01, а без скидки 1289,
1289 - 789 сколько будет? (0,01 возникла на округлении)
правильно, 500
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Некорректная скидка в чеке

Сообщение Troglodit » 16 фев 2020, 22:16

Вы не правильно ставите акцент.
Итоговая сумма без скидки 2980.
На ВСЕ позиции в чеке рассчитывается суммовая скидка,
т.к это скидка на чек.
но к учету идут только позиции БЕЗ СКИДОК НА ПОЗИЦИЮ.
ЕЩЕ РАЗ.
Это скидка на ЧЕК.
В транзакции в поле сумма скидки на чек стоит цифра
236.40.
Тогда итоговый чек по идее должен быть
Общая сумма без скидки (2980)-скидка на позиции( 253,65)-скидка на чек
(236.40)=2489.95
В вашем примере должно быть так.
товар 747601 по 41 рублю 1 штука на сумму 41*1*(1-500/2980)
товар 744966 по 60 рублей 1 штука на сумму 60*1*(1-500/2980)
Я все сказал. :)
12 лицензий ДЭНСИ
Troglodit
 
Постов: 122
Зарегистрирован: 16 июн 2014, 15:02

Re: Некорректная скидка в чеке

Сообщение Alexander » 17 фев 2020, 23:20

Посмотрю исходники.
По идее действительно суммовая скидка на чек должна пересчитываться в процентную и распределяться по всем позициям пропорционально их суммам за вычетом позиций, на которые уже начислены скидки.
Если на нашем стенде не удастся повторить, возможно потребуется копия БД LinCash с той кассы, на которой это происходит.
Alexander
 
Постов: 4992
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Некорректная скидка в чеке

Сообщение Troglodit » 18 фев 2020, 00:09

Я подозреваю, что у вас все пересчитывается. ведь в 35 транзакции.
1439606;2020-02-15 16:04:42;4;119;752;0;3;57164;35;1;0.000;236.40;500.00;5555;1003;;;;

В 12-м поле 235.40 примерно похожа на то, что и должно быть,
а вот 500р в следующем поле, которое в формате не описано.
Я предполагаю, что все вычисляется корректно, за исключением того, что
сама суммовая скидка берется из другого поля в БД, где хранится значение 500, а в транзакцию 35 все записывается корректно-этот кусок кода работает верно.
Все что нужно для теста готов предоставить.
12 лицензий ДЭНСИ
Troglodit
 
Постов: 122
Зарегистрирован: 16 июн 2014, 15:02

Re: Некорректная скидка в чеке

Сообщение Бродяга_Джон » 18 фев 2020, 01:25

Troglodit писал(а):В вашем примере должно быть так.
товар 747601 по 41 рублю 1 штука на сумму 41*1*(1-500/2980)
товар 744966 по 60 рублей 1 штука на сумму 60*1*(1-500/2980)
Я все сказал. :)

это не мой пример ,а ваши данные

500 рублей скидки на чек распределись по позициям на которых нет скидок на позиции в пропорции = 0,387897595

которая получилась из формулы
Коэффициент = распределяемая сумма / сумма базы

распределяемая сума у вас = 500, а сумма базы = 1289, что есть сумма позиций чека без скидок на позиции

747601 - сумма 41, распределено 15,9038014, что даёт итоговую сумму позиции = 41 - 15,9038014 = 25,1
и т.д.
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

След.

Вернуться в Техподдержка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


cron

Кто сейчас на конференции

Сейчас посетителей на конференции: 10, из них зарегистрированных: 0, скрытых: 0 и гостей: 10 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (180) здесь было 29 апр 2024, 13:15

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10